智能四路抢答器(完)讲解.docx

上传人:苏美尔 文档编号:11664283 上传时间:2021-08-29 格式:DOCX 页数:21 大小:267.69KB
返回 下载 相关 举报
智能四路抢答器(完)讲解.docx_第1页
第1页 / 共21页
智能四路抢答器(完)讲解.docx_第2页
第2页 / 共21页
智能四路抢答器(完)讲解.docx_第3页
第3页 / 共21页
智能四路抢答器(完)讲解.docx_第4页
第4页 / 共21页
智能四路抢答器(完)讲解.docx_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《智能四路抢答器(完)讲解.docx》由会员分享,可在线阅读,更多相关《智能四路抢答器(完)讲解.docx(21页珍藏版)》请在三一文库上搜索。

1、第一节课程设计目的 31.1 概述31.2 设计要求 3第二节 四路抢答器设计正文32.1 总体设计 32.1.1 抢答器的工作原理 32.1.2 抢答器的总体设计 42.2 硬件电路详细设计 42.2.1 c51 芯片 42.2.2 的选择 62.2.3 电路的设计 62.2.4 晶振电路的设计 72.2.5 显示电路的设计 82.2.6 电路的设计 82.2.7 路的设计 92.2.8 PCB 版图的绘制 102.3 软件详细设计 112.3.1 主程序的设计 112.3.2 显示子程序的设计 112.3.3 定时器 T0、 T1 中断服务程序的设计112.3.4 抢答处理程序的设计 11

2、2.3.5 总程序 12第三节实验结果及结论18第四节参考文献 19第一节课程设计目的1.1 概述单片机原理及应用课程设计是学生综合运用所学知识, 全面掌握单片微型计算机及其接口的工作原理、 编程和使用方法的重要实践环节。 通过独立或协作提出并论证设计方案, 进行软、 硬件调试, 最后获得正确的运行结果, 可以加深和巩固对理论教学和实验教学内容的掌握, 进一步建立计算机应用系统整体概念, 初步掌握单片机软、 硬件开发方法, 为以后进行实际单片机软、硬件应用开发奠定良好的基础。课程设计的主要内容:根据单片机原理及应用课程的要求,主要进行两个方面的设计,即单片机最小系统和接口技术应用设计。 其中,

3、 单片机最小系统主要要求学生熟悉单片机的内部结构和引脚功能、引脚的使用、复位电路、时钟电路、 4 个并行接口和一个串行接口的实际应用,从而可构成最小应用系统,并编程进行简单使用。接口技术应用设计主要要求学生能综合运用单片机、 存储器、 常用接口芯片构成单片机应用系统,有针对性地进行软、硬件设计与开发。1.2 设计要求:1、设置4 个抢答台和四个抢答成功指示灯, 1 个比赛主持人开始按键和 1 个抢答指示灯及 1 个 LED 显示器。2、采用中断和查询结合的方法确定按键动作。3、主持人按下“开始”键后,若有人抢答,则对应选手的指示灯点亮,并用7 段 LED显示抢答者的号码( 1-4 ) ,同时蜂

4、鸣器发出 3 声间隔一秒的警告音;若 9 秒内无人抢答,则发出超时报警声,此题作废,主持人可按下“开始”键开始下一题的抢答。第二节四路抢答器设计正文2.1 总体设计2.1.1 抢答器的工作原理抢答器的工作原理是利用单片机的定时器 T0 、 T1 中断完成,其余状态循环调用显示子程序,用 2 个共阴极 LED 数码管来显示,用P2.0、 P2.1、 P2.2、 P2.3 口作为 CD4511 译码器的数据输入口, P1.0、 P1.1、 P1.2、 P1.3 口接 4 个选手按键,提供选手抢答,P1.4、 P1.5、 P1.6、P1.7接四个发光二极管作为抢答成功指示灯;P0.0接蜂鸣器,超时报

