版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
-.z.目录TOC\o"1-2"\h\z\u中文摘要2方案论证3总体设计方案4硬件系统设计5软件系统设计10硬件系统原理图12程序清单13总结体会30参考文献31中文摘要微机原理与接口技术是一门实践性很强的电子信息工程专业的技术根底课程。因此,微机接口课程设计是一项实践性很强的实训环节,结合运用所学的汇编语言及8086微处理芯片设计一个电子秒表,通过实践能够加深对汇编语言的理解以及对8086微处理器、8253可编程定时器、8259A可编程中断控制器、8255A可编程并行I/O接口芯片等的根本功能的认识。本实验利用8253可编程定时器等芯片的定时和记数的原理,结合实验箱上的集成电路芯片8086、LED数码管以及实验箱上的按键来设计秒表。将软、硬件有机地结合起来,要**现计时单位为1/100秒,利用功能键进展启/停控制,上电后计时器清0,当第一次按下KEY1启/停键时开场计数,按一下KEY2键清零,重新开场计时,在系统能够正确地进展计时,使5位LED数码管能够正确地显示时间。关键字:电子秒表、百分之一秒、停启控制。方案论证根据课程设计的要求和我们所要增加的功能写好程序流程图,在程序流程图的根底上,结合芯片的功能写出相应的程序。然后再进展程序调试和相应的修改,以到达能够实现所要**现的功能的目的。在微机原理定汇编调试软件上编辑源程序,并进展汇编,在汇编成功无误后,选择端口进展调试,然后装入程序,至此,本次设计的软件工作准备完毕。再根据硬件原理设计图完成各芯片之间的连接,翻开实验箱电源开关总体进展调试。在整个实验过程中,在8253可编程定时器CLK端输出管脚处接上一个计数的频率为10KHZ的时钟信号,由8253定时/计数器产生0.01秒的中断并进展计数,可编程并行I/O接口芯片8255A将偏移地址写入内存单元,进中断更新数据,然后将内存数据送给LED数码管显示。定时器中断就是定义初值,然后开中断,剩下的就在中断里写了。保存数据段后,取中断程序入口地址,定义可编程中断控制器8259中断7中断矢量,读8259中断屏蔽字,开8259中断7,六位数码管用动态显示,挨个点亮,六个I/O控制位,十二个I/O控制段码,将8259的定时器设置在0.01秒进入一次中断,交替输出上下电平〔形成时钟频率〕,在计数器输出使用组合逻辑电路连接LED灯的各个控制输入端。总体设计方案设计一个利用微机原理与接口技术完成秒表的设计方案,该方案主要是选择8253A的计数器2与计数器1产生一个1Hz的中断脉冲,其输出端与不可屏蔽中断请求信号端相连接。利用1.19318MHz脉冲方波输入CLK2,设置CLK2的初值为59659,将CLK2的输出端连接到CLK1,设置CLK1的初值为20,将OUT1连接到8086CPU的NMI端。将NMI端有一个低电平信号输入时,8086CPU将产生中断进展秒计数。8086通过8255A将PA口作为段选信号输出端,将PB口作为片选信号输出端。方案设计框图此方案的核心内容是利用微机原理与接口技术完成秒表的设计方案,该方案主要是选择8253A的计数器2和计数器1进展1s的定时,其输出于OUT1与8086的NMI相连,当定时到1s的时候产生一个中断信号,在中断效劳程序进展秒的计数,并送入相应的存储单元;8255的A口接七段数码管的段选信号,B口接七段数码管的位选信号,秒的数值通过对8255的编程可以显示在七段数码管上面。该方案是利用微机接口技术的典范案例,就可行性而言,也是行之有效的。硬件系统设计8086简介Intel8086拥有四个16位的通用存放器,也能够当作八个8位存放器来存取,以及四个16位索引存放器(包含了堆栈指标)。资料存放器通常由指令隐含地使用,针对暂存值需要复杂的存放器配置。它提供64K,8位元的输出输入(或32K,16位元),以及固定的向量中断。大局部的指令只能够存取一个内存位址,所以其中一个操作数必须是一个存放器。运算结果会储存在操作数中的一个。Intel8086有四个内存区段(segment)存放器,可以从索引存放器来设定。区段存放器可以让CPU利用特殊的方式存取1MB内存。8086把段地址左移4位然后把它加上偏移地址。而8086的寻址方式改变让内存扩大较有效率。8086处理器的时钟频率介于4.77MHz(在原先的IBMPC)和10MHz之间。8086没有包含浮点指令局部〔FPU〕,但是可以通过外接数学辅助处理器来增强浮点计算能力。其I/O分配如下列图所示:CPU8086及I/O接口电路8255简介Intel8086/8088系列的可编程外设接口电路〔ProgrammablePeripheralInterface)简称PPI,型号为8255〔改良型为8255A及8255A-5〕,具有24条输入/输出引脚、可编程的通用并行输入/输出接口电路。它是一片使用单一+5V电源的40脚双列直插式大规模集成电路。8255A的通用性强,使用灵活,通过它CPU可直接与外设相连接。8255A在使用前要写入一个方式控制字,选择A、B、C三个端口各自的工作方式,共有三种;方式0:根本的输入输出方式,即无须联络就可以直接进展的I/O方式。其中A、B、C口的高四位或低四位可分别设置成输入或输出。方式1:选通I/O,此时接口和外围设备需联络信号进展协调,只有A口和B口可以工作在方式1,此时C口的*些线被规定为A口或B口与外围设备的联络信号,余下的线只有根本的I/O功能,即只工作在方式0。方式2:双向I/O方式,只有A口可以工作在这种方式,该I/O线即可输入又可输出,此时C口有5条线被规定为A口和外围设备的双向联络线,C口剩下的三条线可作为B口方式1的联络线,也可以和B口一起方式0的I/O线。8255A是一个并行输入、输出器件,具有24个可编程设置的I/O口,包括3组8位的I/O为PA口、PB口、PC口,又可分为2组12位的I/O口:A组包括A口及C口高4位,B组包括B口及C组的低4位。8086与8255连接图8253简介Intel8253是NMOS工艺制成的可编程计数器/定时器,有几种芯片型号,外形引脚及功能都是兼容的,只是工作的最高计数速率有所差异,例如8253〔2.6MHz〕,8253-5(5MHz),8253内部有三个计数器,分别成为计数器0、计数器1和计数器2,他们的机构完全一样。每个计数器的输入和输出都决定于设置在控制存放器中的控制字,互相之间工作完全独立。每个计数器通过三个引脚和外部联系,一个为时钟输入端CLK,一个为门控信号输入端GATE,另一个为输出端OUT。每个计数器内部有一个8位的控制存放器,还有一个16位的计数初值存放器CR、一个计数执行部件CE和一个输出锁存器OL。执行部件实际上是一个16位的减法计数器,它的起始值就是初值存放器的值,而初始值存放器的值是通过程序设置的。输出锁存器的值是通过程序设置的。输出锁存器OL用来锁存计数执行部件CE的内容,从而使CPU可以对此进展读操作。顺便提一下,CR、CE和OL都是16位存放器,但是也可以作8位存放器来用:一段程序写完成后不能急于上机调试,而是先进展逻辑分析、可行性分析。用EMU8086软件进展调试,不能出现错误,警告可以有,只要不影响生成HE*文件即可。理解其实现的功能,预想程序应该出现的结果。先进展软件仿真,出现错误马上修改,不断进展。先一个模块一个模块的仿真,准确后再连线总体仿真。仿真完后出现预期的效果后再下载程序到硬件进展验证,往往还有问题,还得反复修改,编译,调试,下载,验证。可以一个模块一个模块的下载调试这样就可以知道问题的所在。采用Proteus和EMU8086结合仿真的可以大大简化软、硬件电路的设计过程。Proteus是英国Labeenterelectronics公司研发的EDA工具软件。Proteus不仅是模拟电路、数字电路、模/数混合电路的设计与仿真平台,更是目前世界最先进、最完整的多种型号微控制器系统的设计与仿真平台。它真正实现了在计算机上完成从原理图设计、电路分析与仿真、单片机代码级调试与仿真、系统测试与功能验证到形成PCB的完整电子设计与研发过程。Proteus产品系列也包含了革命性的VSM技术,可以对基于微控制器的设计连同所有的外围电子器件一起仿真。由于我们的设计外围电路比拟简单实现的功能叶不是很复杂,所以在Proteus仿真时我们是将主程序直接下载到芯片中仿真,主要是验证是否采集到温度还有温度是否显示正确。仿真可以在实物没有出来前进展先期的验证。最后加上我们的扩展功能一起仿真调试。由于没有做硬件,我们采用Proteus仿真调试,通过将软件编译通过的程序下载到画好的仿真图中,这样便于检查软、硬件设计的缺乏。但是Proteus仿真也存在缺乏的情况,仿真模拟的是理想的环境,不会差生误差但是实际的测试会出现一定的误差。由于程序设计的是,当系统运行后,数码管开场显示计数时间,根据仿真结果。说明此设计工作正常。软件系统设计软件设计要求及介绍这是一个利用微机原理与接口技术完成秒表的设计方案,该方案主要是选择8253A的计数器2与计数器1进展1s的定时,其输出于OU1与8086的NMI相连,当定时到1s的时候产生一个中断信号,在中断效劳程序进展秒的计数,并送入相应的存储单元;8255的A口接七段数码管的段选信号,B口接七段数码管的位选信号。我的数值通过对8255的编程可以显示在七段数码管上面。因此可以利用8086等器件的功能来完成设计。EMU8086是学习汇编必不可少的工具,它结合了一个先进的原始编辑器、组译器、反组译器、具除错功能的软件模拟工具〔虚拟PC〕,还有一个循序渐进的指导工具。该软件包含了学习汇编语言的全部内容。Emu8086集源代码编辑器,汇编/反汇编工具以及可以运行debug的模拟器〔虚拟机器〕于一身,此外,还有循序渐进的教程。这里是软件设计的流程,首先对所要用到的逻辑元器件的控制端口,I/O口进展初始化,接着通过按下按键"1〞来调用赋值子程序,这中间必须要应用一个延时程序来防抖,完成后就开场中断,接着判断按键"2〞按下去的次数,如果是奇数次的话就继续进展秒表计时,如果按下去的是偶数次的话,则暂停,显示当前秒表的计数值。程序设计流程图硬件系统原理图程序清单DISMACROLOCAT,CODE;设置图形显示宏定义PUSHD*PUSHB*PUSHA*MOVD*,LOCAT;设置光标位置MOVBH,00MOVAH,02HINT10HMOVDL,CODE;输出字符串MOVAH,02HINT21HPOPA*POPB*POPD*ENDMDATSEGMENT;设置数据段BUFDB'INPUTSTARTRESETENDCONTINUE$';设置功能说明BUFFERDB10DUP(");定义缓存区TIPDB'MEMORY$';定义记忆提示NUMDB1LODEQU0929HDATENDSCODSEGMENT;定义代码段STARTPROCFARASSUMECS:COD,DS:DATMOVA*,DATMOVDS,A*MOVD*,OFFSETBUF;输出功能说明MOVAH,09HINT21HCALLDISMER;记忆区提示符置光标MOVD*,OFFSETTIP;输出记忆提示字符MOVAH,09HINT21HCALLCLR;图形区清屏并设置颜色CALLCLRDAT;秒表数字区清屏并设置颜色CALLCLRMER;记忆区清屏并设置颜色DIS0419H,'<';通过宏调用显示图形DIS0517H,'<'DIS0715H,'<'DIS0914H,'<'DIS0B14H,'<'DIS060EH,'_'DIS0710H,'_'DIS0812H,'_'DIS0913H,'_'DIS0A14H,'_'DIS0915H,'_'DIS0816H,'_'DIS0718H,'_'DIS061AH,'_'DIS071CH,'*'DIS081EH,'*'DIS091FH,'*'DIS0B20H,'*'DIS0D21H,'*'DIS0F21H,'*'DIS1120H,'*'DIS131FH,'*'DIS141EH,'*'DIS151DH,'*'DIS161BH,'*'DIS1719H,'*'DIS1717H,'_'DIS1616H,'_'DIS1514H,'_'DIS1612H,'_'DIS1711H,'_'DIS170EH,'*'DIS160CH,'*'DIS150BH,'*'DIS140AH,'*'DIS1309H,'*'DIS1108H,'*'DIS0F07H,'*'DIS0D07H,'*'DIS0B08H,'*'DIS0909H,'*'DIS080AH,'*'DIS070CH,'*'DIS0C12H,'_'DIS0C13H,'_'DIS0C14H,'_'DIS0C15H,'_'DIS0C16H,'_'CALLGO;设置初植LOAD:CALLIOSET;光标定位CALLHALT;等待输入MOVD*,0MOVCH,0AGAIN:CALLTIME;调用延时程序MOVAL,DL;百分之一秒加一ADDAL,1DAAJCNE*T1;满一百进位MOVDL,ALJMPDISPY;不满一百显示NE*T1:MOVDL,0MOVAL,DH;秒位加一ADDAL,1DAAMOVDH,ALCMPAL,60HJNEDISPYCALLBELL;满60提示铃声并进位MOVDH,0MOVAL,CH;分位加一ADDAL,1DAAMOVCH,ALCMPAL,60HJNEDISPY;满60清零MOVCH,0DISPY:;显示电子秒表MOVB*,OFFSETBUFFER;取缓冲区地址MOVAL,CHCALLTRAN;将分位转变为ASCII码并送缓冲区INCB*INCB*MOVAL,DH;将秒位转变为ASCII码并送缓冲区CALLTRANINCB*INCB*MOVAL,DL;将百分之一秒位转变为ASCII码并送缓冲区CALLTRANPUSHB*PUSHC*PUSHD*CALLIOSET;光标置位MOVD*,OFFSETBUFFER;输出缓冲区字符串MOVAH,09HINT21HPOPD*POPC*POPB*MOVAH,0BH;等待键盘输入INT21HANDAL,ALJZAGAINMOVAH,08HINT21HCMPAL,'R';判断输入是否为RJNENE*T2;不是则判断是否为ECALLMEMORY;假设是则调用记忆功能保存当前值MOVCH,0;初值清零重新计数MOVDL,0MOVDH,0JMPAGAINNE*T2:CMPAL,'E';判断是否为EJNEAGAIN;不是则继续计数NE*T3:;假设是则暂停计数MOVAH,08HINT21HCMPAL,'C';判断是否输入CJEAGAIN;假设是则继续计数CMPAL,'R';判断是否输入RJNENE*T3;假设不是则继续等待输入CALLMEMORY;假设是则调用记忆功能CALLGO;重新设置初值等待重新启动CALLIOSETMOVD*,OFFSETBUFFERMOVAH,09HINT21HJMPLOADRETSTARTENDPGOPROC;设置初值子程序MOVB*,OFFSETBUFFERMOVAL,'0'MOV[B*],ALINCB*MOVAL,'0'MOV[B*],ALINCB*MOVAL,':'MOV[B*],ALINCB*MOVAL,'0'MOV[B*],ALINCB*MOVAL,'0'MOV[B*],ALINCB*MOVAL,':'MOV[B*],ALINCB*MOVAL,'0'MOV[B*],ALINCB*MOVAL,'0'MOV[B*],ALINCB*MOVAL,'$'MOV[B*],ALRETGOENDPIOSETPROCMOVD*,0F10HMOVBH,00MOVAH,02HINT10HRETIOSETENDPHALTPROCMOVAH,08HINT21HCMPAL,'S'JNEHALTRETHALTENDPTRANPROC;十六进制转ASCII码子程序MOVCL,ALSHRAL,1SHRAL,1SHRAL,1SHRAL,1ORAL,30HMOV[B*],ALINCB*MOVAL,CLANDAL,0FHORAL,30HMOV[B*],ALRETTRANENDPTIMEPROC;延时子程序PUSHC*PUSHA*MOVA*,0EFHMOVC*,0FFFFHA1:DECA*JNZA2JMPA3A2:DECC*JNZA2JMPA1A3:POPA*POPC*RETTIMEENDPMEMORYPROC;记忆功能子程序PUSHD*PUSHB*PUSHA*CMPNUM,10JE*2ADDNUM,1*1:MOVD*,LODADDDH,NUMMOVBH,00MOVAH,02HINT10HMOVD*,OFFSETBUFFERMOVAH,09HINT21HPOPA*POPB*POPD*RET*2:CALLCLRMERMOVNUM,1JMP*1MEMORYENDPCLRPROC;图形区清屏并设置颜色子程序MOVAH,06HMOVAL,14HMOVC*,0401HMOVD*,1721HMOVBH,0CHINT10HRETCLRENDPCLRDATPROC;数据区清屏并设置颜色子程序MOVAH,6MOVAL,1MOVC*,0F10HMO
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版餐饮店合资经营合伙协议3篇
- 2024版高水平运动员赛事接待及支持协议一
- 二零二五年城市更新项目土地开发合作协议3篇
- 2024年独家代理招聘合同3篇
- 二零二五年度互联网直播平台合作与收益分成合同3篇
- 2024年版机关事业单位专职司机劳动协议范本版B版
- 2025年度泥浆外运合同范本适用于环保技术研发3篇
- 二零二五年度养老地产房产最高额抵押合作协议3篇
- 2024年物业服务管理合同
- 2025年度水轮发电机组安装合同合同变更及解除条款3篇
- 食品工艺学名词解释、简答题、填空题等
- 中医脑瘫课件教学课件
- 糖尿病病人的饮食教育
- 2024年新闻宣传新闻采编专业及理论知识考试题附含答案
- 河南省濮阳市清丰县多校2024-2025学年三年级上学期期中测试数学试题(无答案)
- 瑞得RTS-820系列全站仪说明书(适用RTS-822.822A.822L.822R.822R .822R3)
- 2024中国工业品电商采购白皮书
- 建筑垃圾外运施工方案
- 公安机关保密协议
- 2024年东方雨虹战略合作协议书模板
- 2024年江苏省南京旅游集团本部人员招聘2人历年高频难、易错点500题模拟试题附带答案详解
评论
0/150
提交评论