片机原理及应用》课程设计报告--基于单片机的8组抢答器设计.docx

上传人:scccc 文档编号:12679201 上传时间:2021-12-05 格式:DOCX 页数:18 大小:3.38MB
返回 下载 相关 举报
片机原理及应用》课程设计报告--基于单片机的8组抢答器设计.docx_第1页
第1页 / 共18页
片机原理及应用》课程设计报告--基于单片机的8组抢答器设计.docx_第2页
第2页 / 共18页
片机原理及应用》课程设计报告--基于单片机的8组抢答器设计.docx_第3页
第3页 / 共18页
片机原理及应用》课程设计报告--基于单片机的8组抢答器设计.docx_第4页
第4页 / 共18页
片机原理及应用》课程设计报告--基于单片机的8组抢答器设计.docx_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《片机原理及应用》课程设计报告--基于单片机的8组抢答器设计.docx》由会员分享,可在线阅读,更多相关《片机原理及应用》课程设计报告--基于单片机的8组抢答器设计.docx(18页珍藏版)》请在三一文库上搜索。

1、.单片机原理及应用课程设计报告学 院: 源与动力工程学院_班 级:_建电1001_目 录任务书1第一章方案设计2第二章硬件系统设计3第三章软件设计4第四章系统调试5小 结6附录1:原理图7附录2:源程序8;单片机原理及应用课程设计任务书题 目:基于单片机的8组抢答器设计设计要求:(1)抢答人数为八组,即有八个抢答按键,以及主持人复位按钮。(2)每次抢答有声音提示,提示显示抢答组号。第一章 方案设计主要设计内容如图所示复位电路:当一轮进行完时,由主持人按下,下一轮开始,复位电路接P3.2口。独立式按键键盘:用于输入高低电平,连接到P2口,由P2口检测电平的变化。选手组别显示电路:有1位数码管组成

2、,显示成功抢答选手编号。蜂鸣电路:有选手抢答成功,P3.5口发出脉冲,使蜂鸣器发出声音。蜂鸣电路AT89C51复位电路/主持人案件选手组别显示电路独立式按键键盘第二章 硬件系统设计一 单片机最小系统微控制器采用AT89C51。AT89C51是美国ATMEL公司生产的与MCS-51系列单片机完全兼容的高性能CMOS 8位单片机,MCS-51系列单片机以其推出时间早、配套资源丰富、开发手段完善、性价比高等特点而得到了广泛的应用,是单片机的主流品种。AT89C51的内部资源主要包括:·与MCS-51 系列完全兼容的高性能8位CPU;·4K字节可重复编程的Flash存储器;

3、3;256字节的SRAM;·4个8位的并行口,共32条I/O口线;·3个16位的定时器/计数器;·6个中断源,2个中断优先级的中断系统;·一个全双工的串行口;·内部振荡器;·可编程串行通道 ·低功耗的闲置和掉电模式 ·片内振荡器和时钟电路其最小系统主要包括复位电路等,如下图所示。二 硬件电路设计说明1 复位电路设计:本设计采用按键复位的方式进行复位,把SW1连接到P3.2,通过拨动SW1来改变高低电平,从而进行复位。2独立式按键键盘设计:键盘接口中使用多少根I/O线,键盘中就有几个按键,键盘接口使用了8根I/O口线

4、,该键盘就有8个按键,这种类型的键盘,其按键比较少,且键盘中各按键的工作互不干扰。因此可以根据实际需要对键盘中的按键灵活的编码。本设计将P2口连接到按键键盘,抢答时高低电平发生变化。3 显示电路设计:利用ZLG7290进行数码管显示。将P3.0和SDA连接,P3.1和SCL连接,P3.7和/RST连接。4 蜂鸣器电路设计:声音的频谱范围约在几十到几千赫兹,若能利用程序来控制单片机某个口线的“高”电平或低电平,则在该口线上就能产生一定频率的巨型波,接上喇叭就能发出一定频率的声音。本设计将蜂鸣器与P3.5口连接,在选手抢答时,驱动蜂鸣器工作。第三章 软件设计系统软件分为主程序、中断服务程序和子程序

5、三部分。抢答器的电路设计需要两个循环,当没有准备好的时候不能抢答,这里需要一个循环,知道准备好之后才能进行下面的程序。第二个循环是选手的抢答循环,利用标志位来进行,当标志位为零时,则向下运行,进行显示电路和蜂鸣器的工作,若是标志位不为零,则一个一个的循环八个选手,直到 有人抢答为止。第四章 系统调试说明调试中遇到的问题集解决方案1 程序编写完成运行没有错误后,进行了调试,但是第一次调试时什么效果都没有。我就考虑到不是程序上的错误,那就肯定是接线上的错误。查看了接线,果然是把P1口和P2口接反了。2 修改接线之后,数码管不亮,经过老师讲解才知道,我们要想点亮数码管,必须使用ZLG7290。于是我

6、在程序中又插入了这段程序,使数码管点亮。3 修改完第二个错误之后,我的抢答器终于工作了,但是还是有问题,按键、LED灯、数码管显示效果不对应,总是反在里面。因为发现按动一号键是八号灯亮,而按动八号键是一号灯亮,在排除接线错误之后。我发现是在循环的那一部分出现了问题,把驱动LED的编码写反了,修正了之后抢答器终于正确工作了。小 结这次课程设计老师给我们安排了一个星期的时间,可以说是比较充裕的。虽然如此,我还是很用心的做设计程序,刚拿到题目,感觉太繁杂了,不知怎么下手,虽然这些知识以前都有接触过,但也只是分部分来接触,而这次的设计是要对前面几次实验的一个综合,真的很难。也翻阅了一些资料,到图书馆翻

