八路抢答器单片机课程设计报告

上传人:泽*** 文档编号:72836548 上传时间:2022-04-09 格式:DOC 页数:19 大小:717KB
收藏 版权申诉 举报 下载
八路抢答器单片机课程设计报告_第1页
第1页 / 共19页
八路抢答器单片机课程设计报告_第2页
第2页 / 共19页
八路抢答器单片机课程设计报告_第3页
第3页 / 共19页
资源描述:

《八路抢答器单片机课程设计报告》由会员分享,可在线阅读,更多相关《八路抢答器单片机课程设计报告(19页珍藏版)》请在装配图网上搜索。

1、单片机原理及系统课程设计评语:考勤 10 分守纪 10 分过程 30 分设计报告30 分答辩 20 分总成绩( 100 分)专业:电气工程及其自动化班级:姓名:学号:指导教师:兰州交通大学自动化与电气工程学院2014年1月17日单片机原理及系统课程设计报告基于单片机的八路抢答器1 实验目的( 1)进一步熟悉和掌握单片机的结构及工作原理。( 2)掌握单片机的接口技术及相关外围芯片的特性及控制方法。( 3)通过课程设计,掌握以单片机为核心的电路设计的基本方法和技术,了解有关电路参数的计算方法。2 八路抢答器的功能与操作2.1 功能( 1)抢答定时,回答定时,并调整抢答和回答时间。( 2)锁住违规抢

2、答的选手的抢答权。( 3)保存并显示选手成绩。2.2 操作按下抢答键之前抢答的属于违规操作,锁住他们的本次抢答权利。按下抢答之后有权利的可以抢答,在规定时间内抢答到则进入答题环节,无人抢答则开始下一轮。回答环节也是在规定时间内作答,正确则加分,错误则扣分,在规定时间内未作答按打错处理。按下显示成绩后可以通过加减查看每位选手成绩,按确定退出。按下修改后选择修改序号, “ 1”为修改抢答时间,“2”为修改答题时间。确定键进入,加减键修改,确定键确认。3 八路抢答器整体设计方案本次设计以 AT89C51 为主芯片,利用数码管、按键、电阻、晶振、蜂鸣器等组成的硬件电路。通过软件实现具体的功能。软件包括

3、如下模块:(1)初始化模块(2)等待及违规抢答处理模块(包含锁存环节)(3)倒计时模块(包含抢答和答题倒计时)(4)显示模块(包含抢答及答题按键检测环节)(5)延迟模块(包含显示和按键延迟)(6)计时模块( 50ms)(7)蜂鸣模块(按音节原理发声)(8)抢答模块(有效及无效抢答)1单片机原理及系统课程设计报告(9)回答模块(加分及减分)(10)时间调整模块(抢答及回答时间调整)(11)成绩显示模块4 硬件设计根据八路抢答器的功能要求,并结合对51 系列单片机的资源分析,采用此系列中的主流型号 AT89C51 作为电路系统的控制核心。基本硬件电路图如附录 1 所示。4.1 按键将按键的一端接地

4、,另一端接到引脚上。当按键按下的时候引脚就会得到低电平,表示按键按下。如附录 1 所示。4.2 显示电路温度采用二位七段码显示。对成绩及选手号进行循环扫描显示。通过适当软件延迟保证数码管显示。如附录 1 所示。4.3 主要器件介绍( 1) AT89C5l 单片机AT89C5l 是一个低功耗,高性能 CMOS 8位单片机,片内含 8k可反复擦写 1000 次的 Flash只读程序存储器,器件采用 ATMEL 公司的高密度、非易失性存储技术制造,兼容标准 MCS-51指令系统及 80C51引脚结构,芯片内集成了通用 8位中央处理器和 ISP Flash存储单元,功能强大的微型计算机, AT89S5

