《微机原理及接口技术》课程设计简易教学打铃器设计.doc

上传人:laozhun 文档编号:2881858 上传时间:2023-03-01 格式:DOC 页数:20 大小:494KB
返回 下载 相关 举报
《微机原理及接口技术》课程设计简易教学打铃器设计.doc_第1页
第1页 / 共20页
《微机原理及接口技术》课程设计简易教学打铃器设计.doc_第2页
第2页 / 共20页
《微机原理及接口技术》课程设计简易教学打铃器设计.doc_第3页
第3页 / 共20页
《微机原理及接口技术》课程设计简易教学打铃器设计.doc_第4页
第4页 / 共20页
《微机原理及接口技术》课程设计简易教学打铃器设计.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《《微机原理及接口技术》课程设计简易教学打铃器设计.doc》由会员分享,可在线阅读,更多相关《《微机原理及接口技术》课程设计简易教学打铃器设计.doc(20页珍藏版)》请在三一办公上搜索。

1、目 录1 设计任务与要求11.1设计任务1 1.2设计要求12 硬件框图与说明32.1时间显示模块22.2计时模块32.3主模块43 电路原理图与说明63.1闹铃指示电路63.2时间显示电路63.3计时电路84 软件设计主程序流程图9 4.1显示模块流程图9 4.2计时模块流程图10 4.3主程序流程图11总结体会12参考文献13附录14简易教学打铃器设计一、 设计任务与要求1.1设计任务通过一个学期对微机原理及接口技术学习,掌握的知识还停留在理论的上。但是这是一门实践性较强的课程,让学生在学完该课程之后,进行一次课程设计,使学生将课堂所学的知识和实践有机结合起来,初步掌握计算机应用系统设计的

2、步骤和接口设计的方法,提高分析和解决实际问题的能力。前期完成的实验有:8259A中断控制器实验,8254定时计数器实验,8255并行接口实验。 因此此次要求同学做出简易教学打铃器课程设计,掌握DMA工作原理,中断工作原理,定时计数原理,并行通信原理,以及掌握8253,8259A,8279等芯片的功能、结构和应用。1.2设计要求(1)提供PC微机一台,用于对程序的编译测试等,同时还需要对实验设备进行控制,提供整个程序的运行平台,并且收集和释放硬件信号,实现程序功能。(2)提供TD-PIT+一台,此设备必须能提供8253、8255、8259和显示灯等必要芯片。并且能通过接受PC机传来的信息,显示出

3、相应的功能。以支持电子时钟的实现。 (3)总体内容:设计以教学打铃器,能在数码管上显示时间并计时。 (4)接口设计:根据题目和所用的接口电路芯片设计出完整的接口电路,并在实验系统上完成电路的连接和调试通过. (5)程序设计:要求画出程序框图,设计出全部程序并给出程序设计说明和程序注释。二、 硬件框图与说明 本设计主要由基本显示模块、系统走时模块和主模块等组成。2.1时间显示模块使用中断控制器8259A控制,它将中断源优先级 排队、辨别中断源以及提供中断矢量的电路集于一片中,因此无需附加任何电路,只需对8259A 进行编程,就可以管理8 级中断,并选择优先模式和中断请求方式,即中断结构可以由用户

4、编 程来设定。同时,在不需增加其他电路的情况下,通过多片8259A 的级连,能构成多达64 级的矢量中断系统。它的管理功能包括:1)记录各级中断源请求,2)判别优先级,确定是否响应 和响应哪一级中断,3)响应中断时,向CPU 传送中断类型号。8259A 的内部结构和引脚如图2.1所示:2.1 8259内部结构及引脚8259A 的命令共有7 个,一类是初始化命令字,另一类是操作命令。8259A 的编程就是根据 应用需要将初始化命令字ICW1-ICW4 和操作命令字OCW1- OCW3 分别写入初始化命令寄存器 组和操作命令寄存器组。OCW1-OCW3 各命令字格式如图2.2所示,其中OCW1 用

