电子钟课程设计报告_第1页
电子钟课程设计报告_第2页
电子钟课程设计报告_第3页
电子钟课程设计报告_第4页
电子钟课程设计报告_第5页
已阅读5页,还剩13页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目录1 前言11.1 设计目的11.2设计要求11.3 设计背景12 设计思想与原理22.1 设计思想22.2 设计原理22.2.1内容22.2.2要求22.3 设计环境32.4 设计所用设备33 系统硬件设计43.1设计所用芯片及功能介绍43.1.1 8259芯片的内部结构及引脚43.1.2 8255芯片的内部结构及引脚53.1.3 8254芯片的内部结构及引脚63.2 电子钟硬件接线图74 系统软件设计84.1软件工作流程图84.2 必要的程序清单85 系统调试及结果155.1 调试结果描述155.2测试结果分析156 总结16参考文献171 前言1.1 设计目的通过本次课程设计学习和掌握

2、计算机中常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使设计者的设计水平和对所学知识的应用能力以及分析问题解决问题的能力得到全面提高。掌握8255、8259、8254等芯片使用方法和编程方法,通过本次课程设计,学以致用,进一步理解所学的相关芯片的原理、内部结构、使用方法等,学会相关芯片实际应用及编程,系统中采用8086微处理器完成了电子秒表系统的独立设计。同时并了解综合问题的程序设计掌握实时处理程序的编制和调试方法,掌握一般的设计步骤和流程,使我们以后搞设计时

3、逻辑更加清晰。1.2设计要求利用8259A中断控制器、8254定时/计数器、8255A接口芯片以及键盘和数码显示电路,设计一个电子时钟,由8254中断定时,小键盘控制电子时钟的启停及初始值的预置。电子时钟的显示格式HH:MM:SS由左到右分别为时、分、秒,最大记时59:59:59超过这个时间时分秒位都清零从00:00:00重新开始。1.3 设计背景微机控制即微型计算机原理控制。是集CPU ,RAM ,ROM ,定时,计数和多种接口于一体的微控制器。它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。微型计算机原理控制应用技术飞速发展,纵观我们现在生活的各个领域,从导弹的导航装置,到飞机

4、上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,这些都离不开微型计算机原理控制。我们组本次设计的题目是简单电子钟程序设计,用到了定时芯片8254,中断控制器8259和可编程并行芯片8255。在编辑1毫秒定时程序时,用到了中断控制器8259。2 设计思想与原理2.1 设计思想本系统设计的电子时钟以8088微处理器作为CPU,用8254做定时计数器产生时钟频率,8255做可编程并行接口显示时钟和键盘电路,8259做中断控制器产生中断。在此系统中,8254的功能是定时,接入8254的CLK信号为周期性时钟信号。8254采用计数器0,工作于方式2,使8254的OU

5、T0端输出周期性的负脉冲信号。即每隔20ms,8254的OUT0端就会输出一个负脉冲的信号,此信号接8259的IR2,当中断到50次数后,CPU即处理,使液晶显示器上的时间发生变化。其中8259只需初始化ICW1,其功能是向8259表明IRx输入是电瓶触发方式还是上升沿触发方式,是单片8259还是多片8259。8259接收到信号后,产生中断信号送CPU处理。2.2 设计原理利用实验台上提供的定时器8254和扩展板上提供的8259以及键盘和数码显示电路,设计一个电子时钟,由8254中断定时,小键盘控制电子时钟的启停及初始值的预置。电子时钟的显示格式HH:MM:SS由左到右分别为时、分、秒,最大记

6、时59:59:59超过这个时间时分秒位都清零从00:00:00重新开始。基本工作原理:每百分之一秒对百分之一秒寄存器的内容加一,并依次对秒、分、小时寄存器的内容加一,六个数码管动态显示时、分、秒的当前值。2.2.1内容利用实验台上提供的定时器8254和扩展板上提供的8259以及键盘和数码显示电路,设计一个电子时钟,由8254中断定时,小键盘控制电子时钟的启停及初始值的预置。电子时钟的显示格式HH:MM:SS由左到右分别为时、分、秒,最大记时59:59:59超过这个时间时分秒位都清零从00:00:00重新开始。2.2.2要求本实验要求设计一个定时显示装置,用六个数码管显示时间,用小键盘控制计时,

7、设置和显示时间。系统一运行就从00点00分00秒开始计时,并在数码管上显示时、分、秒当前值,而且,可以用键盘设置当前时间。基本工作原理:每百分之一秒对百分之一秒寄存器的内容加一,并依次对秒、分、小时寄存器的内容加一;六个数码管动态显示时、分、秒的当前值。用开关(模块A5)控制计时和显示:K1键(清除):显示00-00-00;K2键(启动):显示XX-XX-XX变化的时间值;K3键(停止):显示XX-XX-XX不变;K4键(设置):设置XX-XX-XX时间值,时间值由模块B2开关输入。2.3 设计环境PC机一台、windowsXP系统、实验箱,导线若干。2.4 设计所用设备8254定时器:用于产