5、警,和提示抢答。2.1.2 抢答器的总体设计倒计时方案方面利用 MCS-51 的内部的定时/计时器进行中断计时, 配合软件延时实现倒计时。该方案节省硬件成本,并且能够在定时器/计数器的使用、中断及程序设计方案方面得到锻炼与提高, 显示方面采用穿行传输实现动态显示, 该方案的硬件连接简单, 但动态扫描的显示方式需占用 CPU 较多的时间,适用于单片机没有太多实时测控的任务场合。- 1 -抢答功能:当主持人按下抢答键开始抢答后,此时任一路通过四路按键配合程序来实现抢答功能。按下按钮均闭锁其它各路,由程序对键盘译码并显示最先按下抢答键的选手号。并亮起主持人台和对应选手台上的抢答成功指示灯。抢答限时:

6、主持人按下抢答键后,设置 9秒为抢答时间。若 9秒内无人抢答,倒计时为 0时发出报警,说明该抢答题目作废。此时闭锁所有抢答按键,只有当主持人再次按下抢答键开始下一次抢答方可抢答。2.2硬件电路详细设计2.2.1 80C52 芯片80C52系列中,用 CHMOS工艺制造的单片机都采用双列直插式(DIP ) 40脚 封装,引脚信号完全相同。1、为一般控制应用的 8位单片机2、晶片内部具有时钟振荡器 (传统最高工作频率可至 33MHz )3、内部程式存储器(ROM)为8KB单片机4、内部数据存储器(RAM )为256B5、外部程序存储器可扩充至64KB6、外部数据存储器可扩充至64KBP:.O :

7、p:. p:. p:. p:. p:. p:. pi.TTU1INT 二 3INTD127to-7vcc|_-六.RET 912P15 6 7JI JI p p PIXTIXTTlTO-sX1X2RESETRD禄8051P02o 1 1 zJ 4 5 6 7P2P2此P1.P2JP2P2P2RXDTXDALE-PPSEN39 P0.0TF-21 亘 23 互 巨 至 2?2810工30.O工.1.3.4 ppppp单片机 STC90C52A7、32条双向输入输出线,且每条均可以单独做I/O的控制8、5个中断向量源9、3组独立的16位定时器10、1个全双工串行通信端口各引脚功能介绍:1 .电源V

8、CC (引脚号40):电源正端输入,接+5V。VSS (弓I脚号20):电源地端。2 .时钟XTAL1 (引脚号 18)内部振荡电路反相放大器的输入端,是外接晶振的一个引脚。当采用外部振荡器时,此引脚接地。XTAL2 (引脚号19 )内部振荡器的反相放大器输出端,是外接晶振的另一端。当采用外部振荡器时,此引脚接外部振荡源。3 控制总线( 1) ALE/ PROG (引脚号30) :正常操作时为ALE 功能(允许地址锁存) ,用来把地址的低字节锁存到外部锁存器。 ALE 引脚以不变的频率(振荡器频率的1/6 )周期性地发出正脉冲信号。因此, 它可用作对外输出的时钟信号或用于定时。但要注意, 每当

9、访问外部数据存储器时, 将跳过一个ALE 脉冲。 ALE 端可以驱动 (吸收或输出电流) 8 个 LSTTL 电路。在 8751 单片机 EPROM 编程期间,此引脚接编程脉冲( PROG 功能) 。( 2) PSEN (引脚号29):外部程序存储器读选通信号。在从外部程序存储器取指令(或数据)期间, PSEN 在每个机器周期内两次有效。 PSEN 可以驱动 8 个 LSTTL 电路。( 3 ) RST/VPD (引脚号 9) :复位信号输入端。振荡器工作时,该引脚上持续2 个机器周期的高电平可实现复位操作。 此引脚还可接上备用电源。 在 Vcc 掉电期间, 由向内部 RAM 提供电源,以保持

10、内部RAM 中的数据。( 4 ) EA/Vpp (引脚号 31 ) : EA 为内部程序存储器和外部程序存储器的选择端。当为 EA 高电平时,访问内部程序存储器( PC 值小于 4K ) ;当 EA 为低电平时,访问外部程序存储器。对于87C51 单片机,在 EPROM 编程期间,此端为 21V 编程电源输入端。4 I/O 线 1) 1) P0 口(引脚号 3239 ) :单片机的双向数据总线和低8 位地址总线。在访问外部存储器时实现分时操作,先用作地址总线,在ALE 信号的下降沿,地址被锁存;然后用作为数据总线。它也可以用作双向输入/输出口。P0 口能驱动 8 个 LSTTL 负载。 2)