5、于设置中断屏蔽操作字,OCW2 用于设置优先级循环方式和 中断结束方式的操作命令字,OCW3 用于设置和撤销特殊屏蔽方式、设置中断查询方式以及设 置对8259 内部寄存器的读出命令。2.2 OCW1-OCW3 各命令字格2.2计时模块 该模块的主要功能是对时、分、秒的运算,并把运算出的最终结果存放到事先已经开辟的内存单元里,以便显示模块即时地显示出来。该模块可细分为秒定时模块和运算模块。秒定时模块负责提供中断信号,由于CPU运算模块中的指令消耗一定的时间,所以中断信号最好通过硬件来实现,可以选择实验箱中的8253定时/计数器来提供,中断信号是8253的通道2工作方式3时,产生一个30HZ的脉冲

6、信号。运算模块负责时、分、秒的计算,该模块主要通过8259的IR7号中断来实现,但由于每30HZ一次中断请求,所以在中断服务程序必须利用已申请内存单元COUNT来统计中断请求的次数,只有当COUNT的值为30时,才能让秒单元内的数值加1。另外,在中断服务程序里,必须对秒、分和时的单元内的数值进行判断,当秒加到60时,分必须加1,秒清零;当分加到60时,时加1,分清零;当时加到24时,直接清零,然后转到调用处。8253 具有以下基本功能: 1、 有3 个独立的16 位计数器; 2、 每个计数器可按二进制或十进制(BCD)计数; 每个计数器可编程工作于6 种不同工作方式;每个计数器允许的最高计数频

7、率为10MHz(8253 为2MHz); 3、计数脉冲可以是有规律的时钟信号,也可以是随机信号。计数初值公式为n=fCLKi fOUTi,其中fCLKi是输入时钟脉冲的频率,fOUTi是输出波形的频率。2.3 8253内部结构和引脚图是8253 的内部结构框图和引脚图,它是由与CPU 的接口、内部控制电路和三个计数器组成。8253 的工作方式如下述: (1) 方式0 :计数到0 结束输出正跃变信号方式。 (2) 方式1:硬件可重触发单稳方式。 (3) 方式2 :频率发生器方式。 (4) 方式3 :方波发生器。 (5) 方式4 :软件触发选通方式。 (6) 方式5 :硬件触发选通方式。8253

8、的控制字有两个:一个用来设置计数器的工作方式,称为方式控制字;另一个用来设 置读回命令,称为读回控制字。这两个控制字共用一个地址,由标识位来区分。控制字格式如表3-9-1 所示。读回控制字格式如表3-9-2 所示。当读回控制字的D4 位为0 时,由该读回控制字D1D2 位指定的计数器的状态寄存器内容将被锁存到状态寄存器中。状态字格式如表2.6所示:图2.4 8253状态字格式2.3主模块设计 系统的连线图主要由五个部分构成。8259中断控制器、8255并口控制器、8253定时计数器、8279键盘及数码管显示单元、开关及LED显示单元构成。如2.5图所示: .三、 电路原理图与说明 简易教学打铃

9、器的电路基本应包括秒指示电路、时间显示电路、按键电路、供电电源以及蜂鸣器指示电路等几部分。电子闹钟的系统框架如图3.1示。按键与按钮电路复位等辅助电路位数码管显示电路闹铃声光指示电路电源系统图3.1系统电路原理框图3.1闹铃指示电路本系统采用声音指示,其电路如右图所示。其关键元件是蜂鸣器。蜂鸣器有无源和有源两种,有源的只需外加适当直流电源电压即可,元件内部已封装了音频振荡电路,在得电状态下即起振发声。给予本电路的特点及实现功能的要求,我们选用有源的蜂鸣器。 3.2时间显示电路 8279A用来控制显示器显示时钟。按键K1+和K2+分别作为IR2和IR6的中断请求信号。按键K1+启动/关闭对时功能