8、生秒脉冲,其输出信号可作为中断请示信号送IRQ2。8255并口:用做接口芯片,和小键盘相连。8259中断控制器:用于产生中断。 LED:六个LED用于显示时:分:秒值。小键盘:用于控制设置。3 系统硬件设计3.1设计所用芯片及功能介绍3.1.1 8259芯片的内部结构及引脚中断控制器8259是Intel公司专为控制优先级中断而设计开发的芯片。它将中断源优先排队、辨别中断源以及提供中断矢量的电路集中于一片中。因此无需附加任何电路,只需对8259编程,就可以管理8级中断,并选择优先模式和中断请求方式,即中断结构可以由用户编程来设定。在MD微机系统中,8259芯片工作于单片方式。8259引脚图如图3

9、.1所示。 图3.1 8259引脚图各引脚功能如下:D7-D0八条双向数据线; WR(低电平有效)写输入信号;RD(低电平有效)读输入信号;CS(低电平有效)片选输入信号;A0地址信号;INT中断请求信号;INTA(低电平有效)中断响应信号;CAS0-CAS2级联信号,形成一条专用8259A总线,以便多片8259A的级联;SP/EN从编程/允许级联。在缓冲方式中,可用做输出信号以控制总线缓冲器的接收和发送。在非缓冲方式中,作为输入信号用于表示主片还是从片;IR0-IR7外部中断请求输入线。要求输入的中断请求信号是由低电平到高电平的上升沿(并保持高电平到CPU响应时为止)或者是高电平。8259中

10、断矢量地址与中断信号之间的关系如表3-1所示:表3-1 8259中断矢量表中断序号01234567功能调用08H09H0AH0BH0CH0DH0EH0FH矢量地址20H23H24H27H28H2BH2CH2FH30H33H34H37H38H3BH3CH3FH说明时钟键盘可用可用串行口可用可用可用3.1.2 8255芯片的内部结构及引脚8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种工作方式下工作:方式2双向选通输入/输出方式8255引脚图如图3.2示, 图3.2 8255引脚图各引脚功能如下:D7D0与CPU

11、侧连接的八条双向数据线;WR(低电平有效)写输入信号;RD(低电平有效)读输入信号;CS(低电平有效)片选输入信号;A0、A1片内寄存器选择输入信号;PA7PA0A口外设双向数据线;PB7PB0B口外设双向数据线;PC7PC0C口外设双向数据线;RESET复位输入信号。8255端口地址表如表3-2所示:表3-2 8255端口地址表信号线寄存器编址IOY3A口60HB口61HC口62H控制寄存器63H3.1.3 8254芯片的内部结构及引脚 8254是Intel公司生产的可编程计时器,具有以下功能:(1)有3格独立的16位计数器(2)每个计数器可按二进制或十进制计数;(3)每个计数器可编程工作于

12、6种不同工作方式;(4)8254每个计数器允许的最高计数频率为10MHZ;(5)8254有读回命令,除了可以读出当前计数单元的内容外,还可以读出状态寄存器的内容; 图3.3是8254芯片的内部结构及引脚图,它是由与CPU的接口、内部控制电路和三个计数器组成。8254的工作方式如下述:(1)方式0:计数到0结束输出正跃变信号方式。(2)方式1:硬件可重触发单稳方式。(3)方式2:频率放生器方式。(4)方式3:方波发生器。(5)方式4:软件触发选通方式。(6)方式5:硬件触发选通方式。 图3.3 8254芯片引脚图3.2 电子钟硬件接线图图3.4 电子钟硬件接线图4 系统软件设计4.1软件工作流程

13、图主程序流程图如图4.1所示,服务程序流程图如图4.2所示。 图 4.1主程序流程图 图4.2 服务程序流程图4.2 必要的程序清单电子钟的程序:control equ 0c003h ;8253控制口 count0 equ 0c000h count1 equ 0c001h count2 equ 0c002h md8255 equ 82h ;8255控制字 pa8255 equ 8000h ctl8255 equ 8003h outbit equ 08002h ;位控制口 outseg equ 08004h ;段控制口 icw1 equ 00010011b ;8259,上升沿中断,要写icw4

14、icw2 equ 00100000b ;中断号为20h icw4 equ 00000001b ;工作在8086/88方式 ocw1 equ 11111110b ;只响应int0中断 cs8259a equ 0d000h ;8259地址 cs8259b equ 0d001h data segment cnt db 0 ledbuf db 6 dup(?) ;显示缓冲 num db 1 dup(?) ;显示的数据 delayt db 1 dup(?) hour db 0 minute db 0 second db 0 ledmap: ;八段管显示码 db 3fh,06h,5bh,4fh,66h,6

