题目:竞赛抢答器的设计与实现
智力竞赛抢答器的电路设计

智力竞赛抢答器电路设计一、选题背景1.抢答组数为3 组,输入抢答信号的按键需完成无抖动功能;2.能迅速、准确地判处抢答者,同时能排除其它组的干扰信号,闭锁其它各路输入使其它组再按开关时失去作用,并能对抢中者有显示和鸣叫指示3.每组有 1 位十进制计分显示电路,能进行加/减计分;4.当抢答开始后,指示灯应闪亮;当有某组抢答时,指示灯灭,最先抢答一组的灯亮,并发出音响;也可以驱动组别数字显示(用数码管显示);5.回答问题的时间应可调整,分别为 10s、20;主持人应有复位按钮和开始抢答按钮。
二、方案论证(设计理念)说选用at89c51芯片进行仿真实验,由于题目要求以及芯片的端口较少问题,故选用了一个四位数码管,将显示分数和显示选手号的功能集成于一个四位数码管中,并由复位功能进行两种显示的切换。
将P0口接上数码管,从P2口选择几个作为位选端口,另外的几位作为主持人的按键用来进行加减分以及开始和复位的选择。
并对按键进行了消抖防影措施。
在芯片的对应端口连接上晶振电路,在P3口连接蜂鸣器进行相应的提示。
源程序在keil5环境中生成,仿真在protues8.9环境中生成,将程序写入芯片中得到了运行且功能无错误三、过程论述过程论述大致分为两个部分,为硬件部分和软件部分1.硬件部分P0口接上数码管,采用共阴极四位一体数码管。
由于连接的为P0口所以需要接上上拉电阻,由于单个电阻过于麻烦所以选择使用排阻。
蜂鸣器电路,由于单片机产生的电流过小,无法支持蜂鸣器的正常使用,所以使用三极管进行电流放大来保持蜂鸣器的正常使用。
图中显示的为按键,左侧是选手按键,右侧为主持人按键,分别为开始按钮、加分按钮、减分按钮、复位按钮。
2.软件部分本次实验使用了两个定时器中断,分别为定时器中断0和定时器中断1。
设置的初始抢答倒计时为20s,答题时间为10s,为两个定时器赋上相应的初值可以应对两种时间为零的各种情况由于题目的要求当复位按键或者选手按键按下后需要屏蔽其他选手的按钮影响,设计采用了一种标志位来控制按键扫描函数,当复位按键或者选手抢答按键按下后该标志位置1然后停止对按键函数的扫描以此来屏蔽其他按键的干扰。
智力竞赛抢答器 eda 课程设计 报告电路图

燕山大学EDA课程设计报告书智力竞赛抢答器姓名:李学森班级:08电子信息工程3班学号:080104020063 成绩:一、设计题目:智力竞赛抢答器二、设计要求:1 .五人参赛每人一个按钮,主持人一个按钮,按下就开始;2 .每人一个发光二极管,抢中者灯亮;3 .有人抢答时,喇叭响两秒钟;4 .答题时限为10秒钟,从有人抢答开始,用数码管倒计时间,0,9,8…1,0;倒计时到0的时候,喇叭发出两秒声响。
三、设计内容:1.设计方案:主持人控制总开关,主持人置高电平后,系统进入准备工作。
有人抢答时,相应的二极管发光,同时数码管开始倒计时,且喇叭响两秒钟。
当倒计时再次到0的时候,喇叭再响2秒钟。
我设计的方案由五个高低电平控制相应的发光二极管,第六个用于主持人复位。
由二极管控制数码管和其中一个喇叭,再由数码管控制另一喇叭。
因此把整个课题分成四个模块:抢答器、10s倒计时器、分频器、2s计时器。
2.模块①:抢答器control为置零端,主持人控制,L1-L5由每位选手控制。
Q1-Q5为发光二极管,主持人置低电平后,Q1-Q5都被置零。
当主持人置为高电平时,抢答开始,抢答成功者对应的二极管发光,通过与门将cp信号封锁,并输入低电平到DFF中,则其他选手再次按键时结果不会改变,实现了一人抢答后,其他人不能再做答。
主持人按H清零后即可再次抢答。
此模块的仿真波形如下:仿真说明:当CONTROL为高电平时,即主持人按键以后,L1最先抢答成功,显示L1是高电平,使其对应的二极管发光模块②:十秒倒计时器此十秒钟倒计时器是由74190与7448组成的十进制减法计数器,它保留预制置数端、CP信号端、计数输出端,TNUP置高电平进行减法计算,其余的端口都置为0。
LDN是置零端,当它等于1的时候,74190有效,倒计时开始。
当输出0、9、--1时,D触发器输出结果总是0,不影响CP信号。
当输出从1到0时,D触发器输出结果为1,则CP信号被封锁。
多路智力竞赛抢答器的设计