5、1可为许多嵌入式控制应用系统提供高性价比的解决方案。( 2) LED 数码管7 段 LED 数码管是利用 7 个 LED(发光二极管)外加一个小数点的 LED 组合而成的显示设备,可以显示 09 等 10 个数字和小数点,使用非常广泛。这类数码管可以分为共阳极与共阴极两种,共阳极就是把所有LED 的阳极连接到共同接点com,而每个 LED的阴极分别为 a、 b、c、d、e、f 、g 及 dp(小数点);共阴极则是把所有 LED 的阴极连接到共同接点 com,而每个 LED 的阳极分别为 a、b、 c、d、e、f 、g 及 dp(小数点)。5 软件设计5.1 程序清单如附录 2 所示。2单片机原

6、理及系统课程设计报告5.2 流程图如附录 3 所示。5.3 软件调试软件的调试主要通过 Keil uVision3 软件进行操作,对程序编写过程中的错误进行查找,找出错误,进行修改,然后再进行编译直至编译成功, 生成 HEX 文件,才能下载到单片机里,继而实现相应功能。5.4 系统仿真及实际调试系统采用 PROTEUS 仿真运行八路抢答器,系统运行时,最开始选手号不显示,即使位置显示。如附录 1 所示。6 总结本次课程设计是对所学知识的一次综合性运用。在设计的过程中发现了自身知识的不足,也发现我们必须具备专业基础知识,才能成功的设计出一件合格的东西。这次课程设计收获很多,体会也很深刻,并且对我

7、们所学的东西也产生了浓厚的兴趣。 在设计过程中, 也学会了很多新的东西, 比如一些仿真软件的应用,最典型的就是 PROTEUS 软件的应用,以及与 KEIL 软件的联合使用。 当然最重要的是学到了关于基本电子设计的一些基本方法。除此之外,我觉得在这次设计的过程中,很多自己解决不了的问题,只有虚心请教别人才能有效的解决问题,我觉得人与人之间的相互帮助很有必要,这样不仅能帮助大家很快的解决问题,还能提高我们每个人的实际水平,这些能力对于我们今后的学习和工作都很有帮助。在本次设计过程中遇到不少问题,在老师和同学的帮助和配合下才顺利的完成了本次课程设计。老师在我们做设计的过程中,给予了我们极大的帮助,

8、不仅从知识方面引导了我们的设计思路,同时,在人生观上也给了我们不少的启示。在此,我对老师和同学表示深深的谢意。参考文献1 李华 . 单片机原理及应用 . 兰州 . 兰州大学出版社 M ,2001.52江志红 . 51 单片机技术与应用系统开发案例精选 M . 北京 . 清华大学出版社, 2008.123 张靖武,周灵彬 . 单片机系统的 PROTEUS 设计与仿真 M . 北京 . 电子工业出版社, 2007.44王思华 . 单片机原理及应用系统设计 . 北京 . 科学出版社 M , 2012.93单片机原理及系统课程设计报告附录 1R1R210k10kR3R4R510kR610kR710kR

9、810k10k10k987654323333333301234567DDDDDDDDAAAAAAAA/01234567.00000000PP PP PP PP12LLTAATTSXXRC29891130PFX1C3CRYSTAL30PF1234567801234567222222221111111189012345DD0101R DAA11111 1TTTT/AAAAA AXX/RTNNW /01/R45/II7. .234567/.20136 .2. .233 .3PP22222 2.PP33333PPPPPPP PPPPPNE01234567ES L A.11111111P A EPP P

10、P PP P P90112345678233C120uFR9220开始 /确定显示成绩调整加减LS1SOUNDER8U1AT89C511R101k图 1proteus 仿真图附录 2程序清单ORG 0000HAJMP MAIN;= 中断跳转设置 =ORG 0003HAJMP SHOWORG 000BHAJMP SONGORG 0013HAJMP CHANGEORG 001BHAJMP TIMEORG 0040H;= 初始化 =4单片机原理及系统课程设计报告MAIN:MOV SP,#70HMOV R1,#10; 初始化抢答时间为10sMOV R2,#10; 初始化答题时间为10sMOV R0,#

