《电子钟课程设计报告——微机原理与接口技术.docx》由会员分享,可在线阅读,更多相关《电子钟课程设计报告——微机原理与接口技术.docx(30页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、课 程 设 计 报 告课程名称微机原理与接口技术系别:工程技术系专业班级:电子信息工程 0901 学号:09XXXXXX5姓名:XXX课程题目:电子钟的设计与制作完成日期:2023-12-23指导教师:2023 年12月23日1、生疏唐都试验箱,把握试验箱各个模块的使用方法。课2、把握微机常用的输入输出方式及接口技术。程3、把握肯定的汇编语言学问,培育自己的动手操作力量。设4、学习程序设计的根本思路和方法。计目5、利用现在的试验器材和软件平台,进展试验的调试,实现电子钟的的各项功能要求,如动态显示实时时钟的时/分/秒数据。利用 8254 定时器设计一个具有分、秒显示的电子时钟,并定义一个课启动
2、键,当按下该键时时钟从当前设定值可在显示 ,缓冲区中予置开程设始走时。利用微机原理试验箱的数码管显示单元,把时间显示在 LED 数计码管上。要求课1、编写代码时应留意代码的准确性。程2、正确的在试验箱上安装各芯片,留意其引脚是否正确。设3、在更换芯片时应用起子从芯片两端轻轻翘起。计4、连接完电路时要检查电路是否正确。注意5、测试试验箱是否与 pc 机相连。事6、验证代码的正确性,觉察问题。项课选用 8253 计数器 2 进展 1s 的定时,其输出 OUT1 与 8259 的 IRQ0程相连,当定时到 1s 时产生一个中断效劳程序进展时、分、秒的计数, 设并送入相应的存储单元;8255 的 A
3、口接七段数码管的位选信号,B 口接计内数码管的段选信号。时、分、秒的数值通过对 8255 的编程可送到七段o数码管上显示。1、了解电子钟的工作原理课2、画出电路原理图程设3、依据原理图编写代码计4、连接电路图简5、将试验箱与 pc 机相连要6、植入代码,检查代码的正确性操作7、反复检验,查找问题,解决问题步8、撰写试验报告、试验过程及试验心得体会骤9、完成试验这次设计让我收获了很多,既是对自己所学到的学问作一个确定,也课是对微型计算机原理及应用的复习,更主要的是通过设计增加了自己程设动手的力量。在这次课程设计中涉及到很多芯片的应用,最大特点是软,计硬件的结合,对动手能里的要求很大,设计完成后我
4、的编程水平提高了一心大步。这次设计,更增加了我对微机原理的兴趣,为我将来的学习明确了得目标。同时加深了对相关理论知道及专业学问的把握度,熬炼及提高了理体会解问题,分析问题,解决问题的饿力量,更深刻的体会到了理论联系实际的重要性。课程评设 语计评语及 成指导教师成绩 绩年月日目录摘要1关键词2一、概述21.1 设计目的21.2 设计要求21.3 设计内容31.4 设计思想3二、设计与制作42.1 设计原理42.2 硬件电路设计52.3 程序流程图8三、结果分析9四、结论与展望9五、心得体会及建议10致谢11参考文献12电子钟的设计与制作摘要: 微机掌握即微型计算机原理掌握。是集CPU ,RAM
5、,ROM ,定时, 计数和多种接口于一体的微掌握器。它体积小,本钱低,功能强,广泛应用于智能产业和工业自动化上。微型计算机原理掌握应用技术飞速进展,纵观我们现在生活的各个领域,从的导航装置,到飞机上各种仪表的掌握,从计算机的网络通讯与数据传输,到工业自动化过程的实时掌握和数据处理,以及我们生活中广泛使用的各种智能IC 卡,电子宠物等,这些都离不开微型计算机原理掌握。我们组本次设计的题目是简洁电子钟程序设计,用到了定时芯片8254,中断掌握器 8259 和可编程并行芯片 8255。在编辑 1 毫秒定时程序时,用到了中断掌握器 8259。此程序主要由四局部组成:第一局部为最主要的局部定义显示界面;
6、其次局部为利用延时程序,并将调用的二进制表示的时间数转换成 ASCII 码,并将时间数存入内存区;第三局部将存在系统内存区的时间数用七段数码管显示出来;第四局部利用循环程序分别对秒个位、秒十位、分个位、分十位与相应的规定值进展比较,结合延时程序来实现电子钟数字的跳变,从而形成走时准确的电子钟。1该程序实现了准确显示秒和分,读数准确,走时精准。此电子钟能准确的从 0 分 0 秒走时到 59 分 59 秒,然后能自动回复到 0 分 0 秒循环走时。关键词:可编程并行芯片 8255 定时芯片 8254 中断掌握器8259延时计数比较定时中断七段数码显示管一、概述1.1 设计目的通过本次课程设计学习和
7、把握计算机中常用接口电路的应用和设 计技术,充分生疏理论学问对应用技术的指导性作用,进一步加强理论学问与应用相结合的实践和熬炼。通过这次设计实践能够进一步加深对专业学问和理论学问学习的生疏和理解,使设计者的设计水平和对所学学问的应用力量以及分析问题解决问题的力量得到全面提高。1.1.1 娴熟把握 8086/88 教学系统的根本操作和调试程序的各种指令。1.1.2 把握 8259 中断掌握器的工作原理和应用编程方法,练习编写中断程序的方法。1.1.3 把握 8255 的各种工作方式及其应用编程。1.1.4 把握 8253 定时/计数器的工作原理、工作方式及其应用编程。1.1.5 生疏编程及调试程
8、序的方法。1.2 设计要求利用 8259A 中断掌握器、8253 定时/计数器、8255A 接口芯片以及键盘和数码显示电路,设计一个电子时钟,由 8253 中断定时,小键盘掌握电子时钟的启停及初始值的预置。电子时钟的显示格式HH:MM:SS由左到右分别为时、分、秒,最大记时 59:59:59 超过这个时间时分秒位都清零从 00:00:00 重开头。1.3 设计内容选用 8253 计数器 2 进展 1s 的定时,其输出OUT1 与 8259 的IRQ0 相连,当定时到 1s 时产生一个中断效劳程序进展时、分、秒的计数, 并送入相应的存储单元;8255 的A 口接七段数码管的位选信号,B 口接数码
9、管的段选信号。时、分、秒的数值通过对 8255 的编程可送到七段数码管上显示。1.4 设计思想1.4.1 在主程序中要分别对 8253、8259、8255 进展初始化编程,8253 的计数器 2 可在方式 0 下工作。1.4.2 8255 的A 口、B 口都设为方式 0,为根本的输入输出方式。1.4.3 在中断效劳程序中对中断次数进展统计,当满 10 次时就进展一次时、分、秒的处理。时、分、秒分别对应 6 个存储单元,分别存放时、分、秒的十位和个位。当中断次数满10 次时,将秒的个位加1,同理对分,时亻相应处理。1.4.4 七段数码管显示作为子程序,将时、分、秒对应存储单元的内容分别取出并转换
10、成相应的段码,从 8255 的B 口输出,A 口输出对应位的位选信号,延时后进展下一位的显示。8259中断8255七段数码管脉冲产生电路8253定时器硬件连接的整体思想图。200I I 20720820F210I217译码器CPUD7D7PA78255硬件连接实物图D6D6D5PA6.PA5D0.PA46 位七段LED 数码管显示器D0 PA3 WRPA2启动键82598253CSD7A0CLK0WR.INTAOUT0RD.IR7GATE0D7D0IR6INTRINTA高电平1M二、设计与制作2.1 设计原理根本工作原理:系统设计的电子时钟主要由显示模块、时钟掌握模块和时钟运算模块三大局部组成
11、。以 8086 微处理器作CPU,用 8253 做定时器产生时钟频率供给一个频率为 10kHz 的时钟信号,要求每隔 10ms 完成一次扫描键盘的工作。在写入掌握字与计数初值后,每到10ms 定时器就启开工作,即当计数器减到 1 时,输出端OUT0 输出一个CLK 周期的低电平,向CPU 申请中断,当到达 100 次时,则输出端OUT1 输出1s,向CPU 申请中断,由 8255 掌握一个数码管显示,当计数到 60s 时,则输出端OUT2 向CPU 申请中断,由另一数码管显示 1min,同理由数码管显示 1h.CPU 处理,使数码管的显示发生变化。本设计由 8259A 中断掌握器、8253 定
12、时/计数器、8255A 接口芯片、LED 数码显示管和两个按键组成。主要用 8259A 的IRQ7 的中断效劳程序完成秒、分、时的运算即计时功能,IRQ6 的中断效劳程序完成调时、调分功能。8253 用来产生 50ms 的脉冲信号作为IRQ7 的中断恳求信号。按键KK1+和KK2+分别作为IRQ2 和IRQ6 的中断恳求信号。按键 KK1+启动/ 关闭对时功能。它打算是否屏蔽IRQ7 和IRQ6 中断源。8255A 负责将内存里的时位和分位值输出到数码管。电子时钟的显示格式HH:MM:SS 由左到右分别为时、分、秒,每百分之一秒对百分之一秒存放器的内容加一,并依次对秒、分、小时存放器的内容加一
13、,六个数码管动态显示时、分、秒的当前值。最大记时59:59:59 超过这个时间时分秒位都清零从 00:00:00 重开头。2.2 硬件电路设计2.2.1 8259 芯片介绍中断掌握器 8259A 是特地为掌握优先级中断而设计开发的芯片。它将中断源优先排队、区分5中断源以及供给中断矢量的电路集于一片中。因此无需附加任何电路, 只需对 8259A 进 行编程,就可以治理 8 级中断,并选择优先模式和中断恳求方式,即中断构造可以由用户编程来设定。同时,在不需要增加其他电路的状况下,通过多片8259A 的级连,能构成多达64 级的矢量中断系统。8259A 的主要功能如下:一片 8259A 可以承受并治
14、理 8 级可屏蔽中断 恳求,通过82599芯片片8259A级联可扩展至 64 级可屏蔽中断优先掌握。对每一级中断都可以通过程序来屏蔽或允许。在中断响应周期,8259A 可为CPU 供给相应的中断类型码。具有多种工作方式,并可通过编程来加以选择。通过初始化编程向8259A 写入相应的初始化命令 ICW,可以使芯片处于一个规定的根本工作方式,并在此方式下进展工作。 8259A 的初始化命令字共有 4 个ICW1-ICW4,进展初始化时要求ICW1-ICW4 按肯定的挨次写入。2.2.2 8253 芯片介绍8253 是NMOS 工艺制成的可编程计数器/定时器,有几种芯片型号,外形引脚及功能都是兼容的
15、,只是工作的最高计数速率有所差异, 例如 82532.6MHz,8253-5(5MHz) 8253 内部有三个计数器, 分别成为计数器 0、计数器 1 和计数器 2,他们的机68253 芯片构完全一样。每个计数器的输入和输出都打算于设置在掌握存放器中的掌握 字,相互之间工作完全独立。每个计数器通过三个引脚和外部联系,一个为时钟输入端 CLK,一个为门控信号输入端 GATE,另一个为输出端OUT。每个计数 器内部有一个 8 位的掌握存放器,还有一个16 位的计数初值存放器CR、一个计数执行部件CE 和一个输出锁存器OL。2.2.3 8255 芯片介绍8255 特性:一个并行输入/输出的 LSI
16、芯片,多功能的I/O 器件,可作为CPU 总线与外围的接口.具有24 个可编程设置的I/O 口,即使3组 8 位的I/O 口为 PA 口,PB 口和 PC 口. 它们又可分为两组12 位的I/O 口,A 组包8255 芯片括 A 口及 C 口 ( 高 4 位,PC4PC7),B 组包括 B 口及 C 口(低 4 位,PC0PC3).A 组可设置为根本的I/O 口,闪控(STROBE)的I/O 闪控式, 双向I /O3 种模式;B 组只能设置为根本I/O 或闪控式I/O 两种模式,而这些操作模式完全由掌握存放器的掌握字打算.8255 引脚功能:RESET:复位输入线 , CS:芯片选择信号线 ,
17、 RD:读信号线 , WR:写入信号 , D0 D7:三态双向数据总线 ,PA0 PA7:端口 A 输入输出7设置 8255 工作方式清时、分、秒及中断计数单元开中断设置 8253 工作方式及定时常数清显示缓冲区N中断计数值减10 ?Y中断计数单元清零秒计时值加1N秒值 =60 ?Y秒计数单元清零分计时值加1N分值 -60 ?Y分计数单元清零小时计时值加1N小时值 =-24 ?Y小时计时单元清零线 ,PB0PB7:端口 B 输入输出线, PC0PC7:端口 C 输入输出线, A0,A1:地址选择线设置中断效劳程序地址中断计数值加12.3 程序流程图开头中断返回将时、分、秒单元中数据转换为 BC
18、D 码并存入显示缓冲区调用显示子程序输出中断完毕命令主程序流程图中断效劳程序流程图10开头时、分转化为十进制,存到内存单元计算时、分的各位数值在 TABLE 中对应编码依次在 61H 段输出到 LED 显完毕显示模块流程图:三、结果分析最终,我们得到了预期的结果,电路能完成准确的硬件定时和显示。在一开头的连线中,由于马虎,没有把片选信号连正确,后来参考了网上的一些资料,认真的盘查,才觉察了错误,在试验过程中有些试验箱也可能会存在一些问题,有时可以换个试验箱解决问题四、结论与展望将编写好的源程序输入,编译后消灭很多错误,经过反复修改直到程序运行通过。将生成的可执行程序装入TND86/88 的内存
19、里,在监控状态下运行程序,可是数码管显示的数字并不与理论计算值相符合,并且显示的数字不停地闪动,经过反复分析源程序觉察问题消灭在内存单元里时位和分位在转化为十进制时,存储转化的结果的地址空间的挨次弄混了。数字闪动的缘由应当出在显示子程序里,经过分析问题出在显示子程序里缺少延时程序。编写延时子程序,并在显示子程序调用它; 编译源程序,装入生成的可执行文件,并运行。数码管显示的数字与理论值相符合,并能正常计时,但当按动 KK1+键时,却不能启动对时功能, 按动KK2+时,也不能调时、调分。问题很可能出在两键掌握的中断源上, 检查源程序也找不出错误,当把IRQ5 换成IRQ2 后,在进展调试,结果成
20、功。五、心得体会及建议经过一周努力,在指导教师和同学的帮助下,最终如期完成了该电子时钟的课程设计。固然在课程设计的过程中遇到了很多问题,但是经过查阅有关资料和向教师、同学请教后,还是一一解决了。首先,通过这次课程设计使使我在课堂中学到的东西充分的融入到实践当中。我懂得了理论与实际相结合是很重要的,只有理论学问是远远不够的,只有把所学的理论学问与实践相结合起来,从理论中得出结论,才能真正为社会效劳,从而提高自己的实际动手力量和独立思考的力量。其次,通过本次设计,我系统的了解了时钟的设计流程,尤其是硬、软件的设计方法,把握了显示电路的根本功能及编程方法,把握了显示电路的一般原理。开拓了思路,熬炼了
21、实践动手力量,提高了分工协作力量和分析问题,解决问题的力量,到达了本次课程设计的目的。最终,通过该课程设计,我进一步的生疏了可并行通信接口8255、计数器/定时器 8253 及中断掌握器 8259 处理器程序的编程方法的编程原理和 7 段LED 数码管显示器的工作原理,为以后独立的设计系统供给了丰富的实践阅历。以前对于编程工具的使用还处于一知半解的状态 上,但是经过一段上机的实践,对于怎么去排错、查错,怎么去看每一步的运行结果,怎么去了解每个存放器的内容以确保程序的正确性上都有了很大程度的提高。在设计的过程中遇到问题,可以说得是困难重重, 这到底第一次做的,难免会遇到过各种各样的问题,同时在设
22、计的过程中觉察了自己的缺乏之处,对以前所学过的学问理解得不够深刻,把握得不够结实。本次课程设计完成了实时时钟的设计到实现的全部过程,结果满足设计要求,设计主要用到了 8255,8253,8259 和三个芯片,程序也比较长比较麻烦,同时也遇到了不少困难。系统设计的开头几天的时间,没有什么大的进展,仅仅是初始界面就调试了很长时间才成功,当8253 定时/计数器来做其中的秒定时模块时,由于 8253 所能供给的信号的周期是毫秒级的,因此必需通过软件的方法在运算模块中设置一个统计中断次数的变量,并且这一变量必需事先在内存里开拓存储单元,所以就要求在写程序时就要有明确的思路。关于显示模块和对时模块,在了
23、解LED、8259、8253 的功能和用法后,问题很简洁解决。以后的几天的时间开头调中断程序,程序中一旦有了中断,调试就困难了,调中断调了好几天,难度挺大的,任何一个初始化的失误都可能使你的程序不正常, 在屡次调试之后,最终完成了该局部的调试工作。参考文献1 杨立,邓振杰,荆淑霞等编著.微型计算机及接口技术(第三版).中国铁道出版社附录:程序清单:MY8255_AEQU0600HMY8255_BEQU0602HMY8255_CEQU0604HMY8255_CONEQU0606HA8254EQU06C0HB8254EQU06C2HC8254EQU06C4HCON8254EQU06C6HDATAS
24、EGMENTDTABLEDB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH,39H,5EH,79H,71HDATAENDSSSTACKSEGMENT STACK DW 200 DUP(?)SSTACK ENDS CODE SEGMENTASSUME CS:CODE, SS:SSTACK,DS:DATA START:PUSH DSMOV AX, 0000H MOV DS, AXMOVAX, OFFSETIRQ7;取中断入口地址MOVSI, 003CH;中断矢量地址MOVSI, AX;填IRQ7 的偏移矢量MOVAX, CS;段地址MOVSI
25、, 003EHMOVSI, AX;填IRQ7 的段地址矢量CLIPOPDSMOV AX,DATA MOV DS,AX MOV CX,03H MOV DI,3000H MOV AL,00HLP:MOV DI,AL INC DI LOOP LP;MOV DI,3003H MOV SI,4000H MOV AL,00HMOV SI,AL MOV SI+1,AL;清显示缓冲MOV SI+2,AL MOV SI+3,AL MOV SI+4,AL MOV SI+5,AL MOV SI,4000H MOV AL, 11H OUT 20H, AL MOV AL, 08H OUT 21H, AL MOV AL,
26、 04H OUT 21H, AL MOV AL, 01H OUT 21H, AL MOV AL, 6FH OUT 21H, ALMOV DX, CON8254;MOV AL, 30H;计数器 0,方式 0MOVAL,36HOUTDX,AL;计数器 0,方式 3,产生 50ms 方波MOV DX, A8254;计数初值为 3E8H=1000,产生 1ms 中断MOVAL,50H;c350H=50000,产生 50msOUTDX,ALMOVAL,0c3HOUTDX,ALMOVDX,CON8254MOVAL,50H;计数器 1,方式 0OUTDX,ALMOVDX,B8254;计数初值为 3E8H=1
27、000,产生 1ms 中断MOVAL,20H;c350H=50000,产生 50ms 中断OUTDX,ALMOV DX,MY8255_CON;写 8255 掌握字MOV AL,81HOUT DX,ALSTIAA1: CALL DIS;调用显示子程序JMP AA1DIS:PUSH AXMOV SI,4000H MOV DL,0DFH MOV AL,DLAGAIN: PUSH DXMOV DX,MY8255_AOUT DX,AL;select first segMOV AL,SIMOV BX,OFFSET DTABLEXLATMOV DX,MY8255_B OUT DX,ALCALL DALLY
28、INC SIPOP DXMOV AL,DL TEST AL,01HJZ OUT1 ROR AL,1MOV DL,AL JMP AGAINOUT1:POP AX RETDALLY: PUSH CXMOV CX,0005HT1:MOV AX,0010HT2:DEC AX JNZ T2 LOOP T1 POP CX RETIRQ7: PUSH AXMOVDX,B8254MOVAL,20HOUTDX,AL;MOV AX, 0173H;INT 10H;SECONDMOV DI,3000H;重装计数初值;显示字符sMOV DL,DIMOVAH,00HMOVAL,DLMOVBL,10DIVBLMOVBH,A
29、H;AH 保存余数,al 保存商MOVBL,AL;MOVSI,4001H;4000H 内存单元保存秒的十位MOVSI,ALOR AL,30H;ADD 30HMOV AH,01H INT 10HMOVAL,BHMOVSI,4000H;4001H 内存单元保存秒的个位MOVSI,ALOR AL,30H;ADD 30HMOV AH,01H INT 10HMOV AX, 0120H ;20h=空格INT 10HMOV DI,3000H MOV DL,DI INC DLMOV DI,DL CMP DL,60JL NEXT1 MOV DL,00HMOV DI,3000H MOV DI,DL MOV DI,
30、3001H MOV DL,DI INC DLMOV DI,DL;SAVE UPDATE MINUTEMOV AH,00H MOV AL,DL MOV BL,10 DIV BLMOVBH,AH;AH 保存余数,al 保存商MOVBL,AL;MOVSI,4003H;4000H 内存单元保存秒的十位MOVSI,ALOR AL,30H;ADD 30HMOV AH,01H INT 10HMOVAL,BHMOVSI,4002H;4001H 内存单元保存秒的个位MOVSI,ALOR AL,30H;ADD 30H MOV AH,01HINT 10HMOV AX, 0120H ;20h=空格INT 10HMOV
31、 DI,3001H MOV DL,DICMP DL,60 JL EXITMOV DL,00H;CLEAR MINUTE MOV DI,DLJMP AA NEXT1: JMP EXITAA:MOV DI,3002HMOVDL,DIINCDLMOVDI,DLMOVAH,00HMOVAL,DLMOVBL,10DIVBLMOVBH,AH;AH 保存余数,al 保存商MOVBL,AL;MOV SI,4005H;4000H 内存单元保存秒的十位MOV SI,ALOR AL,30H;ADD 30H MOV AH,01HINT 10HMOVAL,BHMOVSI,4004H;4001H 内存单元保存秒的个位MOVSI,ALOR AL,30H;ADD 30H MOV AH,01HINT 10HMOV AX, 0120H ;20h=空格INT 10HMOV DI,3002H MOV DL,DI CMP DL,12JL EXITMOV DL,00H;CLEAR MINUTE MOV DI,DLEXIT:MOV AL, 20HOUT 20H, AL POP AX;中断完毕命令IRETCODE ENDSEND START