微机原理课程设计—电子时钟.doc_第1页
微机原理课程设计—电子时钟.doc_第2页
微机原理课程设计—电子时钟.doc_第3页
微机原理课程设计—电子时钟.doc_第4页
微机原理课程设计—电子时钟.doc_第5页
免费预览已结束,剩余9页可下载查看

下载本文档

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

文档简介

时钟控制系统设计一、 设计任务及其要求二、 方案比较及评估论证三、 系统工作原理四、 硬件原理及其电路图五、 软件思想(含流程图和程序)六、 调试记录及结果分析七、 参考资料八、 芯片资料九、 总结 一、 设计任务及其要求(1) 设计一个时钟,可以显示时分秒,年月日,并可以调整。(2) 利用PC系列微机现有的硬件和软件资源,编写程序,使在CRT屏幕上显示XXXX年XX月:XX日:XX时:XX分:XX秒,并且每秒钟更新一次显示。(3) 编写程序,利用主机内的8253/8254-2的计数器0产生10ms的对称方波输出,该输出送至IRQ0使8259A每10ms产生一次中断,100次中断后秒量+1,然后调整年,月,日,时,分,秒并显示在屏幕上。程序从按下任意键考试显示数据区中存放的时间值,运行中按下空格键则停止运行返回DOS。(4) 调整程序,直至运行正常。二、 方案比较及评估论证方案一:三、系统工作原理首先在数据段开辟一显示缓冲区,用来存储系统时间。调用DOS中断,返回系统时间,并将来返回的二进制时间转换成ASCII码,方便时间显示时的调用。分别将来小时数、分钟数、秒数存入显示缓冲区,并最终存入一结束字符号$。调用DOS字符串显示功能将时间显示出来。并利用8259A的IR0中断,定位光标的开始位置,结合着将时间显示在我们预先定义好的位置上。三、 硬件原理及其电路图本系统设计的电子时钟以8088微处理器作为CPU,用8253做定时计数器产生时钟频率,8259做中断控制器产生中断。在此系统中,8254的功能是定时,接入8254的CLK信号为周期性时钟信号。8254采用计数器0,工作于方式2,使8253的OUT0端输出周期性的负脉冲信号。即每隔10ms,8253的OUT0端就会输出一个负脉冲的信号,此信号接8259的IR0,当中断到100次数后,CPU即处理,使液晶显示器上的时间发生变化。其中8259只需初始化ICW1,其功能是向8259表明IRx输入是电平触发方式还是上升沿触发方式,是单片8259还是多片8259。8259接收到信号后,产生中断信号送CPU处理。3.1 8254引脚功能上图是8254 的内部结构框图和引脚图,它是由与CPU 的接口、内部控制电路和三个计数器组成。本次设计主要利用8254产生1ms的方波,其与总线相连接的引线主要是:D0D7双向数据线,用以传送数据和控制字。这里分别与XD0XD7相连接。CS输入信号,低电平有效,当它有效时才能选中该定时器芯片,实现对它的读或写,这里与系统IOY3相连接。RD读控制信号,低电平有效,与系统总线IOR#相连接。WR写控制信号,低电平有效,与系统总线IOW#相连接。A0、A1为8254的内部计数器和一个控制寄存器的编码选择信号,其功能如下:A1A0选择00计数器001计数器110计数器211控制寄存器CLK0是计数器的时钟输入端。本次设计的时钟为1MHZ,计数器对此时钟信号进行计数。GATE0门控信号,即计数器的控制输入信号,用来控制计数器的工作,这里使其为高电平,直接接系统5V。OUT计数器输出信号,用来产生不同方式工作时的输出波形,本次设计的1ms方波由此输出。3、8253芯片的内部结构及引脚8253可编程定时/计数器是Intel公司生产的通用外围芯片之一,有3个独立的十六位计数器,技术频率范围为02MHZ,它所有的技术方式和操作方式都通过编程控制。8253的功能用途是:(1)延时中断(2)可编程频率发生器(3)事件计数器(4)二进倍频器(5)实时时钟(6)数字单稳(7)复杂的电机控制器8253有六种工作方式:(1)方式0:计数结束中断(2)方式1:可编程频率发生器(3)方式2:频率发生器(4)方式3:方波频率发生器(5)方式4:软件触发的选通信号(6)方式5:硬件触发的选通信号8253引脚图如图3.3示,各引脚功能如下。D7D0八条双向数据线;WR(低电平有效)写输入信号;RD(低电平有效)读输入信号;CS(低电平有效)片选输入信号;A0、A1片内寄存器地址输入信号;CLK计数输入,用于输入定时基准脉冲或计数脉冲;OUT输出信号,以相应的电平指示计数的完成,或输出脉冲波形;GATE选通输入(门控输入),用于启动或禁止计数器的操作,以使计数器和计测对象同步。 8253端口地址表2、8253端口地址信号线寄存器编址IOY20#计数器40H1#计数器41H2#计数器42H控制寄存器43H 3.2 CPU选型 本次设计选用的是8086CPU,同时该CPU工作在最小模式下(MN/MX引脚接高电平)。其中,主要使用引脚如下:AD0-AD15:地址数据状态复用的引脚; A16-A19:高4位地址信号; IO/M:输入输出/存储器控制信号; WR:写信号输出; RD:读选通信号; ALE:地址锁存信号; DT/R:数据传送方向控制信号; 四、 软件思想(含流程图和程序)定时中断服务程序流程图 保护现场秒单元+1N秒单元=60?秒单元清零,分单元+1分单元清零,小时单元+1分单元=60?时单元=24?小时单元=0显示时分秒恢复现场中断返回NNYYYA8254 EQU 06C0H ;宏定义B8254 EQU 06C2HC8254 EQU 06C4HCON8254 EQU 06C6HSSTACK SEGMENT STACK DW 32 DUP(?) ;设置段,开辟一个内存空间SSTACK ENDSDATA SEGMENT MSEC DW 0 ;定义数据段SEC DB 0 MIN DB 0DATA ENDS CODE SEGMENT ;定义代码段ASSUME CS:CODE,DS:DATA,SS:SSTACKSTART:PUSH DS ;入栈代码段MOV AX, 0000HMOV DS, AXMOV AX, OFFSET MIR7;取中断入口地址MOV SI, 003CH ;中断矢量地址MOV SI, AX ;填IRQ7的偏移矢量 确定地址MOV AX, CS ;段地址MOV SI, 003EHMOV SI, AX ;填IRQ7的段地址矢量CLI ;清除中断标志POP DS ;出栈;初始化主片8255MOV DX,MY8255_MODE MOV AL,80H OUT DX,AL ;初始化主片8254 MOV DX,CON8254 MOV AL,36H OUT DX,AL MOV DX,A8254 MOV AL,0E8H OUT DX,AL MOV AL,03H OUT DX,AL ;初始化主片8259 MOV AL, 11H OUT 20H, AL;ICW1 MOV AL, 08H OUT 21H, AL;ICW2 MOV AL, 04H OUT 21H, AL;ICW3 MOV AL, 01H OUT 21H, AL;ICW4 MOV AL, 6FH;OCW1 OUT 21H, AL STI ;置中断标志位 IF MOV AX,DATA ;数据传给AXMOV DS,AX ;再把AX中心数据送入段DS中 MOV SI,3000H ;SI中的值设为3000H MOV AL,00H ;把AL清0 MOV SI,AL ;把地址为3000H的空间清0 给DEL初始化 MOV SI+1,AL ;把地址为3001H的空间清0 MOV SI+2,AL ;把地址为3002H的空间清0 MOV SI+3,AL ;把地址为3003H的空间清0 MOV DI,3003HBEGIN::CALL DIS ;调用子程序DIS CALL CLEAR ;调子程序CLEAR JMP BEGIN ;无条件跳到BEGINMIR7:STI ;置中断标志位IF PUSH AX PUSH SI MOV AX,MSEC ; 毫秒内容0给AX,并让其在AX中自增, INC AX 然后再传回到毫秒中 MOV MSEC,AXCMP AX,2000 AX中的数经过自增后变化了,用这个 JB MRET 数与2000比较,如果低于2000跳到MRET MOV AX,0 MOV MSEC,AX MOV AL,SEC ADD AL,1 DAA MOV SEC,AL CMP AL,60H JB MTODIS MOV AL,0 MOV SEC,AL MOV AL,MIN ADD AL,1 DAA MOV MIN,AL CMP AL,60H JNZ MTODIS MOV AL,0 MOV MIN,ALMTODIS: MOV AL,SEC MOV AH,AL MOV SI,3000H AND AL,0FH MOV SI,AL ROR AH,1 ROR AH,1 ROR AH,1 ROR AH,1 AND AH,0FH MOV SI+1,AH MOV AL,MIN MOV AL,MIN MOV AH,AL AND AL,0FH MOV SI+2,AL ROR AH,1 ROR AH,1 ROR AH,1 ROR AH,1 AND AH,0FH MOV SI+3,AHMRET:MOV AL, 20H OUT 20H, AL;中断结束命令 POP SI POP AX IRETCLEAR::MOV DX,MY8255_B MOV AL,00H 把00H写入8255的B口,使B口停止工作 OUT DX,AL RETDIS:PUSH AX ;AX内容存在栈中 MOV SI,3000H MOV DL,0F7H MOV AL,DLAGAIN:PUSH DX ;内容入栈保存 MOV DX,MY8255_A 把AL内容OF7H写入A口中 OUT DX,AL MOV AL,SI MOV BX,OFFSET DTABLEAND AX,00FFH ADD BX,AX MOV AL,BX MOV DX,MY8255_B 把数据传到A口,再经过B口传出接DELOUT DX,AL 段显示器CALL DALLY INC SI POP DX MOV AL,DLTEST AL,01H JZ OUT1 ROR AL,1 ;循环右移MOV DL,AL JMP AGAINOUT1::POP AX RET DALLY:PUSH CX ;延时过程 MOV CX,000FH T1:MOV AX,009FH T2: DEC AX JNZ T2 LOOP T1 POP CX RET CODE ENDS ;程序结束 END START 九、总结 在本次设计的时候,我们已经学完了微型计算机原理及接口技术这本教材,所以对于微机原理的一些基础知识也有所掌握,但这离一个完整设计的距离还有很大的一步。这次课设的题目是简单电子钟课程设计,为了更好的完成这次课程设计,我去图书馆查阅了很多相关资料,并对课本进行了一次重新的学习,这一切让我对微机原理知识有了进一步的认识,并丰富了我的相关知识。我真的很庆幸我有机会着手设计这么一个题目,它所应用到的知识覆盖面很广,所以本次课程设计让我学习到了很多新的微机知识,并从中获益良多。 在刚开始设计的时候,我真的是一头雾水,不知道从何下手,于是就借来了以前学长的程序设计作个参考,我先将他们的程序设计看懂,然后再自己尝试着去设计。首先应该画出硬件设计图,这个过程是基础,然后是流程图,这个是重点,流程图的完成在很大程度上等于程序的完成,然后是程序的编写。在整个设计的过程中真的遇到了很多的困难,总有自己想不明白的问题,多亏了王老师的批评指正和我组热心的同学们对我的关心帮助,让我学到了正确的知识。在这里,我要特别感谢你们!这次设计让我收获了很多,既是对自己所学到的知识作一个肯定,也是对微型计算机原理及其接口技术的复习,更主要的是通过设计增强了自己动手的能力。在这次课程设计中涉及到很多芯片的应用,最大特点是软,硬件的结合,对动手能里的要求很大,设计完成后我的编程水平提高了一大步。这次设计,更增加了我对微机原理的兴趣,为我将来的学习明确了目标。 令我遗憾的是,由于时间的限制以及自身能力的不足,我这次的设计方案没有任何的创新。虽然我在设计的时候有很多想法想去尝试,并且参阅了大量的专业资料,然而最后都因为自身学识的不足而放弃,很遗憾。但是,在这个设计的期间激发了我很多学习的乐趣,并准备在以后的课余时间多学习相关知识,多作这方面的研究,补全这次设计不足的遗憾。 参考书籍1、戴梅萼,史嘉权编著.微型计算机技术及应用(第4版).北京:清华大学出版社,20082、周明德编著.微型计算机系统原理及应用(第四版).北京:清华大学出版社,20

温馨提示

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

评论

0/150

提交评论