八位竞赛抢答器报告

上传人:js****6 文档编号:66362702 上传时间:2022-03-27 格式:DOCX 页数:21 大小:57.12KB
返回 下载 相关 举报
八位竞赛抢答器报告_第1页
第1页 / 共21页
八位竞赛抢答器报告_第2页
第2页 / 共21页
八位竞赛抢答器报告_第3页
第3页 / 共21页
点击查看更多>>
资源描述
-八位竞赛抢答器设计报告专业:通信工程班级:通信1401 团队:第四组指导教师:毅队员:设计时间:2021年6月23日星期四目录一、工程概述和要求21.1 工程概述21.2 工程要求2二、系统设计22.1 框图设计22.2 元件清单22.3 电路设计图2三、软件设计23.1 系统主流程图23.2 显示抢答违规流程图23.3 抢答成功流程图2四、总结2五、参考文献2六、汇编程序代码2一、 工程概述和要求1.1 工程概述单片机作为计算机的一个重要分支,其应用围很广,开展也很快,它已成为在现代电子技术、计算机应用、网络、通信、自动控制与计量测试、数据采集与信号处理等技术中日益普及的一项新兴技术,应用围十分广泛。对于计算机专业的学生来说,即使暂时没有从事单片机的应用与开发,学习单片机也有很重要的意义。学习它,不仅为将来可能从事该方面的开发打下根底,另一方面,由于单片机作为微型计算机的一个种类,麻雀虽小,五脏俱全,可以把它当作微型计算机的一个简化模型来对待,学习单片机可以加深对微型计算机工作原理的理解,更加清楚计算机的脉络。同时,提供了一个实际应用手段。21世纪,是一个信息技术飞速开展的时代,智力竞赛是一种形式比较活泼的教育方式,是人们休闲娱乐生活的一局部。这些竞赛一方面充实了人们的娱乐生活,另一方面也提高了人们努力汲取相关领域的知识的兴趣。智力竞赛,也就是几个参赛选手之间在规定的时间,规定的地点相互竞争的比赛。抢答是各种竞赛常用的一种形式。在抢答赛中,往往要有主持人宣布抢答的开场,还要确定是哪个选手抢到了答题权,具体答题的时间有时也要设定。这些如果仅凭主持人的主观判断,很容易出现误判的情况。因此,在竞赛中,抢答器就扮演了一个非常重要的角色。1.2 工程要求l1、抢答器同时供8名选手或8个代表队比赛,分别用8个按钮S0 S7表示。l2、设置一个系统去除、抢答开场控制开关、抢答时间控制按钮,该开关由主持人控制。l3、在未开场前,4位数码管显示0000,并且抢答时间控制按钮按下一次每按键,时间加1超过30时置0。 4、在未开场前,假设有提前抢答现象,数码提示抢答按键的序列,以数码管显示FF的形式提示错误。l5、抢答器具有定时抢答功能,且一次抢答的时间由主持人设定。并且抢答时间控制按钮按下一次每按键,时间加1超过30时置0,当主持人启动开场键后,定时器进展减计时,同时扬声器发出短暂的声响,声响持续的时间0.5秒左右。l6、参赛选手在设定的时间进展抢答,抢答有效,定时器停顿工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统去除为止。l7、如果定时时间已到,无人抢答,四位数码管显示0 00。 8、如果抢答,按开场按钮,则进入60秒倒计时,答复以下问题,倒计时完毕后四位数码管显示0 00。二、系统设计2.1 框图设计本工程的系统设计框图如图2-1所示:4位数码管显示最小系统AT89S51开场按钮去除按钮抢答时间控制按钮8位按键控制蜂鸣器图2-1由系统框图可看出,本设计由单片机AT89S51、四位数码管、控制键盘、蜂鸣器、最小系统5大模块构成。2.2元件清单器件表2.2所示:器件名称数量AT89S511电容1nf2电阻1k1电阻10k5按键开关12SOUNDER174ls24514位数码管1瓷片电容1uf1石英晶振1表2.2AT89S51是一种带4K字节闪存可编程可擦除只读存储器FPEROMFlash Programmable and Erasable Read Only Memory的低电压,高性能CMOS 8位微处理器,俗称单片机。74LS245还具有双向三态功能,既可以输出,也可以输入数据。当8051单片机的P0口总线负载到达或超过P0最大负载能力必须接入74LS245等总线驱动器。当片选端/CE低电平有效时,DIR=“0,信号由 B 向 A 传输;接收DIR=“1,信号由 A 向 B 传输;发送当CE为高电平时,A、B均为高阻态。由于P2口始终输出地址的高8位,接口时74LS245的三态控制端1G和2G接地,P2口与驱动器输入线对应相连。P0口与74LS245输入端相连,E端接地,保证数据线畅通。8051的/RD和/PSEN相与后接DIR,使得RD和PSEN有效时,74LS245输入P0.1D1,其它时间处于输出P0.1D1。四位数码管:2.3 电路设计图1、最小系统2、控制按键3、数码管电路4、蜂鸣器电路5、整体电路三、软件设计8个按键是否按下显示按键序列和时间开场键是否按下60秒倒计时违规处理翻开中断时间倒计时响应时间加一时间到30置08个按键是否按下开场键是否按下时间控制键是否按下开场3.1系统主流程图3.2显示抢答违规流程图开场显示按键序列蜂鸣器响铃去除键是否按下返回主程序显示抢答违规流程图,当未开场,出现抢答,响铃并显示。开场显示按键序列和时间去除键是否按下返回主程序3.3抢答成功流程图四、总结通过此次课程设计,我更深地理解了单片机这门课程。同时也将学到的课本知识应用到了实际中,从而更好地反映了理论与实践相结合。经过最近这段时间的在电脑前面的驻守,觉得只要自己肯付出和努力,发现其实很多的东西不是则难懂的,以后还是要好好提升自己的动手能力和独立思考的能力。在此,还是非常感我们的指导教师,他是一位很负责和很细心的教师,他的辅导,这次的课程设计给了我一个很好的开场,我会好好努力地学习。纵然课程设计是学校所要求的科目,纵然每次都这么紧和辛苦,但是我还是觉得有些东西做了,就一定会有一定的价值吧。五、参考文献1 毅刚. ?单片机原理及接口技术?.人民邮电2021年.2 康华光. ?电子技术根底模拟局部?.第四版高等教育 1999年.3 喻宗泉. ?单片机原理与应用技术?.电子科技大学 2005年.4 万光毅. ?单片机实验与实践教程?. 航天航空大学 2003年.六、汇编程序代码ORG 0000H ;设置程序指针从0000h开场LJMP begin ;长转移到begin子程序ORG 000BH ;设置定时器t0入口地址LJMP ITOP ;长转移到itop to定时器子程序ORG 001BH ; 设置定时器t0入口地址LJMP ITOP1 ;长转移到itop t1定时器子程序ORG 0100Hbegin: MOV 45H,*10 ;抢答时间初值为10秒 LJMP MAIN ;长转移到main子程序WRONG1: SETB TR1 ;错误抢答按键一子程序启动t1计时发出高频蜂鸣声 MOV R5,*1 ;将1赋值给r5 LCALL SHOW4 ;进入错误抢答提示具体按键错误代码ff JNB P3.7,MAIN ;去除键按下,返回main子程序 LJMP WRONG1 ;返回wrong1,如果去除键没有按键,一直循环此子程序WRONG2: SETB TR1 ;错误抢答按键二子程序启动t1计时发出高频蜂鸣声 MOV R5,*2 ;将2赋值给r5 LCALL SHOW4 ;进入错误抢答提示具体按键错误代码ff JNB P3.7,MAIN ;去除键按下,返回main子程序 LJMP WRONG2 ;返回wrong2,如果去除键没有按键,一直循环此子程序WRONG3: SETB TR1 MOV R5,*3 LCALL SHOW4 JNB P3.7,MAIN ;同上 LJMP WRONG3WRONG4: SETB TR1 MOV R5,*4 LCALL SHOW4 JNB P3.7,MAIN ;同上 LJMP WRONG4MAIN: MOV DPTR,*TABLE ;将0-9数字表tale首地址给数据指针存放器 MOV R2,*20 ;因为t0中断为50ms,循环20次,到1秒,为倒计时减一 MOV R0,45H ;将可控的抢答时间赋值给r0 CLR P3.4 ;p3.4为蜂鸣器驱动口,main子程序初始提供低电压 MOV P2,*0C0H ;初始数码管全显示0. 将0代码给p2口, MOV P0,*0FH ;数码管位选全提供高电压,显示 JNB P1.0,WRONG1 ;初始,在开场键没有按下前,错误抢答,进入相应子程序处理 JNB P1.1,WRONG2 ;同上 JNB P1.2,WRONG3 ;同上 JNB P1.3,WRONG4 ;同上 JNB P1.4,WRONG5 ;同上 JNB P1.5,WRONG6 ;同上 JNB P1.6,WRONG7 ;同上 JNB P1.7,WRONG8 ;同上 JNB P3.5,START ;如果开场健按下,进入相应子程序start JNB P3.7,MAIN ;如果去除键按下,返回到main子程序 JNB P3.0,ADD1 ;假设加一抢答时间按键按下,进入add1子程序 MOV SP,*60H ;为堆栈设置起始位置 60h MOV TMOD,*11H ;设计定时器工作方式,t0,t1工作方式1 MOV TH0,*3CH ;设置t0工作方式初始计数,每次50ms中断一次 MOV TL0,*0B0H MOV TH1,*0F0H ;设置蜂鸣器频率,由t1定时器中断控制 MOV TL1,*0FFH ; SETB EA ;允许总中断控制 SETB ET0 ;允许 t0中断 SETB ET1 ;允许t1中断 CLR TR1 ;停顿t1定时 LJMP MAIN ;目的其他操作循环main子程序ADD1:INC 45H ;抢答时间在45h 目的加一 MOV A,45H ;将45h赋值到a CJNE A,*30,ADD2 ;判断是否等于30,不等于进入add2子程序 MOV 45H,*0 ;假设等于30,抢答时间重新初值为0 LJMP MAIN ;并返回到mian,不做任何操作ADD2: MOV R2,*0FFH LCALL SHOW7 ;调用显示抢答时间显示子程序 LJMP MAIN ;并返回main子程序WRONG5: SETB TR1 ;错误抢答按键二子程序启动t1计时发出高频蜂鸣声 MOV R5,*5 ;将5赋值给r5 JNB P3.7,MAIN ;进入错误抢答提示具体按键错误代码ff LCALL SHOW4 ;去除键按下,返回main子程序 LJMP WRONG5 ;返回wrong5,如果去除键没有按键,一直循环此子程序WRONG6: SETB TR1 MOV R5,*6 LCALL SHOW4 JNB P3.7,MAIN ;同上 LJMP WRONG6WRONG7: SETB TR1 MOV R5,*7 LCALL SHOW4 ;同上 JNB P3.7,MAIN1 LJMP WRONG7WRONG8: SETB TR1 MOV R5,*8 LCALL SHOW4 ;同上 JNB P3.7,MAIN1 ;以为jnb可寻址围小,无法直接转移到main,需要间接利用mian1跳转 LJMP WRONG8MAIN1: LJMP MAIN ;利用main1跳转到 main子程序START: LCALL RING ;调用ring响铃子程序当按下开场按钮,响铃一次,维持0.5sSTART1: SETB TR0 ;开场t0定时器,为倒计时减一 JNB P1.0,ANSWER1 ;假设按键一抢答,进入响应answer1子程序 JNB P1.1,ANSWER2 ; JNB P1.2,ANSWER3 ; JNB P1.3,ANSWER4 ; JNB P1.4,ANSWER5 ;同上 JNB P1.5,ANSWER6 ; JNB P1.6,ANSWER7 ; JNB P1.7,ANSWER8 ;同上 CJNE R0,*00,SHOW1 ;抢答时间倒数没有等于0,这进入显示show1子程序 LJMP STOP ;假设倒计时等于0,进入stop子程序STOP: CLR TR0 ;停顿t0计数 MOV P2,*0C0H ;把数码管为0的代码给p2口 MOV P0,*0DH ;将1.3 4数码管位选置一,显示0 JNB P3.7,MAIN1 ;去除键按下,利用main1返回main主程序 LJMP STOP ;循环stop,显示0,直到去除键按下ANSWER1:CLR EA ;当按键一按下,停顿所以中断,不再倒计时 MOV R4,*1 ;把1赋值给r4LJMP SHOW2 ;并长转移到显示2中,显示按键序号,和具体抢答的时间ANSWER2:CLR EA MOV R4,*2 ;同上LJMP SHOW2ANSWER3:CLR EA MOV R4,*3 ;同上LJMP SHOW2ANSWER4:CLR EA MOV R4,*4 ;同上LJMP SHOW2ANSWER5:CLR EA MOV R4,*5 ;同上LJMP SHOW2ANSWER6:CLR EA MOV R4,*6 ;同上LJMP SHOW2ANSWER7:CLR EA MOV R4,*7 ;同上LJMP SHOW2ANSWER8:CLR EA MOV R4,*8 ;同上LJMP SHOW2SHOW1:MOV A,R0 ;显示倒计时子程序,到当前r0的值赋值到a MOV B,*10 ;赋值b为10 DIV AB ;a除以b,a保存商,b保存余数 MOV 34H,A ;商余数全部保存到34.35h中 MOV 35H,B MOV P0,*04H ;翻开数码管位选第三个显示 MOV A,34H ;34h中商赋值给a MOVC A,A+DPTR ;根据商具体数字,利用查表,找到数码管对应代码 MOV P2,A ;把显示数据的数码管代码给p2口 LCALL TIME ;调用等待时间 MOV P0,*08H ;翻开数码管位选第四个显示 MOV A,35H ;35h中余数赋值给a MOVC A,A+DPTR ;根据余数具体数字,利用查表,找到数码管对应代码 MOV P2,A ;把显示数据的数码管代码给p2口 LCALL TIME ;调用等待时间 JNB P3.7,MAIN2 ;去除按钮按下利用main2返回main子程序 LJMP START1 ;返回start1SHOW2: LCALL RING ;当按键按下,调用响铃,持续0.5s MOV A,45H ;把设定的抢答时间给a SUBB A,R0 ;抢答时间减去当前倒计时剩余时间,为按钮在抢答后按下的具体时间 MOV R0,A ;并把抢答的具体时间给r0 LJMP SHOW3 ;调用显示show3子程序SHOW3:MOV A,R4 ;进入显示按键几抢答序号,和距离抢答后的时间,将按键序号r4的值给a MOV P0,*01H ;翻开数码管位选第一个显示 MOVC A,A+DPTR ;根据序号具体数字,利用查表,找到数码管对应代码 MOV P2,A ;把显示数据的数码管代码给p2口 LCALL TIME ;调用等待时间 MOV A,R0 ;显示具体方方法,上文已表达,差异不大 MOV B,*10 DIV AB MOV 40H,A MOV 41H,B MOV P0,*04H MOV A,40H MOVC A,A+DPTR MOV P2,A LCALL TIME MOV P0,*08H MOV A,41H MOVC A,A+DPTR MOV P2,A LCALL TIME JNB P3.5,REPLY ;再次按下开场健,进入60秒倒计时,答复 JNB P3.7,MAIN2 ;按下去除键,利用main2返回main子程序 LJMP SHOW3 ;没有其他操作,循环持续显示MAIN2:LJMP MAIN ;以为jnb寻址围短,利用main2返回main子程序REPLY :SETB EA ;60秒倒计时,翻开所有中断 MOV R0,*60 ;将60秒给r0 LJMP SHOW5 ;跳转到show5SHOW5: SETB TR0 ;启动t0中断 CJNE R0,*00,SHOW6 ;60秒倒计时不等于0,转移到show6显示 LJMP STOP ;倒计时等于0,长转移到stop子程序SHOW6: MOV A,R4 MOV P0,*01H MOVC A,A+DPTR MOV P2,A LCALL TIME MOV A,R0 ;显示程序方法与上面类似,上面已做介绍,此处省略 MOV B,*10 DIV AB MOV 34H,A MOV 35H,B MOV P0,*04H MOV A,34H MOVC A,A+DPTR MOV P2,A LCALL TIME MOV P0,*08H MOV A,35H MOVC A,A+DPTR MOV P2,A LCALL TIME JNB P3.7,MAIN2 LJMP SHOW5SHOW4: MOV A,R5 ;当开场健没有按下,造成错误抢答,显示按键几错误抢答,以ff提示错误 MOV P0,*01H MOVC A,A+DPTR MOV P2,A ;显示方法类似,不做介绍 LCALL TIME MOV P0,*0CH MOV P2,*8EH LCALL TIME RETSHOW7:MOV A,45H ;每次抢答时间加一后,持续显示0.5s的时间提示用户 MOV B,*10 DIV AB MOV 34H,A MOV 35H,B ;显示程序类似,不再介绍 MOV P0,*04H MOV A,34H MOVC A,A+DPTR MOV P2,A LCALL TIME MOV P0,*08H MOV A,35H MOVC A,A+DPTR MOV P2,A LCALL TIME DJNZ R2,SHOW7 RETITOP: MOV TH0,*3CH ;T0中断程序,方式一16为赋值每次中断为0.05s MOV TL0,*0B0H DJNZ R2,BACK ;每次循环r2减一,不等于0,返回中断 DEC R0 ;循环20次后,也就是满足一秒 MOV R2,*20 ;重新给r2赋值20BACK: RETI ;返回中断ITOP1: MOV TH1,*0F0H ;T1中断程序,设置频率 MOV TL1,*0FFH CPL P3.4 ;每次中断p3.4口取反,输出高频率方波,供蜂鸣器 RETI ;返回中断RING: SETB P3.4 ;响铃子程序,p3.4为高电平 LCALL TIME1 ;调用0.5等待时间 CLR P3.4 ;p3.4低电平,停顿响铃 RET ;调用返回TIME1: MOV R5,*50 ;设计0.5s等待时间D4: MOV R6,*20 ;原理50*20*248D5: MOV R7,*248D6: DJNz R7,D6 DJNz R6,D5 DJNz R5,D4 RET TIME: MOV R5,*10 ;设计10ms时间等待D1: MOV R6,*1 ;原理10*1*20D2: MOV R7,*20D3: DJNZ R7,D3 DJNZ R6,D2 DJNZ R5,D1 RETTABLE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;0-9表END ;完毕. z
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!