1、4. 在LED灯开始和停止闪烁时蜂鸣器分别鸣响1次。 5. 利用单片机内部定时器定时,要求采用中断方式。提高要求:1)使用按键(KINT)切换LED灯闪烁频率。2)在LED显示器上显示当前模式和频率值。3)其它个性化设计。2、设计思路利用定时器T0实现0.1s,0.5s和1s的定时,分别对应5Hz,1Hz和0.5Hz三种闪烁方式的半周期,用T0的中断服务程序实现LED信号灯的闪烁和LED显示器显示当前模式,并重新开始计时。这三种定时时间的定时器计数初值存于工作寄存器中,赋计数初值时取出,一种频率的闪烁结束后通过改变寄存器内的值来改变半周期,接着再赋值取出。利用另一个工作寄存器来控制闪烁次数,是
2、当前模式运行时间为20s。3、资源分配R0、R1:当前模式下定时器计数初值R2:循环次数,即闪烁次数4、流程图 5、源代码 $include (C8051F310.inc) LED BIT P0.0 BEEP BIT P3.1 KINT BIT P0.1 ORG 0000H LJMP MAIN ORG 0003H LJMP T_KINT ORG 001BH LJMP TIME1 MAIN: LCALL Init_Device MOV R0,#00H CLR LED CLR BEEP CLR PSW.1 CLR PSW.5 SETB EA SETB EX0 SETB IT0 MOV TMOD,#
3、10H SETB ET1 CHOO: CJNE R0,#02H,LOOP LJMP CASE2 LOOP: JC CASE1 LJMP CASE3 CASE1:MOV R1,#0D7H MOV R2,#14H MOV R7,#0C8H MOV P1,#0 SETB P1.6 SETB P1.5 LJMP START CASE2:MOV R1,#83H MOV R2,#63H MOV R7,#28H SETB P1.7 SETB P1.4 SETB P1.3 SETB P1.1 LJMP START CASE3:MOV R1,#06H MOV R2,#0C6H MOV R7,#14H LJMP
4、START START:LCALL VOICE MOV TH1,R1 MOV TL1,R2 MOV A,R7 BACK: SETB TR1 LOOP1:MOV C,PSW.5 JNC LOOP1 CLR PSW.5 DJNZ R7,BACK MOV C,PSW.1 JC THERE CJNE A,#28H,LOOP2 LJMP CASE3 LOOP2:JC THERE LJMP CASE2 THERE: SJMP $ VOICE:SETB BEEP MOV TH1,#06H MOV TL1,#0C6H LOOP3: JNC LOOP3 RET T_KINT:SETB PSW.1 INC R0
5、CJNE R0,#04H,K_RET CLR PSW.1 MOV R0,#00H K_RET: CLR TR1 POP SP POP SP MOV DPTR,#0036H PUSH DPL PUSH DPH RETI TIME1: SETB PSW.5 CLR TR1 CPL LED RETI PCA_Init: anl PCA0MD, #0BFh mov PCA0MD, #000h ret Timer_Init: mov TMOD, #010h mov CKCON, #002h Port_IO_Init: mov XBR1, #040h Interrupts_Init: mov IE, #0
6、09h Init_Device: lcall PCA_Init lcall Timer_Init lcall Port_IO_Init lcall Interrupts_Init END 6、程序测试方法与结果思考题1. 若想实现3种闪烁方式的持续时间在5s-60s范围内可调,且每种方式的持续时间各不相同,应如何设计程序?答:只需将R2的值改成相应的即可。本人承诺:本报告内容真实,无伪造数据,无抄袭他人成果。本人完全了解学校相关规定,如若违反,愿意承担其后果。签字: 年 月 日其它说明:1.标题:黑体,小四号2. 正文:宋体,五号,1.5倍行距3.流程图使用 SmartDraw7 或Visio软件绘制4.不要加封面
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1