10、,它决定是否屏蔽IR7和IR6中断源。学校实验室提供的8279与数码管相连如图3.2所示。3.2 8279与数码管电路3.3计时电路在本系统中,用到的8253的功能只是相当于一个定时计,我们给定时器输入30KHz频率的脉冲,这样每隔一秒就会在OUT0端产生0到1的跃变,作为中断IRQ的请求信号。当然,时钟的计数也有其特定的规则,那就是秒、分的个位逢十进一,十位逢六进一,所以,我们可以通过中断处理程序来控制其进位。这样我们便完成了计时功能。8253运行原理图如3.3.1图3.3.18253运行原理图8253的计时功能如图3.3.2所示图3.3.2计时原理图 四、 软件设计主要模块流程图4.1显示

11、模块该模块主要是将运算模块和对时模块运算出来并存放在内存单元里的十八进制时位、分位和秒位数值转化为十进制,并通过八只数码管显示出来。此模块实现的硬件是使用实验箱中的LED单元,采用软件译码,即在程序中设置一个段选码表。CPU直接往LED输出八段代码,省去了硬件译码器。显示模块流程图如图4.1所示。4.1显示模块流程图显示的基本代码如下:MOV AX,SEC ;完成秒计时值的显示 CALL DECSHOW MOV AX,0E0DH ;回车,置光标到行首 INT 10H这是对秒的显示,以此类推可以得到显示分、时的代码。4.2计时模块运算模块负责时、分、秒的计算,该模块主要通过8259的IR7号中断

12、来实现,但由于每30HZ一次中断请求,所以在中断服务程序必须利用已申请内存单元COUNT来统计中断请求的次数,只有当COUNT的值为30时,才能让秒单元内的数值加1。另外,在中断服务程序里,必须对秒、分和时的单元内的数值进行判断,当秒加到60时,分必须加1,秒清零;当分加到60时,时加1,分清零;当时加到24时,直接清零,然后转到调用处。计时模块流程图如下图所示。设置初值设置外部中断开启定时器设置定时/计时工作方式闹钟判断N更新显示秒指示取反闹钟判断显示分位寄存器加1BCD码调整显示到60分闹铃判断Y小时赋新值#01到60S了吗?时位寄存器加1时数据BCD码调整时赋#00NY满13小时3满24

13、小时显示NYYN判断NY计时的基本代码INC COUNT CMP COUNT,30 JNZ OVER MOV COUNT,0 INC SEC CMP SEC,10 ;计时值自增,到10即归0 JNE DIS MOV SEC,0MOV AX,HOUR MOV DX,0 ;完成时计时值的显示 MOV BX,10 DIV BX4.3主程序流程图 图4.3系统实现流程图 主程序的流程图是对整个程序的逻辑的图象表示。首先是设置8253、8255、8259的各个端口地址。接着初始化各个芯片,开始计时,并通过8259中断控制时间的正确显示。在整个过程中都在检测是否有铵键响应。有则停止,没有则返回继续执行。(

14、源程序见附录)五、 小结通过近一周的课程设计时间,课程设计的基本目的达到了。另外还有很多其它有益的地方。本系统完成了教学打铃的基本功能。利用8253定时器从0开始进行计时,将计时的结果显示在数码管上。每隔1秒,秒钟计时一次,到60秒,分钟加1,到60分小时加1,数字变动信息通过8279送数码管显示。期间通过8259中断控制器实现秒到分,分到时的转变,准确实现了计时。随着科技的进步电子时钟的实现方法已经很多,由传统的物理实现转变到软件实现,而且起精确程度也大大的提高,且实现方法也越来越简单。在这里是在学完了微机原理及接口技术进行的课程设计,所以这里是基于微机原理的基础知识来实现电子时钟的,首先应

15、该画出硬件设计图,这个过程是基础,然后是流程图,这个是重点,流程图的完成在很大程度上等于程序的完成,然后是程序的编写。通过辅导老师的指导,同学们的相互帮助,我收获了很多,也通过设计增强了自己动手的能力,同时也对自己所学到的知识作一个肯定。学好这门课程在自己今后的学习和工作中都有很大的作用,对自己以后的帮助也很大.这次课程设计给我的最大的印象就是如果自己有了兴趣,就动手去做,困难在你的勇气和毅力下是抬不了头的。而在这次课程设计中,也是对汇编语言的复习。同时在设计中使我的编程水平提高了一大步,使我认识到合作的可贵。这次设计涉及到很多芯片的应用,最大特点是软,硬件的结合,对动手能里的要求很大。也使我

