微机原理课程设计报告--数字式竞赛抢答器

  • 回答数

    4

  • 浏览数

    719

﹏初秋的凄凉
首页 > 计算机类考试 > 微机原理课程设计报告--数字式竞赛抢答器

4个回答 默认排序
  • 默认排序
  • 按时间排序

弑毅

已采纳
1分钟前发布 -【微机原理课程设计报告--数字式竞赛抢答器】http://www.zjks.cc 10月18日讯: 微机原理课程设计报告--数字式竞赛抢答器微机原理课程设计报告--数字式竞赛抢答器本文简介:微机原理与接口课程设计——数字竞赛抢答器信息工程学院课程设计报告设计题目:数字式竞赛抢答器名称:微机原理与接口课程设计班级:通信1101班姓名:胡政权潘爽学号:20110138252011013836设计时间:12月9日至12月22日指导教师:王本有评语:评阅成绩:评阅教师:一、课程设计的性质和目的微机原理课程设计报告--数字式竞赛抢答器本文内容:微机原理与接口课程设计——数字竞赛抢答器信息工程学院课程设计报告设计题目:数字式竞赛抢答器名称:微机原理与接口课程设计班级:通信1101班姓名:胡政权潘爽学号:20110138252011013836设计时间:12月9日至12月22日指导教师:王本有评语:评阅成绩:评阅教师:一、课程设计的性质和目的课程设计是培养和锻炼学生在学习完本门课后综合应用所学理论知识,解决实际工程设计和应用问题的能力的重要教学环节。它具有动手、动脑和理论联系实际的特点,是培养在校工科大学生理论联系实际、敢于动手、善于动手和独立自主解决设计实践中遇到的各种问题能力的一个重要教学环节。通过课程设计,要求学生熟悉和掌握微机系统的软件、硬件设计的方法、设计步骤,使学生得到微机开发应用方面的初步训练。让学生独立或集体讨论设计题目的总体设计方案、编程、软件硬件调试、编写设计报告等问题,真正做到理论联系实际,提高动手能力和分析问题、解决问题的能力,实现由学习知识到应用知识的初步过渡。通过本次课程设计使学生熟练掌握微机系统与接口扩展电路的设计方法,熟练应用8086汇编语言编写应用程序和实际设计中的硬软件调试方法和步骤,熟悉微机系统的硬软件开发工具的使用方法。通过课程设计实践,不仅要培养学生事实求是和严肃认真的工作态度,培养学生的实际动手能力,检验学生对本门课学习的情况,更要培养学生在实际的工程设计中查阅资料,撰写设计报告表达设计思想和结果的能力。二、课程设计的要求1、遵循硬件设计模块化。2、要求程序设计结构化。3、程序简明易懂,多运用输入输出提示,有出错信息及必要的注释。4、要求程序结构合理,语句使用得当。5、适当追求编程技巧和程序运行效率。三、主要仪器设备及软件PC机、MASM汇编软件、PROTEUS仿真软件等。四、课程设计题目及要求(一)设计题目数字式竞赛抢答器(二)硬件设计1、设计一个可容纳4组(或更多)参赛的数字式抢答器,每组设一个按钮,供抢答使用。2、抢答器具有第一信号鉴别和锁存功能,使除第一抢答者外的按钮不起作用。3、设置一个主持人“复位”按钮。4、主持人复位后,开始抢答,第一信号鉴别锁存电路得到信号后,有显示器显示抢答组别。5、一定时间结束后数码管清零,等待下次抢答开始。五、课题分析及设计思路(一)设计原理与方案设计原理8255:PA0-PA3分别接开始键、1号选手、2号选手、3号选手,作为输入端。PB口输出,PB0接8253的GATE2控制信号MOTOR,PB1接开始提示灯。PC0-PC7输出,接数码管的a-h。8253:计数器CLK2接时钟信号,GATE2接8255的PB0,OUT2输出控制扬声器读8255A口输入信号,检测是否开始,若开始信号发出,则数码管显示0且开始信号灯亮提示开始抢答,否则继续读输入信号。抢答开始后判断哪个选手抢答成功,并通过输出八位信号赋值给C口通过数码管显示,一旦显示,之后只要开始信号仍然有效,无论输入信号怎么改变都依旧显示上述选手号。调用延时子程序,延时结束后,给8255PB0输出高电平,此高电平控制8253GATE2,OUT2接的扬声器发声。再次延时,使扬声器能持续响一段时间。延时结束后PB0输出低电平,数码管复位为下次抢答做准备。设计方案8522A8086CPU(系统复位时钟等辅助电路)抢答电路显示电路计时提醒电路输入输出电路图1硬件框图(二)总电路及分析硬件连接总图图2硬件连接总图单元电路设计1、I/O口部分图3I/O口部分2、显示电路设计图4显示电路设计仿真图8255芯片的C口分别与数码管的八个引脚相连。将8255芯片中需要显示的信息通过C口送入数码显示区,由数码管的亮灭显示出来3、抢答电路设计8255芯片的PA0至PB4分别与5个拨码开关相连,将4位选手的抢答信号(由拨码开关控制)通过A口送入8255芯片。图5抢答电路设计仿真图4、提醒电路设计图6计时提醒电路设计仿真图调用延时子程序,延时结束后,给8255PB0输出高电平,此高电平控制8253GATE2,OUT2接的扬声器发声。再次延时,使扬声器能持续响一段时间。六、程序原理图及代码(一)程序原理图图7程序原理图(二)程序代码DATASEGMENTPORT5_AEQU88HPORT5_BEQU8AHPORT5_CEQU8CHPORT5_CONTEQU8EHPORT3_2EQU94HPORT3_CONTEQU96HDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAL,10010000B;8255初始化OUTPORT5_CONT,ALMOVAL,10010110B;8253初始化OUTPORT3_CONT,ALMOVAL,15OUTPORT3_2,ALAGAIN1:INAL,PORT5_A;开始按钮闭合,开始抢答ANDAL,1FHTESTAL,01HJNZAGAIN1MOVAL,3FHOUTPORT5_C,AL;显示0MOVAL,2OUTPORT5_B,AL;开始显示灯亮AGAIN2:INAL,PORT5_A;检测哪个选手抢答成功ANDAL,1FHTESTAL,02HJZH1TESTAL,04HJZH2TESTAL,08HJZH3TESTAL,10HJZH4JMPAGAIN2H1:MOVAL,06H;显示“1“OUTPORT5_C,ALMOVCX,10A0:CALLDELAY;调用延时子程序LOOPA0JMPEXITH2:MOVAL,5BH;显示2OUTPORT5_C,ALMOVCX,10A1:CALLDELAYLOOPA1JMPEXITH3:MOVAL,4FH;显示3OUTPORT5_C,ALMOVCX,10A2:CALLDELAYLOOPA2JMPEXITH4:MOVAL,66H;显示4OUTPORT5_C,ALMOVCX,10A3:CALLDELAYLOOPA3JMPEXITDELAYPROCNEAR;延时程序PUSHBXPUSHCXMOVBX,1000DEL1:MOVCX,100DEL2:LOOPDEL2DECBXJNZDEL1POPCXPOPBXRETDELAYENDPEXIT:MOVAL,1;8253GATE2有效,扬声器响OUTPORT5_B,ALCALLDELAY;延时MOVAL,0;8253GATE2无效,扬声器不响OUTPORT5_B,ALMOVAL,3FH;数码管显示“0“OUTPORT5_C,ALJMPSTARTMOVAH,4CHINT21HCODEENDSENDSTART七、实验结果截图这是抢答开始时的状态电路,当主持人按下开关后,开始显示灯亮且数码管显示0。这是选手开始抢答后的状态,例如图中三号选手抢答成功后数码管即可显示3。由图上可得,当三号选手抢答成功后,二号选手抢答无效。这是延时后的复位情况,方便开始下一轮的抢答。八、心得体会持续两个星期的课程设计结束了,我们的设计虽然有一些小毛病,但总体上还是很成功的。以前很少接触仿真软件,这次设计要大量使用仿真软件,所以学会了multisim软件的基本应用,还有“轻松汇编”的编程。在电路仿真的过程中出现大量问题,需要我们细心解决,所以,我们对电路故障的排查能力有了很大的提高。通过这次实验设计,我们懂得了抢答器的设计,即抢答电路、控制电路、锁存电路及报警电路的设计方法。通过一段时间的抢答器的设计,增长了许多的知识,知道了做好一件事是并不是想象中那么简单,不是知道了书本中老师教的东西就可以做好,事实不是想象中那样的完美,在现实中有许多预料不到的困难在等着你,有时候都令人崩溃了,某些时候都无离头似的瞎忙活,不过从中间学会了坚持。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。此次课程设计,学到了很多课内学不到的东西,比如独立思考解决问题,出现差错的随机应变,和与人合作共同提高,都受益非浅,今后的制作应该更轻松,自己也都能扛的起并高质量的完成项目。最后,我要感谢给予我们精心辅导的老师。九、参考文献《微机原理与接口技术》周国祥中国科学技术大学出版社《电子技术基础数字部分》康光华高等教育出版社《微机原理与汇编语言》潘峰电子工业出版社-13-
22 评论