7、阅了很多资料,可是还是一片空白,于是也在网上参考一些个程序,然后自己事先编写好了程序,到了周一去到机房时候,把自己写的程序烧进去芯片里面,发现不行,才知是我把段码地址搞错了,所以不能在数码管上正常显示。通过运用单片机设计八路抢答器程设计,发现自己的很多不足,自己知识的很多漏洞,看到了自己的实践经验还是比较缺乏,理论联系实际的能力还急需提高。附录1:原理图附录2:源程序OK BIT 20HKEY EQU 30HKEY1 BIT P2.0KEY2 BIT P2.1KEY3 BIT P2.2KEY4 BIT P2.3KEY5 BIT P2.4KEY6 BIT P2.5KEY7 BIT P2.6KEY

8、8 BIT P2.7RING BIT P3.5SDA BIT P3.0SCL BIT P3.1RST BIT P3.6 MTDEQU 63H ZLG7290EQU70H ACKBIT10H SLADATA60H SUBADATA61H NUMBYTEDATA62HORG 000HSJMP MAINORG 003HLJMP INT_0ORG 030HMAIN :SETB EASETB EX0 SETB IT0 CLR OK CLR RINGLCALL RE7290DD:JNB OK,$ D0: MOV A,P2 CJNE A,#0FFH,D1 SJMP D0 D1: JB ACC.0,D2 MO

9、V KEY,#1MOV P1,#0FEHSETB RINGSJMP D9 D2:JB ACC.1,D3 MOV KEY,#2MOV P1,#0FDHSETB RINGSJMP D9 D3: JB ACC.2,D4 MOV KEY,#3MOV P1,#0FBHSETB RINGSJMP D9 D4:JB ACC.3,D5 MOV KEY,#4MOV P1,#0F7HSETB RINGSJMP D9 D5:JB ACC.4,D6 MOV KEY,#5MOV P1,#0EFHSETB RINGSJMP D9 D6: JB ACC.5,D7 MOV KEY,#6MOV P1,#0DFHSETB RIN

10、GSJMP D9 D7: JB ACC.6,D8 MOV KEY,#7MOV P1,#0BFHSETB RINGSJMP D9 D8: JB ACC.7,D9 MOV KEY,#8MOV P1,#07FHSETB RINGSJMP D9 D9: CLR OK MOV 66H,KEY LCALL LEDDISP LJMP DD INT_0:SETB OK CLR RING MOV P1,#0FFH MOV KEY,#0 MOV 66H,KEY LCALL LEDDISP RETI leddisp:push psw push accsetb rs1setb rs0mov r0,#66Hmov r4

11、,#8mov r5,#60hloop: MOV MTD,R5 MOV MTD+1,R0MOV SLA,#70HMOV SUBA,#07HMOV NUMBYTE,#02HLCALL IWRNBYTELCALL DELY1INC R0INC R5DJNZ R4,LOOPPOP ACCPOP PSWRETre7290: clr rst lcall delysetb rstlcall delyretdely :mov r7,#80Hmin :djnz r7,ys500 retys500 :lcall ys500us ljmp minys500us:mov r6,#80h djnz r6,$retdel

12、y1 :mov r7,#40h djnz r7,$ret;启动I2C总线子程序 START: nop nop nop SETB SDA NOP SETB SCL ;起始条件建立时间大于4.7us NOP NOP NOP NOP NOP CLR SDA NOP ;起始条件锁定时大于4us NOP NOP NOP NOP CLR SCL ;钳住总线,准备发数据 NOP nop nop RET;结束总线子程序STOP: NOP NOP NOP CLR SDA NOP SETB SCL ;发送结束条件的时钟信号 NOP ;结束总线时间大于4us NOP NOP NOP NOP SETB SDA ;结束

13、总线 NOP ;保证一个终止信号和起始信号的空闲时间大于4.7us NOP NOP NOP nop nop RET;检查应答位子程序;返回值,ACK=1时表示有应答CACK:NOP NOP NOPSETB SDA NOP NOP SETB SCL CLR ACK NOP NOP MOV C,SDA JC CEND SETB ACK ;判断应答位CEND:NOP CLR SCL NOPnopnop RET;发送字节子程序;字节数据放入ACC ;每发送一字节要调用一次CACK子程序,取应答位 WRBYTE: MOV R7,#08HWLP: RLC A ;取数据位 JC WR1 SJMP WR0 ;

14、判断数据位WLP1: DJNZ R7,WLP NOP RETWR1: SETB SDA ;发送1 NOP SETB SCL NOP NOP NOP NOP NOPCLR SCL SJMP WLP1WR0: CLR SDA ;发送0 NOP SETB SCL NOP NOP NOP NOP NOP CLR SCL SJMP WLP1;向器件指定子地址写N字节数据;入口参数: 器件从地址SLA、器件子地址SUBA 、发送数据缓冲区MTD、发送字节数NUMBYTE; 占用: A 、R0 、R1 、R3 、CY IWRNBYTE: MOV A,NUMBYTE MOV R3,A LCALL START ;起动总线 MOV A,SLA LCALL WRBYTE ;发送器件从地址 LCALL CACK JNB ACK,RETWRN ;无应答则退出 MOV A,SUBA ;指定子地址 LCALL WRBYTE LCALL CACK MOV R1,#MTDWRDA: MOV A,R1 LCALL WRBYTE ;开始写入数据 LCALL CACK JNB ACK,IWRNBYTE INC R1 DJNZ R3,WRDA ;判断写完没有RETWRN: LCALL STOP RET END第16页 共18页

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1