微机课程设计8路抢答器_第1页
微机课程设计8路抢答器_第2页
微机课程设计8路抢答器_第3页
微机课程设计8路抢答器_第4页
已阅读5页,还剩27页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.目录第一章八路抢答器的设计要求与设计案41.1八路抢答器方案的选择与比较 41.2八路抢答器的元件选择4第二章八路抢答器的硬件设计 62.1八路抢答器的硬件框图62.2显示电路设计2.3抢答电路设计672.4开始、复位开关控制电路设计72.5可编程并行接口 8255及其引脚说明 82.6 8086 及引脚说明 10第三章八路抢答器的软件设计 183.1主程序流程图 183.2显示模块程序设计183.3延时模块程序设计193.4开始模块程序设计193.5复位模块程序设计20第四章设计体会与小结 21附录一硬件电路 22附录二程序代码 23附录三元件清单 24附录四参考文献 24.前言微机接口课

2、程设计是将理论知识和实践能力相统一的一个环节,是真正锻炼学生能力的一个环节。抢答器能保证比赛中抢答的公正性,在很多场合得到了广泛的应用。 抢答器具有锁存与显示功能。 即选手按动按钮, 锁存相应的编号,并在 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

5、 端作为清零键按下的中断引入端, IR4 端作为暂停键按下的中断引入端。3. 8255作为并行输入输出, A 口键盘接显示区, C口接清零键和开始键, B口 8 个抢答开关4. 键盘显示区由四个 LED数码管和 10 个按键组成。方案二选用 8255,实验箱键盘显示区1. 8255 作为并行 I/O 接口 ,A 口接 8 个抢答开关, B 口显示区, C口清零键和开始键。2. 利用软件编程进行定时功能方案选择:方案二采用扫描,没有用到8259, 8253 程序编制简单,但是cpu 耗费了更多的时间在扫描,效率相对来说较低。方案一采用中断,程序结构化更为清晰,且 cpu 少了循环扫描的时间,效率

6、较高。但是多用了一个8259 中断控制芯片,一个8253 定时 / 计时芯片,程序编制上涉及到中断服务子程序的编写,稍显复杂,且硬件相应增多,费用也相应较多。经过小组讨论,先采用更实用、经济的方案二,完成基本和扩展功能。若有时间,再采用方案一完成实验。1.2八路竞赛抢答器的元件选择.1)处理器的选择微型机具有体积小、重量轻、耗电少、价格低廉、可靠性高、结构灵活等特点,所以选择 8086系统2)显示电路显示可通过彩灯和数码管来实现。如果用彩灯作为显示功能,则不是很直观。而数码管具有显示亮度高,使用寿命长,且能直观方便的看到倒计时数字,和选手编号,因此选用数码管显示。3 )芯片选择8255作为并行

7、 I/0 接口,能满足 10个输入按键的输入功能,声音系统的输出,和 LED数码管的输出。并且 8255的每个接口还有锁存和数据缓冲作用。所以选择 8255芯片。.第二章八路竞赛抢答器的硬件设计2.1八路竞赛抢答器的硬件框图按键电路八段数码管显示电路8255A系统复位等辅助电路倒计时和抢答电路8086CPU图 2.1- 八路竞赛抢答器硬件框图2.2显示电路设计8255芯片的 PB0至PB7分别与数码管的八个引脚相连。将 8255芯片中需要显示的信息通过 B口送入数码显示区,由数码管的亮灭显示出来。图 2.2- 显示电路.2.3抢答电路设计8255芯片的 PA0至 PA7分别与 8个拨码开关相连

8、, 将八位选手的抢答信号 (由拨码开关控制)通过 A口送入 8255芯片。图 2.3- 抢答电路2.4开始和复位电路8255芯片的 PC0口对应开始按键, PC3口对应复位按键。将抢答开始和结束的信号(由开始按键和复位按键控制)通过 C口送入 8255芯片 。.图 2.4- 开始和复位电路2.5可编程并行接口8255 及其引脚说明.图 2-5 8255A引脚图引脚功能RESET:复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O 口均被置成输入方式。CS:芯片选择信号线,当这个输入引脚为低电平时, 即 /CS=0 时 , 表示芯片被选中,允许8255 与

