自动打铃器YJ+
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
自动打铃器YJ+
————————————————————————————————作者:————————————————————————————————日期:
2
;将原来的自动光照控制器,改进成自动打铃控制器
;仍然可以记录32次,每次操作使电铃响10秒
;液晶显示时分秒,按钮设置打铃时刻
;使用方法:
;临时打铃:按临时打铃按钮,铃响;放开则铃停
;对表:按对表按钮,出现闪动显示的项目,再按向上(或向下),改变闪动项目;再按增加(或减少)按钮调整当前项目值
;对表时可以调整的项目有:星期-月-日小时-分-秒
;定时设定:可以设定的项目有:小时-分,序号只是个便于区别的记录号,与打铃顺序无关
;按定时设定按钮,出现闪动的项目,按向上(或向下)可以改变闪动项目,按增加(或减少)可以修改当前闪动项目的值
;再次按对表(或设定)按钮则退出对表(或设定)状态,对表(或设定)状态下,5秒不操作自动退出
;自动打铃时间到,会响铃10秒
;一个记录的小时设置为24,这个记录就不用
;走时误差的调整:
;进入对表状态后,按一下临时打铃键,进入快慢调整状态,再同时按下上下左右四个键,就可以开始调整快慢啦
;此时,按一下向上键,调整数值加一,按一下向下键,调整数值减一,达到你需要的数值,等待2秒,自动完成调整
;调整数值一个负数,每24小时慢1.728秒,一个正数,每24小时快1.728秒。
;打铃时间的调整:
;进入定时设定,按临时打铃键,进入打铃时间调整状态,按增加键秒数增加,按减少键秒数减少
;秒数合适后,等待2秒,自动完成。最多50秒。
;单片机采用AT89C2051
;晶振采用6MHZ ,机器周期=2us(微秒)
;定时器0方式一,
;显示格式变时-分-秒 11-43-35 星期月日4 05_22
;内存分配:
; 主程序使用工作寄存器第0区,
; 定时器中断使用第1区
; 显示子程序使用第2区10h-17h,
;20H-21H:延时子程序
;22H 定时器0中断使用,计算月份日数
;23H 响铃秒数值,默认10秒,可以调整
;24H 快慢调整时计数用。改变一个数,每24小时快(或慢)1.728秒
3
;25H 液晶显示程序用于控制循环次数
;26H : 响铃时间计数
;27H :秒状态记实
;28H :分状态记实
;29h : 29H.0 对表标志,0=对表,1=不对表
; 29h.1 防止一分钟响铃2次标志,
; 29h.1=0,一分钟内不查找其他记录
; 29h.1=1, 指示可以查找记录
; 29h.2:
; 29H.6 0=可以调用一次显示时间子程序,1=不可以
; 29H.7 定时设定标志
;2AH-2BH:定时器时间常数=3CB0H
;2ch-2DH:
;2EH-2FH:干扰标志AAH55H
;30H-3FH:堆栈区
;40H-7FH:开关时间记录,格式:时1字节+分1字节=2字节,共可以有32个记录
;I/O口分配:
;p1.0 内部比较器同相输入端,输入,没用
;p1.1 内部比较器反相输入端,输入,没用
;p1.2:输出控制,出 0=铃响灯亮,1=不响灯灭
;p1.3:工作指示出 0=讯响器响, 1=不响
;p1.4:选择向上开关入按下=0
;p1.5:选择向下开关入
;p1.6:调整增加开关入
;p1.7:调整减少开关入
;p3.0:串行口TXD,显示
;p3.1:串行口RXD,显示
;p3.2: INT0,对表按钮入
;p3.3: INT1,定时按钮入
;p3.4: T0 ,没用
;p3.5: T1 ,没用
;p3.6:内部是比较器的输出信号,P1.0电平高于P1.1时得1,没有引出片外
;p3.7:临时打铃用按钮
org 0000h
ljmp main
org 0003h
ljmp int0fw ;外中断0服务
4
; CPL 29H.0 ;对表设定标志
; RETI
org 000bh
ljmp t0fw ;定时器0中断服务
org 0013h
ljmp int1fw ;外中断1服务
; cpl 29h.1 ;定时设定标志
; reti
org 001bh
ljmp ganrao
ljmp ganrao
; ljmp t1fw
org 0023h
ljmp ganrao
ljmp ganrao
ljmp ganrao
ljmp ganrao
; ljmp tirifw
org 0030h
main: mov a,2eh
xrl a,2fh
cjne a,#0ffh,maina
ljmp main1
maina: ;mov 08h,#0 ;时间从0开始
;mov 09h,#0
;mov 09h,#0
;mov 0ah,#0
;mov 0bh,#0
;mov 0ch,#0
;mov 0dh,#0
;mov 0eh,#01 ;星期一
;mov 0fh,#0
MOV 23H,#10 ;响铃10秒
MOV 26H,#0 ;当前响铃时间倒计时
MOV P1,#0FFH ;输出全1,
MOV P3,#0FFH
mov 29h,#0ffh
MOV 2AH,#03CH ;定时器初值高字节 (计算值是3CBOH,补偿13个周期, ; 就是3CBDH)
5