11、00HMOV 41H,#00HMOV 42H,#00HMOV 43H,#00HMOV 44H,#00HMOV 45H,#00HMOV 46H,#00HMOV 47H,#00HMOV 48H,#00H; 初始化成绩CLR 00HCLR 01HCLR 02HCLR 03HCLR 04H; 初始化状态位MOV P2,#0FFH; 初始化 p0 口MOV TMOD,#11H; 设置定时器 /模式 1MOV R7,#0; 设置 T0 初值选择(蜂鸣器频率)MOV TH1,#3CHMOV TL1,#0B0H; 设置 T1 初值( 50ms)SETB EASETB ET0SETB ET1SETB EX0SE

12、TB EX1; 允许四个中断 ,T0/T1/INT0/INT1SETB TR1SETB TR0; 运行定时器;= 按键判断及选择 =START1:CLR 11HCLR 12HCLR 13HCLR 14HCLR 15HCLR 16HCLR 17HCLR 18HMOV 3AH,#00H; 初始化错误抢答标志及个数START:CLR P3.7MOV R0,#05单片机原理及系统课程设计报告MOV R5,#00HMOV R4,#00HMOV R3,#0BH; 初始化显示相关寄存器CLR 01H; 关闭声音ACALL DISPLAY; 等待界面显示JB P3.0,NEXT;是否开始抢答ACALL BAR

13、KMOV C,11HMOV ACC.0,CMOV C,12HMOV ACC.1,CMOV C,13HMOV ACC.2,CMOV C,14HMOV ACC.3,CMOV C,15HMOV ACC.4,CMOV C,16HMOV ACC.5,CMOV C,17HMOV ACC.6,CMOV C,18HMOV ACC.7,CMOV 3BH,A; 将违规抢答号输出锁存区MOV A,R1MOV R6,A; 把 R1(抢答时间 )赋给 R6(倒计时时间)MOV R3,#0BH; 号码显示控制(抢答时不显示,作答时显示)CLR 00HCLR 02HCLR 03HCLR 01HCLR 04H; 清空标志位A

14、JMP COUNT; 进入倒计时程序NEXT:JB 11H,FF2JNB P1.0,FALSE1;选择违规号,下同FF2:JB 12H,FF3JNB P1.1,FALSE2FF3:JB 13H,FF4JNB P1.2,FALSE3FF4:JB 14H,FF5JNB P1.3,FALSE46单片机原理及系统课程设计报告FF5:JB 15H,FF6JNB P1.4,FALSE5FF6:JB 16H,FF7JNB P1.5,FALSE6FF7:JB 17H,FF8JNB P1.6,FALSE7FF8:JB 18H,FF9JNB P1.7,FALSE8FF9:AJMP START;= 错误抢答选择 =

15、FALSE1: MOV R3,#01HINC 3AHSETB 11HAJMP ERROR ;将对应违规号送入选手显示寄存器并错住对应选手的抢答,下同 FALSE2: MOV R3,#02HINC 3AHSETB 12HAJMP ERRORFALSE3: MOV R3,#03HINC 3AHSETB 13HAJMP ERRORFALSE4: MOV R3,#04HINC 3AHSETB 14HAJMP ERRORFALSE5: MOV R3,#05HINC 3AHSETB 15HAJMP ERRORFALSE6: MOV R3,#06HINC 3AHSETB 16HAJMP ERRORFALSE

16、7: MOV R3,#07HINC 3AHSETB 17HAJMP ERRORFALSE8: MOV R3,#08HINC 3AHSETB 18H7单片机原理及系统课程设计报告AJMP ERROR;= 错误抢答处理 =ERROR: CLR P3.7MOV R0,#00HMOV TH1,#3CHMOV TL1,#0B0HMOV R7,#0SETB 01H;设置对应定时器HERE: MOV A,R0CJNE A,#14H,FLASH;CLR 01HMOV 32H,R1MOV R1,3AHCJNE R1,#08H,DD1;判断是否全部违规抢答,是则清空锁存并显示 f MOV R1,32HCLR 11