9、CPU进行通讯 ;/CS=1 时 ,8255 无法与 CPU做数据传输。RD:读信号线,当这个输入引脚为低电平时, 即 /RD=0 且 /CS=0 时 , 允许8255 通过数据总线向CPU发送数据或状态信息,即 CPU从 8255 读取信息或数据。WR:写入信号,当这个输入引脚为低电平时, 即 /WR=0 且 /CS=0 时 , 允许.CPU将数据或控制字写入8255。D0 D7: 三态双向数据总线,8255 与 CPU数据传送的通道,当 CPU 执行输入输出指令时,通过它实现8 位数据的读 / 写操作,控制字和状态信息也通过数据总线传送。PA0 PA7:端口 A 输入输出线,一个 8 位的

10、数据输出锁存器/ 缓冲器, 一个 8位的数据输入锁存器。PB0 PB7:端口 B 输入输出线, 一个 8 位的 I/O 锁存器, 一个 8 位的输入输出缓冲器。PC0 PC7:端口 C 输入输出线,一个 8 位的数据输出锁存器/ 缓冲器, 一个 8位的数据输入缓冲器。 端口 C 可以通过工作方式设定而分成2个 4位的端口, 每个 4 位的端口包含一个 4 位的锁存器,分别与端口A和端口 B配合使用,可作为控制信号输出或状态信号输入端口。'A1,A0: 地址选择线 , 用来选择 8255 的 PA口 ,PB 口 ,PC 口和控制寄存器.当 A1=0,A0=0 时 ,PA 口被选择 ; 当

11、 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 ): 地址 / 数据复用信号输入 / 输出引脚 (16个), 分时输出低 16 位地址信号及进行数据信号

12、的输入/ 输出。3、 A19/s 6 A15/s 3( Address Status Bus) : 地址 / 状态复用信号输出引脚(4个), 分时输出地址的高 4 位及状态信息,其中s6 为 0 用以指示 8086CPU当前与总线连通; s5 为 1 表明 8086/8088CPU可以响应可屏蔽中断; s4、 s3共有四个组态,用以指明当前使用的段寄存器,如表9-5 所示, 00 ES,01SS, 10 CS,11 DS。4、 NMI(Non-Maskable Interrupt)、INTR(InterruptRequest) : 中断请求信号输入引脚 (2) ,引入中断源向CPU提出的中断请

13、求信号,高电平有效,前者为非屏蔽中断请求,后者为可屏蔽中断请求信号。.5、 RD(Read): 读控制输出信号引脚 (1) ,低电平有效,用以指明要执行一个对内存单元或I/O 端口的读操作,具体是读内存单元,还是读I/O 端口,取决于 M / IO 控制信号。6、 CLK/(Clock ):时钟信号输入引脚 (1) ,时钟信号的方波信号,占空比约为 33%,即 1/3 周期为高电平, 2/3 周期为底电平, 8086/8088 的时钟频率(又称为主频)为 4.77MHz,即从该引脚输入的时钟信号的频率为 4.77MHz。7、 Reset(Reset): 复位信号输入引脚 (1) ,高电平有效。

14、 8088/8086CPU要求复位信号至少维持 4 个时钟周期才能起到复位的效果,复位信号输入之后, CPU结束当前操作,并对处理器的标志寄存器、IP 、DS、 SS、ES 寄存器及指令队列进行清零操作,而将CS设置为 0FFFFH。8、READY( Ready): “准备好” 状态信号输入引脚 (1) ,高电平有效,“ Ready”输入引脚接收来自于内存单元或I/O 端口向 CPU发来的“准备好”状态信号,表明内存单元或I/O 端口已经准备好进行读写操作。该信号是协调CPU与内存单元或 I/O 端口之间进行信息传送的联络信号。9、 TEST (Test): 测试信号输入引脚 (1) ,低电平