16、更加的体会到,在一定程度和科技水平上,硬件和软件是可以实现对等转化的。六、 参考文献1 陈忠强.现代微机原理与接口技术.冶金工业出版社.2006年2 郭兰英. 微机原理与接口技术. 清华大学出版社. 2006年3 西安唐都科教仪器公司.32位微机原理与接口技术实验教程.2005年4 西安唐都科教仪器公司.32位微机原理与接口技术用户手册.2005年5 胡汉才. 微机原理与接口技术课程设计M. 北京:清华大学出版,19966 付家才. 微型计算机及其接口技术学习指导与题典M. 北京:化学工业出版社,2004.57 潘新民.微型计算机控制技术M.北京:人民邮电出版社,1999.98 余锡存 .曹国

17、华. 汇编语言、微机原理及接口技术M.陕西:西安电子科技大学出版社,2000.79 雷丽文.微机原理与接口技术M.北京:电子工业出版社,1997.210 李银华.电子线路技术指导.北京航空航天大学出版社,2005附 录;*根据CHECK配置信息修改下列符号值*INTR_IVADD EQU 01CCH ;INTR对应的中断矢量地址INTR_OCW1 EQU 0A1H ;INTR对应PC机内部8259的OCW1地址INTR_OCW2 EQU 0A0H ;INTR对应PC机内部8259的OCW2地址INTR_IM EQU 0F7H ;INTR对应的中断屏蔽字PCI_INTCSR EQU 0DF38H

18、 ;PCI卡中断控制寄存器地址IOY0 EQU 0DA00HIOY1 EQU 0DA40H;*MY8254_COUNT0 EQU IOY0+00H*4 ;8254计数器0端口地址MY8254_COUNT1 EQU IOY0+01H*4 ;8254计数器1端口地址MY8254_COUNT2 EQU IOY0+02H*4 ;8254计数器2端口地址MY8254_MODE EQU IOY0+03H*4 ;8254控制寄存器端口地址MY8255_A EQU IOY1+00H*4 ;8255的A口地址MY8255_B EQU IOY1+01H*4 ;8255的B口地址MY8255_C EQU IOY1+

19、02H*4 ;8255的C口地址MY8255_MODE EQU IOY1+03H*4 ;8255的控制寄存器地址STACK1 SEGMENT STACK DW 256 DUP(?)STACK1 ENDSDATA SEGMENT CS_BAK DW ? ;保存INTR原中断处理程序入口段地址的变量IP_BAK DW ? ;保存INTR原中断处理程序入口偏移地址的变量IM_BAK DB ? ;保存INTR原中断屏蔽字的变量SEC DW 0 ;秒计时变量MIN DW 9HOUR DW 0COUNT DB 0DATA ENDSDATA1 SEGMENT VALUE DB 3FH, 06H, 5BH,

20、4FH, 66H, 6DH, 7DH, 07H, 7FH, 6FH,77HDATA1 ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA1START: MOV AX,DATA MOV DS,AX CLI MOV DX,PCI_INTCSR SUB DX,19H IN AL,DX MOV DX,PCI_INTCSR ;初始化PCI卡中断控制寄存器 MOV AX,1F00H ;向PCI_INTCSR中写入003F1F00H OUT DX,AX ADD DX,2 MOV AX,003FH OUT DX,AX MOV AX,0000H ;替换INTR的中断矢

21、量 MOV ES,AX MOV DI,INTR_IVADD MOV AX,ES:DI MOV IP_BAK,AX ;保存INTR原中断处理程序入口偏移地址 MOV AX,OFFSET MYISR MOV ES:DI,AX ;设置当前中断处理程序入口偏移地址 ADD DI,2 MOV AX,ES:DI MOV CS_BAK,AX ;保存INTR原中断处理程序入口段地址 MOV AX,SEG MYISR MOV ES:DI,AX ;设置当前中断处理程序入口段地址 MOV DX,INTR_OCW1 ;设置中断屏蔽寄存器,打开INTR的屏蔽位 IN AL,DX MOV IM_BAK,AL ;保存INT

