电子钟课程设计报告.docx
- 文档编号:4698799
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:18
- 大小:338.28KB
电子钟课程设计报告.docx
《电子钟课程设计报告.docx》由会员分享,可在线阅读,更多相关《电子钟课程设计报告.docx(18页珍藏版)》请在冰豆网上搜索。
电子钟课程设计报告
目录之马矢奏春创作
创作时间:
贰零贰壹年柒月贰叁拾日
1前言
1.1设计目的
通过本次课程设计学习和掌握计算机中经常使用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。
通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使设计者的设计水平和对所学知识的应用能力以及分析问题解决问题的能力得到全面提高。
掌握8255、8259、8254等芯片使用方法和编程方法,通过本次课程设计,学以致用,进一步理解所学的相关芯片的原理、内部结构、使用方法等,学会相关芯片实际应用及编程,系统中采取8086微处理器完成了电子秒表系统的独立设计。
同时并了解综合问题的程序设计掌握实时处理程序的编制和调试方法,掌握一般的设计步调和流程,使我们以后搞设计时逻辑更加清晰。
利用8259A中断控制器、8254定时/计数器、8255A接口芯片以及键盘和数码显示电路,设计一个电子时钟,由8254中断定时,小键盘控制电子时钟的启停及初始值的预置。
电子时钟的显示格式HH:
MM:
SS
由左到右分别为时、分、秒,最大记时59:
59:
59超出这个时间时分秒位都清零从00:
00:
00重新开始。
1.3设计布景
微机控制即微型计算机原理控制。
是集CPU,RAM,ROM,定时,计数和多种接口于一体的微控制器。
它体积小,成本低,功能强,广泛应用于智能财产和工业自动化上。
微型计算机原理控制应用技术飞速发展,纵观我们现在生活的各个领域,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,这些都离不开微型计算机原理控制。
我们组本次设计的题目是简单电子钟程序设计,用到了定时芯片8254,中断控制器8259和可编程并行芯片8255。
在编辑1毫秒定时程序时,用到了中断控制器8259。
2设计思想与原理
2.1设计思想
本系统设计的电子时钟以8088微处理器作为CPU,用8254做定时计数器发生时钟频率,8255做可编程并行接口显示时钟和键盘电路,8259做中断控制器发生中断。
在此系统中,8254的功能是定时,接入8254的CLK信号为周期性时钟信号。
8254采取计数器0,工作于方式2,使8254的OUT0端输出周期性的负脉冲信号。
即每隔20ms,8254的OUT0端就会输出一个负脉冲的信号,此信号接8259的IR2,当中断到50次数后,CPU即处理,使液晶显示器上的时间发生变更。
其中8259只需初始化ICW1,其功能是向8259标明IRx输入是电瓶触发方式还是上升沿触发方式,是单片8259还是多片8259。
8259接收到信号后,发生中断信号送CPU处理。
2.2设计原理
利用实验台上提供的定时器8254和扩展板上提供的8259以及键盘和数码显示电路,设计一个电子时钟,由8254中断定时,小键盘控制电子时钟的启停及初始值的预置。
电子时钟的显示格式HH:
MM:
SS由左到右分别为时、分、秒,最大记时59:
59:
59超出这个时间时分秒位都清零从00:
00:
00重新开始。
基本工作原理:
每百分之一秒对百分之一秒寄存器的内容加一,并依次对秒、分、小时寄存器的内容加一,六个数码管动态显示时、分、秒的当前值。
利用实验台上提供的定时器8254和扩展板上提供的8259以及键盘和数码显示电路,设计一个电子时钟,由8254中断定时,小键盘控制电子时钟的启停及初始值的预置。
电子时钟的显示格式HH:
MM:
SS由左到右分别为时、分、秒,最大记时59:
59:
59超出这个时间时分秒位都清零从00:
00:
00重新开始。
本实验要求设计一个定时显示装置,用六个数码管显示时间,用小键盘控制计时,设置和显示时间。
系统一运行就从00点00分00秒开始计时,并在数码管上显示时、分、秒当前值,而且,可以用键盘设置当前时间。
基本工作原理:
每百分之一秒对百分之一秒寄存器的内容加一,并依次对秒、分、小时寄存器的内容加一;六个数码管动态显示时、分、秒的当前值。
用开关(模块A5)控制计时和显示:
K1键(清除):
显示00-00-00;
K2键(启动):
显示XX-XX-XX变更的时间值;
K3键(停止):
显示XX-XX-XX不变;
K4键(设置):
设置XX-XX-XX时间值,时间值由模块B2开关输入。
2.3设计环境
PC机一台、windows XP系统、实验箱,导线若干。
2. 4设计所用设备
8254定时器:
用于发生秒脉冲,其输出信号可作为中断请示信号送IRQ2。
8255并口:
用做接口芯片,和小键盘相连。
8259中断控制器:
用于发生中断。
LED:
六个LED用于显示时:
分:
秒值。
小键盘:
用于控制设置。
3系统硬件设计
设计所用芯片及功能介绍
.18259芯片的内部结构及引脚
中断控制器8259是Intel公司专为控制优先级中断而设计开发的芯片。
它将中断源优先排队、分辨中断源以及提供中断矢量的电路集中于一片中。
因此无需附加任何电路,只需对8259编程,就可以管理8级中断,并选择优先模式和中断请求方式,即中断结构可以由用户编程来设定。
在MD微机系统中,8259芯片工作于单片方式。
8259引脚图如图3.1所示。
图3.18259引脚图
各引脚功能如下:
D7-D0——八条双向数据线;
WR(低电平有效)——写输入信号;
RD(低电平有效)——读输入信号;
CS(低电平有效)——片选输入信号;
A0——地址信号;
INT——中断请求信号;
INTA(低电平有效)——中断响应信号;
CAS0-CAS2——级联信号,形成一条专用8259A总线,以便多片8259A的级联;
SP/EN——从编程/允许级联。
在缓冲方式中,可用做输出信号以控制总线缓冲器的接收和发送。
在非缓冲方式中,作为输入信号用于暗示主片还是从片;
IR0-IR7——外部中断请求输入线。
要求输入的中断请求信号是由低电平到高电平的上升沿(并坚持高电平到CPU响应时为止)或者是高电平。
8259中断矢量地址与中断信号之间的关系如表3-1所示:
表3-18259中断矢量表
中断序号
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
说明
时钟
键盘
可用
可用
串行口
可用
可用
可用
3.1.28255芯片的内部结构及引脚
8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种工作方式下工作:
方式2—双向选通输入/输出方式
8255引脚图如图3.2示,
图3.28255引脚图
各引脚功能如下:
D7~D0——与CPU侧连接的八条双向数据线;
WR(低电平有效)——写输入信号;
RD(低电平有效)——读输入信号;
CS(低电平有效)——片选输入信号;
A0、A1——片内寄存器选择输入信号;
PA7~PA0——A口外设双向数据线;
PB7~PB0——B口外设双向数据线;
PC7~PC0——C口外设双向数据线;
RESET——复位输入信号。
8255端口地址表如表3-2所示:
表3-28255端口地址表
信号线
寄存器
编址
IOY3
A口
60H
B口
61H
C口
62H
控制寄存器
63H
3.8254芯片的内部结构及引脚
8254是Intel公司生产的可编程计时器,具有以下功能:
(1)有3格独立的16位计数器
(2)每个计数器可按二进制或十进制计数;
(3)每个计数器可编程工作于6种分歧工作方式;
(4)8254每个计数器允许的最高计数频率为10MHZ;
(5)8254有读回命令,除了可以读出当前计数单元的内容外,还可以读出状态寄存器的内容;
图3.3是8254芯片的内部结构及引脚图,它是由与CPU的接口、内部控制电路和三个计数器组成。
8254的工作方式如下述:
(1)方式0:
计数到0结束输出正跃变信号方式。
(2)方式1:
硬件可重触发单稳方式。
(3)方式2:
频率放生器方式。
(4)方式3:
方波发生器。
(5)方式4:
软件触发选通方式。
(6)方式5:
硬件触发选通方式。
8254芯片引脚图
3.2电子钟硬件接线图
图3.4电子钟硬件接线图
4系统软件设计
软件工作流程图
主程序流程图如图4.1所示,服务程序流程图如图4.2所示。
图主程序流程图图4.2服务程序流程图
4.2需要的程序清单
电子钟的程序:
controlequ0c003h;8253控制口
count0equ0c000h
count1equ0c001h
count2equ0c002h
md8255equ82h;8255控制字
pa8255equ8000h
ctl8255equ8003h
outbitequ08002h;位控制口
outsegequ08004h;段控制口
icw1equ00010011b;8259,上升沿中断,要写icw4
icw2equ00100000b;中断号为20h
icw4equ00000001b;工作在8086/88方式
ocw1equ11111110b;只响应int0中断
cs8259aequ0d000h;8259地址
cs8259bequ0d001h
datasegment
cntdb0
ledbufdb6dup(?
);显示缓冲
numdb1dup(?
);显示的数据
delaytdb1dup(?
)
hourdb0
minutedb0
seconddb0
ledmap:
;八段管显示码
db3fh,06h,5bh,4fh,66h,6dh,7dh,07h
db7fh,6fh,77h,7ch,39h,5eh,79h,71h
dataends
codesegment
assumecs:
code,ds:
data
delayprocnear;延时子程序
pushax
pushcx
moval,0
movcx,ax
loop$
popcx
popax
ret
delayendp
displayledprocnear;数码管显示控制子程序
movbx,offsetledbuf
movcl,6;共6个八段管
movah,00100000b;从左边开始显示
dloop:
movdx,outbit
moval,0
outdx,al;关所有八段管
moval,[bx]
movdx,outseg
outdx,al
movdx,outbit
moval,ah
outdx,al;显示一位八段管
pushax
movah,1
calldelay
popax
shrah,1
incbx
deccl
jnzdloop
movdx,outbit
moval,0
outdx,al;关所有八段管
ret
displayledendp
ienterprocnear;8253中断服务程序
pushax
pushdx
incsecond;秒加1
moval,second
cmpal,60;秒数与60比较
jneexit
movsecond,0;秒清零
incminute;分加1
moval,minute
cmpal,60;分数与60比较
jneexit
movminute,0;分清零
inchour;时加1
moval,hour
cmpal,24;时数与24比较
jneexit
movhour,0;时清零
exit:
movdx,cs8259a
moval,20h
outdx,al;结束本次中断
popdx
popax
iret
ienterendp
iinitproc;初始化8259的命令字和操纵命令字
movdx,cs8259a
moval,icw1
outdx,al
movdx,cs8259b
moval,icw2
outdx,al
moval,icw4
outdx,al
moval,ocw1
outdx,al
ret
iinitendp
start:
movax,data
movds,ax
movhour,0;时、分、秒清零
movminute,0
movsecond,0
cli;清除中断标记位
movax,0
movds,ax
moval,76h;8253控制字
movdx,control
outdx,al
movax,62500;利用8253计数器1分频
movdx,count1
outdx,al
moval,ah
outdx,al
moval,md8255
movdx,ctl8255
outdx,al
movbx,4*icw2;中断号
movax,code
shlax,4;*16
addax,offsetienter;中断入口地址(段地址为0)
mov[bx],ax
movax,0
incbx
incbx
mov[bx],ax;代码段地址为0
calliinit
movax,data
movds,ax
movcnt,0;计数值初始为0
moval,cnt
movdx,pa8255
outdx,al
sti;开中断
lp:
moval,hour
movah,0
movcl,10
divcl
movch,ah
movah,0
movbx,offsetledmap
addbx,ax
moval,[bx];时的十位转换成显示码
movledbuf,al;显示码存入显示缓冲区
movbx,offsetledmap
moval,ch
movah,0
addbx,ax
moval,[bx];时的个位转换成显示码
oral,80h
movledbuf+1,al;显示码存入后一位显示缓冲区
moval,minute
movah,0
movcl,10
divcl
movch,ah
movah,0
movbx,offsetledmap
addbx,ax
moval,[bx];分的十位转换成显示码
movledbuf+2,al
movbx,offsetledmap
moval,ch
movah,0
addbx,ax
moval,[bx];分的个位转换成显示码
oral,80h
movledbuf+3,al
moval,second
movah,0
movcl,10
divcl
movch,ah
movah,0
movbx,offsetledmap
addbx,ax
moval,[bx];秒的十位转换成显示码
movledbuf+4,al
movbx,offsetledmap
moval,ch
movah,0
addbx,ax
moval,[bx];分的个位转换成显示码
oral,80h
movledbuf+5,al
calldisplayled
jmplp
codeends
endstart
5系统调试及结果
5.1调试结果描述
本系统设计实现后进行了为期一周左右的调试。
调试包含电路板的调试和汇编程序的调试。
下面就系统调试情况作一介绍:
(1)系统对于输入有格式要求,不克不及输入不正确的时间格式。
(2)系统对于临界值进行了验证。
(3)系统预计各功能的实现。
测试结果分析
测试结果标明,电子钟系统已能初步实现主要功能,但是由于我的能力有限,开发实践经验缺乏,系统功能不是十分完善,还存在着许多问题,目前通过测试等发现
系统存在以下几个问题:
(1) 由于试验条件的限制,开机有时候不克不及自动复位。
(2)对于多次连续输入错误格式的时间值,系统可能出现异常。
(3)由于是教学模拟课题,不克不及适应实际使用中复杂的需求,只能根据其他一些简单的调查和推测来设定系统的功能和要求,不管是功能和内容都相对简单。
尚有不满足要求的地方,一些技术问题也没有克服。
6总结
课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.
经过这次课程设计,使我对8250A有了更深一步的认识。
同时使我认识到RS-232C是微型计算机与通信工业中应用最为广泛的一种串行通信接口尺度。
加深了对芯片接口可编程原理的理解,加深了对课堂上知识的巩固。
另外,通过亲手编写汇编程序的过程也增强了程序设计的能力,学到了很多知识。
回顾起课程设计,至今我仍感慨颇多。
通过本次课程设计可以说得是苦多于甜,但是可以学到很多很多的东西,同时不但可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不敷的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才干真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在做设计的过程中,我们每一步要做什么,每一步要完成什么任务都有一个很清楚的思路,而且在程序测试的过程中也有利于查错。
其次,以前对于编程工具的使用还处于一知半解的状态上,但是经过几次在计算机上的实践,对于怎么去排错、查错,怎么去看每一步的运行结果,怎么去了解每个寄存器的内容以确保程序的正确性上都有了很大程度的提高。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不敷的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才干真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这究竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的缺乏之处,对以前所学过的知识理解得不敷深刻,掌握得不敷牢固。
这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在老师的指导下,终于迎刃而解。
在此我暗示感谢!
同时,对给过我帮忙的所有同学和各位指导老师再次暗示忠心的感谢!
参考文献
[1]
[2]
[3]
[4]牟琦,聂建萍.微机原理与接口技术.北京:
清华大学出版社
[5.北京:
清华大学出版社
[6]彭虎.微机原理与接口技术(第2版)[M].北京:
电子工业出版社.2008
[7]张弥左,王兆月,邢立军等.微型计算机接口技术.北京:
机械工业出版社
[10]戴梅萼.微型计算机技术及应用[M].北京:
清华大学
[11]沈美明.IBM-PC汇编语言程序设计[M].北京:
清华大学出版社
创作时间:
贰零贰壹年柒月贰叁拾日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子钟 课程设计 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)