多路智力竞赛抢答器的设计多路智力竞赛抢答器是一个用于智力竞赛中的设备,用于记录和管理参赛者的抢答顺序和答题情况。
它可以在比赛中提供公平、公正和高效的抢答环境,确保比赛的公正性和准确性。
下面是一个多路智力竞赛抢答器的设计,包含以下几个方面的内容。
一、硬件设计:1.抢答器主控制模块:用于控制整个抢答器的工作流程,包括参赛者抢答按钮的触发、显示屏的刷新以及结果的显示。
2.抢答按钮模块:每个参赛者都有一个抢答按钮,用于在抢答时触发抢答信号,并将信号传递给主控制模块。
3.显示屏:用于显示当前抢答顺序、参赛者的编号和答题情况等信息。
4.信号接口模块:用于接收和发送抢答信号,确保信号的稳定传输和准确记录。
二、软件设计:1.参赛者管理:可以添加、修改和删除参赛者信息,包括编号、姓名和其他个人信息。
2.抢答顺序生成算法:根据参赛者的编号和抢答时间,生成抢答顺序,确保每个参赛者都有平等的机会。
3.抢答计时器:记录每个参赛者的抢答时间,以毫秒为单位,确保答题时间的准确性。
4.答题结果记录:记录每个参赛者的答题情况,包括答题是否正确、答题时间和得分等信息。
三、工作流程:1.参赛者注册:在比赛开始前,将参赛者的信息录入系统,并为每个参赛者分配一个唯一的编号。
2.抢答顺序生成:根据参赛者的编号和抢答时间,生成抢答顺序,确保每个参赛者都有平等的机会。
3.比赛开始:显示屏上显示第一个参赛者的编号,并开始计时。
4.抢答过程:参赛者可以按下抢答按钮进行抢答,主控制模块接收到抢答信号后,记录抢答时间,并显示下一个参赛者的编号。
5.答题过程:参赛者按照题目进行答题,系统记录答题情况,并根据答题结果给予相应的得分。
6.比赛结束:显示屏上显示比赛结果,包括参赛者的得分和排名等信息。
四、安全性设计:1.数据备份:系统应具备数据备份功能,确保比赛数据在意外情况下的安全性。
2.故障恢复:系统应具备故障恢复功能,如断电恢复、程序崩溃等情况下能够自动恢复并继续比赛。
抢答器的设计与制作(五篇范例)