15、有效 ,TEST 信号与 WAIT指令结合起来使用, CPU执行 WAIT指令后,处于等待状态,当 TEST引脚输入低电平时,系统脱离等待状态,继续执行被暂停执行的指令。10、 MN/MX(Minimum/Maximum Model Control )最小 / 最大模式设置信号输入引脚 (1) ,该输入引脚电平的高、 低决定了 CPU工作在最小模式还是最大模式,当该引脚接 +5V 时, CPU工作于最小模式下,当该引脚接地时, CPU工作于最大模式下。11、 BHE /S 7(Bus High Enable/Status): 高 8 位数据允许 / 状态复用信号输出引脚(1),输出。分时输出B

16、HE 有效信号,表示高8为数据线15 8 上的数D D据有效和 S7状态信号 , 但 S7 未定义任何实际意义。利用BHE 信号和0 信号,可知系统当前的操作类型,具体规定见表2-AD2 所示。.表 2-2BHE 和 A0 的代码组合和对应的操作BHEA0操作所用数据引脚00从偶地址单元开始读/ 写一个字AD15 AD 001从奇地址单元或端口读/ 写一个字节AD15 AD 810从偶地址单元或端口读/ 写一个字节AD7AD011无效-01从奇地址开始读 / 写一个字 ( 在第一个总线周期将低8 位数据送AD15 AD 010到 AD15 AD8,下一个周期将高 8 位数据送到 AD AD)7

17、0在 8088 系统中,该引脚为 SS0 ,用来与 DT / R 、 M / IO 一起决定 8088 芯片当前总线周期的读写操作,如表 2-3 所示。M /IO DT /R SS0性能100中断响应101读 I/O 端口110写 I/O 端口111暂停( Halt )000取指令操作码001读存储器010写存储器011无源表 2-3(3). 最小模式下的 24-31 引脚当 8086CPU的 MN / M X 引脚固定接 +5V 时, CPU处于最小模式下,这时候剩余的 24 31 共 8 个引脚的名称及功能如下:1、 INTA (InterruptAcknowledge)中断响应信号输出引

18、脚(1) ,低电平有效,该引脚是 CPU响应中断请求后,向中断源发出的认可信号,用以通知中断源,以便提供中断类型码,该信号为两个连续的负脉冲。2、ALE(Address Lock Enable): 地址锁存允许输出信号引脚(1) ,高电平有效, CPU通过该引脚向地址锁存器8282/8283 发出地址锁存允许信号,把当前地址 / 数据复用总线上输出的是地址信息,锁存到地址锁存器8282/8283 中去。.注意: ALE信号不能被浮空。3、 DEN (Data Enable ): 数据允许输出信号引脚,低电平有效,为总线收发器 8286 提供一个控制信号,表示CPU当前准备发送或接收一项数据。4

19、、 DT / R (Data Transmit/Receive ): 数据收发控制信号输出引脚(1) , CPU通过该引脚发出控制数据传送方向的控制信号,在使用8286/8287作为数据总线收发器时, DT / R 信号用以控制数据传送的方向,当该信号为高电平时,表示数据由 CPU经总线收发器 8286/8287 输出,否则,数据传送方向相反。5、IO / M ( Memory/Input &Output): 存储器 /I/O 端口选择信号输出引脚 (1), 这是 CPU区分进行存储器访问还是 I/O 访问的输出控制信号。当该引脚输出高电平 时,表明 CPU要进行 I/O 端口的读写操

20、作,低位地址总线上出现的是 I/O 端口的地址;当该引脚输出低电平时,表明 CPU要进行存储器的读写操作,地址总线上出现的是访问存储器的地址。6 、WR(Write):写控制信号输出引脚 (1) ,低电平有效,与 IO / M 配合实现对存储单元、 I/O 端口所进行的写操作控制。7 、HOLD(Hold Request):总线保持请求信号输入引脚(1) ,高电平有效。这是系统中的其它总线部件向CPU发来的总线请求信号输入引脚。8 、HLDA(Hold Acknowledge ) : 总线保持响应信号输出引脚,高电平有效,表示 CPU认可其他总线部件提出的总线占用请求,准备让出总线控制权。(4

21、). 最大模式下的 24-31 引脚当 8086CPU的 MN / M X 引脚固定接地时, CPU处于最大模式下,这时候剩余的 24 31 共 8 个引脚的名称及功能如下:1、QS1、 QS0(Instruction Queue Status): 指令队列状态信号输出引脚(2),这两个信号的组合给出了前一个 T状态中指令队列的状态, 以便于外部 88086CPU 内部指令队列的动作跟踪,如下表所示:.QS1QS0性能00无操作01从指令队列的第一个字节取走代码10队列为空11除第一个字节外,还取走了后续字节中的代码表 2-42、 S2 、 S1 、 S0 :总线周期状态信号输出引脚(3) ,