15、dh,7dh,07h db 7fh,6fh,77h,7ch,39h,5eh,79h,71h data ends code segment assume cs:code,ds:data delay proc near ;延时子程序 push ax push cx mov al,0 mov cx,ax loop $ pop cx pop ax ret delay endp displayled proc near ;数码管显示控制子程序 mov bx,offset ledbuf mov cl,6 ;共6个八段管 mov ah,00100000b ;从左边开始显示 dloop: mov dx, ou

16、tbit mov al, 0 out dx, al ;关所有八段管 mov al, bx mov dx, outseg out dx, al mov dx, outbit mov al, ah out dx, al ;显示一位八段管 push ax mov ah,1 call delay pop ax shr ah,1 inc bx dec cl jnz dloop mov dx,outbit mov al,0 out dx,al ;关所有八段管 ret displayled endp ienter proc near ;8253中断服务程序 push ax push dx inc secon

17、d ;秒加1 mov al,second cmp al,60 ;秒数与60比较 jne exit mov second,0 ;秒清零 inc minute ;分加1 mov al,minute cmp al,60 ;分数与60比较 jne exit mov minute,0 ;分清零 inc hour ;时加1 mov al,hour cmp al,24 ;时数与24比较 jne exit mov hour,0 ;时清零 exit: mov dx,cs8259a mov al,20h out dx,al ;结束本次中断 pop dx pop ax iret ienter endp iinit

18、proc ;初始化8259的命令字和操作命令字 mov dx,cs8259a mov al,icw1 out dx,al mov dx,cs8259b mov al,icw2 out dx,al mov al,icw4 out dx,al mov al,ocw1 out dx,al ret iinit endp start: mov ax,data mov ds,ax mov hour,0 ;时、分、秒清零 mov minute,0 mov second,0 cli ;清除中断标志位 mov ax,0 mov ds,ax mov al,76h ;8253控制字 mov dx,control o

19、ut dx,al mov ax,62500 ;利用8253计数器1分频 mov dx,count1 out dx,al mov al,ah out dx,al mov al,md8255 mov dx,ctl8255 out dx,al mov bx,4*icw2 ;中断号 mov ax,code shl ax,4 ;*16 add ax,offset ienter ;中断入口地址(段地址为0) mov bx,ax mov ax,0 inc bx inc bx mov bx,ax ;代码段地址为0 call iinit mov ax,data mov ds,ax mov cnt,0 ;计数值初

20、始为0 mov al,cnt mov dx,pa8255 out dx,al sti ;开中断 lp: mov al,hour mov ah,0 mov cl,10 div cl mov ch,ah mov ah,0 mov bx,offset ledmap add bx,ax mov al,bx ;时的十位转换成显示码 mov ledbuf,al ;显示码存入显示缓冲区 mov bx,offset ledmap mov al,ch mov ah,0 add bx,ax mov al,bx ;时的个位转换成显示码 or al,80h mov ledbuf+1,al ;显示码存入后一位显示缓冲区

21、 mov al,minute mov ah,0 mov cl,10 div cl mov ch,ah mov ah,0 mov bx,offset ledmap add bx,ax mov al,bx ;分的十位转换成显示码 mov ledbuf+2,al mov bx,offset ledmap mov al,ch mov ah,0 add bx,ax mov al,bx ;分的个位转换成显示码 or al,80h mov ledbuf+3,al mov al,second mov ah,0 mov cl,10 div cl mov ch,ah mov ah,0 mov bx,offset

22、ledmap add bx,ax mov al,bx ;秒的十位转换成显示码 mov ledbuf+4,al mov bx,offset ledmap mov al,ch mov ah,0 add bx,ax mov al,bx ;分的个位转换成显示码 or al,80h mov ledbuf+5,al call displayled jmp lp code ends end start5 系统调试及结果5.1 调试结果描述本系统设计实现后进行了为期一周左右的调试。调试包括电路板的调试和汇编程序的调试。下面就系统调试情况作一介绍:(1)系统对于输入有格式要求,不能输入不正确的时间格式。(2)系

23、统对于临界值进行了验证。(3)系统预计各功能的实现。5.2测试结果分析测试结果表明,电子钟系统已能初步实现主要功能,但是由于我的能力有限,开发实践经验不足,系统功能不是十分完善,还存在着许多问题,目前通过测试等发现系统存在以下几个问题:(1)由于试验条件的限制,开机有时候不能自动复位。(2)对于多次连续输入错误格式的时间值,系统可能出现异常。(3)由于是教学模拟课题,不能适应实际使用中复杂的需求,只能根据其他一些简单的调查和推测来设定系统的功能和要求,不论是功能和内容都相对简单。尚有不满足要求的地方,一些技术问题也没有克服。6 总结课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际

24、问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.经过这次课程设计,使我对8250A有了更深一步的认识。同时使我认识到RS-232C是微型计算机与通信工业中应用最为广泛的一种串行通信接口标准。加深了对芯片接口可编程原理的理解,加深了对课堂上知识的巩固。另外,通过亲手编写汇编程序的过程也增强了程序设计的能力,学到了很多知识。回顾起课程设计,至今我仍感慨颇多。通过本次课程设计可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论