基于pc机的智能抢答器设计与实现图+完整程序-微机原理课程设计内容摘要:

模块设计 8088 最小应用系统整体模块功能 该模块是整个系统的硬件控制指挥中心。 由它控制整个系统 运行。 8088 最小应用系统整体模块组成 [4] 该模块有微处理器 8088, 74LS373, 8284 时钟发生器, 74LS138 译码电路等构成。 微处理器 (CPU)、 外部设备 及互联设备在各部件之间提供通信。 Intel 8088 按功能可分为两大部分:执行部分 EU(Execution Unit)和总线接口部分 BIU(Bus Interface Unit)。 其指令队列只有 4 个字节,外部数据总线是 8 位,内部为 16 位数据线, AD0~AD7 这 8 条数据、地址总线可以复用,内存容量是1MB, 8 种基本寻址方 式,强大的指令系统功能, 16 位 I/O 端口地址可寻址 64K 个端口地址。 74LS138 是 38译码器,通过给 ABC 送入不同的值来控制 Y0~Y7 的线选。 8284 时钟发生器是专门为 8088 系统设计配套的单片机时钟发生器。 它为 CPU提供时钟、准备就绪( READY)、复位( RESET)信号,还可以向外提供晶体振荡信号( OSC)、外围芯片所需时钟 PCLK 等其它信号。 由于 AD0~AD7 即可以作为 8 位地址线,又作为 8 位数据线,为提供 8 位地址信息,一般必须加三态锁存器,并由 CPU 产生的地址锁存允许信号 ALE 的下跳 边将 地址信息锁存入 74LS373 锁存器中 图 8088 最小应用系统电路图 、判分显示与声光报警模块设计 、判分显示与声光报警模块功能: 当 18 号选手抢答键按下后并在 LED 上显示,进入 60 秒计时答题阶段。 答题 完成后,由裁判按下完成键,进入下一评分模块。 若在 60S 内没有完成答题,则会出现报警(黄灯闪,蜂鸣器响)。 然后由裁判控制评分,答对加十分绿灯亮三秒,答错减十分红灯亮三秒。 、判分显示与声光报警模块组成: 键盘、可编程定时 /计数器 825发光二极管、蜂鸣器、 8255 和 74LS138 译码器组成。 键盘主要扫描行列式键盘的完成键。 8254 作为一个可编程计数器 /定时器,可以设定,不论工作在哪种模式,都会遵守下面几条基本规则 [4]: 1) 控制字写入寄存器时,所有控制逻辑电路立即复位,输出端 OUT 进入初始状态。 2) 初值写入后,要经过一个时钟上升沿和一个下降沿,计数执行部件才开始进行计数。 3) 通常在时钟脉冲 CLK 的上升沿时,门控信号 GATE 被采样。 4) 在时钟脉冲的下降沿,计数器作减 1 计数。 0 是计数器所能容纳的最大初始值。 在本模块中将用到 8254 0、 1 通道来控制红绿灯的亮灭, 2 通道的方式 3 产生 10HZ 方波,来驱动 LED 和蜂鸣器,以实现声光报警功能。 74LS138 译码电路用于选通 8254 和 8255A。 、判分显示与声光报警模块工作原理: 在 LED 上显示抢答选手号, 60S 倒计时开始,答题键按下后由裁判控制评 分,答对加十分绿灯亮三秒,答错减十分红灯亮三秒。 若在 60S 内没有完成答题,则会出现报警(黄灯闪,蜂鸣器响)。 然后进入 下一轮抢答。 电路图见 42。 图 42 答题计时、判分显示与声光报警电路图 5 软件设计 本次实验的软件设计思想如下: 利用 8255A 的 A 口, C 口作为并行输入输出,其中 C 口定义为高四位输出,低四位输入, A 口定义为输出, B 口定义为输出。 利用 8254 的通道 0 和 1 作为红灯亮 3 秒定时器,绿灯亮定时器,而 8254 的通道 2 用来接黄灯和蜂鸣器具体的功能实现:通过 8255 端口 C 来扫描键盘输入,并有一定的削抖功能。 信 号传输至 CPU 进行处理。 通过软件进行倒记时,进行加减分,送 LED 显示。 信号灯,蜂鸣器作相应的反应。 至此整体思路已如上所描述。 整个编程思想如下所述: 首先,为了使主程序易读,本次设计采用了将多个功能的模块编成为子程序的方法,所用程序为:键盘显示子程序,键盘扫描子程序, 60 秒倒记时子程序,声光报警子程序。 第一,初始化 8255A, 8254,给 8254 送初值。 这一部分主要完成 8255A、 8254的初始化。 第二,查询是否有键盘按键按下,若没有按下则继续查询, 8254 仍未开始定时,直到检测出有按键按下为止才可以开 始定时。 第三,当开始键按下,给 8254 送初值开始定时,然后用 TEST 指令来进行查询。 第四,当定时 60S 开始时每进行一次循环要判断是否有答题结束键按下。 如果有,结束 60S 倒记时,若没有,倒记时至 0 并打开声光报警系统; 第五,通过 8255 检测键盘是否有‘正确‘键按下。 如果有,则调用加法指令,并绿灯闪烁。 否则调用减法指令,红灯闪烁。 因此,在设计该软件时考虑到程序设计的基本要求中要求:程序应简单、易读、便于读者理解,更重要的是设计者自身的设计思想应清晰,编制的程序应易于理解。 所以本次设计采用的软件思想如上所述。 该设计的程序流程图可以分为五个:主程序流程图、键盘显示子程序流程图、键盘扫描子程序流程图、 60 秒倒记时声光报警模块程序流程图、 计分模块程序流程图。 注:程序流程图如下所示。 主程序流程图: 图 60 秒倒记时声光报警 模块程序流程图: Y N N Y 图 取数码表首地址 选择 LED 位码 调倒记时显示子程序 查表并通过 8255 送 LED 显示 判 60S 未到。 8254 初始化 CX 减一 8254 通道 2 覆初值 调声光报警子程序产生方波驱动蜂鸣器及黄灯 CX=0。 下一步 SGBAOJING PROC FAR ………………… . ………………… . CALL DELAY60S MOV AL,00000000B。 关 8254 的 60 秒定时 MOV DX,P8254_CTR MOV AL,97H。 通道 2 控制字 ,BCD 码计数 ,方式 3 OUT DX,AL MOV DX,P82542 MOV AL,60 OUT DX,AL。 产生 10HZ 方波驱动蜂明器 ,及黄 LED JNZ DELAY2 DEC DX JNZ DELAY1 MOV AL,00000000B MOV DX,P82542 OUT DX,AL ……………… . ……………… . 键盘扫描子程序流程图: 返回 扫描完毕。 键号存储器 BL=BL+1 继续 修改行扫描值 有列线是否为低电平。 把行数送到 CX 扫描一行 BL=0FFH Y ① ① N Y N Y N N Y ① 是否有列线处于低电平状态 有键按下。 往所有行线( PC0~PC2)上输出 0 读所有列线( PC4~PC7)电平标志 开始 将 8255A的控制字送端口 C 地址 调键盘扫描 BL=0FFH 送键号初值 0 及扫描初值 返回键号 BL 图 计分部分程序流程图: N Y Y Y N N 开始 将键码送入 AL 是否加分。 调显示加分子程序 调显示减分子程序 定时绿灯亮 3 秒 定时红灯亮 3 秒 定时时间到。 下一步 图 定时时间到 灯灭 „„„„„„„ „„ „„„„„„„„„ WARNING: MOV AX,FENS DIV AX,100 MOV BAI,AL MOV AL,AH MOV AH,0 DIV 10 MOV TENS,AL MOV SECOND,AH CALL DISPLAY1 CALL KEY MOV AL ,BL。 加减分阶段 CMP AL。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。