抢答器的设计与制作(五篇范例)第一篇:抢答器的设计与制作抢答器的设计与制作抢答器是竞赛问答中一种常用的必备装置,从原理上讲,它是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。
从有利于学习的角度考虑,这里主要介绍以中小规模集成电路和PLD器件设计抢答器的方法。
1抢答器的基本组成及工作原理1.1抢答器的组成抢答器的一般构成框图如图1.1所示。
它主要由开关阵列电路、触发锁存电路、编码器、7段显示器几部分组成。
下面逐一给予介绍。
图1.1抢答器的组成框图(1)开关阵列电路该电路由多路开关所组成,每一竞赛者与一组开关相对应。
开关应为常开型,当按下开关时,开关闭合;当松开开关时,开关自动弹出断开。
(2)触发锁存电路当某一开关首先按下时,触发锁存电路被触发,在输出端产生相应的开关电平信息,同时为防止其它开关随后触发而产生紊乱,最先产生的输出电平变化又反过来将触发电路锁定。
若有多个开关同时按下时,则在它们之间存在着随机竞争的问题,结果可能是它们中的任一个产生有效输出。
(3)编码器编码器的作用是将某一开关信息转化为相应的8421BCD码,以提供数字显示电路所需要的编码输入。
(4)7段显示译码器译码驱动电路将编码器输出的8421BCD码转换为数码管需要的逻辑状态,并且为保证数码管正常工作提供足够的工作电流。
(5)数码显示器数码管通常有发光二极管(LED)数码管和液晶(LCD)数码管。
本设计提供的为LED数码管。
1.2抢答器的工作原理(1)开关阵列电路图1.2所示为8路开关阵列电路,从图上可以看出其结构非常简单。
电路中,R1~R8为上拉和限流电阻。
当任一开关按下时,相应的输出为低电平,否则为高电平。
图1.2开关阵列电路(2)触发锁存电路图1.3所示为8路触发锁存电路。
图中,74HC373为8D锁存器,一开始,当所有开关均未按下时,锁存器输出全为高电平,经8输入与非门和非门后的反馈信号仍为高电平,该信号作为锁存器使能端控制信号,使锁存器处于等待接收触发输入状态;当任一开关按下时,输出信号中必有一路为低电平,则反馈信号变为低电平,锁存器刚刚接收到的开关被锁存,这时其它开关信息的输入将被封锁。
数字电子课程设计 智力竞赛抢答器

电子课程设计报告题目:智力竞赛抢答器学生姓名专业学号指导教师日期一、完成课题的工作基础和实验条件【工作基础】LPS305直流稳压电源提供5V固定电压TFG2006V-6MHz信号发生器提供峰峰值1V、频率1Hz的方波【实验条件】各类CMOS器件器件列表如下:【4518】1个【4013】2个【4072】3片【4069】3片二、设计任务和要求【智力竞赛抢答器】电路简介:智力竞赛抢答器是为智力竞赛参赛选手答题时进行抢答而设计的一种优先判决电路。
参赛选手可以分为若干组,抢答时每组选手对主持人提出的问题要在最短的时间内作出判断,并按下抢答键回答问题。
竞赛规则:主持人宣布答题开始时,选手可以选择抢答或放弃,如果选手提前抢答视为犯规。
【设计要求】1、计时功能:主持按下启动键后,秒时钟计时开始。
2、正常抢答:在规定时间40s之内某选手按下抢答键时,显示席位号,表示正常抢答,秒时钟自动停止;3、放弃抢答:主持按下启动键后,秒时钟计时开始,40s还没有选手按下抢答键,表示放弃抢答,秒时钟自动停止;4、提前抢答:主持人未按下启动键时,某选手就按下抢答键,显示对应席位号,并发出响声,表示抢答犯规;5、封锁功能:当第一个选手按下抢答键后,电路将其他各组按键封锁,使其不起作用;6、复位功能:电路具有复位功能。
【主要技术性能指标】1、选手席位数量:4个主持人:1个2、席位指示灯显示:LED数码管,1个正常抢答时显示席位号(1~4),犯规抢答时显示席位号并发出响声提示。
3、抢答时间范围:0s~40s。
4、时间显示方式:LED数码管,两个。
5、复位方式:手动,按钮复位。
注:按钮可由开关代替。
三、电路基本原理该电路设计中共包括三部门主要电路:1、抢答器电路2、计时电路3、报警电路下面分别加以说明:【抢答器电路】主要功能:在规定时间40s之内某选手按下抢答键时,显示席位号,表示正常抢答【计时电路】主要功能:主持按下启动键后,秒时钟计时开始,40秒后停止【报警电路】主要功能:主持人未按下启动键时,某选手就按下抢答键,显示对应席位号,并发出响声,表示抢答犯规四、实验与调试【仿真完成后根据具体实验过程对电路图所作修改】1、连接显示选手席位号的译码器的四输入或门由于所发4072只有三片,器件不够,因而改成非门加与非门2、测试计时器功能时可适当加快信号发生器所提供的信号频率,以加快计时所用时间,方便观测【实验过程中注意事项】1、各部门主要电路分别测试,例如首先连接好计时电路并检测4518性能2、电路连接过程中注意不要带电改电路,切断电源后再插拔线路3、插拔芯片时须小心管脚,勿折断4、注意芯片接地与接电源端,切勿接反五、设计体会通过本次四路抢答器的电路设计,我对电子电路的设计过程有了更清楚的认识。
课程设计实验报告-抢答器

