微机原理+课程设计+数字钟.docx
- 文档编号:15907123
- 上传时间:2023-07-08
- 格式:DOCX
- 页数:30
- 大小:3.03MB
微机原理+课程设计+数字钟.docx
《微机原理+课程设计+数字钟.docx》由会员分享,可在线阅读,更多相关《微机原理+课程设计+数字钟.docx(30页珍藏版)》请在冰点文库上搜索。
微机原理+课程设计+数字钟
二、设计所用芯片。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
2
三、设计思想。
.............................2
4、定时模块........................9
附录三:
源代码. . . . . . . . . . . .17
一、设计要求
利用试验平台提供的硬件资源设计一个电子表。
该电子表以时、分、秒的形式实时显示当前时间,且具有校表功能,利用小键盘与标准时间校准。
掌握8255、8259、8253芯片使用方法和编程方法,通过本次课程设计,学以致用,进一步理解所学的相关芯片的原理、内部结构、使用方法等,学会相关芯片实际应用及编程,系统中采用8088微处理器完成了电子钟的小系统的独立设计。
同时并了解综合问题的程序设计掌握实时处理程序的编制和调试方法,掌握一般的设计步骤和流程,使我们以后搞设计时逻辑更加清晰。
二、设计所用芯片
8253定时器:
用于产生秒脉冲,其输出信号可作为中断请示信号送IRQ2。
8279接口芯片:
实现键盘输入和显示输出。
8259中断控制器:
用于产生中断。
LED:
六个LED用于显示时:
分:
秒值。
小键盘:
用于控制设置。
三、设计思想
1、设计思想
本系统设计的电子时钟以8088微处理器作为CPU,用8253做定时计数器产生时钟频率,8279做可编程并行接口显示时钟和键盘电路,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重新开始。
设计一个定时显示装置,用六个数码管显示时间,用小键盘控制计时,设置和显示时间。
系统一运行就从00点00分00秒开始计时,并在数码管上显示时、分、秒当前值,而且,可以用键盘设置当前时间。
基本工作原理:
每百分之一秒对百分之一秒寄存器的内容加一,并依次对秒、分、小时寄存器的内容加一;六个数码管动态显示时、分、秒的当前值。
C键:
置初值,显示00:
00:
00
G键:
显示动态变化(启动表);
D键:
显示静态不变(表停止);
E键:
终止程序,返回DOS;
P键:
设置时:
分:
秒的值
四、设计所用芯片结构
1、8259A芯片的内部结构及引脚
中断控制器8259A是Intel公司专为控制优先级中断而设计开发的芯片。
它将中断源优先排队、辨别中断源以及提供中断矢量的电路集中于一片中。
因此无需附加任何电路,只需对8259A编程,就可以管理8级中断,并选择优先模式和中断请求方式,即中断结构可以由用户编程来设定。
在MD微机系统中,8259芯片工作于单片方式。
8259A引脚图
8259引脚图如图3.3,各引脚功能如下。
D7~D0——八条双向数据线;
WR(低电平有效)——写输入信号;
RD(低电平有效)——读输入信号;
CS(低电平有效)——片选输入信号;
A0——地址信号;
INT——中断请求信号;
INTA(低电平有效)——中断响应信号;
CAS0~CAS2——级联信号,形成一条专用8259A总线,以便多片8259A的级联;
SP/EN——从编程/允许级联。
在缓冲方式中,可用做输出信号以控制总线缓冲器的接收和发送。
在非缓冲方式中,作为输入信号用于表示主片还是从片;
IR0~IR7——外部中断请求输入线。
要求输入的中断请求信号是由低电平到高电平的上升沿(并保持高电平到CPU响应时为止)或者是高电平。
8259中断矢量地址与中断信号之间的关系如表3.1所示:
8259A中断矢量表
中断序号
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、8279芯片的内部结构及引脚
Intel8279是一种通用的可编程序的键盘、显示接口器件,单片器件就能够完成键盘输入和显示控制两种功能。
键盘部分提供一种扫描的工作方式,可以和具有64个按键的矩阵键盘相连接,能对键盘不断扫描,自动消抖,自动识别按下的键并给出编码,能对双键或n键同时按下实行保护。
显示部分为发光二极管、荧光管及其它显示器提供了按扫描方式工作的显示接口,它为显示器提供多路复用信号,可以显示多达16位的字符或数字。
DB0~DB7:
双向数据总线,用来传送8279与CPU之间的数据和命令。
CLK:
时钟输入线,用以产生内部定时的时钟脉冲。
RESET:
复位输入线,8279复位后被置为字符显示左端输入,二键闭锁的触点回弹型式,程序时钟前置分频器被置为31,RESET信号为高电平有效。
CS:
片选输入线,低电平有效,单片机在CS端为低时可以对8279读/写操作。
A0:
缓冲器低位地址,当A0为高电平时,表示数据总线上为命令或状态, 当为低电平时,表示数据总线上为命令或状态,当为低电平时,表示数据总线上为数据。
RD:
读信号输入线,低电平有效,将缓冲器读出,数据送往外部总线。
WR:
写信号输入线,低电平有效,将缓立器读出,将数据从外部数据总线写入8279的缓冲器。
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——选通输入(门控输入),用于启动或禁止计数器的操作,以使计数器和计测对象同步。
8253端口地址表
2、8253端口地址
信号线
寄存器
编址
IOY2
0#计数器
40H
1#计数器
41H
2#计数器
42H
控制寄存器
43H
五、系统各个模块设计
1、系统总体设计
本系统设计的电子钟以8088微处理器作为CPU,用8253做定时计数器产生时钟频率,8279做可编程并行接口显示时钟和键盘电路,8259做中断控制器产生中断。
在此系统中,8253的功能是定时,接入8253的CLK信号为周期性时钟信号。
8253采用计数器0,工作于方式2,使8253的OUT0端输出周期性的负脉冲信号。
即每隔20ms,8253的OUT0端就会输出一个负脉冲的信号,此信号接8259的IR2,当中断到50次数后,CPU即处理,使液晶显示器上的时间发生变化。
程序由以下模块组成:
系统共有5个功能模块,分别为,主控模块,显示模块,定时模块,中断模块,小键盘模块。
系统总体框图如下:
系统总体框图
2、主控模块
主控模块是系的核心模块,对8253、8279进行初始化,设置中断向量,扫描键盘根据按键值作相应的处理。
主要由软件实现。
它的主要功能是调用其它模块对系统工作进行协调,它的主要功能是读小键盘输入键值并执行要做的工作,如果键值为C则将显示初始值00:
00:
00置入显示缓冲,并调用显示模块显示。
如果键值为G则开中断,(中断程序为秒最低位加一)。
如果键值为D则关中断,停止动态显示。
如健值为P则连续六次调用小键盘模块,将键值依次存入显示缓冲。
并调用显示模块显示。
如果健值为E,则终止程序,返回DOS。
3、CPU模块
8088最小工作模式,作为整个电子表的核心控制部分。
在8088最小模式中,硬件连接上有如下特点:
(1)MN/MX端接+5V,决定了8088工作在最小模式。
(2)有1片8284A,作为时钟发生器。
(3)有3片8282,用来作为地址锁存器。
8282是典型的锁存器芯片,因为它是8位的,所以需要3片8282作为锁存器。
(4)当系统中所连的存储器和外设系统较多时,需要增加数据总线的驱动能力,这时,要用两片8286作为总线收发器。
8088构成的CPU
4、定时模块
定时模块是为8259提供中断请求信号的。
由一片8253实现,选用定时器0#,工作在方式3,由于时钟应该1秒走动一次,所以输出值应为1S,其输出信号可作为8259的中断请求信号。
定时模块原理图
5、中断处理模块
中断模块实现动态显示的,硬件为一片8259,由于中断请求信号为每秒一次,中断程序该为时间按秒增加,并显示,只要开中断,便可实现每秒显示时间增加一秒,从而达到动态显示的效果。
中断模块原理图
6、显示模块和小键盘模块
显示模块是将显示缓冲区的数值送到LED显示的功能模块,显示缓冲区是由六个字节构成,分别保存小时的高位和低位,分钟的高位和低位,秒钟的高位和低位。
硬件上由六个LED构成,软件上由扫描显示的方法实现。
小键盘模块送入主控模块的子功能模块。
由软件和硬件实现,硬件上由小键盘和8279互连,将小键值由8279送入主控模块。
软件上使用行扫描法获得键值并送回主控模块。
本课题只考虑去抖动。
执行一个约10ms的延时程序后再扫描键盘,若F0=1表示真正有键按下,从而消除了抖动影响。
其中8279接口电路如下:
显示模块原理图
键盘部分原理图:
六、程序流程图
1、主程序流程图
2、定时中断服务程序流程图:
七、设计总结
通过本次课程设计,我对利用微机原理课程所学的知识设计电子表的基本过程的设计方法、步骤、思路、有一定的了解与认识。
它相当于实际工业设计的模拟。
在课程设计过程中,我先是收集、调查有关资料,然后进入草案阶段,其间与指导教师进行几次方案的讨论、修改,再讨论、再修改,最后定案,得出了总体方案设计。
设计方案确定后,又在老师指导下进行扩初详细设计,并分别设计了相应的模块;将这些模块组合起来,便形成了一个完整的电子表的设计。
经过这次成功的设计,我更加深刻的理解了微机原理的相关知识。
对一些常用芯片有了更深一步的认识,并且能够很好的使用它们。
应该说,这次课程设计达到了目的。
附录一:
参考书籍
1、戴梅萼,史嘉权编著.微型计算机技术及应用(第4版).北京:
清华大学出版社,2008
2、周明德编著.微型计算机系统原理及应用(第四版).北京:
清华大学出版社,2002
3、李顺增,吴国东,赵河明等.微机原理及接口技术.北京:
机械工业出版社,2006
4、杨立新.微型计算机原理和应用[M].北京:
科学技术文献出版社,1986.11
5、李大友.微型计算机原理[M].北京:
清华大学出版社,1998.7
6、眭碧霞.微型计算机原理与组成[M].人民邮电出版社,2003.8
附录二、总体原理图
附录三:
源代码
D8279equ200H
C8279equ202H
C8253equ20bH
D82530equ208H
D82531equ209H
C82590equ210H
C82591equ211H
datasegment
HOURdb00
MINUTEdb00
STATdb00
LEDdb3fH,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
;=========INIT8259=============
CLI
MOVAL,13H
MOVDX,C82590
OUTDX,AL
MOVAL,8
MOVDX,C82591
OUTDX,AL
MOVAL,1
OUTDX,AL
MOVAX,0
MOVES,AX
LEAAX,INT0
MOVES:
[4*8],AX
MOVAX,CS
MOVES:
[4*8+2],AX
;=========INIT8253==========
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
;=========INIT8279=============
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,OFFSETDISBUF
MOVCX,4
MOVAL,00
BB0:
MOV[SI],AL
INCSI
LOOPBB0
CALLDISP
JMPCHK
;=============================
AA1:
MPAL,2
JNZAA2
MOVSI,OFFSETDISBUF
MOVAL,00
MOV[SI],AL
INCSI
MOV[SI],AL
ADDSI,2
MOV[SI],AL
INCSI
MOV[SI],AL
CALLDISP
JMPCHK
;==================================
AA2:
MPAL,3
JNZAA3
MOVSI,OFFSETDISBUF+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
JEBB0
JMPCCC
BB0:
MOVAL,STAT
CMPAL,1
JNZBBB1
MOVAL,HOUR
ADDAL,1
DAA
MOVHOUR,AL
CALLFULLSHI
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
DAS
MOVHOUR,AL
CALLFULLSH1
CALLDISP
JMPCCC
CCC1:
MOVAL,STAT
CMPAL,2
JNZCCC3
MOVAL,MINUTE
SUBAL,1
DAS
MOVMINUTE,AL
CALLFULLFEN
CALLDISP
JMPCCC
CCC3:
MOVAL,STAT
CMPAL,3
JZCCC4
JMPDDD
CCC4:
MOVAL,SECOND
SUBAL,1
DAS
MOVSECOND,AL
CALLFULLMIAO
CALLDISP
JMPCCC
DDD:
MOVSTAT,0
MOVAL,0FFH
MOVDX,C82591
OUTDX,AL
CALLFULLSFM
CALLDISP
JMPCHK
INT0:
PUSHAX
PUSHBX
PUSHDI
PUSHSI
MOVAL,SECOND
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,DISB
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 课程设计 数字