您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 8位竞赛抢答器的设计
1单片机课程设计专业电气工程及其自动化指导教师学生颜良堂学号B2011052216题目8位竞赛抢答器的设计2013年12月25日2目录一、设计任务与要求.....................................................................................................................3二、方案设计与论证..................................................................................................................32.1方案一:.........................................................................................................................32.2方案二:.........................................................................................................................3三、单元电路的设计..................................................................................................................33.1芯片的选择及工作原理...................................................................................................32.3系统的硬件构成及功能...................................................................................................4四、软件的设计.............................................................................................................................54.1主程序流程图...................................................................................................................54.2主程序...............................................................................................................................54.3子程序...............................................................................................................................61、开始、复位程序.........................................................................................................62、中断程序.....................................................................................................................63、选手键盘扫描程序.....................................................................................................74、数码管显示程序.........................................................................................................95、抢答时间设计程序.....................................................................................................96、延时子程序.................................................................................................................9五、仿真与调试.............................................................................................................................105.1抢答器调试结果.............................................................................................................10六、结论与心得...........................................................................................................................12附件1:电路图..............................................................................................................................12附件2:源程序..............................................................................................................................13附、参考文献�...........................................................................................................................173一、设计任务与要求以单片机为核心,设计一个8位竞赛抢答器:同时供8名选手或8个代表队比赛,分别用8个按钮S0~S7表示。设置一个系统清除和抢答控制开关S,开关由主持人控制。抢答器具有锁存与显示功能。即选手按按钮,锁存相应的编号,并在优先抢答选手的编号一直保持到主持人将系统清除为止。抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如30秒)。当主持人启动“开始”键后,定时器进行减计时,同时扬声器发出短暂的声响,声响持续的时间为0.5s左右。参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。通过键盘改变抢答的时间,原理与闹钟时间的设定相同,将定时时间的变量置为全局变量后,通过键盘扫描程序使每按下一次按键,时间加1(超过30时置0)。同时单片机不断进行按键扫描,当参赛选手的按键按下时,用于产生时钟信号的定时计数器停止计数,同时将选手编号(按键号)和抢答时间分别显示在LED上。二、方案设计与论证2.1方案一:使用C语言编程实现基于单片机的八位抢答器的课程设计,用到的元器件有AT89C51、MAX7219、按键、数码管、上拉电阻、蜂鸣器等。2.2方案二:使用汇编语言编程实现八位抢答器的课程设计,用到的元器件有AT89C51、74LS373、按键、数码管、上拉电阻、蜂鸣器等。选择方案二的理由:首先汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言,具有很高的精确控制;其次选用74LS373芯片作为数码管的控制芯片是因为它容易控制选用3个74ls373分别控制倒计时的两个数码管及一个显示抢答结果的数码管,所以我选择了方案二。三、单元电路的设计3.1芯片的选择及工作原理本设计使用到的元器件包括AT89C51芯片、数码管。工作原理:仿真开始显示FFF;按下“复位”键显示倒计时初值,起初设的是30秒;再按下“设时”键,按一下计数初值加1,到30自动清零;按下“开始”键开始倒计时,每减一,有0.5秒的声响;当有选手按下,则倒计时停止,显示当前倒计时数值和选手编号;若在倒计时计数到0,无人抢答则有1秒声响的报警。42.3系统的硬件构成及功能1、单片机晶振及复位部分电路电路2、选手抢答部分电路:由八个按键S0~S7以及8个阻值为1k的上拉电阻组成3、开始、复位、时间设置及扬声器部分电路:由3个按键、1个电阻、NPN和1个BUZZER组成,用于主持人操作及扬声器提示报警4、显示部分电路:由3个74LS373芯片及3个数码管构成,用于显示倒计时时间和抢答结果5四、软件的设计4.1主程序流程图4.2主程序MAIN:MOVTMOD,#01H;主程序MOVTH0,#3CHMOVTL0,#0B0HSETBEASETBET0SETBEX0SETBIT0MOVR4,#30;30秒倒计时MOVR3,#0AH;抢答结果MOVR7,#0AH;倒计时MOVR6,#0AHMOVR0,#30;R0存放倒计时的显示值,初值设为30LCALLXIANSH2开始显示FFF复位键时间设置开始按钮30s抢答倒计时加1显示抢答结果开始倒计时YYYYNNNN64.3子程序1、开始、复位程序;********复位程序********FW:JNBP3.1,FW1;预判复位键按下否JMPFWFW1:LCALLDELAY;去抖动,判断是否真按下JNBP3.1,FW2JMPFWFW2:MOVR3,#0BH;复位按下,则存放选手编号的R3,放入灭的代码MOVA,R4;倒计时初值R4放入显示倒计时寄存器R0中MOVR0,ALCALLXIANSH1;开始程序SAM:JNBP3.0,PKJMPSAMPK:JNBP3.0,PK1;扫描开始键是否按下JMPSAMPK1:MOVR3,#0BH;按下则R3存灭代码,SETBTR0;/启动定时器MOVR2,#0AH;中断次数设为10次,刚好1秒HERE:CJNER1,#01H,YY;若R1中存放的选手按键标志位为1,则转入STARJMPSTAR;否则继续循环等待中断YY:JMPHERE2、中断程序;中断程序IT0P:CLRTR0DECR2CJNER2,#05H,JX0;中断5次后,开启扬声器clrP3.6JX0:CJNER2,#00H,JX1;中断10次后,关闭扬声器,这样喇叭响0.5秒setbP3.6DECR0LCALLXIANSH1MOVR2,#0AH;R2中再存入中断次数JX1:LCALLSAMOCJNER1,#01H,JX2;扫描选手按键标志位R1,未按下则转JX2,按下则返回JMPRETURNJX2:JNBP3.1,PK2JMPCZPK2:LCALLDELAY;检测复位键按下否7JNBP3.1,QFWJMPCZQFW:MOVR1,#01HJMPRETURN;按下则返回CZ:CJNE
本文标题:8位竞赛抢答器的设计
链接地址:https://www.777doc.com/doc-4601485 .html