17、HCLR 12HCLR 13HCLR 14HCLR 15HCLR 16HCLR 17HCLR 18HMOV 3AH,#00HMOV R3,#0AHAJMP ERRORDD1:MOV R1,32HAJMP STARTFLASH:MOV R5,#0BHMOV R4,#0BH; 只显示号码ACALL DISPLAYAJMP HERE;= 倒计时 /选择 =COUNT: MOV R0,#00H; 重置 50ms 次数MOV TH1,#3CHMOV TL1,#0B0H; 重置定时器初值;= 显示RECOUNT:MOV A,R6MOV B,#0AHDIV AB; 求十位和个位MOV R5,A8单片机原理及

18、系统课程设计报告MOV A,BMOV R4,A; 给显示寄存器赋值ACALL DISPLAY;= 声音 /判断JB 00H,YYJB 02H,QUITYY:JB 03H,QUITJB 04H,QUITCJNE R6,#5,SOUND0;5s 时开启警告SETB 01HSOUND0:CJNE R6,#0,LARGER; 计时时间完成后跳转结果选择AJMP QUIT;= 计时LARGER: MOV A,R0CJNE A,#14H,RECOUNT; 基于 50ms 的 1S 计时(达到 1s 自动减 1)DEC R6MOV R0,#00HAJMP RECOUNT;= 结果选择QUIT:CLR 01H

19、JB 00H,ACCOUT1; 抢答或回答模块选择JNB 02H,AA; 如果没有有效数据则返回ACALL BARK3MOV A,34HJB 11H,TT2JNB ACC.0,TRUE1; 抢答成功选择,下同TT2:JB 12H,TT3JNB ACC.1,TRUE2TT3:JB 13H,TT4JNB ACC.2,TRUE3TT4:JB 14H,TT5JNB ACC.3,TRUE4TT5:JB 15H,TT6JNB ACC.4,XX4TT6:JB 16H,TT7JNB ACC.5,XX3TT7:JB 17H,TT8JNB ACC.6,XX1TT8:JNB ACC.7,XX2XX1:AJMP TR

20、UE7XX2:AJMP TRUE89单片机原理及系统课程设计报告XX3:AJMP TRUE6XX4:ACALL TRUE5AA:ACALL BARK2AJMP START1ACCOUT1:JB 03H,JIAJB 04H,JIANAJMP JIAN; 回答正确加分,错误扣分JIA:ACALL BARK3MOV 32H,R1MOV R1,35HINC R1MOV R1,32HCLR 00HCLR 01HCLR 03HAJMP START1JIAN:ACALL BARK2MOV 32H,R1MOV R1,35HCJNE R1,#00H,BBMOV R1,32HAJMP STARTBB:DEC R1

21、MOV R1,32HAJMP START1;= 正确抢答 =TRUE1: ACALL BARKMOV A,R2MOV R6,A; 送入回答时间MOV R3,#01H; 送入序号MOV 35H,#41H ; 送入相关地址SETB 00H;流程选择回答CLR P3.7;防止蜂鸣器停在高电平AJMP COUNT; 以上下同TRUE2:ACALL BARKMOV A,R2MOV R6,AMOV R3,#02HMOV 35H,#42HSETB 00H10单片机原理及系统课程设计报告CLR P3.7AJMP COUNTTRUE3:ACALL BARKMOV A,R2MOV R6,AMOV R3,#03HM

22、OV 35H,#43HSETB 00HCLR P3.7AJMP COUNTTRUE4:ACALL BARKMOV A,R2MOV R6,AMOV R3,#04HMOV 35H,#44HSETB 00HCLR P3.7AJMP COUNTTRUE5:ACALL BARKMOV A,R2MOV R6,AMOV R3,#05HSETB 00HCLR P3.7MOV 35H,#45HAJMP COUNTTRUE6: ACALL BARKMOV A,R2MOV R6,AMOV R3,#06HSETB 00HCLR P3.7MOV 35H,#46HAJMP COUNTTRUE7:ACALL BARKMOV

