51单片机之实现流水灯
机器翻译通过AI实现不同语言之间的即时交流 #生活知识# #科技生活# #人工智能应用#
在实现流水灯之前,我们有必要提一点,C51代码在写之前,要参考电路图来写。拿流水灯来说,我们来看图二,LED灯,也就是二极管,八只LED的正极通过一根总线接在+5V的电压上,再看图一,可知八只LED灯的负极接在LED、P2的8个I/O口上。根据二极管的导通条件可知,在单片机的IO口输出低电平时,才能点亮LED灯。
下面贴上代码:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit LED1 = P2^0;
sbit LED2 = P2^1;
sbit LED3 = P2^2;
sbit LED4 = P2^3;
sbit LED5 = P2^4;
sbit LED6 = P2^5;
sbit LED7 = P2^6;
sbit LED8 = P2^7;
/* ********************************************* */
// 函数名称: Delay()
// 函数功能:毫秒延时
/* ********************************************* */
void delay(uint z)
{
uint x,y;
for(x = 0; x < z; x++)
for(y = 0; y < 113; y++);
}
// 函数名称: main()
// 函数功能: 实现一个LED灯一闪一闪的效果
void main(void)
{
while(1)
{
LED1 = 0; //灯亮
delay(1000); //持续亮1s
LED1 = 1; //灯灭
delay(1000); //持续灭1s
LED2 = 0;
delay(1000);
LED2 = 1;
delay(1000);
LED3 = 0;
delay(1000);
LED3 = 1;
delay(1000);
LED4 = 0; //灯亮
delay(1000); //持续亮1s
LED4 = 1; //灯灭
delay(1000); //持续灭1s
LED5 = 0;
delay(1000);
LED5 = 1;
delay(1000);
LED6 = 0;
delay(1000);
LED6 = 1;
delay(1000);
LED7 = 0;
delay(1000);
LED7 = 1;
delay(1000);
}
}
想必大家在看过前两张电路图后,再来看代码,就大概懂什么意思了吧。首先利用sbit的第二种使用方法:sbit 位变量名=SFR名称^变量位地址值 ,例:sbit LED1 = P2^0, 即定义LED1为P2口的第1位,以便进行位操作。
接着我们写了一个毫秒级延时函数,当然了,这里所谓的延时是不准时的延时,是我们通过一些调试后,测试出来的“1秒“,要想真正准确地实现一秒钟延时,还要使用定时器,由于这里要求不是那么准确,我们利用毫秒级延时函数实现就可以。
最后就是我们的主函数,也就是功能函数了,对单片机而言,我们都知道,单片机的最大功能在于控制,而单片机的控制也是体现在输出高低电平,而单片机之所以能够实现那么多的功能也是靠着周围扩展的模块。在C51里,1即是高电平,0即是低电平,对LED灯而言也就分别是灭,亮了。另外我们还调用了延时函数,以此实现流水灯的实现。
(链接:https://pan.baidu.com/s/1CtSpgtdKuNh5P3CmCqHuwA
提取码:nb2i 视频实现)
最后有一点要提醒大家,C51的代码,要具体型号的单片机具体电路图分析,切勿照抄照搬!!!
网址:51单片机之实现流水灯 https://www.yuejiaxmz.com/news/view/93546
相关内容
【单片机毕业设计】【mcuclub【尼康D800E 单机参数】Nikon D800E 单机数码相机参数
32、基于51单片机红外智能垃圾桶系统设计(程序+原理图+仿真+元件清单+开题报告+参考论文等)
单片机在实际生活上的应用
单片机在智能电饭煲中的应用
家用电器维修方法演示幻灯片.ppt
【特纳斯电子】基于单片机的智能洗衣机系统设计
生活中的发现作文800字(精选51篇)
灯具选购全攻略及安装流程
【家庭水晶灯清洗 服务/价格信息】