- 1、本文档共29页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于8255单片机的电子钟程序
关于8255单片机的程序设计
;变量声明区
SECOND EQU 30H ;秒
MINUTE EQU 31H ;分
HOUR EQU 32H ;时
DAY EQU 33H ;日
MONTH EQU 34H ;月
YEAR_L EQU 35H ;年低位
YEAR_H EQU 36H ;年高位
DISPBUF EQU 37H ;显示缓冲区(6字节)
DISPBIT EQU 3DH ;位选偏移量
FLAG EQU 3EH ;标记(0表示在主界面,1-6分别代表显示时、分、秒、年、月、日,0为一般显示(当前位置为主界面),7为显示日期,8为显示闹铃开关,9、10显示闹铃时和分,11表示不做缓冲处理)
KEY EQU 3FH ;按键值
CLOSE_BIT EQU 40H ;显示屏蔽(和位选相与后送P2)
A1_MINUTE EQU 41H ;闹铃1 分钟
A1_HOUR EQU 42H ;闹铃1 小时
A1_SWITCH EQU 43H ;闹铃1 开关
A2_MINUTE EQU 44H ;闹铃2 分钟
A2_HOUR EQU 45H ;闹铃2 小时
A2_SWITCH EQU 46H ;闹铃2 开关
A3_MINUTE EQU 47H ;闹铃3 分钟
A3_HOUR EQU 48H ;闹铃3 小时
A3_SWITCH EQU 49H ;闹铃3 开关
FLAG_KEEP EQU 4AH ;闹钟持续鸣叫标志(1开启,0关闭)
FLAG_ALARM EQU 4BH ;闹钟响标志(为1蜂鸣器响,为0蜂鸣器不响)
FLAG_NUM EQU 4CH ;当前闹钟标志(1-3个闹钟)
FLAG_MOVING EQU 4DH ;流水显示初始化标志(0未初始化 1已经初始化)
COUNT EQU 4EH ;T0中断次数(T0内部使用)
COUNT_1S EQU 4FH ;计数1S(满N秒后执行程序)
FLAG_1S EQU 50H ;满1秒取反标志(1秒执行程序1,另一秒执行程序2)
FLAG_ADD EQU 51H ;时间设置标记(1代表FLAG对应的时段加1)
FLAG_CLOSE EQU 52H ;闪烁显示标记(为0不闪烁)
DATE_STYLE EQU 53H ;日期显示模式标志(为1跳变切换显示,为2流水显示,为3下滑切换显示)
CLOSE_BIT_TEMP EQU 54H ;屏蔽位暂存(流水显示模式)
CLOSE_BIT_CODE EQU 55H ;段选屏蔽位(和段选相与后送P0)
KEY_TEMP EQU 56H ;临时按键值(串口发送内容)
COUNT_50MS EQU 57H ;50毫秒计数
TEMP_R0 EQU 58H ;保护R0
TEMP_R1 EQU 59H ;保护R1
TEMP_R2 EQU 5AH ;保护R2
FLAG_DOWN_S EQU 5BH ;下移显示阶段标志(每0.2s加1;0无显示,1、2移入显示,3-17正常,18、19移出显示)
MOVING_DISPBUF EQU 5CH ;临时缓冲区(流水显示模式)
;----------------------------------------------------------------------------------------------
;主程序
ORG 00H
SJMP START
ORG 0BH
LJMP INT_T0
ORG 13H
AJMP INT_1
ORG 30H
START: ;初始化
MOV SECOND,#00
MOV MINUTE,#42
MOV HOUR,#02
MOV DAY,#09
MOV MONTH,#12
MOV YEAR_L,#09
MOV YEAR_H,#20
MOV A1_SWITCH,#00H
MOV A1_MINUTE,#22
MOV A1_HOUR,#12
MOV A2_SWITCH,#00H
MOV A2_MINUTE,#00H
MOV A2_HOUR,#00H
MOV A3_SWITCH,#00H
MOV A3_MINUTE,#00H
MOV A3_HOUR,#00H
MOV DISPBIT,#00H
MOV FLAG_KEEP,00H
MOV P3,#0FH ;键盘进入监控输入状态
MOV R7,#00H ;整点报时鸣铃次数清0
SETB P2.0 ;关蜂鸣器
MOV FLAG_CLOSE,#00H
MOV FLAG,#0BH
MOV FLAG_ADD,#00H
MOV FLAG_1S,#01H
MOV COUNT,#00H
MOV KEY,#00H
SETB PT0 ;计数器中断优先级高
CLR PX1 ;外部中断1优先级低
MOV TMOD,#21H ;T0为定时器方式1,T1为方式2
SETB TR0
文档评论(0)