把酒祝东风

已采纳
硬件报告-定时中断采样与开关控制硬件报告-定时中断采样与开关控制本文简介:19计算机硬件技术实践报告题目定时中断采样与开关控制姓名专业自动化(核电运行方向)班级学号上海电力学院自动化工程学院一、设计题目定时中断采样与开关控制二、开发目的通过本项课程设计,对计算机硬件课程中涉及的芯片结构、控制原理、硬件编程等方面有一定的感性认识和实践操作能力,更好的理解计算机硬件课程中讲述硬件报告-定时中断采样与开关控制本文内容:19计算机硬件技术实践报告题目定时中断采样与开关控制姓名专业自动化(核电运行方向)班级学号上海电力学院自动化工程学院一、设计题目定时中断采样与开关控制二、开发目的通过本项课程设计,对计算机硬件课程中涉及的芯片结构、控制原理、硬件编程等方面有一定的感性认识和实践操作能力,更好的理解计算机硬件课程中讲述的基本原理和概念。本实验要完成的目标是通过电位器W1产生的0-5V电压,8259每2秒中断一次,中断后对0809采样一次,比较0809的采样值,0809的输入值在0-2.5V,4个开关量输出控制的灯全灭,输入值在大于2.5V小于或等于3V时,有一个灯亮,输入值在大于3V小于等于3.5V时2个灯亮,输入值在大于3.5V小于等于4V时3个灯亮,输入值在大于4V时4个灯亮。三、小组成员分工及成果廖丽霞20111537李慧20111517四、设计方案以及论证通过电位器W1产生的0-5V电压,8259每2秒中断一次,中断后对0809采样一次,比较0809的采样值,0809的输入值在0-2.5V,4个开关量输出控制的灯全灭,输入值在大于2.5V小于或等于3V时,有一个灯亮,输入值在大于3V小于等于3.5V时2个灯亮,输入值在大于3.5V小于等于4V时3个灯亮,输入值在大于4V时4个灯亮。五、硬件原理图(包括芯片的选型介绍)芯片的选型介绍:l8086主要功能:8086CPU包括两大部分:EU和BIUBIU不断地从存储器取指令送入IPQ,EU不断地从IPQ取出指令执行;EU和BIU构成了一个简单的2工位流水线;指令预取队列IPQ是实现流水线操作的关键(类似于工厂流水线的传送带)。主要引脚:数据信号线(DB)与地址信号线(AB):AD7~AD0:三态,地址/数据复用线。ALE有效时为地址的低8位。地址信号有效时为输出,传送数据信号时为双向;A19~A16:三态,输出。高4位地址信号,与状态信号S6-S3分时复用;A15~A8:三态,输出。输出8位地址信号;WR:三态,输出。写命令信号;RD:三态,输出。读命令信号;IO/M:三态,输出。指出当前访问的是存储器还是I/O接口。高:I/O接口,低:内存;DEN:三态,输出。低电平时,表示DB上的数据有效;RESET:输入,为高时,CPU执行复位;ALE:三态,输出。高:AB地址有效;DT/R:三态,输出。数据传送方向,高:CPU输出,低:CPU输入图1.8086芯片l8255A主要功能:含3个独立的8位并行输入/输出端口,各端口均具有数据的控制和锁存/缓冲能力。可通过编程设置各端口的工作方式和数据传送方向(入/出/双向)。主要引脚:连接外设端的引脚:PA0~PA7、PB0~PB7、PC0~PC7(分别对应A、B、C三个8位输入/输出端口)三个端口可通过编程分别指定为输入或输出口。其中,C口即可用作独立的输入/输出口,也可用作A、B口的握手联络信号(控制信号输出或状态信号输入)。图4.8255芯片l8259A主要功能:①一片8259A可以接受并管理8级可屏蔽中断请求,通过9片8259A级联可扩展至***级可屏蔽中断优先控制。②对每一级中断都可以通过程序来屏蔽或允许。③在中断响应周期,8259A可为CPU提供相应的中断类型码。④具有多种工作方式,并可通过编程来加以选择。主要引脚:D7~D0:双向、三态数据线,与CPU系统总线连接。RD:读信号,输入,低电平有效。当有效时CPU对8259A进行读操作。WR:写信号,输入,低电平有效。当有效时CPU对8259A进行写操作。A0:端口地址选择信号,输入,由8259A片内译码,选择内部寄存器。CS:片选信号,输入,低电平有效。当有效时8259A被选中。SP/EN:双向信号线,用于从片选择或总线驱动器的控制信号。当8259A工作于非缓冲方式时,SP/EN作为输入信号线,用于从片选择。级联中的从片接低电平,主片接高电平。当8259A工作于缓冲方式时,SP/EN作为输出信号线,用做8259A与系统总线驱动器的控制信号。INT:中断请求信号,与CPU的中断请求信号相连。INTA:中断响应信号,与CPU的中断应答信号相连。CAS2~CAS0:级联信号线,作为主片与从片的连接线,主片为输出,从片为输入,主片通过CAS2~CAS0的编码选择和管理从片。IR7~IR0:中断请求输入信号,由外设输入。图5.8259芯片l8253A概貌介绍:3个16位的定时/计数器(通道);4引脚双列直插式;最高计数频率2MHz;TTL电平兼容;单电源+5V供电。主要构成:计数器(3个)包括:16位初值寄存器(只写)、16位计数寄存器(减1计数器)、16位锁存寄存器(只读);控制寄存器(1个):存放控制命令字(8位)(只写);占用4个地址:3个计数器,1个控制寄存器。主要引线:CLKn:时钟脉冲输入,计数器的计时基准;GATEn:门控信号输入,控制计数器的启停;OUTn:计数器输出信号,不同工作方式下产生不同波形。(n=0~2)。图6.8253内部结构图图7.8253芯片lADC0808如下特点:8通道(8路)输入;8位字长;逐位逼近型;转换时间100μs;内置三态输出缓冲器(可直接接到数据总线上)。引脚功能:D7~D0:输出数据线(三态)IN0~IN7:8通道(路)模拟输入ADDA、ADDB、ADDC:通道地址(通道选择)ALE:通道地址锁存START:启动转换EOC:转换结束,可用于查询或作为中断申请OE:输出允许(打开输出三态门)CLK:时钟输入(10KHz~1.2MHz)VREF(+)、VREF(-):基准参考电压图8.ADC0808芯片l74HC245主要功能:245是方向可控的八路缓冲器,主要用于实现数据总线的双向异步通信。为了保护脆弱的主控芯片,通常在主控芯片的并行接口与外部受控设备的并行接口间添加缓冲器。当主控芯片与受控设备之间需要实现双向异步通信时,自然就得选用双向的八路缓冲器了,245就是面向这种需求的。常见于同并口液晶屏、并口打印机、并口传感器或通讯模块等设备的接口上。主要引脚:DIR:为输入输出端口转换用,DIR=“1”高电平时信号由“A”端输入“B”端输出,DIR=“0”低电平时信号由“B”端输入“A”端输出。第2~9脚“A”信号输入输出端,A0=B0,A7=B7,A0与B0是一组,如果DIR=“1”OE=“0”则A1输入B1输出,其它类同。如果DIR=“0”OE=“0”则B1输入A1输出,其它类同。OE:使能端,若该脚为“1”A/B端的信号将不导通,只有为“0”时A/B端才被启用,该脚也就是起到开关的作用。图9.74HC245芯片l74HC138主要功能:74HC138作用原理于高性能的存贮译码或要求传输延迟时间短的数据传输系统,在高性能存贮器系统中,用这种译码器可以提高译码系统的效率。将快速赋能电路用于高速存贮器时,译码器的延迟时间和存贮器的赋能时间通常小于存贮器的典型存取时间,这就是说由肖特基钳位的系统译码器所引起的有效系统延迟可以忽略不计。HC138按照三位二进制输入码和赋能输入条件,从8个输出端中译出一个低电平输出。两个低电平有效的赋能输入端和一个高电平有效的赋能输入端减少了扩展所需要的外接门或倒相器,扩展成24线译码器不需外接门;扩展成32线译码器,只需要接一个外接倒相器。在解调器应用中,赋能输入端可用作数据输入端。74HC138集成译码器功能表:图9.74HC138芯片l74273(待完善)主要功能:公共时钟复位八D触发器。主要引脚:1D~8D为数据输入端,1Q~8Q为数据输出端,正脉冲触发,低电平清除,常用作8位地址锁存器。图10.74273芯片六、程序流程图(包括各个子系统和子过程的程序流程)七、程序清单,要有适当的注释DATASEGMENTNUMDB0DATAENDSSTACKSEGMENTSTACKDB200DUP(0)STACKENDSDATASEGMENTCNTDB1DATAENDScodeSEGMENTcodeassumeCS:code,DS:datastart:MOVAX,DATAMOVDS,AXMOVDX,01030HMOVAL,74HOUTDX,ALMOVDX,01010HMOVAX,2000OUTDX,ALMOVAL,AHOUTDX,ALMOVDX,01030HMOVAL,36HOUTDX,ALMOVDX,01000HMOVAX,1000;输入为1M频率,且OUT0接CLK1,1M*1000000=1SOUTDX,ALMOVAL,AHOUTDX,ALMOVDX,0220CHMOVAL,8AHOUTDX,ALCLI;修改中断向量前关中断MOVAX,0MOVES,AX;es段=0MOVSI,60H*4;设置中断向量96号中断MOVAX,OFFSETint0;中断入口地址;stoswMOVES:[SI],AX;[si]=60h*4,存放入口地址->IP8086MOVAX,CS;segint0->CS8086;stosw;MOVES:[SI+2],AX;初始化8259MOVAL,00010011bMOVDX,400H;ICW1=00010011B//010000010000A0=0,D4=1,CS=0400HOUTDX,ALMOVAL,060h;060bMOVDX,402h;ICW2=01100000B//010000000010A0=1,CS=0402HOUTDX,ALMOVAL,1bh;ICW4=00011011B//1bhOUTDX,ALMOVDX,402hMOVAL,00h;OCW1,八个中断全部开放00hOUTDX,ALMOVAL,20H;EOIOUT20H,AL;MOVDX,400h;//010000000000A0=0,CS=0;MOVAL,60H;OCW2,非特殊EOI结束中断;OUTDX,AL;OCW2可以不赋值;完成8259初始化MOVAL,cnt;初始cnt=1MOVDX,0200H;led的地址//001000000000,led=0OUTDX,AL;开始第一个灯亮STI;开中断li:;8086模型有问题,它取得的中断号是最后发到总线上的数据,并不是由8259发出的中断号;所以造成了要在这里执行EOI的假相,这三句与下面的指令效果是一样的MOVDX,400H;CS=0400HMOVAL,60h;如果改为其它值,将出错,因为只有60H有中断向量OUTDX,ALJMPli;中断服务程序----------------------------------int0:CLI;关中断,MOVDX,02208HMOVAL,00HOUTDX,ALMOVAL,01HOUTDX,ALMOVAL,02HOUTDX,ALMOVCX,10000LOP1:NOPLOOPLOP1WAIT1:INAL,DXANDAL,10HJZWAIT1MOVDX,02204HINAL,DXCMPAL,0CCH;大于4VJAMAXCMPAL,0B3H;大于3.5V且小于等于4VJAMA2CMPAL,99H;大于3V且小于等于4VJAMA3CMPAL,80H;大于2.5V且小于等于3VJAMINMOVAL,00HJMPDISPLAYMIN:MOVAL,08HJMPDISPLAYMA3:MOVAL,0CHJMPDISPLAYMA2:MOVAL,0EHJMPDISPLAYMAX:MOVAL,0FHDISPLAY:MOVDX,02200HOUTDX,ALMOVDX,2008HMOVAL,00HOUTDX,ALSTI;开中断IRET;返回主程序;-------------------------------------------------codeENDSENDstart八、程序运行结果分析与预测连接好硬件电路图,载入程序后,点击运行键,程序的运行与预期的结果很相近,能很好地完成中断定时采样和开关控制功能。当输入值在0-2.5V,4个开关量输出控制的灯全灭,输入值在大于2.5V小于或等于3V时,有一个灯亮,输入值在大于3V小于等于3.5V时2个灯亮,输入值在大于3.5V小于等于4V时3个灯亮,输入值在大于4V时4个灯亮。九、结果评述或总结(对实验结果进行分析,对实验过程进行总结,系统改进升级建议或者提出新的方案等。通过本次课程设计使大家更加熟练的掌握了微机系统与接口扩展电路的设计方法,能够熟练应用8086汇编语言编写应用程序和实际设计中的硬软件调试方法和步骤,熟悉微机系统的硬软件开发工具的使用方法。在课程设计过程中,我们组相互协助,一起讨论设计题目的总体设计方案、编程、软件硬件调试、编写设计报告等问题,通过不断的修改完善,基本完成了相关的课题。实验中,我们对微机相关方面的知识有了更进一步的认识和掌握。学会了运用理论知识来解决实际问题,锻炼了我们在学完本门课后综合应用所学理论知识,解决实际工程设计和应用问题的能力。通过这次的微机原理课程设计实验,使我们更好的掌握8086微机系统中各种芯片的连接方式,以及在8259、0809等一些应用部件在系统中的应用。不仅如此,在编程的同时也让我们对微机原理课程的理论知识也有了更深刻的巩固和理解,实验技能也有了进一步的提高,作为利用所学理论来解决实际问题方面,我们掌握了分析相对复杂的电路,以及进行对应的程序编程。总之,通过这次实验,我们认识到了每一个细节都是很重要的,我们要做到认真仔细,真正做到理论联系实际,提高自身分析问题、解决问题的能力开始8253计时器1初始化8253计时器0初始化8255初始化8259初始化中断?NY0808数据采集采集x>4Y四个灯亮N3.5Y三个灯亮N3Y两个灯亮N2.5Y一个灯亮N全灭N结束19
44 评论