22、低电平的信号输出端,这些信号组合起来,可以指出当前总线周期中,所进行数据传输过程的类型,总线控制器 8288 利用这些信号来产生对存储单元、I/O 端口的控制信号。S2 、S1 、 S0 与具体物理过程之间的对应关系,如表所示。表 9-6S0 S2 的状态编码S0S1S2性能100中断响应101读 I/O端口110写 I/O端口111暂停000取指001读存储器010写存储器011无作用表 2-5这里对无源状态(在的最小模式中也存在,见P19)作一说明:从表中可以看出,每一种 S2 S1 S0 的组合都对应一个具体的总线操作,除 111 外,其余都称为有源状态。也就是说,在有源状态(对应前一个

23、总线周期的T4 和本总线周期的 T1 和 T2 状态)中, S2 S1 S0 至少有一个信号为0,当 S2 S1 S0111时(对应总线周期的 T3 和 Tw 且 READY1),也就是一个总线操作即将结束,另一个总线周期还未开始时,称为无源状态,很显然,这时S2 S1 S0 中任一信号的改变,都意味着一个新的总线周期的开始。3、 LOCK (Lock):总线封锁输出信号引脚(1) ,低电平有效,当该引脚输出低电平时,系统中其它总线部件就不能占用系统总线。.LOCK 信号是由指令前缀LOCK产生的,在 LOCK前缀后面的一条指令执行完毕之后,便撤消 LOCK 信号。此外,在 8086 的 2

24、个中断响应脉冲之间, LOCK信号也自动变为有效的低电平,以防止其它总线部件在中断响应过程中,占有总线而使一个完整的中断响应过程被中断。4、 RQ/ GT1 、 RQ / GT0 (Request/Grant) :总线请求信号输入 / 总线允许信号输出引脚 (2) 。这两个信号端可供 CPU以外的两个处理器,用来发出使用总线的请求信号和接收 CPU对总线请求信号的应答。这两个引脚都是双向的,请求与应答信号在同一引脚上分时传输, 方向相反。其中 RQ / GT1 比 RQ/ GT0 的优先级高。(5). 相关问题的说明1、8086 的数据线与地址线、状态线是分时复用的,即在某一时刻,总线上出现的

25、是输出地址信息,在另一时刻,总线上是所需读、写的数据信息,或状态信息。2、除了个别引脚外, 8086 的控制信号引脚的定义是一致的,有差别的是,8088的第 18 脚为 IO / M , 8086 为 IO / M ,主要是为了使前者能与8 位微处理器8080/8085 相兼容的缘故。 8086 第 34 引脚为BHE7/S ,这是因为 8086 有 16 根数据线,可以用高、低8 位总线分别进行一个字节的传送,也可以同时进行两个字节的传送, BHE正是为了指明这几类操作而设置的。3、Reset 引脚是复位信号输入端,系统启动、或在系统运行过程中,CPU在接收到 Reset 信号后,会使系统复

26、位。复位后,CPU处于如下状态:CPU 的标志寄存器、指令指针寄存器 IP 、段寄存器 DS、ES、SS和指令队列均被清零,码段寄存器 CS被置为 FFFFH,CPU将从 0FFFF0H处开始执行指令。4、CPU与内存、 I/O 端口之间在时间上的匹配主要靠“READY”信号。5、 RD 信号与 IO / M (或 I O / M )配合使用,指明从内存或者I/O 端口读信息6、高 4 位地址线与状态线分时复用,在T1 状态,输出地址信息,在其余状态,输出状态信息。(6).8086CPU 的引脚分类8086CPU的 40 个引脚可以分成下列几大类:.(1)数据 / 地址复用线、地址线、地址/

