电子钟课程设计报告——微机原理与接口技术修改版

上传人:d**** 文档编号:198401060 上传时间:2023-04-08 格式:DOCX 页数:32 大小:132.06KB
返回 下载 相关 举报
电子钟课程设计报告——微机原理与接口技术修改版_第1页
第1页 / 共32页
电子钟课程设计报告——微机原理与接口技术修改版_第2页
第2页 / 共32页
电子钟课程设计报告——微机原理与接口技术修改版_第3页
第3页 / 共32页
点击查看更多>>
资源描述
课 程 设 计 内 容选用8253计数器2进行1s的定时,其输出OUT1与8259的IRQ0 相连,当定时到1s时产生一个中断服务程序进行时、分、秒的计数, 并送入相应的存储单元;8255的A 口接七段数码管的位选信号,B 口接 数码管的段选信号。时、分、秒的数值通过对8255的编程可送到七段 数码管上显示。课 程 设 计 简 要 操 作 步 骤1、了解电子钟的工作原理2、画出电路原理图3、根据原理图编写代码4、连接电路图5、将试验箱与pc机相连6、植入代码,检查代码的正确性7、反复检验,寻找问题,解决问题8、撰写实验报告、实验过程及实验心得体会9、完成实验摘要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 ,ROM,定时,计数和多种接口于一体的微控制器。它体积小,成本低,功能强,广泛 应用于智能产业和工业自动化上。微型计算机原理控制应用技术飞速发展,纵观我们现在生活的各个 领域,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络 通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及我们 生活中广泛使用的各种智能IC卡,电子宠物等,这些都离不开微型计 算机原理控制。我们组本次设计的题目是简单电子钟程序设计,用到了定时芯片 8254,中断控制器8259和可编程并行芯片8255。在编辑1毫秒定时程序 时,用到了中断控制器8259。此程序主要由四部分组成:第一部分为最主要的部分定义显示界面;第二部分为利用延时程序,并将调用的二进制表示的时间数转换成ASCII 码,并将时间数存入内存区;第三部分将存在系统内存区的时间数用七段数码管显示出来;第四部分利用循环程序分别对秒个位、秒十位、分个位、分十位与相应 的规定值进行比较,结合延时程序来实现电子钟数字的跳变,从而形成 走时准确的电子钟。该程序实现了准确显示秒和分,读数准确,走时精准。此电子钟能 准确的从0分0秒走时到59分59秒,然后能自动回复到0分0秒循环 走时。关键词:可编程并行芯片8255 定时芯片8254 中断控制器 8259 延时计数比较定时中断七段数码显示管 一、概述1.1设计目的通过本次课程设计学习和掌握计算机中常用接口电路的应用和设 计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论 知识与应用相结合的实践和锻炼。通过这次设计实践能够进一步加深对 专业知识和理论知识学习的认识和理解,使设计者的设计水平和对所学 知识的应用能力以及分析问题解决问题的能力得到全面提高。1.1.1熟练掌握8086/88教学系统的基本操作和调试程序的各种指令。1.1.2掌握8259中断控制器的工作原理和应用编程方法,练习编写中断 程序的方法。1.1.3掌握8255的各种工作方式及其应用编程。1.1.4掌握8253定时/计数器的工作原理、工作方式及其应用编程。1.1.5熟悉编程及调试程序的方法。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 口接七段数码管的位选信号,8口接 数码管的段选信号。时、分、秒的数值通过对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七段数码管显示作为子程序,将时、分、秒对应存储单元的内容 分别取出并转换成相应的段码,从8255的B 口输出,A 口输出对应位的 位选信号,延时后进行下一位的显示。二、设计与制作2.1设计原理基本工作原理:系统设计的电子时钟主要由显示模块、时钟控制模块和时钟运算模块三大部分组成。以8086微处理器作CPU,用8253做定时器产生时钟频率提供一个频率为10kHz的时钟信号,要求每隔10ms 完成一次扫描键盘的工作。在写入控制字与计数初值后,每到10ms定 时器就启动工作,即当计数器减到1时,输出端OUT0输出一个CLK周 期的低电平,向CPU申请中断,当达到100次时,则输出端OUT 1输出 1s,向CPU申请中断,由8255控制一个数码管显示,当计数到60s时,则 输出端OUT2向CPU申请中断,由另一数码管显示1min,同理由数码管显 示1h.CPU处理,使数码管的显示发生变化。本设计由8259A中断控制器、8253定时/计数器、8255A接口芯片、 LED数码显示管和两个按键组成。主要用8259A的IRQ7的中断服务程序 完成秒、分、时的运算即计时功能,IRQ6的中断服务程序完成调时、调 分功能。8253用来产生50ms的脉冲信号作为IRQ7的中断请求信号。按 键KK1+和KK2+分别作为IRQ2和IRQ6的中断请求信号。按键KK1+启动/ 关闭对时功能。它决定是否屏蔽IRQ7和IRQ6中断源。8255A负责将内 存里的时位和分位值输出到数码管。电子时钟的显示格式HH: MM: SS由左到右分别为时、分、秒,每 百分之一秒对百分之一秒寄存器的内容加一,并依次对秒、分、小时寄 存器的内容加一,六个数码管动态显示时、分、秒的当前值。最大记时 59: 59: 59超过这个时间时分秒位都清零从00: 00: 00重新开始。2.2硬件电路设计以一_ 0Ycc227An2.2.1 8259芯片介绍Q 326rNTAU7 425IR.706 1K65K中断控制器8259A是专门为控制优先级中断而山一6231K5R4 IK4设计开发的芯片。它将中断源优先排队、辨别7 118 211(13IR25Ul919IRIDo 1018IR0CASO1217LNJCASJ 1316SPFN地一H15CAS2中断源以及提供中断矢量的电路集于一片中。因此无需附加任何电路, 只需对8259A进 行编程,就可以管理8级中断,并选择优先模式和中 断请求方式,即中断结构可以由用户编程来设定。同时,在不需要增加 其他电路的情况下,通过多片8259A的级连,能构成多达64级的矢量 中断系统。8259A的主要功能如下: 一片8259A可以接受并管理8级可屏蔽中断 请求,通过59芯片8259A 级联可扩展至64级可屏蔽中断优先控制。 对每一级中断都可以通过程序来屏蔽或允许。 在中断响应周期,8259A可为CPU提供相应的中断类型码。 具有多种工作方式,并可通过编程来加以选择。通过初始化编程向 8259A写入相应的初始化命令ICW,可以使芯片处于一个规定的基本工 作方式,并在此方式下进行工作。8259A的初始化命令字共有4个ICW1-ICW4,进行初始化时要求ICW1-ICW4按一定的顺序写入。2.2.2 8253芯片介绍124Vet2nW322W听421CSm 520A|6溢%刖718C比Di817OUTCLK,916GATI-:OlTTtt15CLK.gate II14outGND1213GATE8253芯片8253是NMOS工艺制成的可编程计数器/定时器,有 几种芯片型号,外形引脚及功能都是兼容的,只是 工作的最高计数速率有所差异,例如8253 (2.6MHz),8253-5(5MHz) 8253 内部有三个计数器,分别成为计数器0、计数器1和计数器2,他们的机构完全相同。每个计数器的输入和输出都决定于设置在控制寄存器中的 控制 字,互相之间工作完全独立。每个计数器通过三个引脚和外部联 系,一个为时钟输入端CLK,一个为门控信号输入端GATE,另一个为输 出端OUT。每个计数器内部有一个8位的控制寄存器,还有一个16位 的计数初值寄存器CR、一个计数执行部件CE和一个输出锁存器OL。2.2.3 8255芯片介绍1+0:JPJ3S+37打3573+*S255卫103111301::P1+B1J小H25171+IS4 .,身1。8255芯片2021PA5F*PA?的迎mDODID2D3rnDiD7 做 PA7PA*:PBrF盼PBJ8255特性:PA5PWPA1 一个并行输入/输出的LSI芯片,多功一能的I/O器件,可作为CPU总线与外围的A1PA7接口.虬PA+ 具有24个可编程设置的I/O 口,即使3:*PA2组8位的I/O 口为PA 口,PB 口和PC 口. 网F即它们又可分为两组12位的I/O 口,A组包 括A 口及C 口(高4位,PC4PC7),B组包括B 口及C (低4 位,PC0PC3).A组可设置为基本的I/O 口,闪控(STROBE)的I/O闪控式, 双向I /O3种模式;B组只能设置为基本I/O或闪控式I/O两种模式,而 这些操作模式完全由控制寄存器的控制字决定.8255引脚功能:中断计数值加1RESET :复位输入线,CS:芯片选择信号线,RD :读信号线,WR:写入信中断计数值减N10?线,PA0PA7:端口 A输入输出中断计数单元清零秒计时值加1,D0D7 :三态双向数据总秒计数单元清零分计时值加1线,PB0PB7:端口 8输入输出线,PC04PC7:端口 C输入输出线,A0,A1:地秒值=60址选择线2.3程序流程图分值-60?分计数单元清零小时计时值加1小时值=-24 ? .N小时计时单元清零输出中断结束命令中断返回设置中断服务程序地址设置8253工作方式及定时常数设置8255工作方式清时、分、秒及中断计数单元6将时、分、秒单元中数据转换为BCD码并存入显示缓冲区调用显示子程序主程序流程图中断服务程序流程图显示模块流程图:三、结果分析最后,我们得到了预期的结果,电路能完成准确的硬件定时和显示。 在一开始的连线中,因为粗心,没有把片选信号连正确,后来参考了网 上的一些资料,仔细的盘查,才发现了错误,在实验过程中有些实验箱 也可能会存在一些问题,有时可以换个实验箱解决问题四、结论与展望将编写好的源程序输入,编译后出现很多错误,经过反复修改直到 程序运行通过。将生成的可执行程序装入TND86/88的内存里,在监控 状态下运行程序,可是数码管显示的数字并不与理论计算值相符合,并 且显示的数字不停地闪动,经过反复分析源程序发现问题出现在内存单 元里时位和分位在转化为十进制时,存储转化的结果的地址空间的顺序 弄混了。数字闪动的原因应该出在显示子程序里,经过分析问题出在显 示子程序里缺少延时程序。编写延时子程序,并在显示子程序调用它; 编译源程序,装入生成的可执行文件,并运行。数码管显示的数字与理 论值相符合,并能正常计时,但当按动KK1+键时,却不能启动对时功能, 按动KK2+时,也不能调时、调分。问题很可能出在两键控制的中断源上, 检查源程序也找不出错误,当把IRQ5换成IRQ2后,在进行调试,结果 成功。五、心得体会及建议经过一周努力,在指导老师和同学的帮助下,终于如期完成了该电 子时钟的课程设计。当然在课程设计的过程中遇到了许多问题,但是经 过查阅有关资料和向老师、同学请教后,还是一一解决了。首先,通过这次课程设计使使我在课堂中学到的东西充分的融入到 实践当中。我懂得了理论与实际相结合是很重要的,只有理论知识是远 远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结 论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的 能力。其次,通过本次设计,我系统的了解了时钟的设计流程,尤其是硬、 软件的设计方法,掌握了显示电路的基本功能及编程方法,掌握了显示 电路的一般原理。开拓了思路,锻炼了实践动手能力,提高了分工协作 能力和分析问题,解决问题的能力,达到了本次课程设计的目的。最后,通过该课程设计,我进一步的熟悉了可并行通信接口 8255、 计数器/定时器8253及中断控制器8259处理器程序的编程方法的编程 原理和7段LED数码管显示器的工作原理,为以后独立的设计系统提供 了丰富的实践经验。以前对于编程工具的使用还处于一知半解的状态 上,但是经过一段上机的实践,对于怎么去排错、查错,怎么去看每一 步的运行结果,怎么去了解每个寄存器的内容以确保程序的正确性上都 有了很大程度的提高。在设计的过程中遇到问题,可以说得是困难重重, 这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程 中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握 得不够牢固。本次课程设计完成了实时时钟的设计到实现的全部过程,结果满足 设计要求,设计主要用到了 8255,8253,8259和三个芯片,程序也比较 长比较麻烦,同时也遇到了不少困难。系统设计的开始几天的时间,没 有什么大的进展,仅仅是初始界面就调试了很长时间才成功,当8253 定时/计数器来做其中的秒定时模块时,因为8253所能提供的信号的周 期是毫秒级的,因此必须通过软件的方法在运算模块中设置一个统计中 断次数的变量,并且这一变量必须事先在内存里开辟存储单元,所以就 要求在写程序时就要有明确的思路。关于显示模块和对时模块,在了解 LED、8259、8253的功能和用法后,问题很容易解决。以后的几天的时 间开始调中断程序,程序中一旦有了中断,调试就困难了,调中断调了 好几天,难度挺大的,任何一个初始化的失误都可能使你的程序不正常, 在多次调试之后,终于完成了该部分的调试工作。参考文献1杨立,邓振杰,荆淑霞等编著.微型计算机及接口技术(第三版).中 国铁道出版社附录:程序清单:MY8255_A EQU 0600HMY8255_B EQU 0602HMY8255_C EQU 0604HMY8255_CON EQU 0606HA8254EQU06C0HB8254EQU06C2HC8254EQU06C4HCON8254EQU06C6H;端口数据分配DATA SEGMENTDTABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB 7FH,6FH,77H,7CH,39H,5EH,79H,71HDATA ENDSSSTACK SEGMENT STACKDW 200 DUP(?)SSTACK ENDSCODE SEGMENTASSUME CS:CODE, SS:SSTACK,DS:DATASTART: PUSHDSMOV AX,0000HMOV DS,AXMOV AX,OFFSET IRQ7 ;取中断入口地址MOV SI, 003CH;中断矢量地址MOV SI, AX;填IRQ7的偏移矢量MOV AX, CS;段地址MOV SI, 003EHMOV SI, AX;填IRQ7的段地址矢量CLIPOP DSMOV AX,DATAMOV DS,AXMOV CX,03HMOV DI,3000HMOV AL,00HLP:MOV DI,ALINC DI;加1LOOP LP;循环MOV DI,3003HMOV SI,4000HMOV AL,00HMOV SI,AL;清显示缓冲MOV SI+1,ALMOV SI+2,ALMOV SI+3,ALMOV SI+4,ALMOV SI+5,ALMOV SI,4000HMOV AL, 11HOUT 20H, ALMOV AL, 08HOUT 21H, ALMOV AL, 04HOUT 21H, ALMOV AL, 01HOUT 21H, ALMOV AL, 6FHOUT 21H, AL;初始化 8259AMOV DX, CON8254MOV AL, 30H;计数器0,方式0MOV AL, 36H;计数器0,方式3,产生50ms方波OUT DX, ALMOV DX, A8254MOV AL, 50HOUT DX, AL;计数初值为3E8H=1000,产生1ms中断;c350H=50000,产生 50msMOV AL, 0c3HOUT DX, ALMOV DX, CON8254MOV AL, 50H;计数器1,方式0OUT DX, ALMOV DX, B8254MOV AL, 20HOUT DX, AL;计数初值为3E8H=1000,产生1ms中断;c350H=50000,产生 50ms 中断MOV DX,MY8255_CON ;写 8255 控制字MOV AL,81HOUT DX,ALSTIAA1: CALL DIS;调用显示子程序(过程调用)JMP AA1;无条件转移DIS:PUSH AXMOV SI,4000HMOV DL,0DFHAGAIN: PUSH DXMOV DX,MY8255_AOUT DX,AL;选择第一个 segMOV AL,SIMOV BX,OFFSET DTABLE ;区偏移量XLATMOV DX,MY8255_BOUT DX,ALCALL DALLYINC SIPOP DXMOV AL,DLTEST AL,01HJZ OUT1ROR AL,1MOV DL,ALJMP AGAINOUT1: POP AXRETDALLY: PUSH CXMOV CX,0005HT1:MOV AX,0010HT2:DEC AXJNZ T2LOOP T1POP CXRETIRQ7: PUSH AX;重装计数初值;显示字符sMOV DX, B8254MOV AL, 20HOUT DX, ALMOV AX, 0173HINT 10HSECONDMOV DI,3000HMOV DL,DIMOV AL,DLMOV BL,10DIV BLMOV BH,AH;AH保存余数,al保存商MOV BL,AL;MOV SI,4001H;4001H内存单元保存秒的十位MOV SI,ALOR AL,30H ;ADD 30HMOV AH,01HINT 10HMOV AL,BHMOV SI,4000H;4000H内存单元保存秒的个位MOV SI,ALOR AL,30H ;ADD 30HMOV AH,01HINT 10HMOV AX, 0120H ;20h=空格MOV DI,3000HMOV DL,DIINC DLMOV DI,DLCMP DL,60JL NEXT1MOV DL,00HMOV DI,3000HMOV DI,DLMOV DI,3001HMOV DL,DIINC DLMOV DI,DL;SAVE UPDATE MINUTEMOV AH,00HMOV AL,DLMOV BL,10DIV BLMOV BH,AH ;AH保存余数,al保存商MOV SI,4003H;4003H内存单元保存分的十位MOV SI,ALOR AL,30H ;ADD 30HMOV AH,01HINT 10HMOV AL,BHMOV SI,4002H;4002H内存单元保存分的个位MOV SI,ALOR AL,30H ;ADD 30HMOV AH,01HINT 10HMOV AX, 0120H ;20h=空格INT 10HMOV DI,3001HMOV DL,DICMP DL,60JL EXITMOV DI,DLJMP AANEXT1: JMP EXITAA:MOV DI,3002HMOV DL,DIINC DLMOV DI,DLMOV AH,00HMOV AL,DLMOV BL,10DIV BLMOV BH,AH;AH保存余数,al保存商MOV BL,AL;MOV SI,4005H;4005H内存单元保存时的十位MOV SI,ALOR AL,30H ;ADD 30HMOV AH,01HINT 10HMOV SI,ALOR AL,30H ;ADD 30HMOV AH,01HINT 10HMOV AX, 0120H ;20h=空格INT 10HMOV DI,3002HMOV DL,DICMP DL,12JL EXITMOV DL,00H ;CLEAR MINUTEMOV DI,DLEXIT: MOV AL, 20HOUT 20H, AL;中断结束命令POP AXIRETCODE ENDSEND START
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸设计 > 毕设全套


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!