淡陌

已采纳
微机原理课程设计报告-秒表设计微机原理课程设计报告-秒表设计本文简介:课程设计报告(2013—2014年度第一学期)课程:微机原理及应用题目:秒表设计院系:自动化系班级:学号:学生姓名:Acceler指导教师:设计周数:一周成绩:日期:2014年1月10一、课程设计目的与要求1.通过对微机系统分析和具体设计,使学生加深对所学课程的理解。2.掌握汇编语言程序设计的基本方微机原理课程设计报告-秒表设计本文内容:课程设计报告(2013—2014年度第一学期)课程:微机原理及应用题目:秒表设计院系:自动化系班级:学号:学生姓名:Acceler指导教师:设计周数:一周成绩:日期:2014年1月10一、课程设计目的与要求1.通过对微机系统分析和具体设计,使学生加深对所学课程的理解。2.掌握汇编语言程序设计的基本方法和典型接口电路的基本设计方法。3.培养学生分析问题、解决问题的能力。4.培养学生对微型计算机应用系统的基本设计能力。5.提高学生的实践动手能力和创新能力二、课程设计正文(一)设计题目:秒表设计:利用实验箱上的小键盘,自定义各按键为启动计时,数据清零,停止并显示。利用六个数码管显示分、秒、毫秒。8253产生10ms定时中断,在中断服务子程序中显示秒表计时。附加部分:加入记录功能,可通过按键记录多次时间,然后在停止计时后,通过键盘上的0,1,2……等按键再把记录的时间取出并显示,达到实际秒表的分别计时功能。(二)总体设计方案:1.自定义小键盘中的三个按键分别为启动键、清零键、分别计时键、停止显示键(我们依次选择了MON、LAST、NEXT、RES这三个按键)。2.利用8253产生的10ms的方波来触发8259产生中断,对秒表进行增1操作3.动态扫描键盘,判断按键情况,并利用蜂鸣器模拟按键声音4.根据按键情况确定要显示的内容,然后对六位数码管进行扫描显示(三)系统的功能作用:1.实验箱启动后,六位数码管全部显示为0,如果不对键盘进行操作将始终保持这个状态2.普通计时功能:按下MON(启动键),数码管开始从零开始显示计时,从左到右依次显示每两位之间用八段数码管的小数点了隔开来作为分、秒、毫秒的区分,按下停止键RES,计时结束,显示停止时的时间。3.分记功能:在计时过程中按下分别计时按键NEXT,将按下瞬间的显示值存储起来(最多可取16次),再停止计时后,可通过按下0、1、2等按键依次读出第1次、第2次、第3次按键时记录下的时间,并在数码管上显示,达到实际秒表的分别计时功能。4.清零复位:按下清零键LAST,六位数码管全部显示为0,实现清零功能。清零后再按下启动键MON,系统将又重新从0开始计时。5.按键同时伴随音效:在按下小键盘上的按键时,会激活蜂鸣器发出短暂的声音,模拟实际秒表中按键的声音6.备注:(1)注意最后两位毫秒表示位实际单位为10ms,所以每加到99后向秒进位再重新从零开始依次增1。(2)秒表计时最长时间为60分钟,当大于这个时间后,数码管将又重新从零开始计时。(3)考虑到键盘上0——F共十六个键,所以我们设计的系统对分记有次数限制,最多为16次,超过16次时,计时自动停止,但仍可以读出存储下的16个时间。(四)具体硬件电路设计:1.片选地址的设计:对8086地址线进行锁存后,利用3-8译码器进行译码,为匹配实验箱上的片选地址在电路中我们选择了A12,A13,A14分别接A,B,C,A15接入高电平使能端E1,这样Y0就对应8000h-8fffh,Y1对应9000h-9fffh,依此类推。地址线的锁存:CPU接线设计译码器设计1.8253设计:?8253片选信号地址为0C000H,即8253片选接CS4。?分频器的Fin接4MHz时钟。8253的GATE1,GATE0接VCC。?8253时钟源CLK0接分频电路的F/4输出,8253时钟源CLK1接分频电路的F/***输出。?两个计数器都工作在方式3下。其中out1产生100Hz方波作为8259的中断申请信号,上升沿触发中断;out0产生的方波控制蜂鸣器在按键时同时响起。8253线路图与蜂鸣器的接线2.8259中断设计:?8259片选信号地址为0D000H,即8253片选接CS5。?8259中断INT0接8253的OUT1,进行中断申请8259的接线设计3.数码管与键盘设计:?为简化接线,直接利用硬件实验箱中的数码管与CPU总线相连的特性(其中8002h为位控制口08004h为段控制口),用8000H做片选信号,即片选接CS0即可控制数码管与键盘。具体硬件电路接线如下图:从电路图中可以看到,数码管位控制口8002h,数码管段控制口8004h,键盘读入口8001h注:最右侧一列的四个按键依次为停止键RES,启动键MON,清零键LAST,分别计时按键NEXT(五)编写程序:?根据电路设计,确定端口8259端口为:偶地址端口D000h,奇地址端口D001h8253的端口为:计数器0C000h,计数器1C001,控制寄存器C003h数码管位控制口8002h数码管段控制口8004h键盘读入口8001h?根据设计方案,确定8253的初始化命令计数器0的控制字00110110即36h计数器1的控制字01110110即76h计数器0将会输出方波控制蜂鸣器计数器1赋初值625D,这样就会将1/16MHz(62.5KHz)的方波转换成100Hz的方波输出,申请中断。?根据题目要求,确定8259的初始化命令ICW1=13H(00010011B);ICW2=20H(00100000B);ICW4=01H(00000001B);?中断向量的装入根据ICW2=20H(10000000B),则确定IR0的中断类型号就是20H,根据中断向量等相关知识,编写中断向量装入的程序段。?编写服务中断子程序中断子程序中实现对显示时间的增1操作,每进入一次中断最末尾数加一,并判断是否有向高位的进位。得到正确的时间。?编写键盘读入,数码管扫描显示,延时等程序,合理安排编程顺序将整个程序连接起来。(六)程序流程图:中断到?将显示时间增加10ms,利用数码管动态扫描显示扫描键盘,读入按键情况开中断,秒表从零开始计时,等待中断8253,8259初始化中断向量的装入开始等待启动键按下启动键按下?继续等待中断进行计时六位数码管全部显示为零将当前的时间值存储下来关中断,计时停止读出相应的记录时间显示出来主程序流程图NYNY无按键按下分别计时键按下清零键按下停止键按下数字键中断服务子程序流程图是否到60s分加1是否到60min毫秒位加一(也即增加10ms)秒加1是否到1000ms清零中断结束NYNYNY三、课程设计总结(一)课设过程为更快更准的完成课程设计,我们根据选择的设计题目先分步了解相关知识,1.首先对数码管的显示做了了解:为了对数码管更熟悉,在protues上自己绘制了相关电路并编写程序进行仿真,实现一个六位数码管依次循环显示0~A的功能2.然后对小键盘的读入做了了解:根据wave自带的范例程序,利用硬件电路实现按下按键在数码管上显示相应的数据,以此为基础了解键盘扫描读入的过程。至此所需模块都所了解后,根据题设要求来构思并绘制主程序流程图。跟据流程图和前期对数码管和小键盘做的了解编写汇编程序,并进行上机调试(二)遇到的问题与解决办法调试过程中,我们先将任务分散化分模块来攻克整个任务。首先只利用中断控制数码管计时,因为有前一天做的基础,我们很顺利实现计时功能,然后考虑加入按键读入部分,问题开始出现1.由于开始并没有将按键之间的联系与衔接处理好,所以在初步的调试中只有一个启动键实现功能,其他键的功能读出现问题,然后我们花了大概一个小时来仔细讨论与编写功能键之间的跳转,不断进行调试,最终顺利实现各键的功能。2.在调试程序过程中有的条件跳转间隔太长,而条件跳转只能是短转移,所以我们先利用条件转移跳到近出,在通过jmp跳到目的指令处。3.在调试过程中发现数码管的显示亮度与扫描速度之间存在矛盾,显示的很清晰的时候就会发现6个数码管扫描速度减慢,为依次点亮;而扫描速度变快时清晰度又就会降低。所以为得到一个合适的延时时间调试了一段时间。4.加入蜂鸣器模拟按键音,花了一定的时间来确定合适的频率,使得音调合适没有杂音。而且调试延时程序使得发音的时间长短合适。在延时过后重写8253控制字,使计数器复位,蜂鸣器就不再响了。5.在所有功能实现后又对程序进行了进一步优化,使逻辑更加清晰明了,精简不必要的语句,比如在我们的系统中只涉及到键盘的一列,所以就舍弃了对其他键的选中等问题,尽量精简程序。6.加入分别计时的功能后,新添加了几段子程序,子程序的嵌套、调用等操作增多,由于没有对寄存值进行压栈保护,使得各个子程序中使用的寄存器中的值互相影响,出现了数码管乱码现象,经过单步运行调试发现了原因,对每个子程序用到的寄存器值都先进行压栈保护,最终顺利实现了该功能。(三)收获:1.通过这次程序的制作,使我们对汇编语言的基本知识的使用更加熟练,同时也增加了我们对8253、8259、数码管、键盘等硬件设备的进一步认识2.在课程设计完成过程中通过和同学的交流,相互启发,使得课设进行的更加有效率,也增加了小组成员的合作的技巧与沟通能力。3.通过查阅资料也学到了一些课本上没有的东西,拓宽了自己的知识面,增加了学习汇相互编语言的乐趣。4.由于这次编写的程序段较为长,所以需要更为严谨的逻辑才能保证程序顺利执行,而且通过后期对程序的精简与优化,很大程度上提高了我们的程序编写能力。(四)心得与体会这并不是第一次用汇编语言来设计一个小程序,经过平时实验经验的积累,使得我们面对题目更加有信心,不论是之前的编程实验还是protues硬件仿真和实验箱硬件实验都给我们打下了良好的基础。除了涉及到数码管和键盘的相关知识较为生疏外,对其他硬件的操作还是游刃有余的。在这次课程设计中,我真正体会到了合作的重要性,遇到很多问题时,当一个人看书查资料不能解决时,跟队友讨论一下,互相启发,收获很大,可以使很多问题迎刃而解,而且互相学到很多东西。不可否认,本程序仍存在不少缺点和不足,但通过这次课程设计的确找出了自己在学习上的不足,对以后的学习工作也有指导作用。相信在以后的学习中会克服这些不足,更加熟练掌握汇编语言!四、参考文献[1]张永祥.《微型计算机原理》.中国电力出版社.2005年8月[2]武新.《汇编语言程序设计》.武汉理工大学出版社.2006年7月[3]马力.《8086汇编语言程序设计》.机械工业出版社.2006年9月[4]杨季文.《汇编语言程序设计教程》.清华大学出版社.2008年3月附录源程序:;本实验利用8253做定时器,用定时器输出的脉冲控制8259产生中断;在8259中断处理程序中,对分、秒、毫秒进行计数,在等待中断的循;环中用LED显示时间。;8253用定时器/计数器1,8253片选接CS4,地址为0C000H。8253时钟;源CLK1接分频电路的F/***输出。分频器的Fin接4MHz时钟。8253的;GATE1接VCC。;8259中断INT0接8253的OUT1,片选接CS5,地址为0D000H。;显示电路的KEY/LEDCS接CS0,地址为08000H。CONTROLequ0c003hCOUNT0equ0c000hCOUNT1equ0c001hOUTBITequ08002h;位控制口OUTSEGequ08004h;段控制口IN_KEYequ08001h;键盘读入口ICW1equ00010011b;单片8259,上升沿中断,要写ICW4ICW2equ00100000b;中断号为20HICW4equ00000001b;工作在8086/88方式OCW1equ11111110b;只响应INT0中断CS8259Aequ0d000h;8259地址CS8259Bequ0d001hdatasegmentLEDBufdb6dup(3fh);显示缓冲LEDBuf1db96dup(3fh)MINUTEdb0SECONDdb0MSdb0LEDMAP:;八段管显示码db3fh,06h,5bh,4fh,66h,6dh,7dh,07hdb7fh,6fh,77h,7ch,39h,5eh,79h,71hKeyTable:;键码定义db32h,31h,30h,33hdb13h,12h,11h,10hdb0dh,0ch,0bh,0ahdb0eh,03h,06h,09hdb0fh,02h,05h,08hdb00h,01h,04h,07hdataendscodesegmentassumecs:code,ds:dataDelayprocnearpushax;延时子程序pushcxmoval,50movcx,axloop$popcxpopaxretDelayendpdelay1procnearpushcxmovcx,6000loop$popcxretdelay1endpDisplayLEDprocnearpushbxpushcxpushaxpushdxmovcl,6;共6个八段管movah,20h;作为选通信号,高电平有效DLoop:movdx,OUTBITmoval,0outdx,al;关所有八段管moval,[bx]movdx,OUTSEGoutdx,almovdx,OUTBITmoval,ahoutdx,al;显示一位八段管pushaxmovah,02hcallDelaypopaxshrah,1incbxdeccljnzDLoopmovdx,OUTBITmoval,0outdx,al;关所有八段管popdxpopaxpopcxpopbxretDisplayLEDendpTestKeyprocnearmovdx,OUTBITmoval,0outdx,al;输出线置为0movdx,IN_KEYinal,dx;读入键状态notalandal,0fh;高四位不用retTestKeyendpGetKeyprocnearmovch,00100000bmovcl,6KLoop:movdx,OUTBITmoval,ch;找出键所在列notaloutdx,alshrch,1movdx,IN_KEYinal,dxnotalandal,0fhjneGoon_;该列有键入deccljnzKLoopmovcl,0ffh;没有键按下,返回0ffhjmpExit1Goon_:decclshlcl,2;键值=列X4+行movch,4LoopC:testal,1jnzExit1shral,1inccldecchjnzLoopCExit1:movdx,OUTBITmoval,0outdx,almovch,0movbx,offsetKeyTableaddbx,cxmoval,[bx];取出键码movbl,alWaitRelease:movdx,OUTBITmoval,0outdx,al;等键释放movah,10callDelaycallTestKeyjneWaitReleasemoval,blretGetKeyendpToneprocnearpushaxmovax,1802;查找音频值callOutTonecalldelay1;延时movdx,CONTROLmoval,36houtdx,al;关闭发音popaxretToneendpOutToneprocnearpushaxmoval,36h;计数器0,二进制,方式3。movdx,CONTROLoutdx,alpopaxmovdx,COUNT0outdx,almoval,ahoutdx,alretOutToneendpIEnterprocnearpushaxpushdxincMSmoval,MScmpal,100jneExitmovMS,0incSECONDmoval,SECONDcmpal,60jneExitmovSECOND,0incMINUTEmoval,MINUTEcmpal,60jneExitmovMINUTE,0Exit:movdx,CS8259Amoval,20h;中断服务程序结束指令outdx,alpopdxpopaxiretIEnterendpIInitprocmovdx,CS8259Amoval,ICW1outdx,almovdx,CS8259Bmoval,ICW2outdx,almoval,ICW4outdx,almoval,OCW1outdx,alretIInitendpwriteprocnearpushcxpushbxmovcx,6incbpmovdi,offsetLEDBuflop:movbl,[di]mov[si],blincsiincdilooploppopbxpopcxretwriteendpstartprocnearclimovax,0movds,axmoval,76h;计数器1,方式3,二进制movdx,CONTROLoutdx,almovax,625;输出频率为100Hzmovdx,COUNT1outdx,al;计数器低字节moval,ahoutdx,al;计数器高字节movbx,ICW2*4;装入中断向量movax,offsetIEntermov[bx],axincbxincbxmovax,segIEntermov[bx],axcallIInitmovax,datamovds,axmovsi,offsetLEDBuf1movbp,0LP:movMINUTE,0movSECOND,0movMS,0movbx,offsetLEDBufcallDisplayLEDcallTestKey;有键入?jeLP;无键入,继续显示callTonecallGetKey;读入键码cmpal,30hjeL1jmpLPL1:movbx,offsetLEDBufcallDisplayLEDmoval,MINUTEmovah,0movcl,10divclmovch,ahmovah,0movbx,offsetLEDMAPaddbx,axmoval,[bx]movLEDBuf,almovbx,offsetLEDMAPmoval,chmovah,0addbx,axmoval,[bx]oral,80hmovLEDBuf+1,almoval,SECONDmovah,0movcl,10divclmovch,ahmovah,0movbx,offsetLEDMAPaddbx,axmoval,[bx]movLEDBuf+2,almovbx,offsetLEDMAPmoval,chmovah,0addbx,axmoval,[bx]oral,80hmovLEDBuf+3,almoval,MSmovah,0movcl,10divclmovch,ahmovah,0movbx,offsetLEDMAPaddbx,axmoval,[bx]movLEDBuf+4,almovbx,offsetLEDMAPmoval,chmovah,0addbx,axmoval,[bx]oral,80hmovLEDBuf+5,alcallTestKeyjeL1callGetKey;读入键码L6:cmpal,31hjneL2callTonemovLEDBuf,3fh;显示清零movLEDBuf+1,3fhmovLEDBuf+2,3fhmovLEDBuf+3,3fhmovLEDBuf+4,3fhmovLEDBuf+5,3fhjmpLPL2:cmpal,32hjneL3callTonecmpbp,16jzend1callwriteL3:cmpal,30hjneL4callTonestiL4:cmpal,33hjneL5jmpend1L5:jmpL1end1:callToneclimovbx,offsetLEDBuflop1:callDisplayLEDcallTestKey;有键入?jelop1;无键入,继续显示callGetKey;读入键码cmpal,0fhjgL6callTonemovbx,offsetLEDBuf1movah,0shlal,1movch,alshlal,1addal,chaddbx,axjmplop1startendpcodeendsendstart
77 评论

霸气贫穷三小只

已采纳
微机原理课程设计报告--简易电压表设计微机原理课程设计报告--简易电压表设计本文简介:目录1.课程设计描述2(1)设计目的2(2)设计题目2(3)设计要求22.设计原理23.硬件电路图及接线说明84.软件工作流程图85.程序设计代码及分析96.调试过程及结果147.课程设计总结错误!未定义书签。8.参考文献15一、课程设计描述(1)设计目的通过课程设计达到理论与实际应用相结合,提高对微机原理课程设计报告--简易电压表设计本文内容:目录1.课程设计描述2(1)设计目的2(2)设计题目2(3)设计要求22.设计原理23.硬件电路图及接线说明84.软件工作流程图85.程序设计代码及分析96.调试过程及结果147.课程设计总结错误!未定义书签。8.参考文献15一、课程设计描述(1)设计目的通过课程设计达到理论与实际应用相结合,提高对微机硬件结构和软件设计方法的理解。能够根据实际应用初步实现硬件及软件的设计,并对硬件开发有深层次的认识,为今后的软件开发打下坚实的基础(2)设计题目简易电压表设计(3)设计要求利用STARES598PCI试验仪的硬件资源8259中断控制器、8355可编程并行接口芯片和数码管、电位器和ACD0809设计一个简易电压表,编写相应的程序,使电压表能够正常运行,3位数码管显示电位器的电压,精确度要求小数点两位。基本任务:软件查询的方式获取A/D转换结束信息附加任务:中断的方式获取A/D转换结束信息二、设计原理(1)ADC0809芯片ADC0809是逐次逼近型A/D转换器具有较好的精度和速度其采集结果为8位二进制数每采集一次即转换一次需要100us。程序可以采用延迟、EOC结束信号查询、中断查询的方式来读取转换结果。在用中断方式时A/D转换结束后会自动产生EOC信号将其与8259的中断输入端相接即可。电压模拟量可由实验箱上的电位器提供电压范围0~5v,其经ADC0809转换得到的数字范围为0~255。引脚功能:ADC0809芯片有28条引脚,采用双列直插式封装IN0~IN7:8路模拟量输入端。ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路ALE:地址锁存允许信号,输入,高电平有效。START:A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。EOC:A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。OE:数据输出允许信号,输入,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。CLK:时钟脉冲输入端。要求时钟频率不高于***0KHZ。REF(+)、REF(-):基准电压。Vcc:电源,单一+5V。GND:地。工作过程:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。(2)可编程中断控制器8259A8259A是一种可编程序中断控制器与8088/88兼容。能处理8级向量优先权中断,亦可以通过级联构成***级向量优先权中断系统。具有可编程控制中断方式,并能分别屏蔽各个中断请求。通过4个初始化命令字(ICW1~ICW4)及3个操作命令字(OCW1~OCW3)使用该中断控制器。本实验中用8259A来接收AD转换器发出的转换结束信号EOC,从而进行把8位二进制数到电平的转换并显示到数码管。初始化命令字的设置过程(3)并行接口8255A8255A是可编程的通用并行输入/输出接口芯片,其内部有3个8位的输入/输出端口,即A口、B口、C口。C口高4位配合A端口使用,低4位配合B端口使用。8255A的通用性强,使用灵活,通过它CPU可直接与外设相连接。本实验中用8255A的A端口作为数据输出端口B端口也作为输出端口输出位选信号,确定哪一个数码管显示。8255A工作方式:方式0:基本输入输出方式-------适用于无条件传送和查询方式的接口电路方式1:选通输入输出方式-------适用于查询和中断方式的接口电路方式2:双向选通传送方式-------适用于与双向传送数据的外设--------适用于查询和中断方式的接口电路8255A控制字格式:(a)工作方式控制字(b)c口按位置位/复位控制字(4)数码管数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。三、硬件电路图及接线说明硬件见附。接线说明:1、8255A的片选信号端口接到CS7端口地址为09000H—09FFFH,A、B端口均作为输出端口,将其PA0~PA7引脚接至数码管数码显示管的a~g以及小数点dp。PC0~PB2作为位选信号接数码管位选引脚。2、8259A的片选信号端口接到CS6,端口地址为0A000H—0AFFFH。IR0端接ADC0809的EOC端。3、ADC0809的片选信号端口接到CS8,端口地址为08000H—08FFFH。IN0引脚接到电位器,从而产生0~5v电压。四、软件工作流程图五、程序设计代码及分析1、源代码MODEEQU082H;10000010H,方式0,A和C输出PORTAEQU09000H;A口地址PORTBEQU09001H;B口地址PORTCEQU09002H;C口地址CONTROLEQU09003H;命令口地址CS0809EQU08000H;0809地址ICW1EQU00010011B;上升沿触发,单片8259A,需要ICW4ICW2EQU08H;中断类型号为40HICW4EQU00001001B;正常全嵌套,非自动EOI,工作在8086/8088方式OCW1EQU11111110B;IR1-IR7上的中断请求被屏蔽,只响应INT0中断CS8259AEQU0A000HCS8259BEQU0A001HDATASEGMENTNUMDB3DUP(?);开辟三个空间的缓存LEDMAP:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H;数码管显示0到9的字型代码DB7FH,6FHLEDDMAP:DB0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87HDB0FFH,0EFH;包括小数点的显示DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATADELAYPROCNEAR;延时子程序PUSHBXPUSHCXMOVBX,0MOVCX,100A1:INCBXLOOPA1POPCXPOPBXRETDELAYENDPIENTERPROCNEAR;中断服务程序PUSHAXPUSHDXMOVDX,CS0809;0809端口地址INAL,DX;读入结果LED:;转换为原始电压值显示程序MOVBL,0C4H;乘以5/256*10000=196MULBL;AX=AL*BL,得16位结果MOVBX,0001HMULBX;将AX扩展为32位,结果在DX:AX中MOVBX,***H;100DIVBX;DX:AX/BX,得32位,商在AX中,余数在DX中DIVBL;AX/BL,得16位,商在AL中,余数在AH中MOV[SI],AL;整数部分,结果放进NUMMOVSI,OFFSETNUM;段码地址,指向七段码表MOVAL,AHMOVAH,00HMOVBL,0AHDIVBL;再除10MOV[SI+1],AL;AL中为小数点后第一位MOV[SI+2],AH;AH中为小数点后第二位MOVAL,[SI]MOVDI,OFFSETLEDDMAP;段码地址,查表,显示第一位包括小数点MOVAH,0ADDDI,AXMOVAL,[DI]MOVDX,PORTAOUTDX,ALMOVDX,PORTCMOVAL,11111011BOUTDX,AL;选通第一位数码管,整数位CALLDELAYMOVAL,[SI+1]MOVDI,OFFSETLEDMAPMOVAH,0ADDDI,AXMOVAL,[DI]MOVDX,PORTAOUTDX,ALMOVDX,PORTCMOVAL,11111101BOUTDX,AL;选通第二位数码管,小数点后第二位CALLDELAYMOVAL,[SI+2]MOVDI,OFFSETLEDMAPMOVAH,0ADDDI,AXMOVAL,[DI]MOVDX,PORTAOUTDX,ALMOVDX,PORTCMOVAL,11111110BOUTDX,AL;选通第三位数码管,小数点后第二位CALLDELAYMOVDX,CS0809MOVAL,0OUTDX,ALMOVDX,CS8259AXORAX,AX;AX置零MOVAL,20H;中断服务程序结束指令OUTDX,ALPOPDXPOPAXIRETIENTERENDPIINITPROCNEAR;初始化8259AMOVDX,CS8259A;偶地址MOVAL,ICW1;00010011B,上升沿触发,单片8259A,需要ICW4OUTDX,AL;写ICW1用偶地址MOVDX,CS8259B;奇地址MOVAL,ICW2;中断源IR0-IR7,中断类型号为40H-47HOUTDX,AL;写ICW2用奇地址MOVAL,ICW4;正常全嵌套,非自动EOI,工作在8086/8088方式OUTDX,AL;写ICW4用奇地址MOVAL,OCW1;11111110B,IR1-IR7上的中断请求被屏蔽,只响应INT0中断OUTDX,AL;写OCW1用奇地址RETIINITENDPSTARTPROCNEARMOVAX,DATAMOVDS,AXMOVSI,OFFSETNUMMOVDX,CONTROL;8255A控制端命令口MOVAL,MODEOUTDX,AL;输出8255控制字到命令口CLI;屏蔽外部中断CALLIINIT;调用初始化8259AMOVAX,0;初始化中断向量表MOVES,AXMOVDI,4*ICW2;中断号LEAAX,IENTER;设置中断入口地址(灯的显示)STOSWMOV[BX],AXMOVAX,SEGIENTERSTOSWMOVSI,OFFSETNUM;代码段地址为0MOVAL,0;初始值为0MOVDX,CS0809OUTDX,AL;启动模/数转换芯片STI;将处理器标志寄存器中断标志置1,允许中断LP:NOP;短暂延时程序,等待中断JMPLPCODEENDSENDSTART2、整个程序源代码包括定义数据段,定义代码段、子程序及主程序内容。子程序中包括延时子程序、中断服务子程序及8259A初始化主程序。3、A/D转换器从启动转换到转换结束需要一定时间。为了得到正确的转换结果,必须在转换结束之后才能去读取数字量,这就是时间配合。常用三种方法实现时间配合,有:延时等待法、查询法和中断法。中断法是当ADC转换结束,用转换结束信号作为中断请求信号向CPU提出中断请求,CPU相应中断,在中断服务子程序中读取转换结果。4、此次设计中我使用的是中断法。将ADC0809的转换结束指示引脚EOC输出信号作为中断请求信号,送中断控制器8259A,在中断服务程序里读取转换结果。5、将模拟量转化为数字量:因为0~5V的电平用0~255表示所以把转换后的值5/256*10000将电压值转换为实际值的10000倍以确保精度。将所的结果相减,除以100商放入AX,把余数放在DX。将AX中的值再除以100,,商放入AL中,余数放在AH中。这样AL中的值就是整数部分的值将AH中的值除以10商放入AL中即为第一位小数,余数放入AH中,为第二位小数。若还想得到第四第五位小数可以用DX中的值再进行计算。6、通过8255A输出在三位LED数码管上,程序如下:(后两位同理)MOVAL,[SI]MOVDI,OFFSETLEDDMAP;段码地址,查表,显示第一位包括小数点MOVAH,0ADDDI,AXMOVAL,[DI]MOVDX,PORTAOUTDX,ALMOVDX,PORTC;位选MOVAL,00000100BOUTDX,AL;选通第一位数码管,整数位CALLDELAYMOVAL,[SI+1]MOVDI,OFFSETLEDMAPMOVAH,0ADDDI,AXMOVAL,[DI]MOVDX,PORTAOUTDX,ALMOVDX,PORTCMOVAL,11111101BOUTDX,AL;选通第二位数码管,小数点后第二位CALLDELAYMOVAL,[SI+2]MOVDI,OFFSETLEDMAPMOVAH,0ADDDI,AXMOVAL,[DI]MOVDX,PORTAOUTDX,ALMOVDX,PORTCMOVAL,11111110BOUTDX,AL;选通第三位数码管,小数点后第二位CALLDELAY六、调试过程及结果1、按硬件接线图接线后编写软件代码后运行程序。2、发现数码管显示错乱,经检查发现片PA口接反了,进行更正后数码管可以正常显示。3、数码管发光不稳定,闪烁比较严重,后通过更改延时主程序参数问题得到解决。4、完善程序后编译运行,调节电位器,数码管显示电压0.00~4.99。七、课程设计总结八、参考资料1、周荷琴吴秀清,微型计算机原理与接口技术,中国科学技术大学出版社2、李干林李升,微机原理及接口技术实验指导书,北京大学出版社10
33 评论

相关问答

  • 2019年注册化工工程师考试统一配发基础考试手册吗?

    2019年注册化工工程师考试统一配发基础考试手册吗?从去年开始 取消了基础考试统一配发的公式手册……今年也没有,闭卷考试,不许自己携带

    千百年来 4人参与回答 2024-10-18
  • 我想问一下通信工程师能够做哪些职业呢 我是江西的

    我想问一下通信工程师能够做哪些职业呢 我是江西的我了解过 我来回答你吧通信工程师几个就职方向:移动应用产品经理:随着智能手机的兴起和移动互联网的发展,iPhone,android应用开发已成为炙手可热的方向,移动应用产品经理将拥有较强的薪酬竞争力。增值产品开发工程师:增值产品服务主要包括短信息、彩信彩铃、wap等业务,增值产品开发工程师主要负责增值技术平台的开发(sms/wap/mms/web等)

    就不淑女怎么了 4人参与回答 2024-10-18
  • 2019年初级会计职称题库破解版

    2019年初级会计职称题库破解版每当到了初级会计职称考试备考白热化的阶段,就有很多同学都告别了书本,准备通过大量的练习题来校验自己的学习水平,但是市面上各家的题库琳琅满目,到底什么样的题库才是合格好用的呢?我们要怎样来挑选呢?首先,作为一个合格的题库,它的内容必须能涵盖考试中的各种题型,不能有所遗漏。其次,它的数量一定是够用的,同学们需要的是大规模的练习,简单的一两套题目对大家来说是杯水车薪,完全

    湾月清叽 4人参与回答 2024-10-18
  • 物联网工程师证书怎么考报考条件是什么

    物联网工程师证书怎么考报考条件是什么物联网工程师是指熟悉Eclipse开发环境,精通Java,熟悉Web后台开发框架、Linux操作系统,掌握物联网相关技术,从事于物联网软(硬)件管理、物联网智能家居设计、是物联网项目运营、物联网硬件开发等工作的专业技术人员。物联网工程师考试每年统一考五次,时间为4月、6月、8月、10月和12月。那么物联网工程师证书怎么考报考条件是什么?物联网工程师证书怎么考?物

    烟花不堪剪, 4人参与回答 2024-10-18
  • 2020年华为生产哪些型号手机?

    2020年华为生产哪些型号手机?五款华为手机。1、华为nova7 Pro华为nova7 Pro是一款主打拍照的次旗舰手机,该机搭载麒麟985处理器,论性能放在2020年完全够用了,毕竟该机的卖点主要集中在拍照,后置6400万+800万+800万+200万四摄,支持5倍光变、50倍数字变焦,前置3200万+800万像素,配备6.57英寸OLED屏,内置4000mAh电池+40W快充。2、华为畅享Z华

    慕熙 4人参与回答 2024-10-18