23、 A,R2MOV R6,AMOV R3,#07HSETB 00HCLR P3.7MOV 35H,#47H11单片机原理及系统课程设计报告AJMP COUNTTRUE8:ACALL BARKMOV A,R2MOV R6,AMOV R3,#08HSETB 00HCLR P3.7MOV 35H,#48HAJMP COUNT;= 显示模块 =DISPLAY:MOV DPTR,#DATMOV A,R3MOVC A,A+DPTRSETB P2.1MOV P0,ACLR P2.2ACALL DELAY1 ; 选手号显示MOV DPTR,#DATMOV A,R5MOVC A,A+DPTRSETB P2.2MO

24、V P0,ACLR P2.0ACALL DELAY1 ; 十位显示MOV DPTR,#DATMOV A,R4MOVC A,A+DPTRSETB P2.0MOV P0,ACLR P2.1ACALL DELAY1 ; 个位显示RETDAT:DB 3Fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,71H,00H ;0,1,2,3,4,5,6,7,8,9,F, 灭 ;= 显示选手成绩 = SHOW:CLR ET1PUSH ACCMOV R3,#01HMOV R0,#41H;初始化(选手 1)SHOW1:MOV A,R0MOV B,#0AH12单片机原理及系统课程设计报告D

25、IV AB; 求十位和个位MOV R5,AMOV A,BMOV R4,A; 给显示寄存器赋值ACALL DISPLAYJNB P3.4,AD3;+JNB P3.5,DE3;-JNB P3.0,EN3;返回AJMP SHOW1AD3:CJNE R3,#08H,ADD3; 选手位溢出判断MOV R3,#01HMOV R0,#41HACALL DELAY2AJMP SHOW1ADD3: INC R3INC R0ACALL DELAY2AJMP SHOW1DE3:CJNE R3,#01H,ADD4; 选手位溢出判断MOV R3,#08HMOV R0,#48HACALL DELAY2AJMP SHOW1

26、ADD4: DEC R3DEC R0ACALL DELAY2AJMP SHOW1EN3: ACALL DELAY2CLR IE0POP ACCSETB ET1RETI;= 改变时间 =CHANGE:PUSH ACCMOV 39H,R3MOV R4,#0BHMOV R5,#0BHMOV R3,#01H; 初始化CHANGE1:ACALL DISPLAYJNB P3.4,ADJNB P3.5,AD13单片机原理及系统课程设计报告JNB P3.0,FFAJMP CHANGE1; 按键选择并显示AD:CJNE R3,#01H,AD2CJNE R3,#02H,AD1AD1:MOV R3,#02HACAL

27、L DELAY2AJMP CHANGE1AD2:MOV R3,#01HACALL DELAY2AJMP CHANGE1FF:ACALL DELAY2; 判断选择CJNE R3,#01H,INT1SUBCJNE R3,#02H,INT0SUBINT0SUB:MOV A,R1; 抢答时间修改MOV B,#0AHDIV ABMOV R5,AMOV R4,BMOV R3,#01HACALL DISPLAY; 显示目前时间限制JNB P3.4,INC0;P3.4 为+1s 键 ,如按下跳到 INCOJNB P3.5,DEC0;P3.5 为-1s 键 ,如按下跳到 DECO JNB P3.0,BACK0;

28、P3.0 为确定键 ,如按下跳到 BACKO AJMP INT0SUBINC0: MOV A,R1CJNE A,#63H,ADD0; 如果不是 99,R2 加 1,如果加到 99,R1 就置 0,重新加起。MOV R1,#00HACALL DELAY2AJMP INT0SUBADD0: INC R1ACALL DELAY2AJMP INT0SUBDEC0: MOV A,R1JZ SETR1;如果 R1 为 0, R1 就置 99,DEC R1ACALL DELAY2AJMP INT0SUBSETR1: MOV R1,#63HACALL DELAY2AJMP INT0SUBBACK0: ACAL

