基于单片机的八路智能抢答器设计.doc_第1页
基于单片机的八路智能抢答器设计.doc_第2页
基于单片机的八路智能抢答器设计.doc_第3页
基于单片机的八路智能抢答器设计.doc_第4页
基于单片机的八路智能抢答器设计.doc_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

changzhou institute of technology科研实践题目:基于单片机的八路智能抢答器设计二级学院(直属学部): 延陵学院 专业: 电气工程及其自动化 班级: 10电y2 学生姓名: 王鑫 学号: 10120824 指导教师姓名: 范力旻 职称: 副教授 2013年12月30日至2014年1月10日目录1.绪论31.1 课题研究背景及意义31.2 课题研究的内容32.抢答器的系统概论42.1 系统的主要功能42.2 系统需求分析42.3 抢答器的工作流程43.总体设计方案73.1 单片机的选择73.2抢答器方案论证74.硬件设计94.1总体设计结构图94.2最小系统电路设计94.2.1时钟频率电路图94.2.2复位电路图设计104.3输入电路设计104.3.1键盘扫描电路的设计104.3.2功能键系统设计114.4输出电路设计114.4.1 蜂鸣器电路设计114.4.2 数码管显示电路125.软件设计145.1主程序结构图145.2主程序流程图145.3主要程序分析166.protues和keil仿真196.1 proteus软件的介绍及使用196.2 keil软件的介绍及使用196.3抢答器protenus软件的仿真207.实物制作237.1电路板焊接237.2电路板调试238.总结和展望248.1科研实践总结248.2对未来的展望24附录251.参考文献252.元器件清单253.原理图264.程序代码(c语言):261.绪论1.1 课题研究背景及意义本次课程设计制作的是智能抢答器。对于抢答器我们大家都很熟悉:是用于选手做抢答题目时用的,选手进行抢答,最先抢到题的选手回答问题。本实验设计的智能抢答器由主体电路与扩展电路组成。优先编码电路、锁存器、译码电路将参赛队的输入信号在显示器上输出;用控制电路和主持人开关启动报警电路,以上两部分组成主体电路。通过定时电路和译码电路将秒脉冲产生的信号在显示器上输出实现计时功能,构成扩展电路。经过布线、焊接、调试等工作后智能抢答器成形。1.2 课题研究的内容本系统采用模块化设计智能抢答器,在抢答比赛中广泛应用,各组分别有一个抢答按钮。主持人有开始和结束、复位键。在后台主持人可以修改,抢答时间和选手回答问题的时间设置,原始状态下抢答时间为30s,回答问题时间为60s。通过加键和减键修改上述时间。新时间开始有效,主持人按键开始后,选手开始抢答为有效,数码显示屏显示抢答时间倒计时和选手号,在最后五秒扬声器发声提示。如果主持人没有按下开始键而选手就抢答视为犯规,数码显示屏显示犯规者的代号,扬声器持续发声。主持人可按键结束,新一轮抢答开始。通过研究并在设计验证后发现,采用单片机技术设计的抢答器与目前常用的抢答器相比,首先,电路连接简单,因为大多数功能单元都通过程序设计在单片机内部,第二,工作性能可靠,抗干扰能力优于目前抢答器。所以本研究是一个实用的工程设计,具有创新性。2.抢答器的系统概论2.1 系统的主要功能本系统是借用单片机采用模块化设计的八路抢答器,包括8路抢答按纽、计时显示、提示功能等、开始与结束控制按钮、时限设定、各种相关显示调控功能等。参赛者系统,除享有抢答按纽的权利功能外,还有人性化的提示功能和时间提示功能,也可设定由主控控制在参赛者终端表现的趣味性功能等;主控系统的控制按钮做开始与结束控制,根据活动参赛者的层次,对提前抢答者的行为设定为非法或阻隔,若设有非法抢答控制功能时,在主控处带有公示性显示的非法抡答者的台位号,对抢答限时及回答问题限时设为倒计时,并有显示提示。本系统采用模块化设计的八路抢答器,在抢答比赛中广泛应用,各组分别有一个抢答按钮。一共有8个按键输入,分别对应8路选手的抢答按键。2.2 系统需求分析1、在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为无效。2、抢答限定时间和回答问题的时间可以在199s设定。3、可以显示是哪位选手有效抢答和无效抢答,正确按键后有音乐提示。4、抢答时间和回答问题时间倒记时显示,时间完后系统自动复位。5、抢答限定时间内使用道具回答时间将加15s,但只能使用两次。6、按键锁定,在有效状态下,按键无效非法。2.3 抢答器的工作流程抢答器的基本工作原理:在抢答竞赛或呼叫时,有多个信号同时或不同时送入主电路中,抢答器内部的寄存器工作,并识别、记录第一个号码,同时内部的定时器开始工作,记录有关时间并产生超时信号。在整个抢答器工作过程中,显示电路、声音电路等还要根据现场的实际情况向外电路输出相应信号。抢答器的工作流程分为:系统复位、正常流程、违例流程等几部分。抢答器工作流程图如图1-1所示。加载程序运 行行开始开始数码管显示fff开始抢按时间倒计时开始前有选手抢按显示违例选手号码并伴有语音报警倒计时结束,超时有选手抢按停止计数显示选手号码,倒计时时间,语音报警,答题,答题时间倒计时正常流程违规流程若超过答题时间,停止计时程序答题完毕根据选手表现,由主持人评分。图1-1 抢答器工作流程图工作过程描述:1、如果想调节抢答时间或答题时间,按“snatch”键或“answer”键进入调节状态,此时会显示现在设定的抢答时间或者回答时间的初始值,如想加一秒按一下push_1s键,如果想减一秒按一下“reduce_1s”键,时间led上会显示改变后的时间,调整范围为099s,0s时再减1s会跳到99,99s时再加1s会变到0s。2、主持人按抢答开始键,会有提示音,并立刻进入抢答倒计时(预设20s抢答时间),如有选手抢答,会有提示音,并会显示其号数并立刻进入回答倒计时(预设30s抢答时间),不进行抢答查询,所以只有第一个按抢答的选手有效。倒数时间到小于5s会每秒响一下提示音。3、如倒计时期间,主持人想停止倒计时可以随时按“停止”按键,系统会自动进入准备状态,等待主持人按“抢答开始”进入下次抢答计时。4、如果主持人未按“抢答开始”键,而有人按了抢答按键,犯规抢答,led上不断闪烁ff和犯规号数并响个不停,直到按下“停止” 键为止。总而言之,本课题利用at89c52单片机及外围接口实现的抢答系统设计了抢答器,该抢答器增加了新功能、提高了系统的可靠性、简化了电路结构、节约了成本,是一个实用的工程设计。3.总体设计方案3.1 单片机的选择 atmel公司的89c52单片机,是增强型risc内载flash的单片机,芯片上的flash存储器附在用户的产品中,可随时编程,再编程,使用户的产品设计容易,更新换代方便。89c52单片机采用增强的risc结构,使其具有高速处理能力,在一个时钟周期内可执行复杂的指令,每mhz可实现1mips的处理能力。89c52单片机工作电压为2.76.0v,可以实现耗电最优化。由于单片机的种类很多,在选择单片机时要依据实际设计要求选择合适的单片机。例如当设计仅仅需要一个单片机定时器那么选择89c1051或89c2051即可,而不选择89c52,因为后者的价格较高一些。当然若程序和数据区的要求较高那么选择的单片机还要满足程序空间的要求。表2-1 51和52的比较 数据存储器程序存储器定时器中断51系列128b4kb2552系列256b8kb38 在本课题中,由于程序代码生成的.hex格式的文件大小可能大于4kb,所以选用52系列单片机,即选用atmel公司的at89c52。3.2抢答器方案论证抢答器同时供8名选手或8个代表队比赛,分别用8个按钮sw1-sw8表示。设置一个抢答控制开关start,该开关由主持人控制。同时抢答器具有锁存与显示功能。即选手按动按钮,锁存相应的编号,并在led数码管上显示,同时扬声器发出报警声响提示。选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统重置为止。抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如30秒)。当主持人启动开始键后,定时器进行减计时,当进入5s倒计时时扬声器发出短暂的声响,声响持续的时间0.4秒左右。参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统重置为止。如果定时时间已到,无人抢答,本次抢答无效,定时显示器上显示ff00。我们利用单片机可以用很少元件实现相同功能,而且单片机性能稳定,可操作性强。可以只用p0口连接上拉电阻,完成驱动led的功能,串接按键可以由选手自己控制抢答机会,利用txd接移位脉冲做时钟信号。利用单片机程序判断选手按键是否有效,选手违规抢答,利用简单程序显示选手序号,启动蜂鸣器并不间断,告诉主持人有人违规操作,抢答无效。给出相应的延时,选手按正常的操作抢答,软件倒记时,利用74hc573锁存8段数码管,实现倒记时显示时间,到5秒相应时间提醒选手时间快到了,要及时作答,并启动蜂鸣器。如果有选手在规定的时间以前完成问题,主持人通过按键重置,开始新的问题作答,因为程序不是很大不需要扩展存储空间,选手按键跳入相应的子程序,回答倒记时,通过单片机实现功能可以更人性化,只需单电源供电更方便,容易实现。电路结构简单,外围扩展的电路不是很多,锻炼我们所学的知识应用到现实生活当中,所以我们选用单片机加一定的外围设备实现本次课程设计的要求。4.硬件设计4.1总体设计结构图 数字抢答器的总体设计结构见图4-1:图4-1数字抢答器总体结构图4.2最小系统电路设计4.2.1时钟频率电路图 单片机必须在时钟的驱动下才能工作.由之前所学的单片机原理最小系统内容,在单片机内部有一个时钟振荡电路,只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,决定单片机的工作速度,晶振电路的选择在软件部分有描述。 时钟频率电路见图4-2:图4-2时钟频率电路图4.2.2复位电路图设计 单片机的第9脚rst为硬件复位端,只要将该端持续4个机器周期即4us的高电平即可实现复位,复位后单片机的各状态都恢复到初始化状态,复位按钮按下后即可输入高电平。 复位时间计算:当取100us时为高电平,所以可以达到复位作用。复位电路见图4-3所示:图4-3复位电路图4.3输入电路设计4.3.1键盘扫描电路的设计在单片机应用中键盘用得最多的形式是独立键盘及矩阵键盘。本实验用的是独立式键盘,图中sw1-sw8分别表示选手1到8号。键盘扫描电路图见图4-4:图4-4抢答器独立键盘图4.3.2功能键系统设计功能键是控制系统功能的按键,由于电压和电流都比较小所以选择普通的按钮开关,如型号为:td-03b,可以满足条件。功能键及对应的功能见表4-1:表4-1 功能键及对应功能序号字符功能1start开始2props道具3snatch抢答置数4answer回答置数5push_1s时间加1s6reduce_1s时间减1s7stop停止功能键系统结构图见图4-5:图4-5功能键系统结构图4.4输出电路设计4.4.1 蜂鸣器电路设计 声音的频谱范围约在几十到几千赫兹,若能利用程序来控制单片机某个口线的“高”电平或低电平,则在该口线上就能产生一定频率的矩形波,接上喇叭就能发出一定频率的声音,若再利用延时程序控制“高”“低”电平的持续时间,就能改变输出频率,从而改变音调,使喇叭发出不同的声音,蜂鸣器选择的型号为:gpc1407yb,参数为:电压:325vp-p,灵敏度:min 75 db这个蜂鸣器的工作电压可以在5v电源下工作,且p3口不需要上拉电阻。其蜂鸣器发声电路如图4-6所示:图4-6蜂鸣器发声电路结构图:4.4.2 数码管显示电路 led显示器,实现七段数码管的显示四位十六进制数。来进行倒计时,即来限制抢答的时间,其中前两位显示选手号,后两位显示时间。其中数码管的显示可以分为两种:静态显示和动态显示。静态显示的段选位和位选位均单独连接,因此占用的i/o接口多,无法扩展多个数码管,在这种采用这种方式,必须要给led恒定的电压,要求电压一直保持,所以一般在led和单片机之间加锁存器,这种显示方式亮度高,编程较简单,结构清晰,管理也较简单,占用的cpu时间少。动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共端com增加位选通控制电路,位选通由各自独立的i/o线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通com端电路的控制,所以我们只要将需要显示的数码管选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的com端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的i/o端口,而且功耗更低。 从电路上,按数码管的接法不同又分为共阴和共阳两种。本次设计采用共阴型,型号为gn-5461ah。选上拉电阻时:500ua x 8.4k= 4.2即选大于8.4k时输出端能下拉至0.8v以下,此为最小阻值,再小就拉不下来了。为了方便选取10k电阻。其数码管显示电路如图4-6所示:图4-6数码管显示电路结构图:数码管显示与数据输入的关系见表4-2:表4-2对应关系表序号数值数码管显示10x3f020x06130x5b240x4f350x66460x6d570x7d680x07790x7f8100x6f9110x71f120x76h130x00灭140x79e150x54n160x5ed4.4.3 数码管显示电路选手抢答输入显示电路,但选手选择时,可以通过数码管显示,同时可以通过二极管显示电路显示,显示电路电阻计算:由于二极管两端电压为3v,通过电流应为(5-3)/0.02=100欧姆。选手抢答输入显示电路如图4-7所示:图4-7选手抢答输入显示电路图:5.软件设计5.1主程序结构图系统初始化模块按键模块非法抢答模块正确抢答模块调整抢答时间调整回答时间模块数码显示模块图5-1软件系统结构图5.2主程序流程图流程图是使用图形表示算法的思路是一种极好的方法,不论采用何种程序设计方法,程序总体结构确定后,一般以程序流程图的形式对其进行描述。总体框图中的各个子模块或各个子任务也应该结合具体的教学模型和算法画出较详细的程序流程图,供后面编写具体程序和阅读程序使用。流程图是由一些图框和流程线组成的,其中图框表示各种操作的类型,图框中的文字和符号表示操作的内容,流程线表示操作的先后次序。流程图的基本结构为顺序结构,分支结构(又称选择结构),循环结构。主程序流程如图5-2所示:显示ffff开始键加一键减一键回答时间 调整抢答时间是否提前非法抢答处理显示犯规正常抢答 显示抢答号并倒计时y yy 初始化结束图5-2主程序流程图5.3主要程序分析 延时函数:通过软件和晶振电路的配合实现提供1ms的延时程序,当调用ms函数时,通过嵌套调用10次100us、再调用2次50us、最后调用10次5us来实现1ms的输出。 当调用到_nop_()时,需要调用机器周期,为了得到1us的机器周期,所徐晶振的大小计算如下: 所以在选择时钟电路时晶振可以选择12mhz的,但又考虑到实验中的误差所以选择11。0592mhz的晶振,型号为um-5。 延时函数的流程图如图5-3所示。5-3 延时函数流程图程序见附录4: 蜂鸣器发声函数:蜂鸣器发声的原理是不同的频率输出发出不同的声音,但是本电路对声音要求不是很高,所以只需要蜂鸣器发出声音即可,即通过函数实现蜂鸣器每秒发出0.4s声音频率。 蜂鸣器发声的流程图如图5-4所示。5-4蜂鸣器发声函数流程图程序见附录4: 键盘扫描函数:由于单片机扫描的速度很快,所以依次用if判断每一个按键即可,当有一个按键被按下时实现对输出信号变量赋值,同时跳出循环即可。键盘扫描的函数流程图如图5-5所示。5-5 键盘扫描的函数流程图程序见附录4: 抢答开始函数:抢答开始时通过倒计时函数对抢答时间进行计数,在显示的过程中可以实现抢答、回答、结束等操作,当时间小于5s时,蜂鸣器回发出响声提醒。 抢答开始函数的流程图如图5-6所示。yynn5-6 抢答开始函数流程图程序见附录4: 显示器显示函数:由于数码管扫描的速度很快所以不能看出数码管显示断裂,从而实现数码管动态显示。 显示器显示函数的流程图如图5-7所示。5-7显示器显示函数流程图程序见附录4:6.protues和keil仿真6.1 proteus软件的介绍及使用6.1.1什么是proteus软件proteus软件是labcenter electronics公司的一款电路设计与仿真软件,它包括isis、ares等软件模块,ares模块主要用来完成pcb的设计,而isis模块用来完成电路原理图的布图与仿真。proteus的软件仿真基于vsm技术,它与其他软件最大的不同也是最大的优势就在于它能仿真大量的单片机芯片,比如mcs-51系列、pic系列等等,以及单片机外围电路,比如按键、led、数码管等等。通过proteus仿真软件的使用我们能够轻易地获得一个功能齐全、实用方便的单片机实验室。6.1.2 怎样操作proteus仿真软件我使用的protues软件是7.10版本的,仿真时只需在at89c52单片机中加载keil软件生成的.hex格式文件,即可启动仿真。6.2 keil软件的介绍及使用6.2.1什么是keil软件keil c51是美国keil software公司出品的51系列兼容单片机c语言软件开发系统,与汇编相比,c语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。keil提供了包括c编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境、将这些部分组合在一起。运行keil软件需要win98、nt、win2000、winxp等操作系统。如果你使用c语言编程,那么keil几乎就是你的不二之选,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。6.2.2 怎样操作keil仿真软件我使用的keil软件是keil uvision4版本的,protues仿真前要通过工程选项,在output选项卡把生成.hex文件勾选上,然后编译生成.hex文件供protues软件仿真使用。6.3抢答器protenus软件的仿真绘制抢答器的软件仿真图步骤分一下四步:(1)查找所需要的元器件;(2)根据电路图进行连线;(3)是用来写线所对应的坐标,即下图所示的p11等坐标;(4)加载所写完的c程序生成的.hex文件即可以仿真。通过以上步骤,来实现抢答器设计的仿真实现,仿真如下图所示:仿真开始时的仿真如图6-1:图6-1 开始时的proteus仿真图抢答开始时犯规的仿真如图6-2: 图6-2 抢答开始时犯规的proteus仿真图抢答开始时正常的仿真如图6-3: 图6-3 抢答开始时正常的proteus仿真图抢答置数仿真如图6-4: 图6-4抢答置数的proteus仿真图回答置数仿真如图6-5: 图6-5抢答置数的proteus仿真图抢答置数后加1s仿真如图6-6: 图6-6抢答置数后加1s的proteus仿真图抢答置数后减1s仿真如图6-7:图6-7抢答置数后减1s的proteus仿真图回答开始后到50s时点击props按钮后仿真如图6-8: 图6-8点击props按钮后的proteus仿真图倒计时小于5s后的仿真如图6-9: 图6-9倒计时小于5s后的proteus仿真图点击stop按钮仿真如图6-10: 图6-10点击stop按钮的proteus仿真图7.实物制作7.1电路板焊接一般来说,造成硬件问题的首要问题就是焊接了,也就是说焊接的好与坏直接响产品的正常运行。造成焊接质量不高的常见原因是:焊锡用量过多,形成焊点的锡堆积;焊锡过少,不足以包裹焊点。冷焊。焊接时烙铁温度过低或加热时间不足,焊锡未完全熔化、浸润、焊锡表面不光亮(不光滑),有细小裂纹(如同豆腐渣一样!)。夹松香焊接,焊锡与元器件或印刷板之间夹杂着一层松香,造成电连接不良。若夹杂加热不足的松香,则焊点下有一层黄褐色松香膜;若加热温度太高,则焊点下有一层碳化松香的黑色膜。对于有加热不足的松香膜的情况,可以用烙铁进行补焊。对形成的黑膜,要吃净焊锡,清洁被焊元器件或印刷板表面,重新进行焊接才行。焊锡连桥。指焊锡量过多,造成元器件的焊点之间短路。这在对超小元器件及细小印刷电路板进行焊接时要尤为注意。焊剂过量,焊点明围松香残渣很多。当少量松香残留时,可以用电烙铁再轻轻加热一下,让松香挥发掉,也可以用蘸有无水酒精的棉球,擦去多余的松香或焊剂。焊点表面的焊锡形成尖锐的突尖。这多是由于加热温度不足或焊剂过少,以及烙铁离开焊点时角度不当浩成的内。7.2电路板调试 最小系统的电路不工作,首先应该确认电源电压是否正常。用电压表测量接地引脚跟电源引脚之间的电压,看是否符合电源电压,常用的是5v左右。接下来就是检测复位引脚的电压是否正常,ea引脚的电压要正常为5v左右。 如果补焊电源后最小系统还是不能工作,有可能是at89c52单片机坏掉了,重新选择一个at89c52单片机焊接。如果是工作但是不能按需要的功能执行,也可用更换at89c52单片机方法调试,但在此之前可以选择检查对应的模块是否有焊接问题,若没有再进行更换。8.总结和展望8.1科研实践总结 经过近两周的的努力,在老师和同学的商讨和帮助下,我较好的完成了设计任务,通过此次课程设计,我重新认识到了自学的重要性,以及学以致用的道理。我在图书馆查阅了大量的资料,同时也认识到了图书馆的重要作用。通过此次的抢答器的设计,让我重新拾起了以前所学习的电子知识,及我觉得此次设计让我更加巩固了所学的知识并在设计的过程中学会了与时俱进,克服了编程的枯燥感,让我受益匪浅。在学习单片机这门课程的时候,我们应该好好你的记笔记,课下好好的做练习题才能把c程序设计灵活的运用到单片机程序的设计上,在单片机这门课程的学习上,我们还应该知道一种常用的仿真软件proteus软件,可以让你我们更为清晰的掌握at89c52单片机的实际应用上的设计。在今后的学习过程中,应该多到图书馆看一些专业方面的书籍,以丰富自己的知识。也使我加深了对单片机及接口技术的理解和应用,由于知识水平的局限,设计中可能会存在着一些不足,我真诚的接受老师和同学的批评和指正。8.2对未来的展望 经过两周的科研实践,我深刻明白了理论知识与社会实践相结合的道理,也得到了以前书本知识所不曾得到的知识,更加明白了如今信息时代电子技能知识的重要性。 本设计增强了我对单片机、c语言等技能方面的认识,掌握了分析、处理问题的方法、逻辑思维能力等基本技能的训练,具有了一定程度的实际工作能力。 面对如此激烈的市场竞争体系,只有努力掌握好单片机知识方可在竞争中立于不败之地,我对从事电子设计、c语言编程和研究产生了浓厚的兴趣。希望自己以后能通过自己的不懈努力取得更大的进步。 从上述单片机计术的发展现状与趋势来看,可以认为单片机又一次进入了蓬勃发展的新高潮。而这一次发展高潮涉及的范围更广,技术更新更难,影响力和影响面也更宽,势必对整个信息产业产生更加深远的影响,也将对下一世纪的社会经济发展产生巨大影响,值得密切注视和研究。附录1.参考文献1 高伟.单片机原理及应用m.北京:国防工业出版社,2008年.2 李增生.对抢答器的改进j.电子制作,2008年.3 蔡朝阳.单片机控制实习与专题制作m.北京:北航出版社,2006年. 4 范力旻.单片机原理及应用技术.电子工业出版社.5 胡文金 杨健.单片机应用技术实训教程.重庆大学出版社. 6 杨加国.单片机原理与应用及c51程序设计.清华大学出版社,2006年.7 胡汉才.单片机原理与接口技术m.北京:清华大学出版社,1998年.8 郭培源.电子电路及电子器件.高等教育出版社,2003年.9 张齐 朱宁西.单片机应用系统设计实验(c51).电子工业出版社,2013年.2.元器件清单序号文字标号名称数量规格型号备注1r1-r9电阻器91k2r10电阻器12003r11-r18电阻器81004c1、c2电容230pf无极性5c3电容110uf有极性6u1单片机1at89c527u2锁存器174hc57374hc3737led显示器1gn-5461ah8d1-d8二极管8led-red9sw1-sw8按钮8td-03b10start等按钮8td-03b11ls1蜂鸣器1gpc1407yb12x1晶振1um-513vcc电源15v14key1开关1控制电源15d9二极管1led-green3.原理图4.程序代码(c语言):/*名称:八路智能抢答器说明:通过at89c52实现抢答器的功能*/#include#include#define uchar unsigned char#define uint unsigned int/*变量定义*/sbit sw1=p10;sbit sw2=p11;sbit sw3=p12;sbit sw4=p13;sbit sw5=p14;sbit sw6=p15;sbit sw7=p16;sbit sw8=p17;sbit start_button=p30;sbit props_button=p31;sbit snatch_button=p32;sbit answer_button=p33;sbit push_button=p34;sbit reduce_button=p35;sbit stop_button=p36;sbit beep=p37;uint flag=0;uint snatch_flag=1;uint answer_flag=0;uint a,b,c,d,x;uchar state=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x71,0x76,0x00,0x79,0x54,0x5e; /*数据依次表示数字0-9和字母f、h,以及 end。*/*函数声明*/void inituart(); /初始化函数void time(uint ucms); /延时函数void play(); /蜂鸣器发声函数void start(); /开始函数void stop(); /终止函数void props(); /道具函数void snatch(); /抢答置数函数void answer(); /回答置数函数void push(); /时间加1s函数void reduce(); /时间减1s函数void display(); /显示器显示函数void keyscan(); /选手按钮扫描函数/*主函数*/void main()x=30;inituart();while(1)if(!flag)keyscan();if(a!=10&!flag)for(;a!=12;)play();if(!start_button&a=10)flag=1;start();if(!snatch_button)flag=0;snatch();if(!answer_button)flag=1;answer();if(!push_button)push();if(!reduce_button)reduce();display();/*初始化程序*/void inituart()a=10,b=10,c=10,d=10;beep=0;p2=0xee;p0=state10;time(1);p2=0xed;p0=state10;time(1);p2=0xeb;p0=state10;time(1);p2=0xe7;p0=state10;time(1);/*延时程序*/*delay_5us*/void delay_5us(void) /延时5us _nop_(); _nop_(); /*delay_50us*/void delay_50us(void) /延时50us unsigned char i; for(i=0;i0) for(j=0;j10;j+) delay_100us(); ucms-; /*蜂鸣器发声程序*/ void play()uchar i;for(i=1;i100;i+) bee

温馨提示

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

评论

0/150

提交评论