彩灯控制器,按开始键,单个LED灯从右到左依次显示,间隔时间0.5秒。请画出电路原理图,程序流程图。

彩灯控制器,按开始键,单个LED灯从右到左依次显示,间隔时间0.5秒。请画出电路原理图,程序流程图。,第1张

程序名: 单片机实验仪配套程序-共阳流水灯

电路介绍:p0口驱动8个led灯,将P0口和J1用8芯电缆连接

将JA1上的跳线帽全部移到JA2上。

01mcu. 20060916

key bit P2.0 按键

**********************************

main: mov r0,#8 每次移动8位

mov p0,#01111111b 先使最高位亮,共阳:0亮1灭

keys: jb key,$ 键按下启动

loop: acall delay 显示延时

mov a,p0将当前显示的数据读回到ACC

rr a右移1位

mov p0,a返回到P0显示移动后的数据

djnz r0,loop没移动完继续

ljmp main 重复运行,以实现流水效果

---延时--- 0.5S @ 12MHz -------

delay: mov r1,#6

ds1lo: mov r2,#200

ds2lo: mov r3,#207

djnz r3,$

djnz r2,ds2lo

djnz r1,ds1lo

ret 延时返回

end

A_BIT EQU 20H

个位数存放处

B_BIT EQU 21H

十位数存放处

TEMP EQU 22H

计数器寄存处

STAR: MOV TEMP,#0

初始化计数器

STLOP: ACALL DISPLAY

INC TEMP

MOV A,TEMP

CJNE A,#100,NEXT

等于100重来

MOV TEMP,#0

NEXT: LJMP STLOP

显示子程序

DISPLAY: MOV A,TEMP

MOV B,#10

DIV AB

MOV B_BIT,A

MOV A_BIT,B

MOV DPTR,#NUMTAB

MOV R0,#4

DPL1:

MOV R1,#5

DPLOP: MOV A,A_BIT

MOVC A,@A+DPTR

MOV P0,A

CLR P2.7

ACALL D1MS

SETB P2.7

MOV A,B_BIT

MOVC A,@A+DPTR

MOV P0,A

CLR P2.6

ACALL D1MS

SETB P2.6

DJNZ R1,DPLOP

DJNZ R0,DPL1

RET

D1MS:

MOV R7,#50

D1: MOV R6,#20

D2: DJNZ R6,$

DJNZ R7,D1

RET

NUMTAB:

DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

013456789字形码

END

这是两位从0到99的,你参考下。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11199116.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存