单片机交流
直播中

汪潇潇

7年用户 818经验值
私信 关注
[问答]

如何去完成一种基于51单片机点亮led灯的实验?

如何去完成一种基于51单片机点亮led灯的实验?怎样去编写实验代码?

回帖(1)

宁升椿

2021-7-14 14:29:05
  现在开始第一个程序,51单片机开发工具是使用的Keil,一个集成开发环境,具体这里不做详细介绍,第一个程序很简单,就只有下面几行代码:
  #include《reg52.h》***it LED1=P2^0;void main(){ LED1=0; while(1);} 首先#include《reg52.h》, 该头文件包含了单片机定义的引脚地址,如P2的地址;有人可能问为什么是reg52.h而不是reg51.h,其实都可以的,因为我用的是89C52,所以包含了reg52.h,其实reg51.h和reg52.h大部分是一样的,reg52.h稍微多点定义;80C52,80C51, 80C516等很多8位单片机的内核都是51内核,所以统称51单片机,用哪个学习差别不大。
  ***it是关键字,用来定义位变量的,也就是变量LED1的值只能是0或1; P2在reg52.h定义的特殊功能寄存器,定义代码是sfr P2 = 0xA0;即P2的地址是0xA0, 而P2^0的意思是P2的第0个bit;
  P2的8个bit分别连接8个LED,P2^0也就是第一个LED灯;
  LED1=0; 这一句就是点亮LED,是不是很简单,因为LED连接方式是低电平有效,所以设置为0的时候亮;如果威廉希尔官方网站 图修改了,高电平有效,那么就需要修改为LED1=1; 了,就是这么简单;
  while(1);就是让单片机停在这儿,单片机的入口是main函数,里面一般都有一个while(1), 因为单片机不支持多线程等复杂操作,并且需要一直运行,所以需要有一个while(1)主循环,这个程序非常简单,所以循环里面没有内容,实际大部分的处理都是在while循环里面的;
  这个程序就是51单片机的“Hello World!”程序,很简单吧,但一定要上手做,弄懂每一个字符的含义,而且第一个程序的主要意义是学会使用Keil开发环境。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分