课题二数字式抢答器一.数字式抢答器功能概述在举办各种智力竞赛活动中,常常需要确定随是第一个抢答的人。
数字式抢答器利用电子器件可以准确的解决这一问题。
数字式抢答器允许抢答者在规定的时间范围内进行抢答,可以用数字显示抢先者的序号,并配有相应的灯光指示和声报警功能;对犯规抢答者(指在抢答开始命令下达前抢答者),除用声、光报警外,还应显示出犯规者的序号;若规定抢答时间已过,要告示任何输入的抢答信号均无效,除非重新下达抢答命令。
二.任务和要求设计一个数字式抢答器,具体要求如下:1.要求至少控制四人抢答,允许抢答时间为10秒,输入抢答信号是在“抢答开始”命令后的规定时间内,显示抢先抢答者的序号,绿灯亮。
2.在“抢答开始”命令前抢答者,显示违规抢答者的序号;红灯亮。
3.在“抢答开始”命令发出后,超过规定的时间无人抢答,显示无用字符(可自行确定)。
4.选做:不仅能显示抢答者的序号并且能显示抢答次序。
三.原理电路和程序设计(一)总体设计电路如下图所示为总体方框图。
其工作原理为:接通电源后,主持人将开关拨到"清除"状态,抢答器处于禁止状态,编号显示器灭灯,定时器显示设定时间;主持人将开关置开始"状态,宣布"开始"抢答器工作。
定时器倒计时,选手在定时时间内抢答时,抢答器完成:优先判断、编号锁存、编号显示,当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示零。
如果再次抢答必须由主持人再次操作"清除"和"开始"状态开关(二)部分电路介绍1、抢答器电路参考电路如下图所示。
该电路完成两个功能:一是分辨出选手按键的先后,并锁存优先抢答者的编号,同时译码显示电路显示编号;二是禁止其他选手按键操作无效。
工作过程:开关S置于"清除"端时,当有选手将键按下时74L148的四个输出相与控制74L75的使能端,使其锁存并且让它和开关相与去控制红灯亮,保证报警电路通。
八路竞赛抢答器设计实验报告

八路竞赛抢答器设计实验报告#八路竞赛抢答器设计实验报告##1.实验目的通过设计和制作八路竞赛抢答器,掌握数字电子技术的基本原理和应用,培养实际动手能力,提高团队协作和创新能力。
##2.实验原理八路竞赛抢答器主要基于数字电子技术的逻辑门、计数器、时序电路等原理。
每个参赛者的抢答器包含按钮、计数器、显示器等组件,通过按下按钮触发计数器计数,同时在显示器上显示计数结果。
##3.实验材料与器件-逻辑门:使用TTL(Transistor-Transistor Logic)或CMOS(Complementary Metal-Oxide-Semiconductor)逻辑门芯片。
-计数器:选择适当的计数器芯片,如74LS190或74HC161等。
-按钮开关:作为参赛者抢答的触发器。
-显示器:使用数码管或LED等显示模块。
##4.实验步骤###4.1设计电路图根据竞赛抢答器的要求,设计电路图,包括逻辑门的连接、计数器的接入、按钮开关和显示器的布置等。
###4.2制作原型根据电路图,制作抢答器的原型。
连接逻辑门、计数器、按钮、显示器,并确保电路的正确性。
###4.3编程(如有需要)如果抢答器需要特定的计分逻辑或显示效果,可能需要进行微控制器的编程工作。
在这一步骤中,确保编写的程序与硬件连接相匹配。
###4.4调试与测试逐一检查电路连接,确保没有短路或开路。
通过模拟按下按钮的操作,测试计数器和显示器的正常工作。
##5.实验结果与分析经过调试与测试,八路竞赛抢答器实现了预期的功能。
通过观察显示器的计数结果,可以准确判断参赛者的抢答顺序。
##6.实验总结通过本次实验,加深了对数字电子技术原理的理解,提高了动手制作电子装置的能力。
同时,实验中的问题与挑战也促使我们更好地合作解决问题,培养了团队协作与创新的精神。
##7.实验改进与展望为了进一步提高抢答器的性能,可以考虑引入更多的计数器、添加蓝牙或无线模块,以实现远程监控和计分等功能。
智力竞赛抢答器实验报告

