“时计数器”采用24进制计时器,可实现对一天24小时的累计。译码显示电路将“时”、“分”、“秒”计数器的输出状态用七段显示译码器译码,通过七段显示器显示出来。整点报时电路时根据计时系统的输出状态产生一脉冲信号,然后去触发一音频发生器实现报时。校时电路时用来对“时”、“分”、“秒”显示数字进行校对调整。
ms50 DATA 31H50ms计数内存地址sec DATA 32H秒计数内存地址min DATA 33H 分计数内存地址hour DATA 34H 时计数内存地址buffer DATA 35H 显示十进制内存起始地址EXTRN CODE(Display8)外部显示子程序(跟硬件设计有关,原文未列出) ORG 0000H LJMP STAR转主程序 ORG 000BH LJMP INT_Timer0转50ms定时器中断处理程序ORG 0100HSTAR: MOV SP,#60H 主程序 MOV ms50,A50ms计数器初始化到0 MOV hour,#12小时初始化为12 MOV min,#59分钟初始化为59 MOV sec,#50秒初始化为50 MOV TH0,#60初始化定时器T0为50ms的数据(跟时钟频率和定时器模式有关) MOV TL0,#176 MOV TMOD,#1初始化定时器模式 MOV IE,#82H设定中断 SETB TR0 开定时器0STAR1: LCALL Display 调用显示转换程序(先将16进制转为BCD码再显示) JNB F0,$等待中断处理完成标志 CLR F0复位中断处理完成标志 SJMP STAR1循环显示中断服务程序INT_Timer0: MOV TL0,#176-550ms定时器计数器初始值再装入(-5为微调,含响应中断用时) MOV TH0,#60 PUSH 01H压入堆栈 MOV R1,#ms50装入50ms计数内存地址数31H INC @R150ms计数内存加1 CJNE @R1,#20,ExitInt不够1秒,退出 MOV @R1,#050ms计数内存复位为0(31H) INC R1转为秒内存地址(32H) INC @R1秒计数内存加1 CJNE @R1,#60,ExitInt1不够60秒,退出 MOV @R1,#0够60秒,秒计数复位为0 INC R1转为分计数内存地址(33H) INC @R1 分计数内存加1 CJNE @R1,#60,ExitInt1不够60分,退出 MOV @R1,#0够60分,分复位为0 INC R1转为时内存地址(34H) INC @R1 时计数内存加1 CJNE @R1,#24,ExitInt1不够24时,退出 MOV @R1,#0时计数内存复位为0ExitInt1: SETB F0置位中断处理完成标志ExitInt: POP 01H恢复现场 RETI 退出中断HexToBCD:16进制转BCD码MOV B,#10 DIV AB MOV @R0,B存余数(10进制个位) INC R0转伤地址 MOV @R0,A存伤(10进制十位) INC R0转下一次余数地址 RET Display:显示转换与调用显示程序MOV R0,#buffer10进制BCD秒显示缓存地址(35H) MOV A,sec ACALL HexToBCD十进制秒转换后存在(35H)、(36H) MOV @R0,#10H(37H)=#10H,秒与分之间的间隔,无实际意义,或与dispaly8有关 INC R010进制BCD分显示缓存地址(38H) MOV A,min ACALL HexToBCD十进制分转换后存在(38H)、(39H) MOV @R0,#10H(3AH)=#10H,分与时之间的间隔,无实际意义,或与dispaly8有关 INC R010进制BCD时显示缓存地址(3BH) MOV A,hour ACALL HexToBCD十进制时转换后存在(3CH)、(3DH) MOV R0,#buffer恢复显示缓存地址(35H),为dispaly8置初始显示地址 LCALL Display8调用实际显示程序 RET END电子钟也是我们日常生活随处可见的。电子钟是一个将“ 时”,“分”,“秒”显示于人的视觉器官的计时装置。它的计时周期为24小时,显示满刻度为23时59分59秒,具有校时功能和报时功能。
因此,一个基本的数字钟电路主要由译码显示器、“时”,“分”,“秒”计数器、校时电路、报时电路和振荡器组成。主电路系统由秒信号发生器、“时、分、秒”计数器、译码器及显示器、校时电路、整点报时电路组成。
秒信号产生器是整个系统的时基信号,它直接决定计时系统的精度,一般用石英晶体振荡器加分频器来实现。将标准秒信号送入“秒计数器”,“秒计数器”采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲。“分计数器”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时计数器”。
“时计数器”采用24进制计时器,可实现对一天24小时的累计。译码显示电路将“时”、“分“秒”计数器的输出状态用七段显示译码器译码,通过七段显示器显示出来。整点报时电路时根据计时系统的输出状态产生一脉冲信号,然后去触发一音频发生器实现报时。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)