微机原理课程设计电子时钟课程设计.docx
《微机原理课程设计电子时钟课程设计.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计电子时钟课程设计.docx(18页珍藏版)》请在冰豆网上搜索。
微机原理课程设计电子时钟课程设计
电子时钟课程设计
一:
设计背景
电子数字钟的应用十分广泛,通过计时精度很高的石英晶振(也可采用卫星传递的时钟标准信号),采用相应进制的计数器,转化为二进制数,经过译码和显示电路准确地将时间“时”“分”“秒”用数字的方式显示出来。
与传统的机械钟相比,它具有走时准确,显示直观,无机械传动,无需人的经常调整等优点。
它广泛用于电子表、车站、码头、广场等公共场所的大型远距离时间显示电子钟。
二:
数字钟电路设计思路
利用8253定时器和中断控制器8259实现中断计时时,可用8253的两个通道(通道0和通道1)串联产生1S计时脉冲。
每个1S计时脉冲产生一次中断请求,在中断服务程序完成中断计时并刷新时间显示。
利用8279键盘显示器实现当前时间的显示和时间的校准。
在主程序完成各可编程接口芯片(8253、8259、8279)的初始化、键盘扫描及时间校准。
在校表状态关中断,校表结束时开中断。
秒计数器
六十进制
分计数器
六十进制
时计数器
二十四进制
较时
电路
秒脉冲
发生器
报时
电路
三:
三:
程序流程图
三、电子表原理图:
四:
程序代码
D8279equ200H
C8279equ202H
C8253equ20bH
D82530equ208H
D82531equ209H
C82590equ210H
C82591equ211H
datasegment
HOURdb00
MINUTEdb00
SECONDdb008
STATdb00
LED
db31H,06H,5bH,4fH,66H,6dH,7dH,27H,7fH,6fH,00H,00H
DISBUFdb8dup(0)
dataends
stacksegmentstack
dw100dup(?
)
stackends
codesegment
assumecs:
code,ds:
data
START:
MOVAX,DATA
MOVDS,AX
CLI
MOVAL,13H
MOVDX,C82590
OUTDX,AL
MOVAL,8
MOVDX,C82591
OUTDX,AL
MOVAL,1
OUTDX,AL
MOVAX,0
MOVES,AX
LEAAX,INT0
MOVAX,CS
MOVES:
[4*8+2],AX
MOVDX,C8253
MOVAL,36H
OUTDX,AL
MOVDX,D82530
MOVAX,10000
OUTDX,AL
MOVAL,AH
OUTDX,AL
MOVDX,C8253
MOVAL,36H
OUTDX,AL
MOVDX,D82531
MOVAX,100
OUTDX,AL
MOVAL,AH
OUTDX,AL
MOVDX,C8279
MOVAL,00H
OUTDX,AL
MOVAL,34H
OUTDX,AL
MOVAL,0D2H
OUTDX,AL
MOVSTAT,0
MOVDX,C82591
MOVAL,0FEH
OUTDX,AL
WAIT1:
MOVDX,C8279
INAL,DX
MOVAH,AL
ANDAL,80H
JNEWAIT1
MOVAL,AH
ANDAL,0FH
CMPAL,00H
JEWAIT1
MOVAL,40H
OUTDX,AL
CHK:
MOVDX,D8279
INAL,DX
CMPAL,33H
JNEBBB
MOVDX,C82591
MOVAL,0FFH
OUTDX,AL
MOVAL,STAT
INCAL
MOVSTAT,AL
CMPAL,1
JNZAA1
MOVSI,OFFSETDISPBUF
MOVCX,4
MOVAL,00
BB0:
MOV[SI],AL
INCSI
LOOPBB0
CALLDISP
JMPCHK
AA1:
CMPAL,2
JNZAA2
MOVSI,OFFSETDISPBUF
MOVAL,00
MOV[SI],AL
INCSI
MOV[SI],AL
ADDSI,2
MOV[SI],AL
INCSI
MOV[SI],AL
CALLDISP
JMPCHK
AA2:
CMPAL,3
JNZAA3
MOVSI,OFFSETDISPBUF+2
MOVCX,4
MOVAL,00
BB1:
MOV[SI],AL
INCSI
LOOPBB1
CALLDISP
JMPCHK
AA3:
MOVSTAT,00
MOVAL,0FEH
MOVDX,C82591
OUTDX,AL
CALLFULLSFM
CALLDISP
JMPCHK
BBB:
CMPAL,3BH
JEBBB0
JMPCCC
BB0:
MOVAL,STAT
CMPAL,1
JNZBBB1
MOVAL,HOUR
ADDAL,1
DAA
MOVHOUR,AL
CALLFULLSH1
CALLDISP
JMPBBB
BBB1:
MOVAL,STAT
CMPAL,2
JNZBBB3
MOVAL,MINUTE
ADDAL,1
DAA
MOVMINUTE,AL
CALLFULLFEN
CALLDISP
JMPBBB
BBB3:
MOVAL,STAT
CMPAL,3
JZBBB4
JMPDDD
BBB4:
MOVAL,SECOND
ADDAL,1
DAA
MOVSECOND,AL
CALLFULLMIAO
CALLDISP
JMPBBB
CCC:
CMPAL,3AH
JECC0
JMPDDD
CC0:
MOVAL,STAT
CMPAL,1
JNZCCC1
MOVAL,HOUR
SUBAL,1
DAS
MOVAL,HOUR
SUBAL,1
ADDAL,1
DAA
MOVSECOND,AL
CMPAL,60H
JNZFANHUI
MOVSECOND,0
MOVAL,MINUTE
ADDAL,1
DAA
MOVMINUTE,AL
CMPAL,60H
JNZFANHUI
MOVMINUTE,0
MOVAL,HOUR
ADDAL,1
DAA
MOVHOUR,AL
CMPAL,24H
JNZFANHUI
MOVHOUR,0
CALLFULLSFM
CALLDISP
POPSI
POPDI
POPBX
POPAX
IRET
FULLSFMPROCNEAR
LEADI,DISBUF
LEABX,LED
LEASI,SECOND
MOVCX,3
AA4:
MOVAL,[SI]
ANDAL,0FH
XLAT
MOV[DI],AL
INCDI
MOVAL,[SI]
PUSHCX
MOVCL,4
SHRAL,CL
ANDAL,0FH
XLAT
MOV[DI],AL
INCDI
POPCX
INCSI
LOOPAA4
RET
FULLSFMENDP
FULLSHIPROCNEAR
LEASI,DISBUF
MOVAL,0
MOVCX,4
CCC0:
MOV[SI],AL
INCSI
LOOPCCC0
LEABX,LED
MOVAL,HOUR
ANDAL,0FH
XLAT
MOV[SI],AL
XLAT
MOV[SI],AL
MOVAL,HOUR
MOVCL,4
SHRAL,CL
ANDAL,0FH
XLAT
INCSI
MOV[SI],AL
RET
FULLSHIENDP
FULLFENPROCNEAR
LEASI,DISBUF
MOVAL,0
MOV[SI],AL
INCSI
MOV[SI],AL
INCSI
LEABX,LED
MOVAL,MINUTE
ANDAL,0FH
XLAT
MOV[SI],AL
MOVAL,MINUTE
MOVCL,4
SHRAL,CL
ANDAL,0FH
XLAT
INCSI
MOV[SI],AL
RET
FULLFENENDP
FULLMIAOPROCNEAR
LEASI,DISBUF
LEABX,LED
MOVAL,SECOND
ANDAL,0FH
XLAT
MOV[SI],AL
MOVAL,SECOND
MOVCL,4
SHRAL,CL
ANDAL,0FH
XLAT
INCSI
MOV[SI],AL
MOVAL,0
INCSI
MOV[SI],AL
INCSI
MOV[SI],AL
INCSI
MOV[SI],AL
INCSI
MOV[SI],AL
RET
FULLMIAOENDP
DISPPROCNEAR
MOVCX,8
MOVDX,D8279
LEASI,DISBUF
DISI
MOVAL,[SI]
OUTDX,AL
INCSI
LOOPDISI
RET
CODEENDS
ENDSTART