1、南京工程学院通信工程学院课程设计说明书(论文)题 目 电子钟设计 课 程 名 称 微机原理与接口技术课程设计 专 业 班 级 学 生 姓 名 学 号 设 计 地 点 指 导 教 师 设计起止时间:2013年12月23日至2013年12月27日目录一、设计要求3二、基本任务3三、总体设计31、设计思路32、设计流程图43、硬件设计5四、功能模块实现71、显示模块72、计数模块73、中断模块84、定时模块85、修改模块8五、硬件连线8六、调试结果10七、心得体会10八、参考文献11九、附录:源程序11一、设计要求利用8253可编程定时/计数器、8259中断控制器、8255可编程并行接口芯片和七段数
2、码管设计一个电子钟的电路,并编写一段程序使得该电子钟能正常运行。二、基本任务(1) 选用8253的计数器2进行100MS的定时,其输出OUT2与8259的IR0相连,当定时到100MS时产生一个中断信号,在中断服务程序中进行天数、时、分、秒的计数,并送入相应的存储单元;(2) 8255的A口接七段数码管的位选信号,B口接数码管的段选信号,天数、时、分、秒的数值通过对8255的编程可送到七段数码管上显示。附加任务:选用8253的计数器0、1产生一个10s的时间定时,并将其输出OUT1与蜂鸣器相接,产生10S蜂鸣。8255的C口接开关输入,用K1、K2、K3分别控制时、分、秒的修改。三、 总体设计
3、利用8253可编程定时/计数器、8259中断控制器、8255可编程并行接口芯片和七段数码管设计一个电子钟的电路,并编制一程序使得该电子钟能正常运行。电子钟除了能够完成正常的计时、显示功能外,还必须具备正常时、分、秒的数值显示功能、时间设定功能等。绘制相应的硬件电路原理图并完成接线。编制相应控制程序实现电子钟的计时、显示等功能。控制程序设计规范,应有适当的注释,表达清楚。钟的时分秒显示分别采用6个7段LED数码管实现。1、设计思路(1) 在主程序中要分别对8253、8259、8255进行初始化编程,8253的计数器2可在方式2下工作。(2) 8255的A口、B口都设为方式0,为基本的输入输出的方
4、式(3) 在中断服务程序中对中断次数进行统计,当满10次时就进行一次时、分、秒的处理。时、分、秒,分别对应6个存储单元,分别存放时、分、秒的十位和个位。当中断次数满10次时,将秒的个位加1,判断是否到10,如到了则十位加1,个位清零;再判断十位是否到6,如到了则十位清零,分的个位加1,同时对分、时作相应处理。(4) 七段数码管显示作为子程序,将时、分、秒对应存储单元的内容分别取出并转换成相应的段码,从8255的B口输出,A口输出对应位的位选信号,延时后进行下一位的显示(5) 用8253的计数器0、1产生一个20S周期的方波,计数器0工作在方式2下,计数器1工作在方式3下。(6) 在循环程序中检
5、测K1、K2、K3是否为高电平,若是则相应位置加1,同时还得引入变量控制K1、K2、K3一直在高电平的状况,确保每次按动开关相应位置只加一次。2、设计流程图开始设置中断服务程序地址设置8253工作方式及定时常数设置8255工作方式清显示器缓冲区清时、分、秒及中断计次单元开中断将时、分、秒单元中数据转换为BCD码并存入显示缓冲区调用显示子程序 主程序 中断服务程序3、硬件设计:8259A芯片的内部结构及引脚中断控制器8259A是Intel公司专为控制优先级中断而设计开发的芯片。它将中断源优先排队、辨别中断源以及提供中断矢量的电路集中于一片中。因此无需附加任何电路,只需对8259A编程,就可以管理
6、8级中断,并选择优先模式和中断请求方式,即中断结构可以由用户编程来设定。在MD微机系统中,8259芯片工作于单片方式。8259引脚图如图3.3,各引脚功能如下。D7D0八条双向数据线;WR(低电平有效)写输入信号;RD(低电平有效)读输入信号;CS(低电平有效)片选输入信号;A0地址信号;INT中断请求信号;INTA(低电平有效)中断响应信号;CAS0CAS2级联信号,形成一条专用8259A总线,以便多片8259A的级联;图3.1 8259A引脚图SP/EN从编程/允许级联。在缓冲方式中,可用做输出信号以控制总线缓冲器的接收和发送。在非缓冲方式中,作为输入信号用于表示主片还是从片;IR0IR7
7、外部中断请求输入线。要求输入的中断请求信号是由低电平到高电平的上升沿(并保持高电平到CPU响应时为止)或者是高电平。8255芯片的内部结构及引脚8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种工作方式下工作:方式0基本输入/输出方式方式1选通输入/输出方式图3.2 8255引脚图方式2双向选通输入/输出方式8255引脚图如图3.2示,各引脚功能如下。D7D0与CPU侧连接的八条双向数据线;WR(低电平有效)写输入信号;RD(低电平有效)读输入信号;CS(低电平有效)片选输入信号;A0、A1片内寄存器选择输入信
8、号;PA7PA0A口外设双向数据线;PB7PB0B口外设双向数据线;PC7PC0C口外设双向数据线;RESET复位输入信号8253芯片的内部结构及引脚8253可编程定时/计数器是Intel公司生产的通用外围芯片之一,有3个独立的十六位计数器,技术频率范围为02MHZ,它所有的技术方式和操作方式都通过编程控制。8253的功能用途是:(1)延时中断 (2)可编程频率发生器 (3)事件计数器 (4)二进倍频器 (5)实时时钟(6)数字单稳(7)复杂的电机控制器8253有六种工作方式:(1)方式0:计数结束中断(2)方式1:可编程频率发生器(3)方式2:频率发生器(4)方式3:方波频率发生器(5)方式
9、4:软件触发的选通信号(6)方式5:硬件触发的选通信号8253各引脚功能如下。D7D0八条双向数据线;WR(低电平有效)写输入信号;RD(低电平有效)读输入信号;CS(低电平有效)片选输入信号;A0、A1片内寄存器地址输入信号;CLK计数输入,用于输入定时基准脉冲或计数脉冲;OUT输出信号,以相应的电平指示计数的完成,或输出脉冲波形;GATE选通输入(门控输入),用于启动或禁止计数器的操作,以使计数器和计测对象同步。四、功能模块实现1、显示模块显示模块是将显示缓冲区的数值送到LED显示的功能模块,显示缓冲区是由八个字节构成,分别保存小时的高位和低位,分钟的高位和低位,秒钟的高位和低位,一个横杠
10、和一位天数的显示。硬件上主要涉及到的是8255。定义8255控制字为89H,其在方式0下工作,A,B输出,C输入的工作方式。8255的A口接七段数码管的位选信号,B口接数码管的段选信号,C口接开关,用排线接好。2、计数模块软件上主要是对时、分、秒、天的扫描显示,主要是在DISPLAYLED函数里体现出来:首先将10000000B送至OUTBIT端口,即确定LED的哪一位显示,再把BX中存储在内存中的翻译好的显示码送至OUTSEG短口,来确定显示什么字符。依次将加而减一,直至为跳转而字符的译码则是在STSRT函数中的LP中完成的,以小时HOUR为例,将存入中再以,按“余高商低”的规则,中存的是小
11、时的个位中村的是小时的十位,将转换成显示码,并存入显示缓冲区。其他分、秒、天类似。计数模块的主要芯片是8253,8253控制字 1010 0111H,表示选用计数器2,对高字节读写,方式3。因为选用的是计数器2,则OUT的端口即选用OUT2,连至8259的IR0端口,CLK2端口接来自实验箱的62.5KHz的时钟频率。将62500HZ的频率转化为10HZ的频率,即题目要求的100MS。每隔100MS送出一个信号至8259,配合中断程序的实现。则要求初始值N0=100MS*62.5K=6250。3、中断模块控制终端模块的主要芯片是8259。IINIT函数是专为初始化8259。初始化8259的命令
12、字:ICW1为00010011B,即中断请求是边沿触发,用于8086系统,需要设置ICW4。ICW2为00001000B,ICW2是设置中断类型号的初始化命令字。ICW4为00001001B,ICW4叫中断结束方式初始化。OCW1为11111110B即表示只有M0允许中断,故接线时8253的OUT2,连至8259的IR0端口.。软件上包括初始化8259的命令字和操作命令字,中断服务程序,中断服务子程序。设一个变量CNT,每次调用中断服务程序则CNT加一,在判断CNT能不能被10整除,若能,则秒加一;不能,跳出中断程序。若秒满60,则分加一,秒数清零,依次类推。4、定时模块定时模块由8253完成
13、,8253CLK0接2MHZ频率,OUT0接CLK1,OUT1接蜂鸣器,GATE0接高电平,GATE1接脉冲信号,当其为高电平时有效。计数器0初始值设为5000,计数器1初始值设为8000,从OUT1出来的信号为周期20S的方波,而蜂鸣器为低电平有效。5、修改模块修改模块是由8255完成的,从C口输入开关信号控制时间的修改,中间引入中间变量,以防每按动开关一次,跳动多次。五、 硬件连线A3区:A0、A1B3、B4、C5区:A0、A1A3区:CS3B3区:CSA3区:CS4C5区:CSC5区:GATE0、GATE2-VCCA3区:CS8B4区:CSB3区:INT、INTAES8688:INTR、
14、INTAB3区:IROC5区:OUT2频率输出:62.5kC5区:CLK2C5区:GATE1-单位脉冲C5区:OUT0-C5区:CLK1C5区:OUT1-D1区:CTRLB4区:C-G6区:JP80频率输出:2MHZ-C5区:CLK0B4区:A、BLED区:C、B数据线六、调试结果1、 按动软件全速运行后,八位显示器分别为00.00.00-1(第一个小数点前两位表示小时,第二个小数点前两位表示分钟,第三个小数点前两位表示秒,最后一位表示天)。秒位从0开始计时,到60秒时清零,分钟为1,以此类推。2、 将单位脉冲拨动到高电平,则从按动时刻开始10S后蜂鸣器响,再将脉冲调到低电平,蜂鸣器停止鸣响。
15、3、 拨动开关K1一次,时显示器加1,拨动K2一次,分显示器加1,同理K3。七、心得体会本次课程设计历时四天,从第一天的查找资料到最后老师的验收,学到了许多之前在课堂上遗漏的知识,更加熟悉了8255、8253、8259等芯片的功能,使我受益匪浅。微机原理与接口技术是一门很有趣的课程,任何一个计算机系统都是一个复杂的整体,学习计算机原理是要涉及到整体的每一部分。讨论某一部分原理时又要涉及到其它部分的工作原理。这样一来,不仅不能在短时间内较深入理解计算机的工作原理,而且也很难孤立地理解某一部分的工作原理。所以,在循序渐进的课堂教学过程中,我总是处于“学会了一些新知识,弄清了一些原来保留的问题,又出
16、现了一些新问题”的循环中,直到课程结束时,才把保留的问题基本搞清楚。学习该门课程知识时,其思维方法也和其它课程不同,该课程偏重于工程思维,具体地说,在了解了微处理器各种芯片的功能和外部特性以后,剩下额是如何将它们用于实际系统中,其创造性劳动在于如何用计算机的有关技术和厂家提供的各种芯片,设计实用的电路和系统,再配上相应的应用程序,完成各种实际应用项目。这次课程设计,首先,让我学习和掌握计算机中常用接口电路及8255A的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。通过实践,进一步加深了对专业知识和理论知识学习的认识和理解,使自己的设计水平和
17、对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。本次设计给我最大的收获就是动手能力的重要性,实践和理论上是有差距的,理论与实际相结合是很重要的。只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。动手试验也让自己对书本知识有了更深刻的认识,把书本知识真正的转化为自己所掌握的东西,能加以利用。实验中个人的力量是不及群体的力量的,我和两个同学自成一组,三个人分工合作,做事的效率高了很多。虽然有时候会为了
18、一些细节争论不休,但最后得出的总是最好的结论。而且实验也教会我们在团队中要善于与人相处,与人共事,不要一个人解决所有问题。总之,这次课程设计对于我们有很大的帮助,通过课程设计,我更加深入地理解了,微机原理课程上讲到的各种芯片的功能,以及引脚的作用,同时加深了对于主要芯片的应用的认识,同时在试验室的环境里熟悉了汇编程序的编写过程和运行过程,最后还提高了自己的动手能力。在此我还要感谢老师的悉心指导和同组人员的协助及配合,正是因为你们的帮助才确保了本次课程设计的顺利进行,谢谢!八、 参考文献1.李干林,李升. 微机原理及接口技术实验指导书.北京:北京大学出版社.2.李继灿.新编16/32位微型计算机
19、原理及应用(第4版).北京:清华大学出版社.3.周荷琴,吴秀清.微型计算机原理与接口技术.合肥:中国科学技术大学出版社.九、 附录:源程序D8253K EQU 0C003H ;8253控制口 D8253D_0 EQU 0C000H D8253D_1 EQU 0C001H D8253D_2 EQU 0C002H MD8255 EQU 89H ;8255控制字 1000 1001H,A输出,B输出,C输入PA8255 EQU 08000H PC8255 EQU 08002HCTL8255 EQU 08003H OUTBIT EQU 08000H ;位控制口 OUTSEG EQU 08001H ;段
20、控制口 CS8259A EQU 0D000H ;8259地址 CS8259B EQU 0D001H DATA SEGMENT CNT DB 0 LEDBUF DB 8 DUP(?) ;显示缓冲 NUM DB 1 DUP(?) ;显示的数据 DELAYT DB 1 DUP(?)ZHOU DB 1 HOUR DB -1 MINUTE DB 0SECOND DB 0 CTDB 1mt DB 1VT DB 1LEDMAP: ;八段管显示码 DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H DATA ENDS SS
21、EG SEGMENT STACK DB 1000 DUP(?)SSEG ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:SSEGIINIT PROC NEAR ;初始化8259的命令字和操作命令字 MOV DX,CS8259A MOV AL,13H OUT DX,AL MOV DX,CS8259B MOV AL,08H OUT DX,AL MOV AL,09H OUT DX,AL MOV AL,0FEH OUT DX,AL RET IINIT ENDP WRIINTVER PROC NEAR ; 中断程序子程序 PUSH ES MOV AX,0 MOV
22、ES,AX MOV DI,20H LEA AX,IENTER STOSW MOV AX,CS STOSW POP ES RET ;返回WRIINTVER ENDP IENTER PROC ;中断服务程序 PUSH AX PUSH DX INC CNT CMP CNT,10 JNE EXIT MOV CNT,0 INC SECOND ;秒加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
23、,0 ;分清零 INC HOUR ;时加1 MOV AL,HOUR CMP AL,24 ;时数与24比较 JNE EXIT MOV HOUR,0 ;时清零 INC ZHOU MOV AL,ZHOU CMP AL,7 JNE EXIT MOV ZHOU,1 EXIT: MOV DX,CS8259A MOV AL,20H OUT DX,AL ;结束本次中断 POP DX POP AX IRET IENTER ENDP DISPLAYLED PROC NEAR ;显示程序,从左到右显示字符 MOV BX,OFFSET LEDBUF MOV CL,8 ;共8个八段管 MOV AH,10000000B
24、;从左边开始显示 DLOOP: MOV DX,OUTBIT NOT AH MOV AL, AH OUT DX, AL MOV AL,BX MOV DX,OUTSEG OUT DX,AL ;显示一位八段管 PUSH AX MOV AH,1 CALL DELAY ;调用延时程序 POP AX NOT AH SHR AH,1 INC BX DEC CL JNZ DLOOP MOV DX,OUTBIT MOV AL,0 OUT DX,AL ;关所有八段管 RET DISPLAYLED ENDP DELAY PROC NEAR ;延时子程序 PUSH AX PUSH CX MOV AL,0 MOV CX
25、,AX LOOP $ ; POP CX POP AX RET DELAY ENDP START: MOV AX,DATA MOV DS,AX MOV ES,AX NOP ;空操作 CLI ;使IF清0,禁止CPU响应中断 CALL IINIT ;初始化8259 CALL WRIINTVER ;调用中断程序,检查是否要进位 MOV AL,0B7H ;8253控制字 1011 0111H MOV DX,D8253K OUT DX,AL MOV DX,D8253D_2 MOV Al,50h ;利用8253计数器 OUT DX,AL mov al,62h out dx,al ;MOV AL,AH ;
26、OUT DX,AL mov dx,d8253k ;8253定时 mov al,35h out dx,al mov dx,d8253d_0 mov al,00h out dx,al mov al,50h out dx,al mov dx,d8253k mov al,77h out dx,al mov dx,d8253d_1 mov al,00h out dx,al mov al,80h out dx ,al MOV AL,MD8255 ;8255控制字 MOV DX,CTL8255 OUT DX,AL MOV CNT,0 ;计数值初始为0 MOV AL,CNT MOV DX,PA8255 OUT
27、 DX,AL STI ;开中断k1: mov al,cttest al,01h ;ct为1时,+1jz Y inc hourmov ct,00hmov al,hourcmp al,24jnz ss1mov hour,0K2: mov al,Mttest al,01hjz Y inc MINUTEmov Mt,00hmov al,MINUTEcmp al,60jnz ss1mov MINUTE,0K3: mov al,VTtest al,01hjz Y inc SECONDmov VT,00hmov al,SECONDcmp al,60jnz ss1mov SECOND,0 Y:jmp ss1
28、LP: mov dx,pc8255in al,dxtest al,80hjnz k1mov ct,01h TEST AL,40H JNZ K2 MOV MT,01H TEST AL,20H JNZ K3 MOV VT,01Hss1: 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,
29、AX MOV AL,BX ;时的个位转换成显示码 OR AL,80H MOV LEDBUF+1,AL ;显示码存入后一位显示缓冲区 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,S
30、ECOND 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+4,AL MOV BX,OFFSET LEDMAP MOV AL,CH MOV AH,0 ADD BX,AX MOV AL,BX ;秒的个位转换成显示码 MOV LEDBUF+5,AL MOV LEDBUF+6,01000000B ;显示横杠 MOV AL,ZHOU ;周的显示 MOV BX,OFFSET LEDMAP ADD BX,AX MOV AL,BX MOV LEDBUF+7,AL CALL DISPLAYLED ;调用显示程序 JMP LP CODE ENDS END START18
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100