1、目录第一章 八路抢答器设计规定与设计案41.1 八路抢答器方案选取与比较41.2 八路抢答器元件选取 4第二章 八路抢答器硬件设计62.1 八路抢答器硬件框图 62.2 显示电路设计 62.3 抢答电路设计 72.4 开始、复位开关控制电路设计 72.5 可编程并行接口8255及其引脚阐明82.6 8086及引脚阐明 10第三章 八路抢答器软件设计 183.1 主程序流程图 183.2 显示模块程序设计 183.3 延时模块程序设计 193.4 开始模块程序设计 193.5 复位模块程序设计 20第四章 设计体会与小结 21附录一 硬件电路 22附录二 程序代码 23附录三 元件清单 24附录
2、四 参照文献 24前言微机接口课程设计是将理论知识和实践能力相统一一种环节,是真正锻炼学生能力一种环节。抢答器能保证比赛中抢答公正性,在诸多场合得到了广泛应用。 抢答器具备锁存与显示功能。即选手按动按钮,锁存相应编号,并在LED数码管上显示。选手抢答实行优先锁存,优先抢答选手编号始终保持到主持人将系统清除为止。当前诸多地方都也许会有各种智力竞赛,当遇到抢答环节时,如果规定主持人自己去用肉眼观测那一种选手抢答速度最快无疑会对比赛成果导致很大影响,同步使比赛失去了公平和公正性,这时候咱们想到了抢答记分器是必要设备。数字抢答器由主体电路与扩展电路构成。优先编码电路、锁存器、译码电路将参赛队输入信号在
3、显示屏上输出;用控制电路和主持人开关启动电路,以上两某些构成主体电路。通过定期电路和译码电路将秒脉冲产生信号在显示屏上输出实现计时功能,构成扩展电路。本论文重要简介了一种用8255芯片实现数码八位抢答器电路构成、设计构想及功能。该抢答器除具备基本抢答功能外,还具备计时功能。主持人通过时间预设开关计算抢答时间。系统将完毕自动倒计时。若在规定期间内有人抢答,则计时将自动停止;若在规定期间内无人抢答,主持人按复位键重新开始。抢答器在现实生活中应用很广泛,因而抢答器设计具备非常重要意义。第一章 八路竞赛抢答器设计规定与设计方案1.1 八路竞赛抢答器方案选取与比较本设计以微机原理及接口技术为基本,以实验
4、箱为工具,完毕P智能抢答器设计。该智能抢答器涉及8086最小应用系统整体设计模块、键盘解决模块(DOS调用)、答题计时模块、LED数码管显示模块。选用8086作为微解决器、扩展可编程并行I/O接口8255A芯片、可编程定期计数芯片8253(或不用)、可编程中断控制器8259A(或不用)、LED数码管及键盘和发光二极管等元件,制定方案如下:方案一 选用8255A,8253,8259,实验箱键盘显示区1. 8253作为定期器使用。2. 8259运用IR0端作为定期到中断引入端,IR2端作为开始键按下中断引入端,IR3端作为清零键按下中断引入端,IR4端作为暂停键按下中断引入端。3. 8255 作为
5、并行输入输出,A口键盘接显示区,C口接清零键和开始键,B口8个抢答开关4. 键盘显示区由四个LED数码管和10个按键构成。方案二 选用8255,实验箱键盘显示区1. 8255作为并行I/O接口,A口接8个抢答开关,B口显示区,C口清零键和开始键。2. 运用软件编程进行定期功能方案选取:方案二采用扫描,没有用到8259,8253程序编制简朴,但是cpu耗费了更多时间在扫描,效率相对来说较低。方案一采用中断,程序构造化更为清晰,且cpu少了循环扫描时间,效率较高。但是多用了一种8259中断控制芯片,一种8253定期/计时芯片,程序编制上涉及到中断服务子程序编写,稍显复杂,且硬件相应增多,费用也相应
6、较多。通过小组讨论,先采用更实用、经济方案二,完毕基本和扩展功能。若有时间,再采用方案一完毕实验。1.2 八路竞赛抢答器元件选取1)解决器选取微型机具备体积小、重量轻、耗电少、价格低廉、可靠性高、构造灵活等特点,因此选取8086系统2)显示电路 显示可通过彩灯和数码管来实现。如果用彩灯作为显示功能,则不是很直观。而数码管具备显示亮度高,使用寿命长,且能直观以便看到倒计时数字,和选手编号,因而选用数码管显示。 3)芯片选取8255作为并行I/0接口,能满足10个输入按键输入功能,声音系统输出,和LED数码管输出。并且8255每个接口尚有锁存和数据缓冲作用。因此选取8255芯片。第二章 八路竞赛抢
7、答器硬件设计2.1 八路竞赛抢答器硬件框图8255A八段数码管显示电路按键电路倒计时和抢答电路系统复位等辅助电路8086CPU 图2.1-八路竞赛抢答器硬件框图2.2 显示电路设计8255芯片PB0至PB7分别与数码管八个引脚相连。将8255芯片中需要显示信息通过B口送入数码显示区,由数码管亮灭显示出来。图2.2-显示电路2.3 抢答电路设计8255芯片PA0至PA7分别与8个拨码开关相连,将八位选手抢答信号(由拨码开关控制)通过A口送入8255芯片。图2.3-抢答电路2.4 开始和复位电路 8255芯片PC0口相应开始按键,PC3口相应复位按键。将抢答开始和结束信号(由开始按键和复位按键控制
8、)通过C口送入8255芯片。 图2.4-开始和复位电路2.5 可编程并行接口8255及其引脚阐明图2-5 8255A引脚图引脚功能RESET:复位输入线,当该输入端处在高电平时,所有内部寄存器(涉及控制寄存器)均被清除,所有I/O口均被置成输入方式。 CS:芯片选取信号线,当这个输入引脚为低电平时,即/CS=0时,表达芯片被选中,容许8255与CPU进行通讯;/CS=1时,8255无法与CPU做数据传播。 RD:读信号线,当这个输入引脚为低电平时,即/RD=0且/CS=0时,容许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。 WR:写入信号,当这个输入引脚为
9、低电平时,即/WR=0且/CS=0时,容许CPU将数据或控制字写入8255。 D0D7:三态双向数据总线,8255与CPU数据传送通道,当CPU 执行输入输出指令时,通过它实现8位数据读/写操作,控制字和状态信息也通过数据总线传送。 PA0PA7:端口A输入输出线,一种8位数据输出锁存器/缓冲器, 一种8位数据输入锁存器。 PB0PB7:端口B输入输出线,一种8位I/O锁存器, 一种8位输入输出缓冲器。 PC0PC7:端口C输入输出线,一种8位数据输出锁存器/缓冲器, 一种8位数据输入缓冲器。端口C可以通过工作方式设定而提成2个4位端口, 每个4位端口包括一种4位锁存器,分别与端口A和端口B配
10、合使用,可作为控制信号输出或状态信号输入端口。 A1,A0:地址选取线,用来选取8255PA口,PB口,PC口和控制寄存器. 当A1=0,A0=0时,PA口被选取;当A1=0,A0=1时,PB口被选取;当A1=1,A0=0时,PC口被选取;当A1=1.A0=1时,控制寄存器被选取。8255端口地址端口地址PA口60HPB口61HPC口62H控制口63H表2-12.6 8086及引脚阐明图2-6 8086引脚图两种模式下,名称和功能相似32个引脚1、VCC、GND:电源、接地引脚(3个),8086CPU采用单一+5V电源,但有两个接地 引脚。2、 AD15AD0(Address Data Bus
11、):地址/数据复用信号输入/输出引脚(16个),分时输出 低16位地址信号及进行数据信号输入/输出。3、A19/s6A15/s3(Address Status Bus):地址/状态复用信号输出引脚(4个),分时输出 地址高4位及状态信息,其中s6为0用以批示8086CPU当前与总线连通;s5 为1表白8086/8088CPU可以响应可屏蔽中断;s4、s3共有四个组态,用以指明当前 使用段寄存器,如表9-5所示,00ES,01SS,10CS,11DS。4、NMI(Non-Maskable Interrupt)、INTR(Interrupt Request):中断祈求信号输入引脚(2),引入中断源
12、向CPU提出中断祈求信号,高电平有效,前者为非屏蔽中断祈求,后者为可屏蔽中断祈求信号。5、(Read):读控制输出信号引脚(1),低电平有效,用以指明要执行一种对内存单元或I/O端口读操作,详细是读内存单元,还是读I/O端口,取决于控制信号。6、CLK/(Clock):时钟信号输入引脚(1),时钟信号方波信号,占空比约为33%,即1/3周期为高电平,2/3周期为底电平,8086/8088时钟频率(又称为主频)为4.77MHz,即从该引脚输入时钟信号频率为4.77MHz。7、Reset(Reset):复位信号输入引脚(1),高电平有效。8088/8086CPU规定复位信号至少维持4个时钟周期才干
13、起到复位效果,复位信号输入之后,CPU结束当前操作,并对解决器标志寄存器、IP、DS、SS、ES寄存器及指令队列进行清零操作,而将CS设立为0FFFFH。8、READY(Ready):“准备好”状态信号输入引脚(1),高电平有效,“Ready”输入引脚接受来自于内存单元或I/O端口向CPU发来“准备好”状态信号,表白内存单元或I/O端口已经准备好进行读写操作。该信号是协调CPU与内存单元或I/O端口之间进行信息传送联系信号。9、(Test):测试信号输入引脚(1),低电平有效,TEST信号与WAIT指令结合起来使用,CPU执行WAIT指令后,处在等待状态,当TEST引脚输入低电平时,系统脱离等
14、待状态,继续执行被暂停执行指令。10、MN/MX(Minimum/Maximum Model Control)最小/最大模式设立信号输入引脚(1),该输入引脚电平高、低决定了CPU工作在最小模式还是最大模式,当该引脚接+5V时,CPU工作于最小模式下,当该引脚接地时,CPU工作于最大模式下。11、/S7(Bus High Enable/Status):高8位数据容许/状态复用信号输出引脚(1),输出。分时输出有效信号,表达高8为数据线D15D8上数据有效和S7 状态信号,但S7未定义任何实际意义。 运用信号和AD0信号,可知系统当前操作类型,详细规定见表2-2 所示。表2-2 和A0代码组合和
15、相应操作A0操作所用数据引脚00从偶地址单元开始读/写一种字AD15 AD001从奇地址单元或端口读/写一种字节AD15 AD810从偶地址单元或端口读/写一种字节AD7 AD011无效-01从奇地址开始读/写一种字(在第一种总线周期将低8位数据送到AD15 AD8,下一种周期将高8位数据送到AD7 AD0 )AD15 AD010 在8088系统中,该引脚为,用来与、一起决定8088芯片当前总线周期读写操作,如表2-3所示。 性能 1 0 0 中断响应 1 0 1 读I/O端口 1 1 0 写I/O端口 1 1 1 暂停(Halt) 0 0 0 取指令操作码 0 0 1 读存储器 0 1 0
16、写存储器 0 1 1 无源表2-3(3).最小模式下24-31引脚 当8086CPU引脚固定接+5V时,CPU处在最小模式下,这时候剩余2431共8个引脚名称及功能如下:1、(Interrupt Acknowledge)中断响应信号输出引脚(1),低电平有效,该引脚是CPU响应中断祈求后,向中断源发出承认信号,用以告知中断源,以便提供中断类型码,该信号为两个持续负脉冲。2、ALE(Address Lock Enable):地址锁存容许输出信号引脚(1),高电平有效,CPU通过该引脚向地址锁存器8282/8283发出地址锁存容许信号,把当前地址/数据复用总线上输出是地址信息,锁存到地址锁存器82
17、82/8283中去。注意:ALE信号不能被浮空。3、(Data Enable):数据容许输出信号引脚,低电平有效,为总线收发器8286提供一种控制信号,表达CPU当前准备发送或接受一项数据。4、(Data Transmit/Receive):数据收发控制信号输出引脚(1),CPU通过该引脚发出控制数据传送方向控制信号,在使用8286/8287作为数据总线收发器时,信号用以控制数据传送方向,当该信号为高电平时,表达数据由CPU经总线收发器8286/8287输出,否则,数据传送方向相反。5、(Memory/Input &Output):存储器/I/O端口选取信号输出引脚(1),这是CPU区别进行存
18、储器访问还是I/O访问输出控制信号。当该引脚输出高电平 时,表白CPU要进行I/O端口读写操作,低位地址总线上浮现是I/O端口地址;当该引脚输出低电平时,表白CPU要进行存储器读写操作,地址总线上浮现是访问存储器地址。 6、(Write):写控制信号输出引脚(1),低电平有效,与配合实现对存储单元、I/O端口所进行写操作控制。 7、HOLD(Hold Request):总线保持祈求信号输入引脚(1),高电平有效。这是系统中其他总线部件向CPU发来总线祈求信号输入引脚。 8、HLDA(Hold Acknowledge):总线保持响应信号输出引脚,高电平有效,表达CPU承认其她总线部件提出总线占用
19、祈求,准备让出总线控制权。(4).最大模式下24-31引脚当8086CPU引脚固定接地时,CPU处在最大模式下,这时候剩余2431共8个引脚名称及功能如下:1、QS1、QS0(Instruction Queue Status):指令队列状态信号输出引脚(2),这两个信号组合给出了前一种T状态中指令队列状态,以便于外部88086CPU内部指令队列动作跟踪,如下表所示:性能00无操作01从指令队列第一种字节取走代码10队列为空11除第一种字节外,还取走了后续字节中代码表2-42、:总线周期状态信号输出引脚(3),低电平信号输出端,这些信号组合起来,可以指出当前总线周期中,所进行数据传播过程类型,总
20、线控制器8288运用这些信号来产生对存储单元、I/O端口控制信号。、与详细物理过程之间相应关系,如表所示。表9-6 状态编码性能100中断响应101读I/O端口110写I/O端口111暂停000取指001读存储器010写存储器011无作用表2-5这里对无源状态(在最小模式中也存在,见P19)作一阐明:从表中可以看出,每一种组合都相应一种详细总线操作,除111外,别的都称为有源状态。也就是说,在有源状态(相应前一种总线周期和本总线周期和状态)中,至少有一种信号为0,当时(相应总线周期和且READY1),也就是一种总线操作即将结束,另一种总线周期尚未开始时,称为无源状态,很显然,这时中任一信号变化
21、,都意味着一种新总线周期开始。3、(Lock):总线封锁输出信号引脚(1),低电平有效,当该引脚输出低电平时,系统中其他总线部件就不能占用系统总线。 信号是由指令前缀LOCK产生,在LOCK前缀背面一条指令执行完毕之后,便撤除信号。此外,在80862个中断响应脉冲之间,信号也自动变为有效低电平,以防止其他总线部件在中断响应过程中,占有总线而使一种完整中断响应过程被中断。4、(Request/Grant):总线祈求信号输入/总线容许信号输出引脚(2)。这两个信号端可供CPU以外两个解决器,用来发出使用总线祈求信号和接受CPU对总线祈求信号应答。这两个引脚都是双向,祈求与应答信号在同一引脚上分时传
22、播,方向相反。其中比优先级高。(5).有关问题阐明1、8086数据线与地址线、状态线是分时复用,即在某一时刻,总线上浮现是输出地址信息,在另一时刻,总线上是所需读、写数据信息,或状态信息。2、除了个别引脚外,8086控制信号引脚定义是一致,有差别是,8088第18脚为,8086为,重要是为了使前者能与8位微解决器8080/8085 相兼容缘故。8086第34引脚为/S7,这是由于8086 有16根数据线,可以用高、低8位总线分别进行一种字节传送,也可以同步进行两个字节传送, 正是为了指明这几类操作而设立。3、Reset引脚是复位信号输入端,系统启动、或在系统运营过程中,CPU在接受到Reset
23、信号后,会使系统复位。复位后,CPU处在如下状态: CPU标志寄存器、指令指针寄存器IP、段寄存器DS、ES、SS和指令队列均被清零,码段寄存器CS被置为FFFFH,CPU将从0FFFF0H处开始执行指令。4、CPU与内存、I/O端口之间在时间上匹配重要靠“READY”信号。5、信号与(或)配合使用,指明从内存或者I/O端口读信息6、高4位地址线与状态线分时复用,在T1状态,输出地址信息,在别的状态,输出状态信息。(6).8086CPU引脚分类8086CPU40个引脚可以提成下列几大类:(1)数据/地址复用线、地址线、地址/状态复用线AD0AD7 、AD8AD15、)A16A19/S3S6;(
24、2)常规信号GND(2个)、CLK;(3)惯用信号ALE、;(4)中断INTR、NMI、;(5)、READY、RESET;(6)HOLD、HLDA;(7)(8086)、。第三章八路抢答器软件设计 软件设计重点在延时,显示倒计时和选手编号和按键抢搭、开始和清零实现。延时采用嵌套循环方式实现。3.1 主程序流程图8255A初始化开始按键与否按下 N Y倒计时显示启动倒计时时间到否 Y N与否有人抢答 N Y 显示抢答号码停止倒计时显示 复位按键与否按下 N Y 图3.1-主程序流程图3.2 显示模块程序设计基本显示模块设计重点是由显示代码获得相应段码,通过锁存器控制输出给相应数码管显示。B口输出数
25、据转换为八位段码数码管显示图3.2-显示模块程序流程图3.3 延时模块程序设计延时模块核心是计算计算机一秒能执行多少指令,再通过循环控制。在CX中存入外循环次数在BX中存入内循环次数BX减一BX与否自减为零 NCX减一 YCX与否自减为零 N延时完毕 Y图3.3延时模块程序流程图3.4 开始模块程序设计读入C口数据开始按键与否按下 N往下执行程序 Y 图3.4-开始模块程序设计流程图3.5 复位模块程序设计复位按键与否按下 N Y将B口输出为0,即讲数码管清零重新开始抢答读入C口数据 图3.5-清零模块程序设计流程图第四章 设计体会与小结微机原理及应用作为咱们重要专业课程之一,我觉得做这个课程
26、设计是很故意义,同步也很有必要。当拿到题目时,的确不懂得怎么着手,有些迷茫,上网查资料,历时两个星期,解决一种又一种困难,终于完毕任务。在这次课程设计中,运用到了诸多此前专业知识,虽然过去从未独立应用过它们,但在学习过程中带着问题去学我发现效率很高,这是我做这次课程设计一大收获。此外,要做好一种课程设计,就必要做到:在设计程序之前,对所用8086有一种系统理解,懂得8086内有哪些资源;要有一种清晰思路和一种完整软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,重复修改、不断改进是程序设计必经之路;要养成注释程序好习惯,一种程序完美与否不但仅是实现功能,而应当让人一看就能明白你思路,这
27、样也为资料保存和交流提供了以便;在设计课程过程中遇到问题是很正常,但咱们应当将每次遇到问题记录下来,并分析清晰,以免下次再遇到同样问题课程设计结束了,但是从中学到知识会让我受益终身。发现、提出、分析、解决问题和实践能力提高都会受益于我在后来学习、工作和生活中。设计过程,好比是咱们人类成长历程,常有某些不如意,但毕竟这是第一次做,难免会遇到各种各样问题。在设计过程中发现了自己局限性之处,对此前所学过知识理解得不够深刻,掌握得不够牢固,不能灵活运用。通过这次设计,我懂得了学习重要性,理解到理论知识与实践相结合重要意义,学会了坚持、耐心和努力,这将为自己此后学习和工作做出了最佳榜样。此外,要非常感谢
28、我指引教师,是她指引我克服一种由一种困难,让我学会对困难无所畏惧,以及对问题某些很重要思考办法。我学会对困难无所畏惧,以及对问题某些很重要思考办法。附录附录一 系统硬件原理图附录二 程序清单源程序:DATA SEGMENTDATA ENDSCODE SEGMENTASSUME DS:DATA,CS:CODESTART:MOV AL,10010001B OUT 63H,AL MAIN:IN AL,62H TEST AL,01H JZ MAIN MOV AL,00H OUT 61H,AL B1: MOV AL,77H OUT 61H,AL CALL A1 MOV AL,6FH OUT 61H,AL
29、 CALL A1 MOV AL,7FH OUT 61H,AL CALL A1 MOV AL,07H OUT 61H,AL CALL A1 MOV AL,7DH OUT 61H,AL CALL A1 MOV AL,6DH OUT 61H,AL CALL A1 MOV AL,66H OUT 61H,AL CALL A1 MOV AL,4FH OUT 61H,AL CALL A1 MOV AL,5BH OUT 61H,AL CALL A1 MOV AL,06H OUT 61H,AL CALL A1 MOV AL,3FH OUT 61H,AL CALL AA AA PROC IN AL,62H TES
30、T AL,08H JZ C1 JMP AA C1:MOV AL,00H OUT 61H,AL JMP MAIN RETAA ENDP A1 PROC MOV CX,0100H BB1:MOV BX,00B0HBB2:IN AL,60H CMP AL,00000001B JZ AA1 CMP AL,00000010B JZ AA2 CMP AL,00000100B JZ AA3 CMP AL,00001000B JZ AA4 CMP AL,00010000B JZ AA5 CMP AL,00100000B JZ AA6 CMP AL,01000000B JZ AA7 CMP AL,1000000
31、0B JZ AA8 DEC BX JNZ BB2 LOOP BB1 RET A1 ENDPAA1:MOV DX,61H MOV AL,06H OUT DX ,AL JMP AA AA2:MOV DX,61H MOV AL,5BH OUT DX ,AL JMP AAAA3:MOV DX,61H MOV AL,4FH OUT DX ,AL JMP AAAA4:MOV DX,61H MOV AL,66H OUT DX ,AL JMP AAAA5:MOV DX,61H MOV AL,6DH OUT DX ,AL JMP AAAA6:MOV DX,61H MOV AL,7DH OUT DX ,AL JMP AAAA7:MOV DX,61H MOV AL,07H OUT DX ,AL JMP AAAA8:MOV DX,61H MOV AL,7FH OUT DX ,AL JMP AACODE ENDSEND START附录3 元件清单元件数量808618255A1蜂鸣器1数码管1电阻10排阻1开关2附录4 参照文献微型计算机原理及应用 郑学坚/周斌 清华大学出版社微机原理与接口技术 李芷/杨文显 电子工业出版社微机接口技术及其应用 李育贤 西安电子科技大学出版社 新版汇编语言程序设计 钱晓捷 清华大学出版社
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100