一、任务要求
设计一个以AT89C51单片机为核心的8位竞赛抢答器,基本功能如下:
(1)抢答器可供8名选手使用,编号为01~08,各用一个按钮,分别为S0~S7。
(2)设置一个系统清除和抢答控制开关,由主持人进行系统的清零和抢答开始的控制。
(3)抢答器具有数据锁存功能、显示功能及声音提示功能。抢答开始后,如有选手按下抢答按钮,编号立即锁存,并将选手编号显示在LED数码管上,同时伴随声音提示;同时封锁输入电路,禁止其他选手抢答,最先抢答选手的编号一直保持到主持人将系统清零。
(4)抢答器具有定时抢答功能,且抢答定时可由主持人进行设定。当主持人启动“开始”键后,定时器进行减计时。同时伴随声音提示。参赛选手在设定时间内进行抢答,如抢答有效,定时器停止工作,显示器上显示选手编号和抢答剩余时间。若定时时间已到,无人抢答,则本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。
二、系统设计
1.系统硬件电路设计
8位竞赛抢答器硬件电路如图5.5所示:
(1)8位抢答按键输入。
8位抢答按键为独立式按键,采用中断扫描方式,S0~S7接在AT89C51单片机的P1口,同时经过74HC30和74HC04接在AT89C51的P3.3口。
(2)清除和抢答控制开关。
清除和抢答控制开关接在AT89C51单片机的P3.0口。
(3)定时器设定按键开关。
定时器设定按键开关由3个按键组成,其中设置键接在AT89C51的P3.2口(外部中断),采用中断扫描方式,并设置为高优先级,可以中断嵌套。第一次按下时设定时间,再次按下时确认设定的时间。加1和减1键分别接在AT89C51的P3.4口和P3.5口,采用查询方式扫描,用来控制定时器时间的加减。
(4)4位7段数码管显示电路。
4位7段数码管采用动态显示,其字形码由P0口输出,位选码由P2口的低4位输出,采用共阴极数码管。
图5.5 8位竞赛抢答器硬件电路原理图
(5)音频电路。
音频电路由P3.7口控制一个NPN三极管来驱动一个小喇叭。在实际电路中可串联一个电容以滤除声音信号的直流分量,避免小喇叭烧毁。
2.系统程序设计(www.xing528.com)
8位竞赛抢答器的程序主要由主程序、延时子程序、声音输出子程序、显示字程序、定时/计数器T0中断子程序、外部中断和中断子程序组成。
参考程序如下:
一、选择题
1.MCS-51单片机中断源和可设置的中断优先等级分别为( )。
A.中断源为2个,中断优先等级为2个 B.中断源为5个,中断优先等级为2个
C.中断源为4个,中断优先等级为1个 D.中断源为3个,中断优先等级为1个
A.0003H B.000BH C.0013H D.001BH
3.IE0是( )的中断标志。
A.T0 B.T1 C.INT0 D.INT1
二、简答题
1.8051单片机提供了几个中断源?有几级中断优先级别?各中断标志是如何产生的?又如何清除这些中断标志?各中断源所对应的中断矢量地址是多少?
2.外部中断有几种触发方式?如何选择?在何种触发方式下,需要在外部设置中断请求触发器?为什么?
3.设fosc=12MHz,利用定时器T0(工作在方式2)在P1.1引脚上获取输出周期为0.4ms的方波信号,定时器溢出时采用中断方式处理,请编写T0的初始化程序及终端服务程序。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。