11、P1 口(引脚号18):准双向输入/输出口,它能驱动 4个LSTTL负载。 3) 3) P2 口(引脚号2128 ) :准双向输入 /输出口。在访问外部存储器时,用作高8 位地址总线。P2 口能驱动4个LSTTL负载。 4) P3 口(引脚号1017):准双向输入/输出口,它能驱动 4个LSTTL负载。P3 口的 每一引脚还有另外一种功能:P3.0- RXD串行口输入端P3.1TXD:串行口输出端P3.2:外部中断0 中断请求输入端P3.3:外部中断1中断请求输入端P3.4T0:定时器/计数器0外部输入端P3.5T1:定时器/计数器1外部输入端P3.6:外部数据存储器写选通信号P3.7:外部数

12、据存储器读选通信号5 .时钟电路80C52单片机内有一个高增益反相放大器,其频率范围为1.2MHz72MHz ,XTAL1和XTAL2分别为放大器的输入端和输出端。时钟可以由内部方式或外部方式产生。80C52内部方式时钟电路如图2-10 (a)所示。在XTAL1和XTAL2引脚上外接定时元件,就能构成自激振荡电路。定时元件通常采用石英晶体和电容组成的并联谐振电路。电容器C1和C2主要起频率微调作用,电容值可选取为30pF左右(外接晶体时)或 40pF左右(外接陶瓷谐振器时)。80C52外部方式时钟电路如图2-10 (b)所示。XTAL1接外部振荡器,XTAL2悬空。对外部振荡信号无特殊要求,只

13、要保证脉冲宽度,一般采用频率低于12Hz的信号。抢答器电路的核心是 89C52单片机,其内部带有 8KB的FLASH ROM,无需外扩程序存储器;抢答器没有大量的运算和暂存数据现有的 256B篇内RAM已经能满足容量需求,故不需外扩 片外RAM,系统配有2个8段数码显示管共用一个 CD4511驱动,管采用共阴数码管, 作为 选手号的显示输出。2.2.2 芯片的选择抢答器电路的核心是 89C52单片机,其内部带有 8KB的FLASH ROM无需外扩程序存储器;抢答器没有大量的运算和暂存数据现有的256B篇内RAM已经能满足容量需求,故不需外扩片外RAM,系统配有2个8段数码显示管共用一个 CD4

14、511驱动,管采用共阴数码管, 作为选手号的显示输出。2.2.3 复位电路的设计复位电路的设计如右图所示:RT该复位电路采用上电自动复位 和手动复位两种复位方式,图中右 侧引脚接到单片机的复位引脚。要 实现复位只需在,52系列单片机ELECTED】plRES2复位电路-5 -RESET引脚上加上5ms的高电平就可以了。上电复位是利用电容的充电来实现的,即上电瞬间RESET端的电位与Vcc相同,随着电容上储能增加,电容电压也逐渐增大,充电电流减小,RESET端的电位。这样就会建立一个脉冲电压,调节电容与电阻的大小可对脉冲的持续时间进行调节。通常若采用12MHz的晶振时,复位元件参数为 22F的电

15、解电容和10k的电阻。按钮复位电路是通过按下复位按钮时,电源对 RESET端维持两个机器周期的高 电平实现复位的。2.2.4 晶振电路的设计图2-2晶振电路原理图晶振电路XTAL1、XTAL2分别为反相放大器的输入端和输出端,MSC-52单片机的定时控制功能是用时钟电路和振荡器完成的,而根据硬件电路的不同,连接方式分为内部时钟方式和外部时钟方式。本设计中采用内部时钟方式。单片机内部有一个反相放大器,外接定时反馈元件组成振荡器(内部时钟方式),产生时钟送至单片机内部各元件。时钟频率越高,单片机控制器的控制节拍就越快,运算速度也就越快。一般来说单片机内部有一个带反馈的线性反相放大器,外界晶振(或接

16、陶瓷振荡器)和电容就可组成振荡器,如图 2-2所示。加电以后延时一段时间(约10ms)振荡器产生时钟,不受软件控制,图中 Y1为晶振,震荡产生的时钟频率主要由Y1确定。电容C1, C2的作用有两个:一是帮助振荡器起振,二是对振荡器的频率起微调作用,典型值为30pF。-7 -2.2.5 数码显示电路的设计 图2.3数码显示管电路图7段数码管(共阴极)数码显示管用来作为 9秒倒计时显示和选手号,两个共阴极数码管共用一个CD4511驱动,每个数码管有一个位选端分别接 P3.2、P3.3 口。P2.0、P2.1、P2.2、P2.3作为CD4511数据 输入端。2.2.6 报警电路的设计蜂鸣器图2.4报

