单片机第八次实验课——循环彩灯控制实验(定时器控制方式)

(1)用 P1 口作为输出口实现循环彩灯。(至少要有 5 种形式)
(2) 设计一个简易数字钟。 选择一位开关作为数字钟的开关,开关合上后,数字钟开始运行。led8--led13 表示为 6 位二进制数,显示数字钟的秒值;led14--led15 表示为 2 位二进制数,显示数字钟的分钟值,如达到 4 分钟,分钟值又从 0 开始;如此循环往复。

 

(1)汇编:

;可自行拓展,这里只写了五种,另外加闪烁模式需修改模式种数增加模式初值个数,在循环内添加对应处理就好了

ORG 0000H
MOV DPTR,#TAB1
MOV R0,#04H ;闪烁模式种类数
MOV R1,#07H ;每种模式闪烁次数

LOOP:
MOD1:
MOV A,R0
MOVC A,@A+DPTR
B1:
ADD A,#01H
MOV P1,A
RL A
LCALL DELAY
DJNZ R1,B1
MOV R1,#07H
DEC R0

MOD2:
MOV A,R0
MOVC A,@A+DPTR
B2:
MOV P1,A
SUBB A,#01H
RR A
LCALL DELAY
DJNZ R1,B2
MOV R1,#07H
DEC R0

MOD3:
MOV A,R0
MOVC A,@A+DPTR
B3:
MOV P1,A
CPL A
LCALL DELAY
DJNZ R1,B3
MOV R1,#07H
DEC R0

MOD4:
MOV A,R0
MOVC A,@A+DPTR
B4:
MOV P1,A
RL A
LCALL DELAY
DJNZ R1,B4
MOV R1,#07H
DEC R0
MOD5:
MOV A,R0
MOVC A,@A+DPTR
B5:
MOV P1,A
RR A
LCALL DELAY
DJNZ R1,B5
MOV R1,#07H
DEC R0

MOV R0,#04H 
MOV R1,#07H
SJMP LOOP
;每种闪烁模式初值表
TAB1: DB 10000000B,00000001B,00000000B,11111111B,00000000B   
    
DELAY:    
    MOV R7,#17H
DL1:
    MOV R6,#98H
DL0:
    MOV R5,#46H
    DJNZ R5,$
    DJNZ R6,DL0
    DJNZ R7,DL1
    RET
END

 

 

(2)汇编

ORG 0000H
SJMP MAIN
ORG 000BH
SJMP TINT0
MAIN:
MOV R0,#64H
MOV TMOD,#01H
MOV TH0,#7DH
MOV TL0,#0CBH
SETB EA
SETB ET0
SETB TR0
MOV R1,#00H;记录分钟数
MOV R2,#00H;记录秒数
MOV A,#00H
SJMP $

TINT0:
DJNZ R0,BACK
MOV R0,#64H
MOV A,R1
ADD A,R2
SETB P3.5
JNB P3.5,HAHA   ;如果控制开关关闭则计时,每隔一秒检测一次
SJMP BACK
HAHA:
CJNE A,#11111011B,ADDS  ;如果没有到3分59秒则加一秒
MOV A,#00H   ;如果到了3分59秒则清零
MOV P1,A
MOV R1,#00H
MOV R2,#00H
BACK:
MOV TH0,#7DH
MOV TL0,#0CBH
RETI

ADDS:
MOV A,R2
CJNE A,#00111011B,ADDONESEC ;如果没有到59秒则直接加一秒
MOV R2,#00H  ;如果到了59秒则秒数清零,分钟数加一
MOV A,R1
ADD A,#01000000B
MOV R1,A
MOV P1,A
SJMP BACK
ADDONESEC:
MOV A,R2
ADD A,#01H
MOV R2,A
ADD A,R1
MOV P1,A
SJMP BACK
END

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ryan爱吃糖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值