第一个被找到为1的位其对应的抢答信号作为被选择的第一有效抢答信号。本设计抢答键的权目为8个随机权数可选择为0~7。
例如:假设x=3,R2=01010001B即出现三个第一有效抢答信号。(对应AN6.AN4.AN0三个键)根据上述方法,则从D3位开始查找第一个找到为1的位是D4因而抢答键AN4被选中。 2、违规抢答信号的记录
抢答开始按动AN8键单片机开始INT0中断服务程序,先采样P0口并将采样值送入工作寄存器R0使LED显示“AA”字形提示开始,显然R0中寄存了抢答开始前最后一瞬间各路抢答输入信号。若无违规抢答,R0值为FFH;若有违规抢答,R0值不为FFH。R0中为0的位对应的抢答键属违规。若R0=10111110B表示AN0和AN6二路抢答键违规出现R0时表示八路抢答器全部违规,LED显示“UU”延时5s后返回主程序需重新抢答。
所谓“有效抢答信号”是指从LED显示“HH”字形提示抢答开始之后的抢答信号,在抢答提示之前的抢答信号属于“违规信号”。最先到达的有效抢答信号称为“第一有效信号”。 3、第一有效抢答信号的处理
抢答提示之后,单片机再采样P0口,用于检测抢答信号,将采样值送入工作寄存器R1。若采样值为FFH表示还没有抢答,继续采样P0口。若R1值不为FFH表示有人按下抢答键。
但还应判断是否由违规抢答所导致,这只需将R1值与R0值进行比较。若R1和R0值相同表示是由违规抢答所导致,则继续采样P0口。若R1和R0值不同,则表示存在有效抢答,不再采样P0口。此时R1中含有第一有效抢答信号。为了提取R1中第一有效抢答信号,抛弃其中的违规抢答信号,可进行如下处理:将R0与R1相“异或”再与R0相“与”,并将运算送工作寄存器R2即(R0⊕R1)〃R0臵R2。
经上述逻辑运算可知,若抢答键产生第一有效抢答信号,则R2中第i位为1(R2i=1)若R2值为0则表示没有效抢答信号,此表为抢答过程中可能出现的4种抢答信号处理过程。其具体数值详见表3—2
表3—2 抢答信号处理过程表
抢答键 R0i R1i R2i 说明 1 0 1 有效 ANi 1 1 0 未抢答 0 0 0 违规 0 1 0 违规
9
4、倒计时的处理
本设计有多个时间档可选择,用于留出抢答选手对抢答的反应。原设计方案有多档位可以选择,但实际应用中我只做了99秒的倒计时显示用以达到显示的效果,若要修改计时的档位只需要修改软件地址预设的数值即可。倒计时还为违规抢答的显示留出时间档,以记录和显示违规操作的键号。
第五节 软件设计
系统软件由主程序和INT0中断服务组成。主程序由验键,违规显示,倒计时等功能子程序组成,系统完成初始化后循环检查各个功能当用户使用某个功能时,按下相应的按钮(或开关)单片机进入相应的功能处理。INT0中断服务程序完成抢答信号采样和识别处理。 5.1、主程序流程图:
图4-1 主程序流程图
10
5.2 INT0中断服务程序框图:
INT0中断服务程序入口 采样P1口给R0 八路全部违规显 R0=00H? 示“UU” HH”提示抢答延时5S 显示“开始 采样P1口给R1 ⊕R1)·R0 R2=(R0 R2=0吗? 用随机定位查找法确定第R2中1的个数为 一有效抢答信号 1吗? 抢答键号显示及光亮报讯 延时5S后关显示 R0=FFH? 返回 有违规信号P1.4置1 无违规信号P1.4置0
11
图4—2中断服务程序框图
5.3 中断
本设计以中断为基础因此这里对中断进行详细的说明。这是由于中断是一项重要的计算机技术,这一门技术在单片机中得到了充分继承。
中断是工业过程控制及智能化仪器用微型机或单片机应用最多的一种数据传送方式。在通常情况下,单片机执行主程序,只有当正常状态出现故障,或发出中断请求时,单片机才暂停执行主程序,转去执行或处理中断服务程序,执行完中断服务程序后,再返回到主程序继续运行。 基于资源共享原理上的中断技术,在计算机中得到了广泛的应用。中断技术能实现CPU与外部设备的并行工作,提高CPU的利用率以及数据的输入/输出效率;中断技术也能对计算机运行过程中突然发生的故障作到及时发现并进行自动处理如:硬件故障、运算错误及程序故障等;中断技术还能使我们通过键盘发出请求,随时对运行中的计算机进行中的计算机进行干扰,而不用先停机处理,然后再重新开机等等。
在单片机中,中断技术主要用于实时控制。所谓实时控制,就是要求计算机能及时地相应被控对象提出的分析、计算和控制等请求,使被控对象保持在最佳工作状态,以到达预定的控制效果。由于这些控制参量的请求都是随机发出,而且要求单片机必须作出快速响应并及时处理,对此只有靠中断技术才能实现。
向CPU发出中断请求的来源称之为中断源。MCS-51是一个多中断源的单片机,以80C51为例有3类共五个中断源,分别是外部中断2个,定时中断2个和串行中断1个。
在MCS-51单片机中,控制寄存器共有4个,即定时器控制寄存器、中断允许控制寄存器、中断优先控制寄存器及串行口控制寄存器。这4个控制寄存器都属于专用寄存器之列。MCS-51的中断优先级控制比较简单,因为系统只定义高低2个优先级。各中断源的优先级由中断优先级寄存器(IP)进行设定。从中断相应到转向执行中断服务程序,完成中断所要求的操作任务,是一个很复杂的过程。中断完成后,TCON或SCON中的中断请求标志应及时清除。否则就意味着中断请求仍然存在,弄不好就会造成中断的重复查询和相应,因此就存在一个中断请求的撤销问题。MCS-51是通过只有在一条指令的最后一个机器周期的查询有效才能进行中断相应来实现。它有一种单步工作方式,所谓单步执行就是由外来脉冲控制程序的执行。而外来脉冲是通过按键产生的,因此实际上单步执行就是按一次键执行一条指令。 中断系统的控制
1、定时器/计数器的控制寄存器 (1)、定时器控制寄存器(TCON)
12
TCON寄存器既参与中断控制又参与定时控制。现对其定时功能加以介绍。其中有关定时的控制位共有4位: ?F0和TF1—计数溢出标志位
当计数器计数溢出(计满)时,该位臵“1”;使用查询方式时,此位作状态位供查询,但应注意查询有效后应以软件方法及时将该位清“0”;使用中断方式时,此位作中断标志位,在转向中断服务程序时由硬件自动清“0”。
?R0和TR1—定时器运行控制位
TRO(TR1)=0 停止定时器/计数器工作 TRO(TR1)=1 启动定时器/计数器工作 (2)、工作方式控制寄存器(TMOD)
TMOD寄存器是一个专用寄存器,用于设定两个定时器/计数器的工作方式。但TMOD寄存器不能位寻址,只能用字节传送指令设臵其内容。各位定义如表4—1:
表4—1 TMOD定义表
位一组的结构使它不能位寻址, 一定义就是4位。
从寄存器的位格式中可以看出,它的低半字节定义定时器/计数器0,高半字节定义定时器/计数器1。 ?ATE——门控位
GATE=O 以运行控制位TR启动定时器
GATE=1 以外中断请求信号(INT1或INT0)启动定时器 ?C/T——定时方式或计数方式选择位
C/T =0 定时工作方式 C/T =1 计数工作方式 ?M1M0——工作方式选择 M1M0=00 方式0 M1M0=01 方式1 M1M0=10 方式2 M1M0=11 方式3
(3)、中断允许控制寄存器(IE) ?EA——中断允许总控制位
?ET0和ET1——定时/计数中断
定时器/计数器提供给用户使用的有:8位计数器TH和TL,以及有关的控制位。这些内容只能以软件方法使用。中断源和中断标志位能够产
13
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库毕业设计智能抢答器(3)在线全文阅读。
相关推荐: