单片机c51下的自动打铃系统(4)

2019-08-20 18:52

单片机课程设计

RP1RESPACK-8123456789L1L2L3L4C130PFU1X119XTAL1CRYSTAL18XTAL2P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617L1L2L3L4L5L6L7L8C330PFR110k9RSTC210uF293031PSENALEEAS1S2S1S2S3S4R3R4R5R610k10k10k10k12345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51R2100Q1BU208S3S4LS1SPEAKER 图4-2

L5L6L7L8

11

单片机课程设计

附录:

5.1汇编程序清单:

BEEP EQU P3.7 ;定义蜂鸣器(电铃)控制信号输出口

ORG

0000H ;程序入口地址

LJMP START

ORG 000BH ;定时器0中断入口地址 LJMP TIMER_0 ORG 0100H

;/*****程序开始,初始化*****/

START:

SETB BEEP ;关闭蜂鸣器(电铃)

SETB 48H ;使用一个bit位用于调时闪烁标志

SETB 47H ;使用一个bit位用于产生脉冲用于调时快进时基 CLR CLR

45H ;关闭响铃方式1标志 44H ;关闭响铃方式2标志

MOV R1,#0 ;调整选择键功能标志:0正常走时、1调时、2调分、3调秒 MOV 20H,#00H ;用于控制秒基准时钟源的产生 MOV 21H,#00H ;清零秒寄存器 MOV 22H,#00H ;清零分寄存器 MOV 23H,#00H ;清零时寄存器

MOV 24H,#00H ;用于控制调时闪烁的基准时钟的产生 MOV R2,#00H ;强制打铃标志 MOV R3,#00H ;强制打铃时长标志

MOV IP,#02H ;IP,IE初始化 MOV IE,#82H

MOV TMOD,#01H ;设定定时器0工作方式1 MOV TH0,#3CH

MOV TL0,#0B0H ;赋定时初值,定时50ms SETB TR0 ;启动定时器0 MOV SP,#40H ;重设堆栈指针

12

单片机课程设计

;/*****主程序*****/

MAIN:

CJNE R1,#00H,MAIN1 ;是否为正常走时状态 LCALL BIJIAO1 ;调用起床、熄灯打铃比较子程序 LCALL BIJIAO2 ;调用上、下课打铃比较子程序 LCALL DALING1 ;调用响铃方式1执行子程序 LCALL DALING2 ;调用响铃方式2执行子程序 LCALL DALING3

MAIN1:

LCALL DISPLAY ;调用显示子程序 LCALL KEY_SCAN ;调用按键检测子程序 JZ MAIN ;无键按下则返回重新循环 LCALL SET_KEY ;调用选择键处理子程序

JB 46H,MAIN ;如果已进行长按调整(调时快进),则不再执行下面的单步调整 LCALL ADD_KEY ;调用增加键处理子程序 LCALL DEC_KEY ;调用减少键处理子程序

LCALL DALING_KEY ;处理强制打铃/强制关闭铃声键 LJMP MAIN ;重新循环

;/*****定时中断服务程序*****/

TIMER_0:

PUSH ACC PUSH PSW ;保护现场 MOV TH0,#3CH

MOV TL0,#0B0H ;重新赋定时初值 CPL 47H ;产生脉冲用于调时快进时基 INC 24H

MOV A,24H

CJNE A,#10,ADD_TIME ;产生0.5秒基准时钟,用于调时闪烁 CPL 48H

;取反调时闪烁标志位

13

单片机课程设计

MOV 24H,#00H

ADD_TIME:

INC 20H MOV A,20H

CJNE A,#20,RETI1 ;产生1秒基准时钟 MOV 20H,#00H

;一秒钟时间到,清零20H

CJNE R2,#01H,ADD_M INC R3

ADD_M:

MOV A,21H ADD A,#01H DA A

;作十进制调整

MOV 21H,A

CJNE A,#60H,RETI1 MOV 21H,#00H MOV A,22H ADD A,#01H DA A MOV 22H,A

CJNE A,#60H,RETI1 MOV 22H,#00H MOV A,23H

;一分钟到

;一小时到

ADD A,#01H DA A MOV 23H,A CJNE A,#24H,RETI1

MOV 23H,#00H ;到24点,清零小时

RETI1:

POP PSW POP ACC ;恢复现场

14

单片机课程设计

RETI ;中断返回

;/*****显示处理*****/

DISPLAY:

MOV A,21H ;秒

ANL A,#0FH

MOV 2FH,A ;转换出秒个位,存入2FH

MOV A,21H

ANL A,#0F0H SWAP A

MOV 2EH,A ;转换出秒十位,存入2EH

JB 46H,MIN

;如果长按按键(调时快进),则跳过闪烁处理

;如果R1为3,闪烁秒位待调整

CJNE R1,#3,MIN JB 48H,MIN

MOV 2FH,#0AH ;使该位为10,查表得到使该位不显示的输出

MOV 2EH,#0AH

MIN:

MOV A,22H ;分

ANL A,#0FH

MOV 2DH,A ;转换出分个位,存入2DH

MOV A,22H

ANL A,#0F0H SWAP A

MOV 2CH,A ;转换出分十位,存入2CH

JB 46H,HOUR

;如果长按按键(调时快进),则跳过闪烁处理

;如果R1为2,闪烁分位待调整

CJNE R1,#2,HOUR JB 48H,HOUR

MOV 2DH,#0AH ;使该位为10,查表得到使该位不显示的输出

MOV 2CH,#0AH

HOUR:

MOV A,23H ;时

ANL A,#0FH

15


单片机c51下的自动打铃系统(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:(埃及)国别报告

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: