微机原理课程设计电子时钟.docx
《微机原理课程设计电子时钟.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计电子时钟.docx(24页珍藏版)》请在冰点文库上搜索。
微机原理课程设计电子时钟
电子时钟课程设计
一:
设计背景
电子数字钟的应用十分广泛,通过计时精度很高的石英晶振(也可釆用卫星传递的时钟标准信号),采用相应进制的计数器,转化为二进制数,经过译码和显示电路准确地将时间“时I分…秒”用数字的方式显示出来。
与传统的机械钟相比,它具有走时准确,显示直观,无机械传动,无需人的经常调整等优点。
它广泛用于电子表、车站、码头、广场等公共场所的大型远距离时间显示电子钟。
二:
数字钟电路设计思路
1.选用8253计数器2进行Is的定时,其输出0UT1与8259的IRQO相连,当定时到Is时产生一个中断服务程序进行时、分、秒的计数,并送入相应的存储单元;8255的A口接七段数码管的位选信号,B口接数码管的段选信号。
时、分、秒的数值通过对8255的编程可送到七段数码管上显示。
2•此程序主要由四部分组成:
第一部分为最主要的部分定义显示界面;
第二部分为利用延时程序,并将调用的二进制表示的时间数转换成ASCII码,并将时间数存入内存区;
第三部分将存在系统内存区的时间数用七段数码管显示出来;第四部分利用循环程序分别对秒个位、秒十位、分个位、分十位与相应的规定值进行比较,结合延时程序来实现电子钟数字的跳变,从而形成走时准确的电子钟。
该程序实现了准确显示秒和分,读数准确,走时精准。
此电子钟能准确的从0时0分0秒走时到23时59分59秒,然后能自动回复到0时0分0秒循环走时。
3•基本工作原理:
系统设计的电子时钟主要山显示模块、时钟控制模块和时钟运算模块三大部分组成。
以8086微处理器作CPU,用8253做定时器产生时钟频率提供一个频率为10kHz的时钟信号,要求每隔10ms完成一次扫描键盘的工作。
在写入控制字与计数初值后,每到10ms定时器就启动工作,即当计数器减到1时,输出端OUTO输出一个CLK周期的低电平,向CPU申请中断,当达到100次时,则输出端0UT1输出Is,向CPU申请中断,由8255控制一个数码管显示,当计数到60s时,则输出端0UT2向CPU申请中断,山另一数码管显示lmin,同理山数码管显示处理,使数码管的显示发生变化。
电子时钟的显示格式HH:
MM:
SS由左到右分别为时.分、秒,并依次对秒、分、小时寄存器的内容加一,六个数码管动态显示时、分、秒的当前值。
最大记时23:
59:
59超过这个时间时分秒位都清零从00:
00:
00重新开始。
8253芯片介绍8253是NMOS工艺制成的可编程计数器/定时器,有儿种芯片型号,外形引脚及功能都是兼容的,只是工作的最高讣数速率有所差异,例如8253(),8253-5(5MHz)8253内部有三个计数器,
D;―
TV7V
Vcc
a—
—
23
——WR
D<—
3
22
——RD
5—
4
21
——cs
D;—
5
20
—A,
D?
—
682邛
19
—Ac
D.—
7
18
—CLK.
8
17
—OUT:
CLIC)
9
16
——GATE:
OUT,)
10
15
CLKt
gate,—
II
14
——OUT,
GND
12
13
—GATE,
8253芯片
8255芯片介绍
8255特性:
1一个并行输入/输出的LSI芯片,多功能的I/O器件,可作为CPU总线与外圉的接口.
2具有24个可编程设置的I/O口,
PX1即使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/03种模式;B组只能设蠡置为基本I/O或闪控式I/O两种模誥
8255
10
17
15
19
20
8255芯片
♦0
39
38
37
36
35
31
30
Pk7
PA0.
VL
DO
DI
D?
D;
DIer
D7
W
Pk7
Phi
PBf
PBt
PB;
分别成为计数器0、计数器1和计数器2,他们的机构完全相同。
每个计数器的输入和输出都决定于设置在控制寄存器中的控制字,互相之间工作完全独立。
每个计数器通过三个引脚和外部联系,一个为时钟输入端CLK,一个为门控信号输入端GATE,另一个为输出端OUT。
每个计数器内部有一个8位的控制寄存器,还有一个16位的计数初值寄存器CR、一个计数执行部件CE和一个输出锁存器0L。
式,而这些操作模式完全山控制寄存器的控制字决定.
8255引脚功能:
RESET:
复位输入线,CS:
芯片选择信号线,RD:
读信号线,WR:
写入信号,DO〜D7:
三态双向数据总线,PAO〜PA7:
端口A输入输出线,PBO〜PB7:
端口B输入输岀线,PCO〜PC7:
端口C输入输出线,AO,A1:
地址选择线
三:
程序流程图
小时计
返回秒,分,
介时的计数也
三、电子
u
Lr
22
RESETMp亠5一REAP.、5r$fl—>S6P1051
g§<^5~
rfn£
zx-
il<5rsswCE瓷■OTSr
S8
U6
A£
5
*0一£总
000
E73
U7
p・-r273
N
x
>»
A,
*
▲
•
-*
I
>
J
■
-4
-An
Q
L・
-
-•
-
.
••
1
.
i
••
>
g
14*so.
is
14
Oz
ebcdeoae1Br
66606006
UII(CLXI)
OBDWO
OBI•0ME1oun
3C4S^MC6CC3一隔冬
四:
程序代码
D8279
equ
200H
C8279
equ
202H
C8253
equ
20bH
D82530
equ
208H
D82531
equ
209H
C82590
equ
210H
C82591equ2UH
db00db00db008
db00
datasegment
HOUR
MINUTE
SECOND
STAT
LED
db31H,06H,5bH,4fH,66H,6dH,7dH,27H,7fH,6fH,OOH,OOHDISBUFdb8dup(0)
dataends
stacksegmentstack
dw100dup()
stackends
codesegment
assumecs:
code,ds:
data
TART:
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,INTO
MOVAX,CS
MOVES:
[4*8+2],AX
MOVDX,C8253
MOVAL,36H
OUTDX,AL
MOVDX,D82530
MOVAX,1OOOO
OUTDX,ALMOVAL,AH
OUTDX,AL
MOVDX,C8253
MOVAL,36H
OUTDX,AL
MOVDX,D82531
MOVAX,100
OUTDX,AL
MOVAL,AH
OUTDX,AL
MOVDX,C8279
MOVAL,OOH
OUTDX,AL
MOVAL,34H
OUTDX,AL
MOVAL,0D2H
OUTDX,AL
MOVSTAT,0
MOVDX,C82591
MOVAL,OFEH
OUTDX,AL
WAIT1:
MOVDX,C8279
INAL,DXMOVAH,AL
ANDAL,80H
JNEWAIT1
MOVAL,AH
ANDAL,OFH
CMPAL,OOH
JEWAIT1
MOVAL,40H
OUTDX,AL
CHK:
MOVDX,D8279
INAL,DX
CMPAL,33H
JNEBBB
MOVDX,C82591
MOVAL,OFFH
OUTDX,AL
MOVAL,STAT
INCAL
MOVSTAT,AL
CMPAL,1
JNZAA1
MOVSI,OFFSETDISPBUF
MOVCX,4
MOVAL,00
BBO:
MOV[SI],AL
INCSI
LOOPBBO
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
INCSILOOPBB1CALLDISP
JMPCHK
AA3:
MOVSTAT,00MOVAL,OFEHMOVDX,C82591OUTDX,ALCALLFULLSFMCALLDISPJMPCHK
BBB:
CMPAL,3BHJEBBBOJMPCCC
BBO:
MOVAL,STAT
CMPAL,1
JNZBBB1MOVAL,HOURADDAL,1
DAA
MOVHOUR,ALCALLFULLSH1CALLDISP
JMPBBB
BBB1:
MOVAL,STATCMPAL,2JNZBBB3
MOVAL,MINUTE
ADDAL,1
DAA
MOVMINUTE,ALCALLFULLFENCALLDISP
JMPBBB
BBB3:
MOVAL,STAT
CMPAL,3
JZBBB4
JMP
DDD
MOV
AL,SECOND
ADD
AL,1
DAA
MOV
SECOND,AL
CALLFULLMIAO
CALLDISP
JMP
BBB
CMP
AL,3AH
JE
CCO
JMP
DDD
MOV
AL,STAT
CMP
AL,1
JNZ
CCC1
MOV
AL,HOUR
SUB
AL,1
DAS
MOV
AL,HOUR
SUB
AL,1
,,1
DAA
MOV
SECOND,AL
CMP
AL,60H
JNZ
FANHUI
MOV
SECOND,0
MOV
AL,MINUTE
ADD
AL,1
DAA
MOV
MINUTE,AL
CMP
AL,60H
JNZ
FANHUI
MOV
MINUTE,0
MOV
AL,HOUR
ADD
AL,1
DAA
MOV
HOUR,AL
BBB4:
ccc:
cco:
ADD
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,OFH
XLAT
MOV[DI],AL
INCDI
MOVAL,[SI]
PUSHCX
MOVCL,4
SHRAL,CL
ANDAL,OFHXLAT
MOV[DI],AL
INCDI
POPCX
INCSI
LOOPAA4
RET
FULLSFMENDP
FULLSHIPROCNEAR
LEASI,DISBUF
MOVAL,0
ccco:
FULL
FULL
SHR
MOVCX,4
MOV[SI],AL
INCSI
LOOPCCCO
LEABX,LED
MOVAL,HOUR
ANDAL,OFHXLAT
MOV[SI],AL
XLAT
MOV[SI],AL
MOVAL,HOUR
MOVCL,4
SHRAL,CL
ANDAL,OFH
XLAT
INCSI
MOV[SI],AL
RET
SHIENDP
FENPROCNEAR
LEASI,DISBUF
MOVAL,0
MOV[SI],AL
INCSI
MOV[SI],AL
INCSI
LEABX,LED
MOVAL,MINUTE
ANDAL,OFHXLAT
MOV[SI],AL
MOVAL,MINUTE
MOVCL,4
AL,CL
ANDAL,OFH
XLAT
INCSI
MOV[SI],AL
RET
FULLFENENDP
FULLMIAOPROCNEAR
LEASI,DISBUF
LEABX,LED
MOVAL,SECOND
ANDAL,OFH
XLAT
MOV[SI],AL
MOVAL,SECOND
MOVCL,4
SHRAL,CL
ANDAL,OFH
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
CODE
ENDS
ENDSTART