29、L DELAY214单片机原理及系统课程设计报告CLR IE1POP ACCMOV R3,39HRETIINT1SUB:MOV A,R2; 回答时间修改MOV B,#0AHDIV ABMOV R5,AMOV R4,BMOV R3,#02HACALL DISPLAYJNB P3.4,INC1JNB P3.5,DEC1JNB P3.0,BACK1AJMP INT1SUBINC1: MOV A,R2CJNE A,#63H,ADD1MOV R2,#00HACALL DELAY2AJMP INT1SUBADD1: INC R2ACALL DELAY2AJMP INT1SUBDEC1: MOV A,R2J

30、Z SETR2DEC R2ACALL DELAY2AJMP INT1SUBSETR2: MOV R2,#63HACALL DELAY2AJMP INT1SUBBACK1: ACALL DELAY2CLR IE1POP ACCMOV R3,39HRETI;= 蜂鸣器 =;为了发出不同声音采用音调发声模式SONG:PUSH ACCPUSH DPHPUSH DPL15单片机原理及系统课程设计报告MOV A,R7MOV DPTR,#DAT_HMOVC A,A+DPTRMOV TH0,AMOV A,R7MOV DPTR,#DAT_LMOVC A,A+DPTRMOV TL0,APOP DPLPOP DPH

31、POP ACCJNB 01H,OUT;CPL P3.7;01H 标志位为 1 时候 P3.6 口取反输出(发声)OUT: RETIDAT_H:DB 0FCH,0FCH,0FDH,0FDH,0FDH DAT_L:DB 44H,0ACH,09H,82H,0C8H ;= 定时 =TIME:MOV TH1,#3CHMOV TL1,#0B0HINC R0RETI;= 显示延迟 =;(67*30*2+67*2 )*1=4154 usDELAY1: MOV 32H,#43HDELAY1_1: MOV 33H,#1EHJNB 02H,READ; 数据无效是读取数据JB 00H,WRITE; 回答环节检查加减分

32、DELAY1_2: DJNZ 33H,DELAY1_2DJNZ 32H,DELAY1_1RET;= 读取有效数据 =READ:MOV A,P1ORL A,3BH; 将锁存选手的有效位置无效AA2:CJNE A,#0FFH,AA1 ; 当不全为 1 时的数据为有效数据AA0:MOV 34H,A ; 将有效数据送到 34H 暂存AJMPDELAY1_2AA1:SETB 02HAJMP AA0;= 读取加减数据 =WRITE:JNB P3.4,CC116单片机原理及系统课程设计报告JNB P3.5,CC2AJMPDELAY1_2CC1:SETB 03HAJMPDELAY1_2CC2:SETB 04H

33、AJMPDELAY1_2;= 按键延迟 = DELAY2: MOV 39H,#25HLOOP0: ACALL DISPLAYDJNZ 39H,LOOP0RET;= 按键发声 =BARK:SETB 01H; 开启发声MOV R7,#0ACALL DELAY1ACALL DELAY1CLR 01H; 关闭发声RET;= 失败音 =BARK2: SETB 01H; 开启发声MOV R7,#0ACALL DELAY1ACALL DELAY1ACALL DELAY1ACALL DELAY1ACALL DELAY1CLR 01H; 关闭发声RET;= 成功音 =BARK3: SETB 01H; 开启发声MOV R7,#4ACALL DELAY1ACALL DELAY1ACALL DELAY1ACALL DELAY1ACALL DELAY1CLR 01H; 关闭发声RETEND17附录 3NN单片机原理及系统课程设计报告开始初始化是否开始抢答是否违规抢答Y违规处理抢答程序有效抢答Y回答程序成绩调整图 5 程序流程图18

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


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