版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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为主芯片,利用数码管、按键、电阻、晶振、蜂鸣器等组成的硬件电路。通过软件实现具体的功能。软件包括如下模块:(1)
3、初始化模块(2) 等待及违规抢答处理模块(包含锁存环节)(3) 倒计时模块(包含抢答和答题倒计时)(4) 显示模块(包含抢答及答题按键检测环节)(5) 延迟模块(包含显示和按键延迟)(6) 计时模块(50ms)(7) 蜂鸣模块(按音节原理发声)(8) 抢答模块(有效及无效抢答)(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存储单元,功能强大的微型计算机,AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。(2)LED数码管7段LED
5、数码管是利用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所示。5.2流程图如附录3所示。5.3软件调试软件的调试主要通过Keil uVision3软件进行操作,对程序编写过程中的错误进行查找,找出错误,进行修改,然后再进行
6、编译直至编译成功,生成HEX文件,才能下载到单片机里,继而实现相应功能。5.4系统仿真及实际调试系统采用PROTEUS仿真运行八路抢答器,系统运行时,最开始选手号不显示,即使位置显示。如附录1所示。6 总结本次课程设计是对所学知识的一次综合性运用。在设计的过程中发现了自身知识的不足,也发现我们必须具备专业基础知识,才能成功的设计出一件合格的东西。这次课程设计收获很多,体会也很深刻,并且对我们所学的东西也产生了浓厚的兴趣。在设计过程中,也学会了很多新的东西,比如一些仿真软件的应用,最典型的就是PROTEUS软件的应用,以及与KEIL软件的联合使用。当然最重要的是学到了关于基本电子设计的一些基本方
7、法。除此之外,我觉得在这次设计的过程中,很多自己解决不了的问题,只有虚心请教别人才能有效的解决问题,我觉得人与人之间的相互帮助很有必要,这样不仅能帮助大家很快的解决问题,还能提高我们每个人的实际水平,这些能力对于我们今后的学习和工作都很有帮助。在本次设计过程中遇到不少问题,在老师和同学的帮助和配合下才顺利的完成了本次课程设计。老师在我们做设计的过程中,给予了我们极大的帮助,不仅从知识方面引导了我们的设计思路,同时,在人生观上也给了我们不少的启示。在此,我对老师和同学表示深深的谢意。参考文献1李华.单片机原理及应用.兰州.兰州大学出版社M,2001.52江志红.51单片机技术与应用系统开发案例精
8、选M.北京.清华大学出版社,2008.123张靖武,周灵彬.单片机系统的PROTEUS设计与仿真M.北京.电子工业出版社,2007.44王思华.单片机原理及应用系统设计.北京.科学出版社M,2012.9附录1图1 proteus仿真图附录2程序清单ORG 0000HAJMP MAIN;=中断跳转设置=ORG 0003HAJMP SHOWORG 000BHAJMP SONGORG 0013HAJMP CHANGEORG 001BHAJMP TIMEORG 0040H;=初始化=MAIN:MOV SP,#70H MOV R1,#10;初始化抢答时间为10sMOV R2,#10;初始化答题时间为10
9、sMOV R0,#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 EX0SETB EX
10、1;允许四个中断,T0/T1/INT0/INT1SETB TR1SETB TR0;运行定时器;=按键判断及选择=START1:CLR 11HCLR 12HCLR 13HCLR 14HCLR 15HCLR 16HCLR 17HCLR 18HMOV 3AH,#00H;初始化错误抢答标志及个数START:CLR P3.7MOV R0,#0MOV R5,#00HMOV R4,#00HMOV R3,#0BH;初始化显示相关寄存器CLR 01H;关闭声音ACALL DISPLAY;等待界面显示JB P3.0,NEXT;是否开始抢答ACALL BARKMOV C,11HMOV ACC.0,CMOV C,12
11、HMOV 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;清空标志位AJMP COUNT;进入倒计时程序NEXT:JB 11H,FF2 JNB
12、 P1.0,FALSE1;选择违规号,下同FF2:JB 12H,FF3JNB P1.1,FALSE2FF3:JB 13H,FF4JNB P1.2,FALSE3FF4:JB 14H,FF5JNB P1.3,FALSE4FF5: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;=错误抢答选择=FALSE1: MOV R3,#01HINC 3AHSETB 11HAJMP ERROR ;将对应违规号送
13、入选手显示寄存器并错住对应选手的抢答,下同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 ERRORFALSE7: MOV R3,#07HINC 3AHSETB 17HAJMP ERRORFALSE8: MOV R3,
14、#08HINC 3AHSETB 18HAJMP ERROR;=错误抢答处理=ERROR: CLR P3.7MOV R0,#00HMOV TH1,#3CHMOV TL1,#0B0HMOV R7,#0SETB 01H;设置对应定时器HERE: MOV A,R0CJNE A,#14H,FLASH;CLR 01H MOV 32H,R1MOV R1,3AHCJNE R1,#08H,DD1;判断是否全部违规抢答,是则清空锁存并显示fMOV R1,32HCLR 11HCLR 12HCLR 13HCLR 14HCLR 15HCLR 16HCLR 17HCLR 18HMOV 3AH,#00HMOV R3,#0A
15、HAJMP 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,AMOV A,BMOV R4,A;给显示寄存器赋值ACALL DISPLAY;=声音/判断JB 00H,YYJB 02H,QUITYY:JB 03H,QUITJB 04H,QUIT
16、CJNE 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 JB 00H,ACCOUT1;抢答或回答模块选择JNB 02H,AA;如果没有有效数据则返回ACALL BARK3MOV A,34HJB 11H,TT2JNB ACC.0,TRUE1;抢答成功选择,下同TT2:JB 12H
17、,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 TRUE7XX2:AJMP TRUE8XX3:AJMP TRUE6XX4:ACALL TRUE5AA:ACALL BARK2AJMP START1ACCOUT1:JB 03H,JIAJB 04H,JIANAJMP JIAN;回答正确
18、加分,错误扣分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 R1MOV R1,32HAJMP START1;=正确抢答=TRUE1: ACALL BARKMOV A,R2MOV R6,A;送入回答时间MOV R3,#01H;送入序号MOV 35H,#41H ;送入相关地址SETB 00H;流程选择回答CLR P3.7;防止
19、蜂鸣器停在高电平AJMP COUNT;以上下同TRUE2:ACALL BARKMOV A,R2MOV R6,AMOV R3,#02HMOV 35H,#42HSETB 00HCLR P3.7AJMP COUNTTRUE3:ACALL BARKMOV A,R2MOV R6,AMOV R3,#03HMOV 35H,#43HSETB 00HCLR P3.7AJMP COUNTTRUE4:ACALL BARKMOV A,R2MOV R6,AMOV R3,#04HMOV 35H,#44HSETB 00HCLR P3.7AJMP COUNTTRUE5:ACALL BARK MOV A,R2MOV R6,AM
20、OV R3,#05HSETB 00HCLR P3.7MOV 35H,#45HAJMP COUNTTRUE6: ACALL BARK MOV A,R2MOV R6,AMOV R3,#06HSETB 00HCLR P3.7MOV 35H,#46HAJMP COUNTTRUE7:ACALL BARK MOV A,R2MOV R6,AMOV R3,#07HSETB 00HCLR P3.7MOV 35H,#47HAJMP COUNTTRUE8:ACALL BARK MOV A,R2MOV R6,AMOV R3,#08HSETB 00HCLR P3.7MOV 35H,#48HAJMP COUNT;=显示模
21、块=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.2MOV 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
22、;"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,#0AHDIV AB;求十位和个位MOV R5,AMOV A,BMOV R4,A;给显示寄存器赋值ACAL
23、L 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 SHOW1ADD4: DEC R3DEC R0ACALL DELAY2AJMP SHOW1EN3: ACALL D
24、ELAY2CLR IE0POP ACCSETB ET1RETI;=改变时间=CHANGE:PUSH ACCMOV 39H,R3MOV R4,#0BHMOV R5,#0BHMOV R3,#01H;初始化CHANGE1:ACALL DISPLAYJNB P3.4,ADJNB P3.5,ADJNB P3.0,FFAJMP CHANGE1;按键选择并显示AD:CJNE R3,#01H,AD2CJNE R3,#02H,AD1AD1:MOV R3,#02HACALL DELAY2AJMP CHANGE1AD2:MOV R3,#01HACALL DELAY2AJMP CHANGE1FF:ACALL DELA
25、Y2;判断选择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键,如按下跳到DECOJNB P3.0,BACK0;P3.0为确定键,如按下跳到BACKOAJMP INT0SUBINC0: MOV A,R1CJNE A,#63H,ADD0;如果不是99,R2加1,如果加到99,R1就
26、置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: ACALL DELAY2CLR IE1POP ACCMOV R3,39HRETIINT1SUB:MOV A,R2;回答时间修改MOV B,#0AHDIV ABMOV R5,AMOV R4,BMOV R3,#0
27、2HACALL 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,R2JZ SETR2DEC R2ACALL DELAY2AJMP INT1SUBSETR2: MOV R2,#63HACALL DELAY2AJMP INT1SUBBACK1: ACALL DELAY2CLR IE1POP ACCMOV R3,39HRETI ;=蜂鸣器=;为了发出不同声音采用音调发声模式SONG:PUSH ACCPUSH DPHPUSH DPLMOV A,R7MOV DPTR,#DAT_HMOVC A,A+DPTRMOV TH0,AMOV A,R7MOV DPTR,#DAT_LMOVC A,A+DPTRMOV TL0,APOP DPLPOP DPHPOP ACCJNB 01H,OUT;CPL P3.7;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 妊娠合并心脏病患者孕期心功能不全的防治策略总结分析实践
- 成人高考理化试题及答案
- 妊娠合并免疫抑制治疗患者的感染防控策略
- 安全规程教育试题及答案
- 头颈鳞癌免疫治疗耐药机制及应对策略
- 大数据分析优化心血管营养策略
- 多部门协作下的放射健康档案共享机制
- 2025年大学医学影像学(CT诊断技术)试题及答案
- 多组学技术在精准营养中的整合应用
- 2025年中职高星级饭店运营与管理(酒店安全管理)试题及答案
- (高清版)DG∕TJ 08-2093-2019 电动汽车充电基础设施建设技术标准 含2021年局部修订
- 《慢性伤口治疗与护理》课件
- 用电检查员技能培训课件-三相四线计量装置错接线分析及操作
- sl582-2012水工金属结构制造安装质量检验通则
- 河北省衡水市联考卷2025届高三一模检测试题数学试题含解析
- 2025年民兵基础考试试题及答案
- 四川省南充市顺庆区2024-2025学年八年级上学期期末考试数学试卷(原卷版+解析版)
- 湘教版九年级(上)期末考试数学试题(含答案)
- UL294标准中文版-2018版门禁系统单元
- GB/T 36547-2024电化学储能电站接入电网技术规定
- GB/T 19342-2024手动牙刷一般要求和检测方法
评论
0/150
提交评论