电子时钟CODE ENDSEND START.docx
- 文档编号:12577707
- 上传时间:2023-04-20
- 格式:DOCX
- 页数:23
- 大小:522.95KB
电子时钟CODE ENDSEND START.docx
《电子时钟CODE ENDSEND START.docx》由会员分享,可在线阅读,更多相关《电子时钟CODE ENDSEND START.docx(23页珍藏版)》请在冰豆网上搜索。
电子时钟CODEENDSENDSTART
电子时钟课程设计
一、设计要求
设计一个电子时钟,能够在LED上显示时,分,秒.LED上显示的格式为XX(时)-XX(分)-XX(秒),并且每秒钟更新一次.利用8253的计数通道输出一定频率的定时信号,将其作为中断请求信号送给8259的.由8259的中断服务程序来记录时间.到达整秒时,调整时,分,秒的显示。
二、设计方案与原理
1、设计方案
本系统设计的电子时钟以8088微处理器作为CPU,用8253做定时计数器产生时钟频率,8255做可编程并行接口显示时钟和键盘电路,8259做中断控制器产生中断。
在此系统中,8253的功能是定时,接入8253的CLK信号为周期性时钟信号。
8253采用计数器0,工作于方式2,使8253的OUT0端输出周期性的负脉冲信号。
即每隔20ms,8253的OUT0端就会输出一个负脉冲的信号,此信号接8259的IR2,当中断到50次数后,CPU即处理,使液晶显示器上的时间发生变化。
其中8259只需初始化ICW1,其功能是向8259表明IRx输入是电瓶触发方式还是上升沿触发方式,是单片8259还是多片8259。
8259接收到信号后,产生中断信号送CPU处理。
2、设计原理
利用实验台上提供的定时器8253和扩展板上提供的8259以及键盘和数码显示电路,设计一个电子时钟,由8253中断定时,小键盘控制电子时钟的启停及初始值的预置。
电子时钟的显示格式HH:
MM:
SS由左到右分别为时、分、秒,最大记时59:
59:
59超过这个时间时分秒位都清零从00:
00:
00重新开始。
基本工作原理:
每百分之一秒对百分之一秒寄存器的内容加一,并依次对秒、分、小时寄存器的内容加一,六个数码管动态显示时、分、秒的当前值。
1、内容
利用实验台上提供的定时器8253和扩展板上提供的8259以及键盘和数码显示电路,设计一个电子时钟,由8253中断定时,小键盘控制电子时钟的启停及初始值的预置。
电子时钟的显示格式HH:
MM:
SS由左到右分别为时、分、秒,最大记时59:
59:
59超过这个时间时分秒位都清零从00:
00:
00重新开始。
2、要求
本实验要求设计一个定时显示装置,用六个数码管显示时间,用小键盘控制计时,设置和显示时间。
系统一运行就从00点00分00秒开始计时,并在数码管上显示时、分、秒当前值,而且,可以用键盘设置当前时间。
基本工作原理:
每百分之一秒对百分之一秒寄存器的内容加一,并依次对秒、分、小时寄存器的内容加一;六个数码管动态显示时、分、秒的当前值。
C键:
置初值,显示00:
00:
00
G键:
显示动态变化(启动表);
D键:
显示静态不变(表停止);
E键:
终止程序,返回DOS;
P键:
设置时:
分:
秒的值
3、设计环境
PC机一台、windowsXP系统、实验箱,导线若干。
4、设计所用设备
8253定时器:
用于产生秒脉冲,其输出信号可作为中断请示信号送IRQ2。
8255并口:
用做接口芯片,和小键盘相连。
8259中断控制器:
用于产生中断。
LED:
六个LED用于显示时:
分:
秒值。
小键盘:
用于控制设置。
三、系统资源分配表
1、8259A芯片的内部结构及引脚
中断控制器8259A是Intel公司专为控制优先级中断而设计开发的芯片。
它将中断源优先排队、辨别中断源以及提供中断矢量的电路集中于一片中。
因此无需附加任何电路,只需对8259A编程,就可以管理8级中断,并选择优先模式和中断请求方式,即中断结构可以由用户编程来设定。
在MD微机系统中,8259芯片工作于单片方式。
8259引脚图如图3.3,各引脚功能如下。
D7~D0——八条双向数据线;
WR(低电平有效)——写输入信号;
RD(低电平有效)——读输入信号;
CS(低电平有效)——片选输入信号;
A0——地址信号;
INT——中断请求信号;
INTA(低电平有效)——中断响应信号;
CAS0~CAS2——级联信号,形成一条专用8259A总线,以便多片8259A的级联;
SP/EN——从编程/允许级联。
在缓冲方式中,可用做输出信号以控制总线缓冲器的接收和发送。
在非缓冲方式中,作为输入信号用于表示主片还是从片;
IR0~IR7——外部中断请求输入线。
要求输入的中断请求信号是由低电平到高电平的上升沿(并保持高电平到CPU响应时为止)或者是高电平。
8259中断矢量地址与中断信号之间的关系如表3.1所示:
图3.18259A引脚图
表3.18259A中断矢量表
中断序号
0
1
2
3
4
5
6
7
功能调用
08H
09H
0AH
0BH
0CH
0DH
0EH
0FH
矢量地址
20H
~
23H
24H
~
27H
28H
~
2BH
2CH
~
2FH
30H
~
33H
34H
~
37H
38H
~
3BH
3CH
~
3FH
说明
时钟
键盘
可用
可用
串行口
可用
可用
可用
2、8255芯片的内部结构及引脚
8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种工作方式下工作:
方式0—基本输入/输出方式
方式1—选通输入/输出方式
方式2—双向选通输入/输出方式
8255引脚图如图3.2示,各引脚功能如下。
D7~D0——与CPU侧连接的八条双向数据线;
WR(低电平有效)——写输入信号;
RD(低电平有效)——读输入信号;
CS(低电平有效)——片选输入信号;
A0、A1——片内寄存器选择输入信号;
PA7~PA0——A口外设双向数据线;
PB7~PB0——B口外设双向数据线;
PC7~PC0——C口外设双向数据线;图3.28255引脚图
RESET——复位输入信号
表3.28255端口地址表
8255端口地址
信号线
寄存器
编址
IOY3
A口
60H
B口
61H
C口
62H
控制寄存器
63H
3、8253芯片的内部结构及引脚
8253可编程定时/计数器是Intel公司生产的通用外围芯片之一,有3个独立的十六位计数器,技术频率范围为0~2MHZ,它所有的技术方式和操作方式都通过编程控制。
8253的功能用途是:
(1)延时中断
(2)可编程频率发生器
(3)事件计数器
(4)二进倍频器
(5)实时时钟
(6)数字单稳
(7)复杂的电机控制器
8253有六种工作方式:
(1)方式0:
计数结束中断
(2)方式1:
可编程频率发生器
(3)方式2:
频率发生器
(4)方式3:
方波频率发生器
(5)方式4:
软件触发的选通信号
(6)方式5:
硬件触发的选通信号
8253引脚图如图3.3示,各引脚功能如下。
D7~D0——八条双向数据线;
WR(低电平有效)——写输入信号;
RD(低电平有效)——读输入信号;
CS(低电平有效)——片选输入信号;
A0、A1——片内寄存器地址输入信号;
CLK——计数输入,用于输入定时基准脉冲或计数脉冲;
OUT——输出信号,以相应的电平指示计数的完成,或输出脉冲波形;
GATE——选通输入(门控输入),用于启动或禁止计数器的操作,以使计数器和计测对象同步。
ttt图3.28255引脚图
图3.38253引脚图
8253端口地址
表3.38253端口地址表
信号线
寄存器
编址
IOY2
0#计数器
40H
1#计数器
41H
2#计数器
42H
控制寄存器
43H
四、具体模块设计
1、概述
本系统设计的电子钟以8088微处理器作为CPU,用8253做定时计数器产生时钟频率,8255做可编程并行接口显示时钟和键盘电路,8259做中断控制器产生中断。
在此系统中,8253的功能是定时,接入8253的CLK信号为周期性时钟信号。
8253采用计数器0,工作于方式2,使8253的OUT0端输出周期性的负脉冲信号。
即每隔20ms,8253的OUT0端就会输出一个负脉冲的信号,此信号接8259的IR2,当中断到50次数后,CPU即处理,使液晶显示器上的时间发生变化。
程序由以下模块组成:
系统共有5个功能模块,分别为,主控模块,显示模块,定时模块,中断模块,小键盘模块。
系统框图如下:
图一系统框图
2、主程序模块
主控模块是系的核心模块,对8253、8255A进行初始化,设置中断向量,扫描键盘根据按键值作相应的处理。
主要由软件实现。
它的主要功能是调用其它模块对系统工作进行协调,它的主要功能是读小键盘输入键值并执行要做的工作,如果键值为C则将显示初始值00:
00:
00置入显示缓冲,并调用显示模块显示。
如果键值为G则开中断,(中断程序为秒最低位加一)。
如果键值为D则关中断,停止动态显示。
如健值为P则连续六次调用小键盘模块,将键值依次存入显示缓冲。
并调用显示模块显示。
如果健值为E,则终止程序,返回DOS。
3、小键盘模块
小键盘模块送入主控模块的子功能模块。
由软件和硬件实现,硬件上由小键盘和8255互连,将小键值由8255送入主控模块。
软件上使用行扫描法获得键值并送回主控模块。
执行一个约10ms的延时程序后再扫描键盘,若F0=1表示真正有键按下,从而消除了抖动影响。
4、显示模块
显示模块是将显示缓冲区的数值送到LED显示的功能模块,显示缓冲区是由六个字节构成,分别保存小时的高位和低位,分钟的高位和低位,秒钟的高位和低位。
硬件上由六个LED构成,软件上由扫描显示的方法实现。
5、定时模块
定时模块是为8259提供中断请求信号的。
由一片8253实现,选用定时器0#,工作在方式3,由4时钟应该1秒走动一次,所以输出值应为1S,其输出信号可作为8259的中断请求信号。
6、中断处理模块
中断模块实现动态显示的,硬件为一片8259,由于中断请求信号为每秒一次,中断程序该为时间按秒增加,并显示,只要开中断,便可实现每秒显示时间增加一秒,从而达到动态显示的效果。
图二原理图
7、按图二接线原理图连接好试验箱上的芯片引脚,主要用到器件有8255,8253,LED,8259,小键盘。
8253的片选接地址208-20F,OUT1,OUT0接灯(测试用),GATE0,GATE1接+5V,CLK1接8259的IRQ2,CLK0接Q12(12分频)。
8255的片选接地址218-21F,实验箱已将其和小键盘相连。
五、程序流程图
键盘扫描程序流程图:
(KEY)
主程序流程图:
中断流程图
六、心得体会
通过本次课程设计,学以致用,进一步理解所学的相关芯片的原理、内部结构、使用方法等,学会相关芯片实际应用及编程,系统中采用8088微处理器完成了电子钟的小系统的独立设计。
同时并了解综合问题的程序设计掌握实时处理程序的编制和调试方法,掌握一般的设计步骤和流程,使我们以后搞设计时逻辑更加清晰。
附录一:
参考书目
1.钱晓捷主编:
《微机原理与接口技术》,第4版,机械工业出版社,2008年1月出版。
2.沈美明等编著:
《80X86汇编语言程序设计》,清华大学出版社,2001年9月出版。
3、李顺增,吴国东,赵河明等.微机原理及接口技术.北京:
机械工业出版社,2006年出版
4、杨立新.微型计算机原理和应用[M].北京:
科学技术文献出版社,1986年11月出版
附录二:
部分源代码
INTCSR_BYTE0EQU9C38H
INTCSR_BYTE1EQU9C39H
INTCSR_BYTE2EQU9C3AH
INTCSR_BYTE3EQU9C3BH
IMB4_BYTE3EQU9C1FH
MY8253_COUNT0EQU9C40H
MY8253_COUNT1EQU9C41H
MY8253_COUNT2EQU9C42H
MY8253_MODEEQU9C43H
MY8255_AEQU9C60H
MY8255_BEQU9C61H
MY8255_CEQU9C62H
MY8255_MODEEQU9C63H
IRQEQU01CCH
DATASEGMENT
CSBAKDW?
IPBAKDW?
MKBAKDB?
ADJUSTDB00H;调整位标志
FLASHDB00H;闪烁标志位
PAUSEDB0B;暂停标志位
KEYMARKDB0B;按键标志位
INKEYDB00H;按键
SECONDADB00H;秒个位
SECONDBDB00H;秒十位
MINUTEADB00H;分个位
MINUTEBDB00H;分十位
LEDDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
CLI
MOVAX,DATA
MOVDS,AX
MOVDX,INTCSR_BYTE0
MOVAL,00H
OUTDX,AL
MOVDX,INTCSR_BYTE1
MOVAL,1FH
OUTDX,AL
MOVDX,INTCSR_BYTE2
MOVAL,3FH
OUTDX,AL
MOVDX,INTCSR_BYTE3
MOVAL,00H
OUTDX,AL
MOVAX,0000H
MOVES,AX
MOVDI,01CCH
MOVAX,ES:
[DI]
MOVIPBAK,AX
MOVAX,OFFSETMYINT
CLD
STOSW
MOVAX,ES:
[DI]
MOVCSBAK,AX
MOVAX,SEGMYINT
STOSW
INAL,0A1H
MOVMKBAK,AL
ANDAL,0F7H
OUT0A1H,AL
STI
MOVDX,MY8253_MODE
MOVAL,17H;00010101
OUTDX,AL
MOVDX,MY8253_COUNT0
MOVAL,0
OUTDX,AL
MOVDX,MY8255_MODE
MOVAL,81H;10000001:
OUTDX,AL
A1:
NOP
MOVCX,32H
A2:
MOVDX,MY8255_B
MOVAX,DATA
MOVDS,AX
MOVBX,OFFSETLED
MOVAL,SECONDA
XLATLED
CMPADJUST,01H
JNEDIS_SECONDA
CMPFLASH,0FFH
JNEDIS_SECONDA
ANDAL,00H
DIS_SECONDA:
OUTDX,AL
MOVDX,MY8255_A
MOVAL,0111B
OUTDX,AL
CALLKEYCTR
CALLDELAY
MOVDX,MY8255_B
MOVAX,DATA
MOVDS,AX
MOVBX,OFFSETLED
MOVAL,SECONDB
XLATLED
CMPADJUST,02H
CMPFLASH,0FFH
JNEDIS_SECONDB
ANDAL,00H
DIS_SECONDB:
OUTDX,AL
MOVDX,MY8255_A
MOVAL,1011B
OUTDX,AL
CALLKEYCTR
CALLDELAY
MOVDX,MY8255_B
MOVAX,DATA
MOVDS,AX
MOVBX,OFFSETLED
MOVAL,MINUTEA
XLATLED
CMPADJUST,03H
JNEDIS_MINUTEA
CMPFLASH,0FFH
JNEDIS_MINUTEA
ANDAL,00H
DIS_MINUTEA:
ADDAL,80H
OUTDX,AL
MOVDX,MY8255_A
MOVAL,1101B
OUTDX,AL
CALLKEYCTR
CALLDELAY
MOVDX,MY8255_B
MOVAX,DATA
MOVDS,AX
MOVBX,OFFSETLED
MOVAL,MINUTEB
XLATLED
CMPADJUST,04H
JNEDIS_MINUTEB
CMPFLASH,0FFH
JNEDIS_MINUTEB
ANDAL,00H
DIS_MINUTEB:
OUTDX,AL
MOVDX,MY8255_A
MOVAL,1110B
OUTDX,AL
CALLKEYCTR
CALLDELAY
LOOPSK1
JMPSK2
SK1:
JMPA2
SK2:
JMPA1
MYINT:
PUSHDS
PUSHAX
PUSHDX
MOVDX,IMB4_BYTE3
INAL,DX
MOVDX,INTCSR_BYTE2
MOVAL,3FH
OUTDX,AL
OUT0A0H,AL
MOVAL,62H
OUT20H,AL
MOVAX,DATA
MOVDS,AX
NOTFLASH
MOVKEYMARK,0B
CMPPAUSE,0B
JNEL1
INCSECONDA
CMPSECONDA,0AH
JCL1
MOVSECONDA,00H
INCSECONDB
CMPSECONDB,06H
JCL1
MOVSECONDB,00H
INCMINUTEA
CMPMINUTEA,0AH
JCL1
INCMINUTEB
MOVMINUTEA,00H
CMPMINUTEB,06H
JCL1
MOVMINUTEB,00H
L1:
POPDS
POPAX
POPDX
IRET
KEYCTRPROCNEAR
MOVINKEY,AL
MOVDX,MY8255_C
INAL,DX
ANDAL,03H;高六位清零
CMPAL,10B;是否按下Y1行
JNEINY2
ADDINKEY,00H
JMPJUDGKEY
INY2:
CMPAL,01B;是否按下Y2行
JNESKIP
ADDINKEY,10000B
JUDGKEY:
CMPINKEY,01110B;是否按下1键
JNEKEY2
ANDSECONDA,00H;时间位清零
ANDSECONDB,00H
ANDMINUTEA,00H
ANDMINUTEB,00H
SKIP:
JMPBACK
KEY2:
CMPINKEY,01101B;是否按下2键
JNEKEY3
ANDPAUSE,0B;启动计时
JMPBACK
KEY3:
CMPINKEY,01011B;是否按下3键
JNEKEY4
MOVPAUSE,1B;暂停计时
JMPBACK
KEY4:
CMPINKEY,00111B;是否按下4键
JNEKEY5
MOVDX,MY8255_A
MOVAL,0FFH;熄灭数码管,程序退出
OUTDX,AL
CALLDELAY
MOVAX,4C00H
INT21H
JMPBACK
KEY5:
CMPINKEY,11110B;是否按下5键
JNEKEY6
CMPKEYMARK,0B
JNEKEY6
MOVKEYMARK,1B
MOVPAUSE,1B
CMPADJUST,04H;是否已调整完分的十位
JETL
INCADJUST
JMPBACK
TL:
ANDADJUST,00H
JMPBACK
KEY6:
CMPINKEY,11101B;6键
JNEBACK
CMPKEYMARK,0B
JNEBACK
MOVKEYMARK,1B
CMPADJUST,01H;是否调整秒的个位
JNEAD1
INCSECONDA;秒的个位加1
CALLOUTCLEAR;判断溢出
JMPBACK
AD1:
CMPADJUST,02H;是否调整秒的十位
JNEAD2
INCSECONDB
CALLOUTCLEAR
JMPBACK
AD2:
CMPADJUST,03H;是否调整分的个位
JNEAD3
INCMINUTEA
CALLOUTCLEAR
JMPBACK
AD3:
CMPADJUST,04H;是否调整分的十位
JNEBACK
INCMINUTEB
CALLOUTCLEAR
BACK:
RET
KEYCTRENDP
OUTCLEARPROCNEAR;溢出清零程序
CMPSECONDA,0AH
JCQ1
ANDSECONDA,00H
Q1:
CMPSECONDB,06H
JCQ2
ANDSECONDB,00H
Q2:
CMPMINUTEA,0AH
JCQ3
ANDMINUTEA,00H
Q3:
CMPMINUTEB,06H
JCQ4
ANDMINUTEB,00H
Q4:
RET
OUTCLEARENDP
DELAY:
PUSHCX;延迟程序
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子时钟 CODE ENDS END START 电子 时钟