27、状态复用线 AD0AD7 、 AD8AD15、)A16A19/S 3S6;(2)常规信号 GND(2 个)、 Vcc 、 CLK;(3)常用信号 ALE、 M / IO 、 RD 、 WR ;(4)中断 INTR、NMI、 INTA ;(5) MN / MX 、 READY、RESET;(6)HOLD、HLDA;(7) BHE / S7 (8086)、 DEN 、 DT / R 、 TEST 。.第三章八路抢答器的软件设计软件的设计的重点在延时,显示倒计时和选手编号和按键抢搭、开始和清零的实现。延时采用嵌套循环的方式实现。3.1主程序流程图8255A 初始化N开始按键是否按下Y启动倒计时倒计时

28、显示时间到否YNN是否有人抢答Y停止倒计时显示显示抢答号码NY复位按键是否按下图 3.1- 主程序流程图3.2显示模块程序设计基本显示模块设计的重点是由显示代码取得相应的段码,通过锁存器控制输出给相应的数码管显示。.B 口输出数据转换为八位段码数码管显示图 3.2- 显示模块程序流程图3.3延时模块程序设计延时模块的关键是计算计算机一秒能执行多少指令,再通过循环控制。在 CX 中存入外循环次数在 BX 中存入内循环次数BX 减一NBX 是否自减为零YCX 减一NCX 是否自减为零Y延时完成图 3.3 延时模块程序流程图3.4开始模块程序设计.读入 C 口数据N开始按键是否按下Y往下执行程序图

29、3.4- 开始模块程序设计流程图3.5复位模块程序设计读入 C 口数据N复位按键是否按下Y将 B 口输出为 0,即讲数码管清零重新开始抢答图 3.5- 清零模块程序设计流程图.第四章设计体会与小结微机原理及应用作为我们主要的专业课程之一, 我觉得做这个课程设计是很有意义的,同时也很有必要。当拿到题目时,确实不知道怎么着手,有些迷茫,上网查资料,历时两个星期,解决一个又一个的困难,终于完成任务。在这次课程设计中, 运用到了很多以前的专业知识, 虽然过去从未独立应用过它们,但在学习的过程中带着问题去学我发现效率很高, 这是我做这次课程设计的一大收获。另外,要做好一个课程设计,就必须做到:在设计程序

30、之前,对所用的 8086 有一个系统的了解, 知道 8086 内有哪些资源; 要有一个清晰的思路和一个完整的的软件流程图; 在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路; 要养成注释程序的好习惯, 一个程序的完美与否不仅仅是实现功能, 而应该让人一看就能明白你的思路, 这样也为资料的保存和交流提供了方便; 在设计课程过程中遇到问题是很正常的, 但我们应该将每次遇到的问题记录下来, 并分析清楚,以免下次再碰到同样的问题的课程设计结束了,但是从中学到的知识会让我受益终身。发现、提出、分析、解决问题和实践能力的提高都会受益于我在以后的学习、工作和生活中。设计过

31、程,好比是我们人类成长的历程, 常有一些不如意, 但毕竟这是第一次做, 难免会遇到各种各样的问题。 在设计的过程中发现了自己的不足之处, 对以前所学过的知识理解得不够深刻,掌握得不够牢固,不能灵活运用。通过这次设计, 我懂得了学习的重要性, 了解到理论知识与实践相结合的重要意义,学会了坚持、 耐心和努力, 这将为自己今后的学习和工作做出了最好的榜样。另外,要非常感谢我的指导老师,是他指引我克服一个由一个的困难,让我学会对困难无所畏惧,以及对问题的一些很重要的思考方法。我学会对困难无所畏惧,以及对问题的一些很重要的思考方法。附录.附录一系统硬件原理图附录二程序清单.源程序:DATA SEGMENTDATA ENDSCODE SEGMENTASSUME DS:DATA,CS:CODESTART:MOV AL,10010001BOUT 63H,ALMAIN:IN AL,62HTEST AL,01HJZ MAINMOV AL,00HOUT 61H,ALB1: MOV AL,77HOUT 61H,ALCALL A1MOV AL,6FHOUT 61H,ALCALL A1MOV AL,7FH

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论