分享到
先是让第一个灯闪的程序:
start: setb p0.0;(1)是让灯灭
lcall delay;(2)是延时,调用延时子程序指令
clr p0.0;(3)是让灯亮
lcall delay;(4)和第二条一模一样,也是调用延时子程序指令
ljmp start;(5)跳转回去执行第一条指令
delay: mov r7,#250;(6)让r7作为计数器,并装入一个常数
d1: mov r6,#250;(7)让r6作为计数器,并装入一个常数
d2: djnz r6,d2;(8)让r6减1,并判断r6是否为0。若r6为0,向下执行指令。若r6不为0,跳转d2,继续让r6减1。
djnz r7,d1;(9)让r7减1,并判断r7是否为0。若r7为0,向下执行指令。若r7不为0,跳转d1,使r6完成新一轮计数。
ret;(10)返回指令。
end;(11)程序结束
再是挨着闪的程序:
;------------------主程序------------------
start: clr p0.0;p0.0输出低电平,使led1点亮
acall delay;调用延时子程序
setb p0.0;p0.0输出高电平,使led1熄灭
clr p0.1;p0.1输出低电平,使led2点亮
acall delay;调用延时子程序
setb p0.1;p0.1输出高电平,使led2熄灭
clr p0.2;p0.2输出低电平,使led3点亮
acall delay;调用延时子程序
setb p0.2;p0.2输出高电平,使led3熄灭
clr p0.3;p0.3输出低电平,使led4点亮
acall delay;调用延时子程序
setb p0.3;p0.3输出高电平,使led4熄灭
clr p0.4;p0.4输出低电平,使led5点亮
acall delay;调用延时子程序
setb p0.4;p0.4输出高电平,使led5熄灭
clr p0.5;p0.5输出低电平,使led6点亮
acall delay;调用延时子程序
setb p0.5;p0.5输出高电平,使led6熄灭
clr p0.6;p0.6输出低电平,使led7点亮
acall delay;调用延时子程序
setb p0.6;p0.6输出高电平,使led7熄灭
clr p0.7;p0.7输出低电平,使led8点亮
acall delay;调用延时子程序
setb p0.7;p0.7输出高电平,使led8熄灭
acall delay;调用延时子程序
ajmp start;八个灯一次亮了后返回开头再次循环
;------延时子程序-------
delay: mov r0,#255;r0装入255
d1: mov r1,#255;r1装入255
djnz r1,$;使r1自减为零后执行下一句指令
djnz r0,d1;r0自减1,如果为零执行下一句指令,如果不为零,跳转d1
ret;子程序返回
;==============================================================================;
end;程序结束
激光雷达与毫米波雷达的区别与联系
证监会披露小米CDR招股书,小米概念股多股涨停
只用0.1s!比指纹解锁还要快,vivo X20面部识别技术将改变世界
每日公告:惠伦晶体、汉威科技、华工科技、中京电子、传艺科技、传艺科技、景旺电子、西部超导
锂-二氧化碳电池高效双向催化剂设计规范
调试通过的灯闪程序
【安防】维安达斯便携式激光对射
LED芯片原理分类基础知识大全
基于IP/MPLS多业务综合承载网IPRAN技术方向和网络方案分析
路灯延寿控制器电路原理图
处于爆发临界点的物联网需要合作才能生存
哈希竞猜游戏系统开发Hash算法
混合云和多云谁对企业更有优势
PULSAR模拟电压可变衰减器特性
电子工程师该如何选择PCB制造商?
BLDC电机换向方法解析
基于STM32单片机的智能拐杖系统设计
“九章”和Horse Ridge对于量子计算的发展有哪些意义?
自动酶标仪的使用步骤及注意事项
我印象中的快速傅里叶变换 (FFT)