22、R原中断屏蔽字 AND AL,INTR_IM OUT DX,AL MOV DX,MY8255_MODE ;初始化8255工作方式 MOV AL,80H ;工作方式0,A口输出 OUT DX,AL MOV DX,MY8255_A ;写A口发出的起始数据 MOV AL,3FH OUT DX,AL STI MOV SEC,0 MOV AX,SEC CALL DECSHOW MOV AX,0E0DH ;回车,置光标到行首 INT 10H MOV DX,MY8254_MODE ;初始化8254工作方式 MOV AL,34H ;计数器0,方式2 OUT DX,AL MOV DX,MY8254_COUNT0

23、 ;装入计数初值 MOV AL,0A2H OUT DX,AL MOV AL,87H OUT DX,ALWAIT1: MOV AH,1 ;判断是否有按键按下 INT 16H JZ WAIT1 ;无按键则跳回继续等待,有则退出QUIT: CLI MOV DX,PCI_INTCSR ;恢复PCI卡中断控制寄存器 MOV AX,0000H OUT DX,AX MOV AX,0000H ;恢复INTR原中断矢量 MOV ES,AX MOV DI,INTR_IVADD MOV AX,IP_BAK ;恢复INTR原中断处理程序入口偏移地址 MOV ES:DI,AX ADD DI,2 MOV AX,CS_BA

24、K ;恢复INTR原中断处理程序入口段地址 MOV ES:DI,AX MOV DX,INTR_OCW1 ;恢复INTR原中断屏蔽寄存器的屏蔽字 MOV AL,IM_BAK OUT DX,AL STI MOV AX,4C00H ;返回到DOS INT 21HMYISR PROC NEAR ;中断处理程序MYISR MOV AX,DATA MOV DS,AX INC COUNT CMP COUNT,30 JNZ OVER MOV COUNT,0 INC SEC CMP SEC,10 ;计时值自增,到10即归0 JNE DIS MOV SEC,0 add MIN,1 CMP MIN,10 JNE D

25、IS MOV MIN,0 add HOUR,1DIS: MOV AX,SEC ;完成秒计时值的显示 CALL DECSHOW MOV AX,0E0DH ;回车,置光标到行首 INT 10HOVER: MOV DX,PCI_INTCSR SUB DX,19H IN AL,DX MOV DX,PCI_INTCSR ;清PCI卡中断控制寄存器标志位 ADD DX,2 MOV AX,003FH OUT DX,AX MOV DX,INTR_OCW2 ;向PC机内部8259发送中断结束命令 MOV AL,20H OUT DX,AL MOV AL,20H OUT 20H,AL IRETMYISR ENDPD

26、ECSHOW PROC NEAR MOV AX,DATA MOV DS,AX MOV AX,HOUR MOV DX,0 ;完成时计时值的显示 MOV BX,10 DIV BX ADD AL,30H ;显示计时值十位 MOV AH,0EH INT 10H ADD DL,30H ;显示计时值个位 MOV AL,DL MOV AH,0EH INT 10Hmov al,3ahmov ah,0ehint 10h MOV AX,MIN MOV DX,0 ;完成分计时值的显示 MOV BX,10 DIV BX ADD AL,30H ;显示计时值十位 MOV AH,0EH INT 10H ADD DL,30H

27、 ;显示计时值个位 MOV AL,DL MOV AH,0EH INT 10Hmov al,3ahmov ah,0ehint 10h MOV AX,SEC MOV DX,0 ;完成秒计时值的显示 MOV BX,10 DIV BX ADD AL,30H ;显示计时值十位 MOV AH,0EH INT 10H XOR BX,BX MOV BL,DL ADD DL,30H ;显示计时值个位 MOV AL,DL MOV AH,0EH INT 10H MOV DX,MY8255_A ;写A口 MOV AX,DATA1 MOV ES,AX LEA DI,VALUE ;ES: DATA1, DI: VALUE MOV AL,ES:DI+BX OUT DX,AL RETDECSHOW ENDPCODE ENDS END START

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号