51单片机对闪烁灯的控制设计

1.实验任务
如图4.1.1所示:在p1.0端口上接一个发光二极管l1,使l1在不停地一亮一灭,一亮一灭的时间间隔为0.2秒。
2.电路原理图
图4.1.1
3.系统板上硬件连线
把“单片机系统”区域中的p1.0端口用导线连接到“八路发光二极管指示模块”区域中的l1端口上。
4.程序设计内容
(1).延时程序的设计方法
作为单片机的指令的执行的时间是很短,数量大微秒级,因此,我们要求的闪烁时间间隔为0.2秒,相对于微秒来说,相差太大,所以我们在执行某一指令时,插入延时程序,来达到我们的要求,但这样的延时程序是如何设计呢?下面具体介绍其原理:
如图4.1.1所示的石英晶体为12mhz,因此,1个机器周期为1微秒
机器周期 微秒
mov r6,#202个  2
d1: mov r7,#248 2个  2 2+2×248=498 20×
djnz r7,$2个  2×248 (498
djnz r6,d1 2个 2×20=40 10002
因此,上面的延时程序时间为10.002ms。
由以上可知,当r6=10、r7=248时,延时5ms,r6=20、r7=248时,延时10ms,以此为基本的计时单位。如本实验要求0.2秒=200ms,10ms×r5=200ms,则r5=20,延时子程序如下:
delay: mov r5,#20
d1: mov r6,#20
d2: mov r7,#248
djnz r7,$
djnz r6,d2
djnz r5,d1
ret
(2). 输出控制
如图1所示,当p1.0端口输出高电平,即p1.0=1时,根据发光二极管的单向导电性可知,这时发光二极管l1熄灭;当p1.0端口输出低电平,即p1.0=0时,发光二极管l1亮;我们可以使用setb p1.0指令使p1.0端口输出高电平,使用clr p1.0指令使p1.0端口输出低电平。
5?程序框图
如图4.1.2所示
图4.1.2
6.汇编源程序
org 0
start: clr p1.0
lcall delay
setb p1.0
lcall delay
ljmp start
delay: mov r5,#20 ;延时子程序,延时0.2秒
d1: mov r6,#20
d2: mov r7,#248
djnz r7,$
djnz r6,d2
djnz r5,d1
ret
end
7.c语言源程序
#include
sbit l1=p1^0;
void delay02s(void) //延时0.2秒子程序
{
unsigned char i,j,k;
for(i=20;i》0;i--)
for(j=20;j》0;j--)
for(k=248;k》0;k--);
}
void main(void)
{
while(1)
{
l1=0;
delay02s();
l1=1;
delay02s();
}
}

北京理工珠海学院第六届“信盈达杯”物联网智能产品创新设计大赛
中国市场上OLED和QLED电视各有优势,电视厂商底气何在?
集成400mV基准的双通道微功耗比较器简化了监视和控制功能
“人工智能+零售”是零售未来发展趋势
WATCHOUT——边缘混合和几何校正
51单片机对闪烁灯的控制设计
台媒:台积电英特尔对俄断供
RFID工程设备智能化管理系统的相关说明
英伟达H20即将发布,性能缩水20%
基于一种构建区块链dApps框架的应⽤程序Forge介绍
锂电池万能充电器设计解析
DSP进行浮点快速傅立叶变换剖析
如何解决IP城域网CR路由异常
AGM推出新款三防手机 售价369元
杭州移动:5G+F5G的组合,全面释放数字经济的新动能
沃达丰声称要在整个欧洲市场部署openRAN站点
国家发改委首次明确新型基础设施的范围
小鹏汽车新一代感知架构XNet信息解读
I2C总线是什么?基于I2C总线的Linux系统有哪些优点?
新能源二手车发展市场前景困难,废旧电池何去何从?