17、警电路图使用蜂鸣器作为报警电路,NPN三极管的基极通过电阻与单片机的P0.0引脚连接,再用330的上拉电阻接电源,三极管的集电极接电源,发射极接蜂鸣器的正极。当P0.0输出低电平时蜂鸣器响。2.2.7总电路的设计CPAClatsyrc1YNEr r/ELA UXT UXR62 一4 op 52/2r Kzr hzr 4r ?TtL:2LT2rzr /np TTgL hnp4MP np Jnp Toh MP7dp6PI5-np4p COvL9TP1TP OPtratopS3-25S图2.5总电路原理图-9 -2.2.8 PCB板的制作画好原理图检查无误后,画 PCB版图,本设计由于电路连接比较简

18、单,接线较少,所以用 明线直接连接,不用制版,画出 PCB版图的目的是便于插板时的布局和链接。2.3软件详细设计此程序的及时采用定时器 T0和T1中断完成,其余状态循环调用显示子程序。系统主程序流程图如图 3-1所示。图2-3-1系统主程序流程图2.3.2 显示子程序的设计2.3.3 定时器T0、T1中断服务程序的设计定时器T0用于复位程序,当给 RST 口加10ms的复位信号时,单片机复位。定时器 T1用于计时程序,当主持人按下开始抢答按钮9秒内无人抢答时,蜂鸣器发出报警信号。2.3.4 抢答处理程序的设计当有选手第一个按下抢答器按扭时数码管显示选手号码,同时选手指示灯点亮,蜂鸣器发出三声间

19、隔1秒的警告,并锁定抢答。当在此选手之后再有选手按下按扭时无效,数码管不变。-11 -2.3.5 四路抢答器程序 程序: #include#define uchar unsigned char#define uint unsigned intsbit start=P3A4;定时器触发sbit buzzer=P0A0;sbit key1_led=P1A4;sbit key2_led=P1A5;sbit key3_led=P1A6;sbit key4_led=P1A7;sbit key5_led=P3A6;uchar temp;uchar code wei=0xfb,0xf7;uchar code

20、 duan=0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19;uchar tt=0,key=0,sw=0,key_flag=0,start_flag=0,buzz_flag=0,x=0,y=0,j=9,m=0;delay(1);- 13 -/*/ /延时函数/*/void delay(unsigned int t)unsigned int i,j;for(j=t;j0;j-)for(i=10;i0;i-);/*/void init_timer()定时器初始化/*/TMOD=0x01;TH0=(65535-50000)/256;TL0=(6553

21、5-50000)%256;EA=1;ET0=0;TR0=0;/*/ /按键检测/*/void key_jc()temp = P1;sw = 0x0f&temp;if(sw!=0x0f)if(sw!=0x0f)/ 确定有按键按下temp = P1;sw=0x0f&temp;/ 有选手按下的低四位的值 while(P1&0x0f)!=0x0f)switch(sw)case 0x0e: key_flag=1; key1_led=0; key=2;break;case 0x0d: key2_led=0; key=2;break;case 0x0b: key3_led=0; key=2;break;ca

22、se 0x07: key4_led=0; key=2;break; default:break;/*/ /动态数码管显示/ 显示按键值和计时值/*/void xianshi(uchar n)uchar i=0;for(i=0;i0;x-)for(y=10;y0;y-);- 19 -/*/ /数码管显示/*/void Led()uchar i=0;if(key=2)start_flag=2;/ 准备复位switch(sw)case 0x0e:/胺键 1xianshi(1);break;case 0x0d:/戚键 2xianshi(2);break;case 0x0b:/戚键 3xianshi(3

23、);break;case 0x07胺键 4xianshi(4);break;default: break;else if(key=0) / 初始状态“00 ”显示P2=0x10;P3=0xfb;delay(1);P2=0x10;P3=0xf7;delay(1);else if(key=1)/未有按键按下,仅计时显示for(i=0;i0;x-) for(y=10;y0;y-);/*/ /蜂鸣器函数/*/void buzz() / 发出三声间隔1 秒的警告音if(buzz_flag=0)buzz_flag=1;ET0=1;TR0=1;if(buzz_flag=1)if(tt=20)tt=0;m+;