一:实验目的:1: 掌握抢答器的工作原理及其设计方法.2:掌握设计性试验的实验方法.3:掌握焊接技术..二:实验原理:1: 设计一个智力竞赛抢答器,可同时供8名选手或8个代表队参加比赛,他们的编号分别是1、2、3、4、5、6、7 . 8,各用一个抢答按钮,按钮的编号与选手的编号相对应,分别是1、2、3、4、5、6、7 . 8。
2: 接通电源前,抢答按钮与清零按钮都未按下。
接通电源后,主持人清除开关处于工作状态,抢答器处于工作状态,编号显示器显示为0,蜂鸣器未鸣响(为方便控制,电路设计为清除开关按下时是清零状态,未按下时为工作状态)。
等一轮抢答完成后(七段数码管显示出优先抢答队员编号,并蜂鸣器鸣响),主持人将清零开关按下数码管清为零,蜂鸣器停止鸣响。
然后先后把各队员抢答按钮与主持人清零按钮复位。
即可进入下一轮抢答。
原理为:电路中清零按钮控制D 触发器集成块74LS175清零端低电平输入,按下时清零端输入为低电平(清零端低电平有效),未按下时输入高电平。
清零后D 触发器集成块74LS175 Q`端输出全变为高电平,使编码器74HC147(有效输入电平为低电平)无有效低电平输入,七段数码管上显示为0。
3.抢答时,队员按下抢答按钮的时间有先后次序,电路中每个抢答按钮连接一个D 触发器,当一抢答按钮按下后其对应的触发器锁存住信号,Q`端输出有效低电平,同时通过反馈电路使D 触发器集成块得脉冲信号终止输入,从而使其他D 触发器停止工作,抢答后也无法锁存。
达到有先输入有先锁存功能.4:工作电路图如下:a b c d eg f LTBILEDA CB三:实验仪器:1.制好的抢答器电路板一块2.按要求的电阻.电容.二极管.开关若干,八段led数码管一个..3.焊锡.烙铁四.实验方法及步骤:1:了解电路构成,按要求准备好要的器材.2:将电器元件分好类,便于操作.进行焊接工作.3:焊接好后,进行调试工作.五.实验结论:通过这次八路抢答器的设计,我发现了以往学习中的许多不足,也让我掌握了以往许多掌握的不太牢的知识,感觉学到了很多东西。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
汇编及接口技术课程设计题目:竞赛抢答器的设计与实现班 级: 120616 学 号: 120616124 姓 名: 时 间: 2014.12.30成绩:目录(一)设计任务与要求(二)设计方案(包括设计思路、使用到哪些芯片、各个芯片的作用)(三)硬件线路设计(包括线路图及连线说明)(四)软件设计(包括程序流程图)(五)源程序(要有注释)(六)调试过程(包括实验过程中的硬件连线,实验步骤、出现的问题、解决的方法、使用的实验数据等)(七)总结一、设计任务与要求1. 了解微机控制的竞赛抢答器的基本原理。
2. 进一步熟练8255、的使用。
二、设计方案设计一个7路的智力竞赛抢答器。
要求:1、在主持人侧,设置抢答指示电路和启动/复位开关。
选手侧各设置1个抢答按钮。
2、使用开关K7代表启动/复位开关,K7向上拨时,表示启动一次抢答,绿色发光二极管亮作允许抢答指示。
此时选手侧可以按动各自的抢答按钮。
3、使用实验仪的逻辑电平开关K0-K5来代表6个抢答按钮。
当开关向上拨时表示按下按钮。
4、收到第1个抢答信号后,主持人侧红色发光二极管亮(绿色发光二极管灭)作抢答指示,在单个LED灯上显示抢先一组的组别。
5、主持人向下拨K7,代表复位操作,红绿指示灯全灭,选手灯全灭。
6、主持人可以再次向上拨动K7,启动下一次抢答。
7、在数码管上显示选手编号。
8、通过8255完成设计。
三、硬件线路设计1. 注意事项:A. 先关闭试验箱电源,再进行接线。
B. 实验过程中,要改变错误接线,也必须先关闭电源,再进行改线。
2. 实验连线(最关键的5组连线,要精挑细选)8255模块的RD、WR 连到ISA总线接口模块的IOR#、IOW#,8255选通信号CS连到ISA总线接口模块的IOY0。
8255模块的数据线D7~D0、连到ISA总线接口模块的XD7~XD0。
地址线A1~A0连到XA2~XA1。
1)8255的端口A(PA0---PA7)和开关K0-K7相连。
2)8255的端口C(如PC7、PC6)分别和发光二极管(绿)、(红)连接。
3)8255的端口C(PC0---PC5)和发光二极管L0---L5相连。
4)8255的端口B(PB0---PB7)连接到LED数码管模块的a~h各段。
5)右下角LED的列端之一Xi接GND。
(LED为共阴极,故此其COM端接地)。
3、编程提示:首先初始化8255,然后判断是启动还是复位操作,若是复位操作,则控制8255输出的数据使绿色和红色指示灯、LED灯全灭;否则启动下一次抢答,使绿色发光二极管亮;当8255的输入口PB有不为0的数据时,则使绿色发光二极管灭并使红色发光二极管点亮。
并判断先拨动开关的组号,在LED灯上显示出其组号。
最后使用LED 8段数码管,显示选手编号。
四、软件设计DATA SEGMENTP8255A DW 0600HP8255B DW 0602HP8255C DW 0604HP8255M DW 0606HLEDCODE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB 7FH,6FH,77H,7CH,39H,5EH,79H,71H LCODE DB ? ;选手灯代码DCODE DB 3FH ;显示代码缓冲DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATASTART: MOV AX,DATAMOV DS,AXMAIN: MOV DX,P8255MMOV AL,XXH ;写8255控制字。
OUT DX,AL ;PA输入、PB输出、PC输出。
MODE0MOV DX,P8255BMOV AL,00H ;OUT DX,ALMOV DX,P8255COUT DX,AL ;---------------------------------------------------------------------------- NEW: MOV DX,P8255AIN AL,DXTEST AL,80HJNZ SECONDFIRST: MOV DX,P8255C ;K7=0MOV AL,00H ;OUT DX,ALJMP NEW;---------------------------------------------------------------------------- SECOND: NOPMOV DX,P8255AIN AL, DXTEST AL,7FH ;K0---K6=全0?JNZ THIRDMOV DX,P8255MMOV AL,0EHOUT DX,AL ;PC7=0MOV AL,0DH ;PC6=1OUT DX,ALJMP NEWTHIRD: NOP ; K0---K6=非全0MOV DX,P8255MMOV AL,0FH ;PC7=1OUT DX,ALMOV AL,0CH ;PC6=0OUT DX,AL ;---------------------------------------------------------------------------- FORTH: NOPFIFTH: NOPCALL SWITCHDONE: NOPCALL LEDLAMP;CALL DISPLYJMP NEW;---------------------------------------------------------------------------- SWITCH PROC NEAR ;PUSH AXPUSH DXK0: NOPK1: NOPK2: NOPK3: NOPK4: NOPK5: NOPPOP DXPOP AXRETSWITCH ENDPLEDLAMP PROC NEAR ;PUSH AXPUSH DXNOPPOP DXPOP AXRETLEDLAMP ENDPDISPLY PROC NEAR ;PUSH AXPUSH DXNOPPOP DXPOP AXRETDISPLY ENDPCODE ENDSEND START五.源程序试验程序:DATA SEGMENTP8255A DW 0600HP8255B DW 0602HP8255C DW 0604HP8255M DW 0606HLEDCODE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB 7FH,6FH,77H,7CH,39H,5EH,79H,71HLCODE DB ? ;选手灯代码DCODE DB 3FH ;显示代码缓冲DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMAIN: MOV DX,P8255MMOV AL,90H ;写8255控制字。
OUT DX,AL ;PA输入、PB输出、PC输出。
MODE0 MOV DX,P8255BMOV AL,00H ;OUT DX,ALMOV DX,P8255COUT DX,AL ;---------------------------------------------------------------------------- NEW: MOV DX,P8255AIN AL,DXTEST AL,80H ;判断K7是否等于1,看是否有抢答JNZ SECONDFIRST: MOV DX,P8255C ;K7=0MOV AL,00H ;OUT DX,ALMOV BX, 00HJMP NEW;---------------------------------------------------------------------------- SECOND: NOPMOV DX,P8255AIN AL,DXTEST AL,7FH ;K0---K6=全0?代表7个抢答按钮JNZ THIRDMOV DX,P8255MMOV AL,0EHOUT DX,AL ;PC7=0MOV AL,0DH ;PC6=1OUT DX,ALJMP NEWTHIRD: NOP ; K0---K6=非全0MOV DX,P8255MMOV AL,0FH ;PC7=1OUT DX,ALMOV AL,0CH ;PC6=0OUT DX,AL;----------------------------------------------------FORTH: NOPFIFTH: NOPCALL SWITCH;------------------------------SIXTH: MOV DX,P8255AIN AL,DXTEST BX, 01HJNZ SEVEN 完成的锁档功能JMP DONESEVEN: MOV DX,P8255AIN AL,DXTEST AL,80HJNZ SEVEN ;JMP SIXTH;----------------------------- DONE: NOPCALL LEDLAMP ;CALL DISPLYJMP NEW;----------------------------------------------------------------------- PROC NEAR ;PUSH AXSWITCH PUSH DXMOV DX,P8255AIN AL, DXTEST AL,01HJNZ K0TEST AL,02HJNZ K1TEST AL,04HJNZ K2TEST AL,08HJNZ K3TEST AL,10HJNZ K4TEST AL,20HJNZ K5K0: MOV DX,P8255MMOV AL,01HOUT DX,ALMOV DX,P8255BMOV AL,3FHOUT DX,ALMOV BX,01HJMP DOWNK1: MOV DX,P8255MMOV AL,03HOUT DX,ALMOV DX,P8255BMOV AL,06HOUT DX,ALMOV BX,01HJMP DOWNK2: MOV DX,P8255MMOV AL,05HOUT DX,ALMOV DX,P8255BMOV AL,5BHOUT DX,ALMOV BX,01HJMP DOWNK3: MOV DX,P8255MMOV AL,07HOUT DX,ALMOV DX,P8255BMOV AL,4FHOUT DX,ALMOV BX,01HJMP DOWNK4: MOV DX,P8255MMOV AL,09HOUT DX,ALMOV DX,P8255BMOV AL,66HOUT DX,ALMOV BX,01HJMP DOWNK5: MOV DX,P8255MMOV AL,0BHOUT DX,ALMOV DX,P8255BMOV AL,6DHOUT DX,ALMOV BX,01HDOWN: POP DXPOP AXRETSWITCH ENDPLEDLAMP PROC NEAR ; PUSH AXPUSH DXNOPPOP DXPOP AXRETLEDLAMP ENDPDISPLY PROC NEAR ;PUSH AXPUSH DXNOPPOP DXPOP AXRETDISPLY ENDPCODE ENDSEND START六.调试过程1.硬件测试DATA SEGMENTP8255A DW 0600HP8255B DW 0602HP8255C DW 0604HP8255M DW 0606HDATA ENDS;------------------------------------------------------------------------- 全亮CODE SEGMENTASSUME CS:CODE, DS:DATASTART: MOV AX,DATAMOV DS,AXMOV DX,P8255MMOV AL,XXH ;写8255控制字OUT DX,AL ;PA输入、PB输出、PC输出HARDTST: MOV DX,P8255CMOV AL,0FFH ;OUT DX,ALMOV AX,4C00HINT 21HCODE ENDSEND STARTEND START2、三个相一致:在硬件测试通过后,要注意三个相一致(1)IOY*地址和数据段中的端口地址。