您好,欢迎访问三七文档
当前位置:首页 > 高等教育 > 实验设计 > 八路数字抢答器微机原理及接口技术课程设计
1目录1.微机原理及接口技术课程设计任务书…………………………………………………………………P12.八路数字抢答器………………………………………………………………………………………P52.1功能介绍………………………………………………………………………………………P52.2抢答器总体设计…………………………………………………………………………………P52.3抢答器硬件设计…………………………………………………………………………………P62.4抢答器软件设计…………………………………………………………………………………P112.5实验结果…………………………………………………………………………………………P192.6程序优缺点………………………………………………………………………………………P232.7收获和体会………………………………………………………………………………………P242.8创新部分………………………………………………………………………………………P252.9参考文献…………………………………………………………………………………………P252.10附录一……………………………………………………………………………………………P262.11附录二……………………………………………………………………………………………P272八路数字抢答器一.功能介绍1、如果想调节抢答时间或答题时间,按抢答时间调节键或答题时间调节键进入调节状态,此时会显示现在设定的抢答时间或回答时间值,如想加一秒按一下加1s键,如果想减一秒按一下-1s键,时间LED上会显示改变后的时间,调整范围为0s~99s,0s时再减1s会跳到99,99s时再加1s会变到0s。2、主持人按抢答开始键,会有提示音,并立刻进入抢答倒计时(预设30s抢答时间),如有选手抢答,会有提示音,并会显示其号数并立刻进入回答倒计时(预设60s抢答时间),不进行抢答查询,所以只有第一个按抢答的选手有效。倒数时间到小于5s会每秒响一下提示音。3、如倒计时期间,主持人想停止倒计时可以随时按停止按键,系统会自动进入准备状态,等待主持人按抢答开始进入下次抢答计时。4、如果主持人未按抢答开始键,而有人按了抢答按键,犯规抢答,LED上不断闪烁FF和犯规号数并响个不停,直到按下停止键为止。5、P3.0为开始抢答,P3.1为停止,p1.0-p1.7为八路抢答输入数码管段选P0口,位选P2口低3位,蜂鸣器输出为P3.6口。P3.2抢答时间调整结,P3.3回答时间调整,P3.4为时间加1调整,P3.5为时间减1调整。二.抢答器总体设计1.1抢答器的工作原理抢答器的工作原理是利用单片机的定时器T0、T1中断完成,其余状态循环调用显示子程序,用4个共阴极LED数码管来显示,用P0口作为数码管的八个段选,用P2口中的P2.0、P2.1、P2.2、作为4个数码管其中3个位选,P1口接8个按键,提供选手抢答,P3.0-P3.5四个接四个按键,提供开始、结束、答题时间调整、枪答时间调整,加1、减1调整之用。31.2抢答器的总体设计倒计时方案方面利用MCS-51的内部的定时/计时器进行中断计时,配合软件延时实现倒计时。该方案节省硬件成本,并且能够在定时器/计数器的使用、中断及程序设计方案方面得到锻炼与提高,显示方面采用穿行传输实现动态显示,该方案的硬件连接简单,但动态扫描的显示方式需占用CPU较多的时间,适用于单片机没有太多实时测控的任务场合三.抢答器硬件电路设计3.1芯片统计名称型号数量芯片89C511数码管7SEG-MPX4-CC1按钮BUTTON15电容CAP2电解电容CAP-ELEC1晶振CRYSTAL1电阻RES8喇叭SPEAKER(DEVICE)143.2硬件介绍3.2.1芯片89C51【1】5【2】63.2.2数码管7其中DP为小数点【3】数码管分共阳极和共阴极,都需要上拉电阻,以增加负载驱动能力。共阳极则每位低电平有效,共阴极则每位高电平有效单片机中共阳极段代码:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H0~7DB80H,90H,88H,83H,0C6H,0A1H,86H,8EH8~F单片机中共阴极段代码:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H0~7DB7FH,6FH,77H,7CH,39H,5EH,79H,71H8~F3.3电路设计3.3.1芯片电路芯片电路如图3.1XTAL1、XTAL2分别为反相放大器的输入端和输出端,外接定时反馈元件组成振荡器(内部时钟方式),产生时钟送至单片机内部各元件。RST连接复位电路P0口控制数码管段代码P2口的低三位,控制数码管位选P3口:P3.0接开始按钮P3.1接停止按钮P3.2接抢答时间调整P3.3接回答时间调整P3.4接加1P3.5接减1P3.6接喇叭8图3.13.3.2复位电路复位电路如图3.29图3.2该复位电路采用上电自动复位和手动复位两种复位方式,图中网络标号所指9连接到单片机的复位引脚。要实现复位只需在,51系列单片机的RESET引脚上加上5ms的高电平就可以了。上电复位是利用电容的充电来实现的,即上电瞬间RESET端的电位与Vcc相同,随着电容上储能增加,电容电压也逐渐增大,充电电流减小,RESET端的电位。这样就会建立一个脉冲电压,调节电容与电阻的大小可对脉冲的持续时间进行调节。通常若采用12MHz的晶振时,复位元件参数为22μF的电解电容和10kΩ的电阻。按钮复位电路是通过按下复位按钮时,电源对RESET端维持两个机器周期的高电平实现复位的。3.3.3晶振电路晶振电路设计如图3.3图3.3MSC-51单片机的定时控制功能是用时钟电路和振荡器完成的,而根据硬件电路的不同,连接方式分为内部时钟方式和外部时钟方式。本设计中采用内部时钟方式。单片机内部有一个反相放大器,XTAL1、XTAL2分别为反相放大器的输入端和输出端,外接定时反馈元件组成振荡器(内部时钟方式),产生时钟送至单片机内部各元件。时钟频率越高,单片机控制器的控制节10拍就越快,运算速度也就越快。一般来说单片机内部有一个带反馈的线性反相放大器,外界晶振(或接陶瓷振荡器)和电容就可组成振荡器,如图2-2所示。加电以后延时一段时间(约10ms)振荡器产生时钟,不受软件控制,图中Y1为晶振,震荡产生的时钟频率主要由Y1确定。电容C1,C2的作用有两个:一是帮助振荡器起振,二是对振荡器的频率起微调作用,典型值为30pF。3.3.4数码管电路数码管电路如图3.4图3.4四.抢答器软件设计4.1主程序设计11此程序的及时采用定时器T0和T1中断完成,其余状态循环调用显示子程序。程序:START:MOVR5,#0BHMOVR4,#0BHMOVR3,#0BHACALLDISPLAY;未开始抢答时候显示FFFJBP3.0,NEXTACALLDELAYJBP3.0,NEXT;去抖动,如果“开始”按下就向下执行,否则跳到非法抢答查询ACALLBARK;按键发声MOVA,R1MOVR6,A;送R1-R6,因为R1中保存了抢答时间SETBOK;抢答标志位,勇于COUNT程序中半段是否查询抢答MOVR7,#01H;读抢答键数据信号标志,这里表示只读一次有用信号MOVR3,#0AH;抢答只显示计时,灭号数AJMPCOUNT;进入倒计时程序,“查询有效抢答的程序”在COUNT里面4.2显示子程序的设计由于采用软件动态扫描实现数据显示,显示用十进制BCD码的数据对应段码存放在ROM表中。显示时,先取出70H~75H某一地址中的数据,然后查得对应的显示段码从P0口输出。P2口将对应的数码管选中,就能显示该地址单元的数据值。程序:12DISPLAY:MOVDPTR,#DAT1;查表显示程序,利用P0口做段选码输出/P2低三位做位选吗输出MOVA,R3MOVCA,@A+DPTRMOVP2,#0FEHMOVP0,AACALLDELAY2MOVDPTR,#DAT2MOVA,R5MOVCA,@A+DPTRMOVP2,#0FDHMOVP0,AACALLDELAY2MOVA,R4MOVCA,@A+DPTRMOVP2,#0FBHMOVP0,AACALLDELAY2RETDAT1:DB00H,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,00H,71H;灭、1、2、3、4、5、6、7、8、9、灭、FDAT2:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,00H,71H;0、1、2、3、4、5、6、7、8、9、灭、F4.3定时器T0、T1中断服务程序的设计定时器T0用于响铃程序,定时器T1用于计时程序。当答题剩余5秒种时P3.6口不断取反使喇叭发出一定频率的声音,提示选手如图4.213图4.2程序T0INT:MOVTH0,#0ECHMOVTL0,#0FFHJNBRING,OUTCPLP3.6;RING标志位为1时P3.6口不短取反使喇叭发出一定频率的声音OUT:RETI;=====T1溢出中断(计时程序)======T1INT:MOVTH1,#3CHMOVTL1,#0B0HINCR014RETIINT0SUB:MOVA,R1MOVB,#0AHDIVABMOVR5,AMOVR4,BMOVR3,#0AHACALLDISPLAY;现在两个时间LED上显示R1JNBP3.4,INC0;P3.4为+1S键,如按下跳到INC0JNBP3.5,DEC0;P3.5为-1s键,如按下跳到DEC0JNBP3.1,BACK0;P3.1为确定键,如按下跳到BACK0AJMPINT0SUBINC0:MOVA,R1CJNEA,#63H,ADD0;如果不是99,R2加1,如果加到99,R1就置0,重新加起MOVR1,#00HACALLDELAY1AJMPINT0SUBADD0:INCR1ACALLDELAY1AJMPINT0SUBDEC0:MOVA,R1JZSETR1;如果R1为0,R1就置99DECR1ACALLDELAY1AJMPINT0SUBSETR1:MOVR1,#63HACALLDELAY1AJMPINT0SUBBACK0:RETI;=====INT1(回答时间R2调整程序)=====INT1SUB:MOVA,R215MOVB,#0AHDIVABMOVR5,AMOVR4,BMOVR3,#0AHACALLDISPLAYJNBP3.4,INC1JNBP3.5,DEC1JNBP3.1,BACK1AJMPINT1SUBINC1:MOVA,R2CJNEA,#63H,ADD1MOVR2,#00HACALLDELAY1AJMPINT1SUBADD1:INCR2ACALLDELAY1AJMPINT1SUBDEC1:MOVA,R2JZSETR2DECR2ACALLDELAY1AJMPINT1SUBSETR2:MOVR2,#63HACALLDELAY1AJMPINT1SUBBACK1:RETI4.4抢答处理程序的设计当有选手第一个按下抢答器按扭时数码管显示选手号码,开始倒计时,并锁定抢答。当在此选手之后再有选手按下按扭时无效,数码管不变。16REPEAT:MOVA,R2;使用锦囊时重新计时MOVR6,ACLRRINGCOUNT:MOVR0,#00H;重置定时器中断次数MOVTH1,#3CHMOVTL1,#0B0H;重置定时器RECOUNT:MOVA,R6;R6保存了倒计时间,之前应先将抢答或答题时间给R6MOVB,#0AHDIVAB;除十分出个位/十位MOV30H,A;十位存于(30H)MOV31H,B;个位存于(31H)MOVR5,30H;取十位MOVR4,31H;取个位MOVA,R6SUBBA,#07HJNCLARGER;大于5s调到LARGER,小于等于5s会提醒MOVA,R0CJNEA,#0AH,FULL;1s中0.5s向下运行CLRRINGAJMPCHECKFULL:CJNEA,#14H,CHECK;下面是1s的情况,响并显示号数
本文标题:八路数字抢答器微机原理及接口技术课程设计
链接地址:https://www.777doc.com/doc-10369714 .html