80C51单片机:2.初学点亮发光二极管,流水灯案例
时间:2023-05-09 04:07:00
80C51单片机系列
- 80C51单片机介绍
- 照亮第一个发光二极管,流水灯案例
文章目录
- 80C51单片机系列
- 前言
- 照亮第一个发光二极管
-
- 程序烧录等操作
- 二极管流水灯
- 下一章:数字管显示、包装和消隐
前言
先看原理图,学单片机首先要了解原理图!
注:每个人买的单片机不一定一样,每个板的原理图也不一定一样!
原理图一般都是单片机附带的,仔细看看包裹里有没有原理图链接!自己下载!
照亮第一个发光二极管
我们LED八个二极管连接,MCU单片机芯片(即800C51单片机),P八串两口(P2^0 ~ P2^7)。
所以我们只需要操作P两口的八个串口可以控制LED二极管的发光和熄灭。
这里就不多说创建项目和文件了。
代码如下
#include sbit LED1 = P2^0;void main(){ LED1 = 0;}
根据高低电平控制单片机中的控制器件
因为启动后默认给高电平,要想控制二极管发光,需要给低电平!也就是 0
这里代表低电平,1.代表高电平
给 P2 ^ 0,也就是P第一的第一串口,给个 0 !
然后下载到单片机!
程序烧录等操作
具体操作,如烧软件、项目配置(设置操作)MHZ)、生成hex文件等,烧软件请自行在线搜索下载。
生成项目配置hex这里的截图说明文件!
首先,项目配置,设置运行速率MHZ
然后设置生成hex文件,hex文件是程序最终编译后需要下载到单片机的文件!
在刚才的基础上,勾选生成hex文件即可!
最后,用烧录软件下载到单片机!
开机即可!
这样,单片机上的第一个发光二极管就会发光!
注意:有的可能只亮一下,在LED1 = 0;
后面加一个while(1);死循环!
不是很简单吗?
二极管流水灯
有了以上简单的实验,我们就写一个二极管流水灯。
代码如下
#include #include #define GPIO_LED P2void Delayms(unsigned char);void main(){ unsigned char i; GPIO_LED = 0xfe; Delayms(10); //流水灯 while(1){ for(i = 0; i<7; i++){
//左移7次 GPIO_LED = _crol_(GPIO_LED,1); //GPIO_LED 左移1位 Delayms(10); } for(i = 0; i<7; i++){
//右移7次 GPIO_LED = _cror_(GPIO_LED,1); //GPIO_LED 右移1位 Delayms(10); } }}/*//手动实现轮流赋值void main(){ unsigned char i,led_list[8]= {0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0xBF}; while(1){ for(i = 0; i<8; i++){ //循环 GPIO_LED = led_list[i]; Delay10ms(2); } }}*///延时函数void Delayms(unsigned char c){
unsigned char a,b; for(;c>0;c--) for(b=76;b>0;b--) for(a=130;a>0;a--);}
程序中注释部分为,手动实现赋值P2操作。
而导入的**#include
调用_crol_进行左移。
调用_cror_进行右移。
下一章:数码管显示及封装与消隐
这里建议新学的小伙伴,可以手动实现以下,轮流给P2口赋值。
下一章:3.数码管显示及封装与消隐