24、if(m=6)m=0;buzzer=1;buzz_flag=2;start_flag=2; / 准备复位else if(m0) / 在计时完成之前检测按键key_jc();if(key=2)if(buzz_flag=0) ET0=0;TR0=0; tt=0;buzz();Led();/*/ /定时中断函数/*/void itc_timer() interrupt 1TH0=(65535-50000)/256;TL0=(65535-50000)%256;tt+;if(start_flag=1)/开始if(tt=20)&(buzz_flag=0)tt=0;if(key_flag=0)/ 未有按键按

25、下,只计时 j-;if(j=0)buzzer=0;/蜂鸣器响start_flag=2; / 准备复位第三节 试验结果及结论(实验心得)通过这次单片机实习,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新可以是在原有的基础上进行改进,使之功能不断完善,成为真正的东西。在已度过的大学时间里,我们大多数接触的是专业课。我们在课堂上掌握的仅仅是专业课的理论知识, 如何去锻炼我们的实践能力, 如何把我们所学的专业基础课理论知识运用到实践中去,我想做类似实习就为我们提供了良好的实践平台学习单片机没有捷径, 不能指望两三

26、天就学会,要坚持不懈,重在积累 单片机是一门应用性和实践性很强的学科,要多动手,多做实验。( a)要学会参考别人的程序,减少自己琢磨的时间,迅速提高自己的编程能力。( b )碰到问题可以借助网络来搜寻答案和对自己有帮助的问题,一定会有所收获。( c )小组要团结,小组之间要多交流。技术是靠不断的积累和交流才会进步的,封闭自守只会更加落后。通过这次单片机设计我不仅加深了对单片机理论的理解将理论很好地应用到实际当中去, 同时也使我认识到自身存在的不足之处, 无论是理论上还是遇到问题的处理能力上都还有待提高,而且这也激发了我今后努力学习的兴趣。发现问题、提出问题、分析问题、解决问题和实践能力的提高都

27、会受益于我在以后的学习、工作和生活中。1、 不管做什么事, 计划是很重要的。 没有一个完好的计划, 做事情就会没有一个好的顺序,做事情会比较乱,很难成功。而有一个好的计划,不管做什么事都会事半功倍,做事心中有数,明确重点和缓急,不会有疏漏。这样才能提高成功率。2、 做事要多动脑,选出最好的方法。 一件事往往有多种解决方法, 一个好的方法, 不仅能使事情事半功倍, 而且往往决定最后的成与败, 所以做事时一定要多动一下脑筋, 想出最 好的方法。3、要注意细节。细节决定成败,这句话在这次课题中不仅一次得到了印证,特别是在软件的编程过程中, 一点点的错误就会使你整个程序不能运行。 因此我们不仅仅要有整

28、体意 识,也要注意细节,不要因一个关键地方的一个细节而导致满盘皆输。4、 最后, 也是最重要的一点, 通过这次课题, 我们学到了很多有关单片机方面的知识,也对单片机有了更深入的了解。使我们受益匪浅。总之,亲自动手是课堂学习的延续,电子领域随时随地都在发生着翻天覆地的变化,现有的知识储备总是落后于科技的发展脚步, 我们只有不断学习新知识, 才能做到面对新课 题时游刃有余第四节参考文献【1】张毅刚 单片机原理及应用 高等教育出版社.2003年.【2】赵嘉蔚张家栋霍凯编单片机原理及接口技术 清华大学出版社2010年【3】康华光 电子技术基础 数字部分(第四版)高等教育出版社,2000.7课程设计评 语课程设计成 绩指导教师(签字)年 月日-21 -

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

当前位置:首页 > 科普知识


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