欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    768.竞赛抢答器完整硬件课程设计报告(包含源代码、小组成员报告等).doc

    • 资源ID:2387946       资源大小:264.50KB        全文页数:34页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    768.竞赛抢答器完整硬件课程设计报告(包含源代码、小组成员报告等).doc

    计算机科学与技术学院硬件课程设计报告专 业: 信 息 安 全 班 级: 信息安全06-3班 设计题目: 竞 赛 抢 答 器 成 员: 指导教师: 职 称: 教 授 2008年 7月 课程设计指导教师评阅书指导教师评语:成 绩: 指导教师签字: 年 月 日摘 要我们的特色在于模块清晰,功能丰富:功能一:LED灯泡显示模块在此模块中,哪位选手抢答成功,对应的灯泡亮,其他不亮功能二:数码管显示模块 在此模块中,哪位选手抢答成功,数码管显示哪个选手的组号 功能三:倒计时模块在此模块中,倒计时设置为9秒,9秒时间到若仍没有人抢答,则数码管显示F表示出错功能四:主持人控制模块在此模块中,主持人按下开关选手方可抢答,若在此之前有人抢答则数码管显示F表示犯规,主持人可作出相应处罚措施关键词:8255A 可编程外围接口芯片 ;8253可编程计数器/定时器 ;LED数码显示管 ;74LS138地址译码器 ;74LS377锁存器 ;抢答 ;组号显示 ;出错显示 ;倒计时目 录总体设计部分1设计任务与要求 5 1.1选题报告5 1.1.1背景介绍5 1.1.2实现功能5 1.2芯片选用6 1.3小组成员分工62总体方案与说明 6 2.1设计概述6 2.2硬件方案7 2.2.1 8255A可编程外围接口芯片7 2.2.2 8253可编程计数器/定时器芯片10 2.2.3LED七段数码显示管13 2.2.4 74LS138地址译码器143硬件方案15 3.1硬件框图与说明15 3.1.1 8255A可编程外围接口芯片15 3.1.2 8253可编程计数器/定时器芯片16 3.1.3 74LS377锁存器和七段数码显示管16 3.1.4 74LS138地址译码器17 3.2 总体电路原理图184软件方案19 4.1总体模块图19 4.2系统程序流程图20 4.3子程序设计214.3.1 8253的三个通道的N值214.3.2 选手复位模块21 4.3.3 倒计时模块22 4.3.4 LED显示模块23 4.3.5数码管显示模块234.4 程序清单25专题设计部分5 系统调试29 5.1硬件调试29 5.2 软件调试296问题分析与改29 6.1倒计时模块29 6.2 蜂鸣器模块307 总结体会30参考文献331 设计任务与要求1.1选题报告1.1.1背景介绍 在大多比赛规则中,正确率无可厚非数第一,但体现其头脑反应能力的速度力数前提条件,因此比赛中如何判断出第一个举手或抢答的人成为许多学者研究的课题。如果单从肉眼判断谁先谁后,很难给出准确的结果,为了保证比赛的准确性、公正性、直观性,通常比赛会设置竞赛抢答器。竞赛抢答器通过数码显示管、LED发光二极管及蜂鸣器等多种工具有效指示出第一个按下抢答器的人。本组选择的课题正是针对上述情况,设计供7名参赛选手使用的竞赛抢答器。1.1.2实现功能本课题利用微机原理及接口技术,结合实验箱模拟设计出一个竞赛抢答器系统,该抢答系统具有七个人的抢答控制按钮(本课题中使用开关作为按钮),选手通过按钮来进行抢答,同时我们用8253定时器进行倒计时,数码管显示抢答选手的相应组号,同时相应的LED灯管燃亮指示该选手。具体要求如下:设定8个开关其中一个代表主持人开始或复位按键,其他的代表抢答器按钮1-7号开关。当主持人宣布开始抢答并按下按键后,其他的某个按钮按下时,相当于某组抢答器按钮按下,在七段数码管上将其组号显示出来。抢答器工作时显示优先抢答者对应的灯,其他抢答者的灯管不亮,其它的选手信号当第一个选手按下后被屏蔽。若在主持人宣布答题开始前有人抢答,则数码管显示F表示犯规,此时主持人可作出适当处罚措施。主持人的开关扳回表示复位,开始新一轮的抢答。8253设置9秒倒计时,若时间到还没有选手抢答的话则数码管显示F表示出错,重新进行下一轮的抢答。1.2芯片选用 8253可编程计数器/定时器芯片 一片 8255A可编程外围接口芯片 一片74LS138译码器 一片74LS377锁存器 一片LED数码显示管 一个1.3小组成员分工 硬件: 软件: 总体: :报告中硬件框图与芯片介绍,总体电路图设计与说明。:报告中模块图的设计与说明,源程序及其说明。:报告中的选题报告,实验中的电路连线。:报告中的总体设计方案,问题分析与改进, 实验中的程序调试。2 总体方案与说明2.1设计概述本组实验选用八个乒乓开关作为抢答器的输入,一个分配给主持人作为复位键,另外七个分配给七个选手。七个乒乓开关通过8255A与七个小灯泡相连接,A口作输入,B口作输出。开关扳下,灯泡不亮;开关扳上,对应的小灯泡亮,证明该选手抢答成功。一轮答题结束,各选手开关复位,CPU检测,若有人开关未扳下,数码管显示F。若选手开关已复位,数码管显示初始状态。接下来等待主持人宣布答题开始,开关8扳下,选手开始抢答,若在此之前有选手抢答,视为犯规,该题作废,重新开始新一轮抢答。8253作定时器,定时时间为9秒,用来限制选手的抢答时间,9秒时间到,没有人按抢答器的话,数码管显示F,此题作废。LED七段数码显示管用锁存器74LS377控制,编程实现。2.2硬件方案2.2.1 8255A 可编程外围接口芯片8255A的外部结构如左图所示。40个管脚分别是:数据端口A、B、C; A 组和B组控制逻辑; 数据总线缓冲器; 读/写控制逻辑RESET 复位信号,高电平有效。 片选信号,低电平有效。 读信号,低电平有效。 写信号,低电平有效。 端口选择信号。 (00选中端口A;01选中端口B;10选中端口C;11选中控制字寄存器端口。)2.1外部管脚结构图2.2方式命令控制字C口低4位I/OB口I/OB口方式C口高4位I/OA口I/OA口方式=1 标志位方式0-基本输入/输出方式。这种方式不使用中断,没有规定的联络信号,三个端口的24条引脚均可做为输入/输出线,由程序设定各端口为输入端口或输出端口,完成并行输入/输出操作。方式1-选通输入/输出方式。这种方式下,端口A或端口B仍做为数据端口,同时规定了端口C的某些位做为控制或状态信息位,数据的输入/输出操作在联络信号的应答控制下完成,因而,可使用中断,也可使用查询。方式2-双向传送方式。这种方式下,外设在单一的8位数据线上,既能发送数据,也能接受数据。在相应的控制线配合下,用中断方式或程序查询方式输入/输出数据。端口A可工作于方式0,方式1和方式2,端口B可工作于方式1,端口C通常分成高4位和低4位,分别传送数据或控制,状态信息。本组实验中利用A口作输入端,B口作输出端。2.3置位/复位控制字1:置位;0:复位位选择任意值=0 标志位端口C的数位常用作控制或应答信号,通过对8255A的控制口写入置位/复位控制字,可使端口C的任意一个引脚的输出单独置1或置0,或者为应答式数据传送发出中断请求信号。在基于控制的应用中,经常希望在某一位上产生一个TTL电平的控制信号,利用端口C的这个特点,只需要用简单的程序就能形成这样的信号,从而简化了编程。D7位为置位/复位控制字标志位,它必须等于0;D3-D1位用于选择对端口C中某一位进行操作;D0位指出对选中位是置1还是清0。D0=1时,使选中位置1;D0=0时,使选中位清0。2.2.2 8253可编程计数器/定时器芯片8253的外部结构如左图所示。24个管脚分别是:数据总线缓冲器; 读/写控制逻辑; 控制字寄存器;计数器02CLK0CLK2 计数器02的输入时钟脉冲从这里输入。OUT0OUT2 计数器02的输出端。GATE0GATE2 计数器02的门控脉冲输入端。2.4外部管脚结构图8253六种工作模式如下:(1) 方式0 (计数结束中断方式)1) GATE为高时,写入计数值n后,在下一个时钟脉冲的下降沿开始减1计数,此时OUT为低。2) 当计数值为0时,OUT变为高,该上升沿可用来触发中断。3) 在计数期间,GATE变为低,将暂停计数,当GATE变为高时,继续减1计数4) 计数值n一次写入,仅一次有效。 (2) 方式1 可编程单稳态输出方式1)写入计数值n后,需GATE的上升沿才触发计数器在下一个时钟脉冲的下降沿开始减1计数,一旦开始计数,OUT为低。方式2 比率发生器(分频器)2)当计数值为0时,OUT变为高,即计数期间,OUT为低,脉宽为n 。3)在计数期间,GATE的下降沿不影响计数,但GATE的上升沿,将中止计数,重新置计数值n,并开始计数,这将加宽单稳输出的脉宽。2.5控制字寄存器SC1 SC0RL1 RL0M2 M1 M0BCD1:BCD码0:2进制计数000 方式0001 方式1X10 方式2X11 方式3100 方式4101 方式500 计数器锁存,供CPU读01 只读/写计数器低字节10 只读/写计数器高字节11 先读/写计数器低字节,后读/写高字节00 选择通道001 选择通道110 选择通道211 无效4)计数值n一次写入,仅一次有效。(3) 方式2 比率发生器(分频器)1) GATE为高时,写入计数值n后,在下一个时钟脉冲的下降沿开始减1计数,此时OUT为高。2) 当计数值为1时,OUT变为低,当计数值为0时,OUT变为高,且重置初值,继续计数,周而复始。3) 在计数期间,即计数值为0前,如写入新的计数值m,将在本计数周期结束后有效。即改变输出频率。4) 在计数期间,GATE变为低,将中止计数,当GATE变为高时,重置初值,并计数。5) 计数值n一次写入,连续有效。 (4) 方式3 方波发生器1) GATE为高时,写入偶计数值n后,在下一个时钟脉冲的下降沿起OUT为高,并开始减2计数,计数值为0时,OUT变为低,且重置初值后继续减2计数,计数值为0时,OUT变为高,周而复始。2) GATE为高时,写入奇计数值m后,在下一个时钟脉冲的下降沿起OUT为高,并先减1然后减2计数,计数值为0时,OUT变为低,且重置初值后先减3然后减2计数,计数值为0时,OUT变为高,周而复始。3) 写入偶计数值,OUT上可得对称的方波;写入奇计数值,可得相似对称的方波;4) 计数值n一次写入,连续有效。 图8.5.7 8253工作方式3波形图(5) 方式4 软件触1) GATE为高时,写入计数值n后,在下一个时钟脉冲的下降沿开始减1计数,此时OUT为高。即由软件触发选通。(方式0中OUT为低)2) 当计数值为0时,OUT变为低,保持一个时钟脉冲宽度后,OUT变为高,该脉冲可用作触发脉冲。(方式0中是一上升沿)3) 在计数期间,GATE变为低,将中止计数,当GATE变为高时,重置初值,并计数。 4) 计数值n一次写入,仅一次有效。(6) 方式5 硬件触发选通1) 写入计数值n后,并不触发选通,需GATE的上升沿到后的下一个时钟脉冲的下降沿开始减1计数,此时OUT为高。 2) 计数值为0时,OUT变为低,保持一个时钟脉冲宽度后,OUT变为高,且重置初值,等下一个GATE的上升沿到后的下一个时钟脉冲的下降沿才触发减1计数。即硬件触发选通。3) 在计数期间,GATE的上升沿将重置初值并触发减1计数。本实验中的应用:可编程计数器/定时器8253芯片作为定时器件。将系统时钟经4分频后输出的2MHz的脉冲从8253的通道0输入,通过方式2分频后接入通道1,经过方式0计数,OUT1与74LS377锁存器相连,74LS377的输出端七个接LED七段数码显示管,一个接蜂鸣器报警示意时间到。计时器倒计时间为9秒,当倒计时时间结束,软件检测没有选手抢答,则数码管显示F表示出错,主持人复位进行下一道题。2.2.3 LED七段数码管 数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。2.6 七段数码显示管gebLS377acdfJ13abcdefg74LS138的为控制端,组合为100时输出才有效(输出为低电平有效),当输入端C B A 三位相应组合为000111时,每次译码一个输出端为0,其余输出端为1。2.2.4 74LS138译码器 2.7 内部管脚图图2.7,图2.8中A0 A1 A2分别为书中介绍C B A。图2.8中S即书中G2.8 译码输出真值表3 硬件方案3.1硬件框图与说明3.1.1 8255A可编程外围接口芯片 (小灯泡) 1234567812345678 (乒乓开关)74LS138Y2pb1 pb2 pb3 pb4 pb5 pb6 pb7 pb8 pc 8255A cspa1 pa2 pa3 pa4 pa5 pa6 pa7 pa8OUT1本组设计中,运用8255A可编程外围接口芯片作为并行接口连接乒乓开关与小灯泡。开关1-7初始位置扳下,小灯泡不亮;当开关扳上的时候,对应的小灯泡亮,其他6个小灯泡不亮。通过软件编程找出对应的第一位扳上开关的选手,燃亮其对应的灯泡示意该选手答题。开关8初始位置在上,主持人宣布答题开关8扳下进行复位,若复位前有人抢答视为犯规,数码管显示F,此题作废,主持人宣布下一题开始。8253的OUT1接8255A的C端口进行判断9秒抢答时间是否已到,若时间未到,输出低电平,测试结果为0,抢答结果有效;若9秒抢答时间到,输出高电平,测试结果为1,抢答无效,此题作废,主持人宣布下一题开始,数码管也要显示F。3.1.2 8253可编程计数器/定时器2MHz5V8253 GATE0 GATE1 GATE2CS CLK0OUT0CLK1OUT1CLK2OUT274LS1388255C端口本组设计中,运用8253可编程计数器/定时器芯片进行9秒时延抢答时间限制操作。9秒内率先按下抢答器的选手对应的灯泡亮,示意抢答成功,同时数码管显示抢答成功的相应组号。9秒后抢答无效,数码管显示F。efd74LS138gcba74LS3771o2o3o4o5o6o7o8o3.1.3 74LS377地址锁存器&七段数码显示管本组设计中,运用74LS377地址锁存器芯片控制七段数码管的显示。初始状态数码管显示0,即判断出了选手的开关都是扳下的。在有效抢答时间内,数码管显示出第一位抢答选手的组号,9秒答题时间到还没有选手按下抢答器,该题作废,数码管显示F,同时,若主持人复位前有人抢答,视为犯规,数码管也要显示F。3.1.4 74LS138地址译码器D0D774LS1388086CPUY0Y1Y237782538255A本组设计中,运用74LS138地址译码器发出片选信号,选择实验中要用到的芯片。Y0接74LS377地址锁存器,Y1接8253可编程计数器/定时器,Y2接8255A可编程外围接口芯片。 3.2总体电路原理图J13abcdefgJ33abcdefg74LS3772MHz8253Clk0 Out0Clk1Out1Clk2Out2Gate0Gate1Gate2RDWRD0D774LS138A Y0B Y1C Y2G2A G2B G18086CPURDWRD0D7LED小灯泡J2012345678J3112345678 5VPb1Pb2Pb3Pb4Pb5Pb6Pb7Pb8RD WR 8255A pcD0D7 J32Pa1Pa2Pa3Pa4Pa5Pa6Pa7Pa8J21(乒乓开关) 4 软件方案4.1总体模块图竞赛抢答器LED指示灯输入显示选手复位模块数码管显示倒计时模块4.1 模块图开关扳下,开始答题开关扳上,选手复位主持人宣布答题前有人抢答,数码管显示F9秒时间到,数码管显示F9秒时间内,率先抢答的选手显示对应的组号4.2系统程序流程图nyynnny开始选手复位检测选手复位?LED显示、数码管显示计时结束?结束有开关按下? 数码管显示F图4-2抢答器流程图主持人宣布开始?4.3子程序设计4.3.1 8253的三个通道的N值通道0:由于一次不能输入1秒频率,则用通道0去分频,选择方式2。设N=5000 OUT0的频率为f=2MHz/5000=400Hz通道1:使OUT1的频率为1Hz,选择方式3N=400Hz/1Hz=400通道2:作为倒计时9s的计数器,选择方式0,N=94.3.2选手复位模块该模块是在主持人宣布各位选手清零且比赛开始前的部分,我们将8只开关接在8255的A口作为输入,设置测试字01H,当这八个开关=01H时,表示均复位(最后一个开关作为主持人复位/开始开关)。 ny从8255A口读开关信号数码管显示零与01H相同(即除复位键其余均清零)? 图4-3选手复位模块MOV DX,8255PA ;指向输入口A口IN AL,DX TEST AL,01HJNZ ZERO ;若没有清零,返回ZERO等待MOV DX,LOCK;使数码管显示零LEA BX,TABLEMOV CX,00H ;显示零XLAT TABLEOUT DX,CX4.3.3 倒计时模块从8255C口读出8253中1通道计时情况主持人宣布开始(按下开始键)?计时结束(高电平)?图4-4倒计时模块BEGIN: IN AL,DXTEST AL,00HJNZ BEGIN ; 直到开始宣布答题,主持人按下复位/开始键MOV DX,8253C;OUT1接CLK2,通道2作为9秒延时,开始计时MOV AL,10010001B OUT DX,AL ;选中2通道作为9s计时器MOV DX,8253P2MOV AL,09HOUT DX,AL;9S后自动中断,OUT2接8255的输入C口;是否到时间TEST1: IN AL,8255PCTEST AL,01HJNZ OUTF ;时间已到IN AL,DXMOV AH,00HOR AL,AH4.3.4 LED显示模块直接把开关的信号给LED,LED会自动根据开关的高低电平来亮灭,当开关为高电平时,灯亮,反之,灯灭。(已检测到有开关被按下)从8255A口读入开关信号把开关信号给LED端口LED灯亮图4-5 LED显示模块LIGHT: MOV DX,8255PAIN AL,DXMOV DX,8255PBOUT DX,AL;把从开关里读的值给LEDPUSH AL;为数码管输入值4.3.5数码管显示模块当系统开始工作后而且测试到有抢答信号或时间结束时,通过查表得到对应的数码送给74LS377,74LS377再用该信号驱动七段数码管显示。由于系统七段数码管使用的是共阴极的显示器,而显示器不能直接识别十进制和其他的进制数,所以我们必须根据给定的字形码进行显示,有了十进制对应的字形码,就能实现十进制数通过编译然后在七段数码管上显示。yn时间到?查表找到F的值把F放入74LS377显示F有人抢答?将号码对应的数放入74LS377显示抢答者号yn找到相应抢答者的号图4-6 选手复位模块;显示选手号OUTN: MOV DX,LOCKLEA BX,TABLEPOP CX;将选手号赋给CXMOV AL,CX ;设CX为数码管所显示的值INC AL;加1为选手号XLAT TABLEOUT DX,CXJMP ZERO ;等待下一轮抢答;显示F OUTF: MOV BX,10LEA TABLEXLATMOV DX,LOCK ;把数码管地址给DXOUT DX,ALJMP ZERO ;等待下一轮抢答4.4 程序清单DATA SEGMENTC8253 EQU 30BH ;对8253的端口的地址赋值P08253 EQU 308HP18253 EQU 309HP28253 EQU 30AHPA8255 EQU 310H ;对8255的端口的地址赋值PB8255 EQU 311HPC8255 EQU 312HC8255 EQU 313HLOC EQU 300H;定义数码管的16进制对应数 ; 0 1 2 3 4 5 6 7 8 9 FTABLE DB 40H,79H,24H,30H,19H,12H,02H,78H,00H,18H,0EH DATA ENDSCODE SEGMENTASSUME DS:DATA, CS:CODESTART:MOV DX,C8253 ;定义0通道8253的控制字MOV AL,00111101B ;0通道、先读低字节后高、方式0、BCD码计数OUT DX,AL ;读入控制字MOV DX,P08253 ;写入初始值5000MOV AL,00HOUT DX,ALMOV AL,50HOUT DX,ALMOV DX,C8255 ;定义8255控制字MOV AL,10011001B ;AB均为方式0、AC输入、B口输出OUT DX,ALZERO: ;检测选手是否均复位MOV DX,PA8255IN AL,DX ;从8255A口输入开关状态TEST AL,0FEH ;与1111 1110相与JNZ ZERO ;若前七位有未复位的(为1),则循环MOV DX,LOC ;若选手均复位,则数码管显示0LEA BX,TABLEMOV AL,00HXLAT TABLE ;查出0的16进制数OUT DX,AL ;写给数码管的地址BEGIN: ;主持人按下复位/开始键,抢答开始MOV DX,PA8255 IN AL,DXTEST AL,0FEH ;对开关进行测试JNZ OUTF ;当有选手在主持人未按下开始键之前抢答,数码管输出FTEST AL,01H ;主持人按下复位/开始键JNZ BEGIN ;没按下继续循环检测;抢答开始,倒计时开始MOV DX,C8253 ;对8253的1通道写入方式字MOV AL,01110001B ;对1通道使用方式0,起倒计时作用OUT DX,ALMOV DX,P18253 对1通道写入初始值3600,9S后结束计时MOV AL,00HOUT DX,ALMOV AL,36HOUT DX,ALTEST1:MOV DX,PC8255 ;8255的B口接入8253的OUT1IN AL,DXTEST AL,01H ;若检测到8253通道1输出0,说明回答问题时间已到JNZ OUTF ;时间到输出F MOV DX,PA8255IN AL,DXMOV AH,0FFHTEST AL,AH ;将开关状态与1111 1111相与,判断开关状态JNZ LIGHT ;有选手抢答JMP TEST1 ;没有选手抢答,继续循环LIGHT: ;将抢答选手的LED灯点亮MOV DX,PA8255IN AL,DX ;读入开关状态MOV DX,PB8255 ;8255B口连接LEDOUT DX,AL ;输出开关状态给LEDTESTN:MOV DX,PA8255IN AL,DX ;将开关状态给AL,AL逐个比较判断是哪个选手抢答了CMP AL,80H JE LIGHT1 ;是第一个选手抢答CMP AL,40HJE LIGHT2;是第二个选手抢答CMP AL,20HJE LIGHT3;是第三个选手抢答CMP AL,10HJE LIGHT4;是第四个选手抢答CMP AL,08HJE LIGHT5;是第五个选手抢答CMP AL,04HJE LIGHT6;是第六个选手抢答CMP AL,02HJE LIGHT7 ;是第七个选手抢答LIGHT1: MOV AL,1XLAT TABLE ;查出显示1的十六进制数MOV DX,LOC OUT DX,AL ;数码管显示1JMP ZERO ;返回等待下一轮抢答LIGHT2:MOV AL,2XLAT TABLE ;查出显示2的十六进制数OUT DX,AL ;数码管显示2JMP ZERO;返回等待下一轮抢答LIGHT3:MOV AL,3XLAT TABLE ;查出显示3的十六进制数OUT DX,AL ;数码管显示3JMP ZERO;返回等待下一轮抢答LIGHT4:MOV AL,4XLAT TABLE ;查出显示4的十六进制数OUT DX,AL ;数码管显示4JMP ZERO;返回等待下一轮抢答LIGHT5:MOV AL,5XLAT TABLE ;查出显示5的十六进制数OUT DX,AL ;数码管显示5JMP ZERO;返回等待下一轮抢答LIGHT6:MOV AL,6XLAT TABLE ;查出显示6的十六进制数OUT DX,AL ;数码管显示6JMP ZERO;返回等待下一轮抢答LIGHT7:MOV AL,7XLAT TABLE ;查出显示7的十六进制数OUT DX,AL ;数码管显示7JMP ZERO;返回等待下一轮抢答OUTF: MOV AL,10 ;当有选手违例或无选手答题时输出FLEA BX,TABLE XLAT TABLE ;找到F的十六进制表示MOV DX,LOCOUT DX,AL ;输出给数码管JMP ZERO ;返回等待下一轮答题CODE ENDS END START5 系统调试5.1硬件调试最初设计的电路有数码管和LED灯相连,但是只用数码管与LED灯同时相连,无法显示出,也无法立即检验出问题,所以我们分块进行检验,先检测LED灯,再检测数码管。5.2 软件调试由于程序有200多行,相对较长,在实验过几次后均无果,软件没有语法错误,逻辑上也没错,但是就是无法得出我们相应的理想的结果,于是我们将程序拆成5段分别进行调试,后来许多次证明都是实验箱芯片有问题,这给我们带来了不小的麻烦,后来我们学会了先用简单的程序去检测实验箱,然后再进行复杂的实验。将一些OR、TEST等无法运行下去的程序统统改成AND、CMP就可以了。6 问题分析与改进6.1倒计时模块我们设置的是倒计时9秒内可以抢答,但是因为接口不够,我们将数码管显示倒计时这一块内容删掉了,但是因此没办法知道倒计时的状态,除了9秒时间到达数码管显示F外,我们可以从8255C口连一根线到一个灯泡上,然后通过软件控制让它在9秒内亮,9秒后灭: S0:MOV DX,304H ;C口低四位IN AL,DXAND AL,01HCMP AL,01HJNZ S0MOV AL,00HMOV DX,305H ;C口高四位OUT DX,AL6.2 蜂鸣器模块由于实验器材有限,我们只能实验产生视觉效果,但如果有蜂鸣器的话,我们曾经想过要天上听觉效果,比如倒计时的时候每减一秒,就响一下;抢答时间到的时候再响音调更高的音,并且延长它的音:MOV AL,10110110BOUT C8253,ALMOV DX,0012HMOV AX,34DEHDIV DIOUT P28253,ALMOV AL,AHOUT P28253,ALIN AL,PB8255MOV AH,ALOR AL,03HOUT PB8255,AL考虑到要使蜂鸣器发声,8253得输出一定频率的方波,最好用方式3,而我们原来用的方式0进行倒计时,因此这一点也是需要改的。我们的改进反感是:让8253输出1秒的方波,倒计时9 秒可以通过一个计数器,数9次负脉冲,则倒计时结束。7 总结体会的个人总结:通过半个学期的硬件课程设计训练,我对微型计算机原理与接口技术的理解又更进了一层,对各芯片的管脚,电路连接,编程实现也更驾轻就熟。在硬件课程设计的接线过程,我了解到理论中需要多了解芯片内部的结构以及其功能如何实现。而在实际操作中,我们进行的黑箱操作,绝大多数管脚是被屏蔽起来的,我们所看到及用到的仅仅只是一排或两排管脚接口,硬件课程设计的任务要求就是让我们利用这有限的引脚设计出电路连接及程序编辑实现芯片的功能。这就需要我们对这一块运用较多的地方多研究。汇编语言是简单,但是用它来

    注意事项

    本文(768.竞赛抢答器完整硬件课程设计报告(包含源代码、小组成员报告等).doc)为本站会员(仙人指路1688)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开