电子时钟课程设计一:设计背景电子数字钟的应用十分广泛,通过计时精度很高的石英晶振(也可采用卫星传递的时钟标准信号),采用相应进制的计数器,转化为二进制数,经过译码和显示电路准确地将时间“时”“分”“秒”用数字的方式显示出来。
与传统的机械钟相比,它具有走时准确,显示直观,无机械传动,无需人的经常调整等优点。
它广泛用于电子表、车站、码头、广场等公共场所的大型远距离时间显示电子钟。
二:数字钟电路设计思路1.选用8253计数器2进行1s的定时,其输出OUT1与8259的IRQ0相连,当定时到1s时产生一个中断服务程序进行时、分、秒的计数,并送入相应的存储单元;8255的A口接七段数码管的位选信号,B口接数码管的段选信号。
时、分、秒的数值通过对8255的编程可送到七段数码管上显示。
2.此程序主要由四部分组成:第一部分为最主要的部分定义显示界面;第二部分为利用延时程序,并将调用的二进制表示的时间数转换成ASCII码,并将时间数存入内存区;第三部分将存在系统内存区的时间数用七段数码管显示出来;第四部分利用循环程序分别对秒个位、秒十位、分个位、分十位与相应的规定值进行比较,结合延时程序来实现电子钟数字的跳变,从而形成走时准确的电子钟。
该程序实现了准确显示秒和分,读数准确,走时精准。
此电子钟能准确的从0时0分0秒走时到23时59分59秒,然后能自动回复到0时0分0秒循环走时。
3.基本工作原理:系统设计的电子时钟主要由显示模块、时钟控制模块和时钟运算模块三大部分组成。
以8086微处理器作CPU,用8253做定时器产生时钟频率提供一个频率为10kHz的时钟信号,要求每隔10ms完成一次扫描键盘的工作。
在写入控制字与计数初值后,每到10ms定时器就启动工作,即当计数器减到1时,输出端OUT0输出一个CLK周期的低电平,向CPU申请中断,当达到100次时,则输出端OUT1输出1s,向CPU申请中断,由8255控制一个数码管显示,当计数到60s时,则输出端OUT2向CPU申请中断,由另一数码管显示1min,同理由数码管显示处理,使数码管的显示发生变化。
电子时钟的显示格式HH:MM:SS由左到右分别为时、分、秒,并依次对秒、分、小时寄存器的内容加一,六个数码管动态显示时、分、秒的当前值。
最大记时23:59:59超过这个时间时分秒位都清零从00:00:00重新开始。
8253芯片介绍8253是NMOS工艺制成的可编程计数器/定时器,有几种芯片型号,外形引脚及功能都是兼容的,只是工作的最高计数速率有所差异,例如8253(),8253-5(5MHz) 8253内部有三个计数器,分别成为计数器0、计数器1和计数器2,他们的机构完全相同。
每个计数器的输入和输出都决定于设置在控制寄存器中的控制字,互相之间工作完全独立。
每个计数器通过三个引脚和外部联系,一个为时钟输入端CLK,一个为门控信号输入端GATE,另一个为输出端OUT。
每个计数器内部有一个8位的控制寄存器,还有一个16位的计数初值寄存器CR、一个计数执行部件CE和一个输出锁存器OL。
8253芯片8255芯片介绍8255特性:①一个并行输入/输出的LSI芯片,多功能的I/O器件,可作为CPU总线与外围的接口.②具有24个可编程设置的I/O口,即使3组8位的I/O口为PA口,PB口和PC口.它们又可分为两组12位的I/O口,A组包括A口及C口 (高4位,PC4~PC7),B组包括B口及C口(低4位,PC0~PC3).A组可设置为基本的I/O口,闪控(STROBE)的I/O闪控式,双向I /O3种模式;B组只能设置为基本I/O或闪控式I/O两种模8255芯片式,而这些操作模式完全由控制寄存器的控制字决定. 8255引脚功能:RESET:复位输入线 , CS:芯片选择信号线 , RD:读信号线 , WR:写入信号 , D0~D7:三态双向数据总线 ,PA0~PA7:端口A输入输出线 ,PB0~PB7:端口B输入输出线, PC0~PC7:端口C输入输出线, A0,A1:地址选择线三:程序流程图三、电子表原理图:四:程序代码D8279 equ 200H C8279 equ 202H C8253 equ 20bH D82530 equ 208H D82531 equ 209H C82590 equ 210HC82591 equ 211Hdata segmentHOUR db 00MINUTE db 00SECOND db 008STAT db 00LEDdb 31H,06H,5bH,4fH,66H,6dH,7dH,27H,7fH,6fH,00H,00H DISBUF db 8 dup(0)data endsstack segment stackdw 100 dup()stack endscode segmentassume cs:code,ds:dataSTART: MOV AX,DATAMOV DS,AXCLIMOV AL,13HMOV DX,C82590OUT DX,ALMOV AL,8MOV DX,C82591OUT DX,ALMOV AL,1OUT DX,ALMOV AX,0MOV ES,AXLEA AX,INT0MOV AX,CSMOV ES:[4*8+2],AXMOV DX,C8253MOV AL,36HOUT DX,ALMOV DX,D82530MOV AX,10000OUT DX,ALMOV AL,AHOUT DX,ALMOV DX,C8253MOV AL,36HOUT DX,ALMOV DX,D82531MOV AX,100OUT DX,ALMOV AL,AHOUT DX,ALMOV DX,C8279MOV AL,00HOUT DX,ALMOV AL,34HOUT DX,ALMOV AL,0D2HOUT DX,ALMOV STAT,0MOV DX,C82591MOV AL,0FEHOUT DX,ALWAIT1: MOV DX,C8279 IN AL,DXMOV AH,ALAND AL,80HJNE WAIT1MOV AL,AHAND AL,0FHCMP AL,00HJE WAIT1MOV AL,40HOUT DX,ALCHK: MOV DX,D8279IN AL,DXCMP AL,33HJNE BBBMOV DX,C82591MOV AL,0FFHOUT DX,ALMOV AL,STATINC ALMOV STAT,ALCMP AL,1JNZ AA1MOV SI,OFFSET DISPBUFMOV CX,4MOV AL,00BB0: MOV [SI],ALINC SILOOP BB0CALL DISPJMP CHKAA1: CMP AL,2JNZ AA2MOV SI,OFFSET DISPBUFMOV AL,00MOV [SI],ALINC SIMOV [SI],ALADD SI,2MOV [SI],ALINC SIMOV [SI],ALCALL DISPJMP CHKAA2: CMP AL,3JNZ AA3MOV SI,OFFSET DISPBUF+2MOV CX,4MOV AL,00BB1: MOV [SI],ALINC SILOOP BB1CALL DISPJMP CHKAA3: MOV STAT,00MOV AL,0FEHMOV DX,C82591OUT DX,ALCALL FULLSFMCALL DISPJMP CHK BBB: CMP AL,3BHJE BBB0JMP CCCBB0: MOV AL,STATCMP AL,1JNZ BBB1MOV AL,HOURADD AL,1DAAMOV HOUR,ALCALL FULLSH1CALL DISPJMP BBBBBB1: MOV AL,STATCMP AL,2JNZ BBB3MOV AL,MINUTEADD AL,1DAAMOV MINUTE,ALCALL FULLFENCALL DISPJMP BBBBBB3: MOV AL,STAT CMP AL,3JZ BBB4JMP DDDBBB4: MOV AL,SECOND ADD AL,1DAAMOV SECOND,AL CALL FULLMIAO CALL DISPJMP BBBCCC: CMP AL,3AHJE CC0JMP DDDCC0: MOV AL,STATCMP AL,1JNZ CCC1MOV AL,HOURSUB AL,1DASMOV AL,HOURSUB AL,1ADD AL,1DAAMOV SECOND,AL CMP AL,60HJNZ FANHUIMOV SECOND,0 MOV AL,MINUTE ADD AL,1DAAMOV MINUTE,AL CMP AL,60HJNZ FANHUIMOV MINUTE,0 MOV AL,HOUR ADD AL,1DAAMOV HOUR,ALCMP AL,24H JNZ FANHUI MOV HOUR,0 CALL FULLSFM CALL DISPPOP SIPOP DIPOP BXPOP AXIRETFULL SFM PROC NEAR LEA DI,DISBUF LEA BX,LEDLEA SI,SECOND MOV CX,3AA4:MOV AL,[SI] AND AL,0FHXLATMOV [DI],AL INC DIMOV AL,[SI] PUSH CXMOV CL,4SHR AL,CLAND AL,0FH XLATMOV [DI],ALINC DIPOP CXINC SILOOP AA4RETFULL SFM ENDPFULL SHI PROC NEAR LEA SI,DISBUF MOV AL,0MOV CX,4CCC0: MOV [SI],ALINC SILOOP CCC0LEA BX,LEDMOV AL,HOURAND AL,0FHXLATMOV [SI],ALXLATMOV [SI],ALMOV AL,HOURMOV CL,4SHR AL,CLAND AL,0FHXLATINC SIMOV [SI],AL RETFULL SHI ENDPFULL FEN PROC NEAR LEA SI,DISBUF MOV AL,0MOV [SI],ALINC SIMOV [SI],ALINC SILEA BX,LEDMOV AL,MINUTE AND AL,0FHXLATMOV [SI],AL MOV AL,MINUTE MOV CL,4SHR AL,CLAND AL,0FHXLATINC SIMOV [SI],AL RETFULL FEN ENDPFULL MIAO PROC NEAR LEA SI,DISBUF LEA BX,LEDMOV AL,SECOND AND AL,0FHXLATMOV [SI],AL MOV AL,SECOND MOV CL,4SHR AL,CLAND AL,0FHXLATINC SIMOV [SI],ALMOV AL,0INC SIMOV [SI],ALINC SIMOV [SI],ALINC SIMOV [SI],ALINC SIMOV [SI],ALRETFULL MIAO ENDPDISP PROC NEARMOV CX,8MOV DX,D8279 LEA SI,DISBUF DISIMOV AL,[SI]OUT DX,ALINC SILOOP DISI RET CODE ENDSEND START。