基于单片机的八路抢答器_第1页
基于单片机的八路抢答器_第2页
基于单片机的八路抢答器_第3页
基于单片机的八路抢答器_第4页
基于单片机的八路抢答器_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

1、目目 录录设计总说明 .IINTRODUCTION.II第 1 章 绪论.11.1 课题研究现状.11.2 目的与意义.21.3 课题研究的内容.2第 2 章 系统总体方案设计.22.1 设计要求.22.2 方案选择.3第 3 章 系统硬件设计.43.1 八路抢答器整体方案设计.43.1.1 系统概述.43.1.2 系统框图.43.2 最小系统模块.53.2.1 STC89C52 简介.53.2.2 最小系统电路.73.3 键盘扫描电路.83.4 蜂鸣器报警电路.93.5 数码管显示模块.10第 4 章 系统软件设计.114.1 总体程序设计.114.2 抢答/答题时间设置.134.3 数码管

2、动态扫描程序.13第 5 章 总结.15参考文献.16附录一:原理图.16附录二:元件清单.17附录三:C 语言程序.17基于单片机的八路抢答器第 1 章 绪论1.1 课题研究现状 随着我国抢答器市场的迅猛发展,与之相关的核心生产技术应用与研发必将成为业内企业关注的焦点。技术工艺,是衡量一个企业是否具有先进性,是否具备市场竞争力,是否能不断领先于竞争者的重要指标依据。了解国内外抢答器生产核心技术的研发动向、工艺设备、技术应用及趋势对于企业提升产品技术规格,提高市场竞争力十分关键。目前市场上抢答器种类繁多,功能各异,价格差异也很大。那么选择一款真正适合的抢答器就非常重要。抢答器一般分为电子抢答器

3、和电脑抢答器。目前电子抢答器的中心构造一般都是由数字电子集成电路组成,其搭配的配件不同又分为,非语音非记分抢答器和语音记分抢答器。非语音记分抢答器构造很简单,就是一个抢答器的主机和一个抢答按钮组成,在抢答过程中选手是没有记分的显示屏。语音记分抢答器是由一个抢答器的主机、主机的显示屏以及选手的记分显示屏等构成,具有记分等功能。电子抢答器多适用于学校和企事业单位举行的简单的抢答活动。电脑抢答器又分为无线电脑抢答器和有线电脑抢答器。无线电脑抢答器是由主机和抢答器专用的软件和无线按钮构成。无线电脑抢答器利用电脑和投影仪,可以把抢答气氛活跃起来,一般多使用于电台等大型的活动。有线电脑抢答器也是由主机和电

4、脑配合起来,电脑再和投影仪配合起来,利用专门研发的配套八路智能抢答器的设计的抢答器软件,可以十分完美的表现抢答的气氛。抢答器作为一种电子产品,早已广泛应用于各种智力和知识竞赛场合,但目前所使用的抢答器有很多的缺点,有的电路较复杂不便于制作,可靠性低,实现起来很困难;有的则用一些专用的集成块 ,而专用集成块的购买又很困难。而我所设计的八路智能抢答器,具有元件普通 ,易于购买等优点,很好地解决了制作困难和难于购买的问题。在国内外已经开始普遍应用。1.2目的与意义在知识比赛中,特别是做抢答题目的时候,在抢答过程中,为了知道哪一组或哪一位选手先答题,必须要设计一个系统来完成这个任务。如果在抢答中,靠视

5、觉是很难判断出哪组先答题。怎样来设计抢答器,能使以上问题得以解决?即使两组的抢答时间相差几微秒,也可分辨出哪组优先答题?通过研究并在设计验证后发现,采用单片机技术设计的抢答器与传统的抢答器相比,首先,电路连接简单,因为大多数功能单元都通过程序设计在单片机内部。第二,工作性能可靠,抗干扰能力优于传统抢答器,并能够解决以上提出的问题。所以本研究是一个实用的工程设计,具有创新性。通过这次设计,掌握 51 单片机的原理,了解简单多功能抢答器组成原理,初步掌握多功能抢答器的调整及测试方法,提高动手能力和排除故障的能力。同时通过本课题设计与装配、调试,提高自己的动手能力,巩固已学的理论知识,建立单片机理论

6、和实践的结合,了解多功能抢答器各单元电路之间的关系及相互影响,从而能正确设计、计算定时计数的各个单元电路。初步掌握多功能抢答器的调整及测试方法。提高动手能力和排除故障的能力。 1.3 课题研究的内容 本系统采用模块化设计智能抢答器,在抢答比赛中广泛应用,各组分别有一个抢答按钮。主持人有开始抢答键、复位键。并可根据具体情况,修改抢答时间和答题时间,原始状态下抢答时间为 30s,回答问题时间为 15s。通过加键和减键修改上述时间,改完后断电后重新上电即可。新时间开始有效,主持人按键开始后,选手开始抢答为有效,数码显示屏显示抢答时间倒计时和选手号,在最后五秒扬声器发生提示。如果主持人没有按下开始键而

7、选手就抢答视为犯规,数码显示屏显示犯规者的代号,扬声器持续发生。主持人可按复位键,新一轮抢答开始。 通过研究并在设计验证后发现,采用单片机技术设计的抢答器与目前常用的抢答器相比,首先,电路连接简单,因为大多数功能单元都通过程序设计在单片机内部,第二,工作性能可靠,抗干扰能力优于目前抢答器。所以本研究是一个实用的工程设计,具有创新性。第 2 章 系统总体方案设计2.1设计要求设计并制作一个功能稳定,外观简洁的实用八路抢答器,基本的要求有:1)可同时提供最多包括 8 个人(组)的抢答数量。2)需由主持人按下开始抢答按键后才视为抢答时间,在这个时间前抢答的,视为违规抢答,要求能显示出违规抢答的选手编

8、号。3)要求当主持人按下开始抢答的按键后,数码管进行抢答时间的倒计时,在这个倒计时结束后,若无人抢答,蜂鸣器报警,提示本轮抢答结束,且这个抢答时间可设置。4)要求具有抢答锁定功能,即某一选手抢到后,其它选手的抢答功能被锁定,无法进行抢答,直至下一轮抢答开始。5)对于抢到题目的选手,要求能显示出该选手的编号,并将其答题时间进行倒计时显示,在倒计时结束后,蜂鸣器报警,提示本次答题时间到,且这个抢答时间可设置。2.2 方案选择根据目前市场上抢答器的种类,抢答器的种类可以大体分为三种,以下我们对这三种进行详细比较。 方案一: 抢答器系统的各部分均采用中小规模集成数字电路,利用硬件电子元器件实现,用机械

9、开关按钮作为控制开关,完成抢答输入信号的触发。如采用 74LS148 优先编码器来实现抢答功能等。该方案的特点是中小规模集成电路应用技术成熟,性能可靠,能方便地完成选手抢答的基本功能,没有软件的设计部分,不需要编程,但是电路结构复杂,调试困难,涉及到的外围元器件很多,造成抢答器的成本较高,并且制作过程工序比较烦琐,不便于安装与调试,给实际操作带来很大的麻烦。 方案二:系统设计主要基于可编程的 PLC 设计,系统包括硬件和软件两大部分,依据控制系统的工作原理和技术性能,将硬件和软件分开设计。硬件设计部分包括电路原理图、合理选择元器件、绘制线路图,然后对硬件进行调试、测试,以达到设计要求。软件设计

10、部分,首先在总体设计中完成系统总框图和各模块的功能设计,选择合适的编程语言和工具,进行代码设计等;最后是对软件进行调试、测试,达到所需功能要求。 方案三:系统采用 STC89C52 单片机作为控制核心,其片内带有8KflashROM,128 的 RAM,以及 32 根 I/O 口线能满足设计要求。该系统可以完成运算控制、信号识别以及显示功能的实现。利用单片机程序判断选手按键是否有效,但是选手违规抢答,利用简答程序显示,启动蜂鸣器报警,告诉主持人有人违规操作,抢答无效。给出相应的延时,选手按正常的操作抢答,软件倒计时,利用数码管的动态扫描,实现倒计时显示时间,到 5 秒相应时间提醒选手时间快到了

11、,要及时作答,并启动蜂鸣器。由于用了单片机,使其技术比较成熟,应用起来方便、简单并且单片机周围的辅助电路也比较少,便于控制和实现。整个系统具有极其灵活的可编程性,能方便地对系统进行功能的扩张和更改性。方案比较分析:从第一个方案我们可以看出,这个抢答器是由抢答电路,定时电路,报警电路,时序控制电路四个关键电路部分组成。扩展电路是由秒钟脉冲信号产生电路,译码电路,显示电路等,它的功能很齐全,设计的电路也很稳定。但是它的造价却很高,仅仅是集成电路他就用了八个,这个跟我们当初的设计理念是相冲突的。我们要的是功能齐全,但是造价比较低的设计。所以我们放弃这个方案。而方案二采用可编程 PLC 设计实现的抢答

12、器,但该系统的投入成本过于高昂,软件编程过于繁琐,对编程的语言掌握程度要求很高,而且其 PLC 在该领域的应用很少,普通人对 PLC 的理解及掌握都不是很深入,鉴于通用性和节省的原则,我们依然不采用该方案。方案三采用单片机为核心器件,外围电路采用集成芯片,其可靠性好,结构简单,不但从性能上优于方案一和方案二,而且在使用上及其功能的实现上都较其他方案简洁,并且由于单片机具有优越的高集成电路性,使其工作速度更快、效率更高。另外单片机采用 12MHz 的晶振,提高了信号的测量精度,并且使该系统可以通过软件改进来扩张功能。该模式充分体现了原有系统性能的改进,功能的扩展及其他同类系统的不同之处,它包括硬

13、件逻辑图与软件流程图,比较经济实用,所以我们选用单片机的方案。第 3 章 系统硬件设计3.1 八路抢答器整体方案设计3.1.1 系统概述整个系统以 STC89C52 单片机为核心器件,其它个模块围绕着单片机展开。输入部分包括 2 个内容,一个是选手的抢答输入,另一个是主持人的控制输入,由于这两个内容都是通过按键控制的,所以这里统一使用普通的轻触开关作为本设计的输入模块,一共包括 8 个选手输入按键和 2 个主持人输入按键。输出部分则采用蜂鸣器加四位共阳数码管进行声光的输出,蜂鸣器主要起到报警的作用,这里主要有几个需蜂鸣器发出报警的地方,如最后 5 秒仍无人抢答、答题剩余最后 5 秒、抢答时间结

14、束以及答题时间结束等。而数码管则主要用于信息的输出,包括当主持人按下开始抢答按键后,显示 30 秒(默认)的倒计时,当有选手违规抢答时,显示违规选手的编号,有人抢到题目时,显示选手编号以及该选手剩余的答题时间。3.1.2 系统框图3.1 对讲机系统框图STC89C52最小系统主持人控制输入数码管显示模块选手抢答输入蜂鸣器报警模块3.2 最小系统模块3.2.1 STC89C52 简介(1)概述STC89C52 是一个低电压,高性能 CMOS 8 位单片机,片内含 8k bytes 的可反复擦写的 Flash 只读程序存储器和 256 bytes 的随机存取数据存储器(RAM),器件采用ATMEL

15、 公司的高密度、非易失性存储技术生产,兼容标准 MCS-51 指令系统,片内置通用 8 位中央处理器和 Flash 存储单元,功能强大的 AT89C52 单片机可为您提供许多较复杂系统控制应用场合。 STC89C52 有 40 个引脚,32 个外部双向输入/输出(I/O)端口,同时内含 2 个外中断口,3 个 16 位可编程定时计数器,2 个全双工串行通信口,2 个读写口线。STC89C52有 PDIP、PQFP/TQFP 及 PLCC 等三种封装形式,以适应不同产品的需求。 (2)主要功能特性 兼容 MCS51 指令系统; 8k 可反复擦写(1000 次)Flash ROM; 32 个双向

16、I/O 口; 256x8bit 内部 RAM ; 3 个 16 位可编程定时/计数器中断;时钟频率 0-24MHz; 2 个串行中断; 可编程 UART 串行通道; 2 个外部中断源; 共 8 个中断源; 2 个读写中断口线; 3 级加密位; 低功耗空闲和掉电模式; 软件设置睡眠和唤醒功能;(3)8051 单片机的引脚功能MCS-51 系列单片机一般采用 40 个引脚,双列直插式封装,用 HMOS 工艺制造,其外部引脚排列如图 3.2 所示。其中,各引脚的功能为:P101P112P123P134P145P156P167P178RESET9P30/RXD10P31/TXD11P32/INT012

17、P33/INT113P34/T014P35/T115P36/WR16P37/RD17XTAL218XTAL119GND20P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE30EA31P0732P0633P0534P0435P0336P0237P0138P0039VCC40图 3.2 STC89C52(1)主电源引脚Vcc(40 脚),接5V 电源正端;Vss(20 脚),接5V 电源地端;一般 Vcc 和 Vss 间应接高频去耦电容和低频滤波电容。(2)外接晶体或外部振荡器引脚XTAL1(19 脚),接外部晶振的一个引脚。在单片机内部,它是一个

18、反相放大器的输入端,这个放大器构成了片内振荡器 OSC。当采用外部振荡器时,此引脚应接地。XTAL2(18 脚),接外部晶振的另一个引脚。在片内接至反相放大器的输出端和内部时钟电路的输入端。当采用外部振荡器时,此脚接外部振荡器的输出端。(3)控制信号线RST/VPD(9 脚),复位信号输入端,复位/掉电时内部 RAM 的备用电源输入端。ALE/(30 脚),地址锁存允许/编程脉冲输入,用 ALE 锁存从 P0 口输出的低 8 位地址;在对片内 EPROM 编程时,编程脉冲由此输入。PSEN/(29 脚),外部程序存储器读选通信号,低电平有效。 EA(31 脚),访问外部存储器允许/编程电压输入

19、。EA 为高电平时,访问内部存储器;低电平时,访问外部存储器。(4)多功能 I/O 口引脚8051 单片机设有 4 个双向 I/O 口(P0、P1、P2、P3),每一组 I/O 口线都可以独立地用作输入或输出口,其中:P0 口(3239 脚)双向口(三态),可作为输入/输出口,可驱动 8 个 LSTTL门电路。实际应用中常作为分时使用的地址/数据总线口,对外部程序或数据存储器寻址时低 8 位地址与数据总线分时使用 P0 口:先送低 8 位地址信号到 P0 口,由地址锁存信号 ALE 的下降沿将地址信号锁存到地址锁存器后,再作为数据总线的口线对数据进行输入或输出。 P1 口(18 脚)准双向口(

20、三态),可驱动 4 个 LSTTL 门电路。用作输入线时,口锁存器必须由单片机先写入“1”,每一位都可编程为输入或输出线。 P2 口(2128)准双向口(三态),可驱动 4 个 LSTTL 门电路。可作为输入/输出口,实际应用中一般作为地址总线的高 8 位,与 P0 口一起组成 16 位地址总线,用于对外部存储器的接口电路进行寻址。 P3 口(1017 脚)准双向口(三态),可驱动 4 个 LSTTL 门电路。双功能口,作为第一功能使用时,与 P1 口一样;作为第二功能使用时,每一位都有特定用途,其特殊用途如表 3.1 所示:表 3.1 P3 口第二用途3.2.2 最小系统电路STC89C52

21、 的最小系统如图 3.3 所示,整个最小系统由 4 个部分组成,晶振电路部分、复位电路部分、P0 口上拉电路部分以及程序下载口部分。30pF 的电容 C4 和 C5,以及 12M 的晶振 X1 构成了单片机的晶振电路,2 个小电容的作用是帮助 X1 起振。复位电路由 10uF 的极性电容 C1 和 10K 的电阻 R2 构成,本复位电路包括上电自复位和按键复位 2 个功能。由于 STC89C52 的 P0 口是漏极开路输出,而本设计是将 P0 口用作数码管的数据口,因此在 P0 口接了一个 10K 的排阻,使得 P0 口可以作为普通的 I/O 口使用,最后,为了方便调试和下载,还把 P30、P

22、31、GND 和 VCC 这 4 个引脚通过排针引出来作为程序的下载口。端口引脚第二功能注 释P3.0RXD串行口数据接收端P3.1TXD串行口数据发送端P3.2/INT0外中断请求 0P3.3/INT1外中断请求 1P3.4T0定时/计数器 0 外部计数信号输入P3.5T1定时/计数器 1 外部计数信号输入P3.6/WR外部 RAM 写选通信号输出P3.7/RD外部 RAM 读选通信号输出P101P112P123P134P145P156P167P178RESET9P30/RXD10P31/TXD11P32/INT012P33/INT113P34/T014P35/T115P36/WR16P37

23、/RD17XTAL218XTAL119GND20P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE30EA31P0732P0633P0534P0435P0336P0237P0138P0039VCC40U1STC89C5212X112MC430pFC530pFGNDGNDVCCVCCC110uFR210KGNDVCCK9P00P01P02P03P04P05P06P071234J2VCCGND123456789J1K10K1K2K3K4K5K6K7K8BEEP图 3.3 单片机最小系统3.3 键盘扫描电路键盘是人与单片机打交道的主要设备。站在系统监控

24、软件设计的立场上来看,仅仅完成键盘扫描,读取当前时刻的键盘状态是不够的,还有不少问题需要妥善解决,否则,人们在操作键盘就容易引起误操作和操作失控现象。在单片机应用中键盘用得最多的形式是独立键盘及矩阵键盘。它们各有自己的特点,其中独立键盘硬件电路简单,而且在程序设计上也不复杂,一般用在对硬件电路要求不高的简单电路中;矩阵键盘与独立键盘有很大区别,首先在硬件电路上它要比独立键盘复杂得多,而且在程序算法上比它要烦琐,但它在节省端口资源上有优势得多,因此它更适合于多按键电路。其次就是消除在按键过程中产生的“毛刺”现象。这里采用最常用的方法,即延时重复扫描法,延时法的原理为:因为“毛刺”脉冲一般持续时间

25、短,约为几 ms,而我们按键的时间一般远远大于这个时间,所以当单片机检测到有按键动静后再延时一段时间后再判断此电平是否保持原状态,如果是则为有效按键,否则无效。本设计中采用了独立键盘的方式,本设计中有 8 个抢答按键输入,一个复位按键以及一个主持人使用的开始抢答按键,同时为了简化电路设计,节约单片机的 IO 口资源,将设置抢答时间和答题时间等这些功能按键复合到了 8 个选手的抢答按键中。按GNDK1K2K3K4K5K6K7K8K9K1K2K3K4K5K6K7K8K9GND键的连接图 3.4 所示:图 3.4 按键电路3.4 蜂鸣器报警电路 由于蜂鸣器工作时,需要的电流比较大,单片机的 IO 口

26、输出的电流又比较小,所以这里利用三极管的开关管功能来控制蜂鸣器发音,本设计选用的三极管型号是 PNP三极管 S8550,而且本设计选用的蜂鸣器属于有源蜂鸣器,即在蜂鸣器内部已经内置了震荡电路,单片机无需连续发出高低电平来驱动它,而只要输出高(或低)电平即可,这大大简化了单片机程序的设计,由于选用的是 PNP 型而单片机上电 IO 口默认是高电平的,所以上电时蜂鸣器是不会发出鸣叫的。蜂鸣器电路如图 3.5 所示。BEEP1Q58550VCCGNDBEEP图 3.5 蜂鸣器电路C110uFR210KGNDVCCK103.5 数码管显示模块显示功能与硬件关系极大,当硬件固定后,如何在不引起操作者误解

27、的前提下提供尽可能丰富的信息,全靠软件来解决。在这里我们使用的是七段数码管显示,通常在显示上我们采用的方法一般包括两种:一种是静态显示,一种是动态显示。其中静态显示的特点是显示稳定不闪烁,程序编写简单,但占用端口资源多;动态显示的特点是显示稳定性没静态好,程序编写复杂,但是相对静态显示而言占用端口资源少。在本设计中根据实际情况采用的是动态显示方法。数码管还分共阳型和共阴型,本设计采用的是 4 位共阳数码管。通过查表法,将其在数码管上显示出来,其中 P0 口为字型码输入端,P2 口低 4 位为字选段输入端。在这里我们通过查表将字型码送给 7 段数码管显示的数字,4 位七段数码管显示电路如图3.6

28、 所示。其中 A、B、C、D、E、F、G、DP 段分别接到单片机的 P0 口,由单片机输出的 P0 口数据来决定段码值,位选码 W1、W2、W3、W4 分别接到单片机的P20、P21、P22 以及 P23 上,由单片机来决定当前该显示的是哪一位。由于单片机的 IO 口驱动电流不够,这里还使用了 4 个 NPN 的三极管 S8050 作为开关管,来驱动数码管的位选。E1D2dp3C4G546B73829F10A11112Dpy1Dpy4Red_CAP00P01P02P03P04P05P06P07W1W2W3W4Q18050Q28050Q38050Q48050VCCVCCVCCVCCW1W2W3W

29、4图 3.6 数码管显示电路第 4 章 系统软件设计4.1 总体程序设计 八路抢答器的整体程序流程图如图 4.1 所示,程序从定时器的初始化开始,这里用到了单片机的 2 个定时器,1 个用于数码管的动态扫描,另一个用于答题时间的计时。接着程序开始判断是否进入抢答时间设置,如果有则进入抢答时间设置模式,没有则继续判断是否进入答题时间设置,如果有则进入答题时间设置模式,没有则跳出,进入主程序的大循环。进入大循环之后,就扫描是否有按键按下,有的话就判断是哪个按键,如果是主持人按下了开始抢答按键,则进入抢答模式,如果是选手按下了抢答减,则蜂鸣器报警,此时有选手违规抢答(即在主持人按下开始抢答按键前就抢

30、答了),同时将违规选手的编号显示在数码管上,直至主持人按下复位键,则清除报警状态。如果一直没检测到按键按下,则一直在大循环里面扫描按键。进入抢答模式后,数码管开始将抢答时间倒计时并显示在数码管上,如果在抢答时间内无人抢答,则在最后 5 秒发出滴滴上的报警,并且 5 秒结束后,蜂鸣器一直鸣叫,表示此轮抢答结束,并且数码管显示“-”,直至主持人按下复位键退出报警。如果在抢答时间内有选手抢答题目时,则在数码管将选手的编号显示出来,并显示答题时间的倒计时,同抢答时间一样,在最后 5 秒会发出滴滴的报警声,答题时间结束后,蜂鸣器也会一直鸣叫,表示此轮抢答结束,直至主持人按下复位键退出报警。 图 4.1

31、八路抢答器程序流程图开始结束是否设置抢答时间是否设置答题时间设置抢答时间设置答题时间是是否等待按键按下否是否违规抢答否是否有选 手抢答答题倒计时发出警报是是否4.2 抢答/答题时间设置为了简化抢答器的硬件电路,所以将抢答时间和答题时间的设置按键和抢答键合并到了一起。如需设置抢答时间时,操作是这样的,先断开抢答器的电源,然后按下按键一(选手一的抢答键),然后上电,系统上电检测到按键一被按下了,那么就进入到抢答时间的设置,通过按键七(减)和按键八(加)来设置答题时间的大小。答题时间的设置也基本类似,只不过是在上电前按下按键二而已。4.3 数码管动态扫描程序为了简化程序,合理利用单片机的内部资源,所

32、以将数码管的动态扫描程序通过定时器来实现。本设计设置的定时器发生中断的时间为 2 毫秒,每次显示四位中的一位,因此,完成四位数码管的扫描需要 8 毫秒的时间,即发生四次定时器中断。第 5 章 总结本文研究设计的八路抢答器采用了通用的电子元器件,利用 STC89C52 单片机及外围接口实现强大系统,利用单片机的定时器、计数器定时和计数的原理,将软硬件有机的结合起来。理论联系实践,体现出大学生的动手能力。通过查资料和收集有关的文献,培养了自学能力和动手能力。并且有原先的被动接受只是转换为主动寻求知识,这可以说是学习方法上的一个很大突破。在以往的传统学习模式下,我们可能会记住很多书本知识,但是通过毕

33、业设计,我们学会了如何将学到的知识化为自己的东西,学会了怎么更好的处理知识和实践相结合的问题,把握重点,攻克难关,学到用到活学活用。在设计过程中由于时间仓促有很多地方难免存在不足之处,但在以后的工作中,我们会严格要求自己最求完美。 在这次毕业设计中,我最想感谢的就是我的指导老师。从我确定课题之后,老师就开始悉心指导我。整个过程多次询问我的进度和遇到的问题,积极引导我如何解决问题,帮我开拓思路。老师一丝不苟的作风,严谨的求实态度,不进只是传授我知识那么简单,更加让我懂得了做人的道理。所以在完成毕业设计之余,不得不感谢我的指导老师。参考文献1 苏平.单片机的原理与接口技术M.北京:电子工业出版社,

34、2006.2 王忠民.微型计算机原理M.西安:西安科技大学出版,20033 纪宗南.单片机外围器件使用手册M.北京:北京航空航天大学出版社. 4 余永权.单片机在控制系统中的应用M.北京:电子工业出版社 5 周润景.张丽娜基于 PROTEUS 的电路及单片机系统设计与仿真M 北京:航空航天大学出版社 6 唐俊翟.单片机原理与应用M.北京:冶金工业出版社.252-267 7 康华光.电子技术基础.数字部分(第四版)M.高等教育出版社.2003附 录附录一:原理图附图 1 对讲机原理图附录二:元件清单附录三:C 语言程序#include #include #define uchar unsigne

35、d char#define uint unsigned intsfr ISP_DATA = 0 xe2; sfr ISP_ADDRH = 0 xe3; sfr ISP_ADDRL = 0 xe4; sfr ISP_CMD = 0 xe5; sfr ISP_TRIG = 0 xe6; sfr ISP_CONTR = 0 xe7; sbit w1 = P23; sbit w2 = P22;/ sbit w3 = P21; sbit w4 = P20; sbit k1 = P10; sbit k2 = P11; sbit k4 = P13; sbit k5 = P14; sbit k7 = P16;

36、 sbit k8 = P17; sbit k9 = P37; sbit bp = P26; / Uchar code ShowDig= 0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90,0 x88,0 x83,0 xc6,0 xa1,0 x86,0 x8e,0 xbf,0 xff;uchar dig4; STC89C521 片12M 晶振1 个30pF 独石电容2 个电解电容 10uF1 个电阻 1K1 个电阻 10K1 个排阻 10K1 片红色 led1 个轻触按键10 个4 位共阳数码管1 个电源开关1 个DC5.5 电

37、源座/电池盒1 个排针(用于下载程序)4 针有源蜂鸣器1 个PNP 三极管 85501 个NPN 三极管 80504 个40 脚 IC 座1 个洞洞板(万用板)1 张电源线(若用电池盒供电则没有)1 根char gWaitTime,gAnswerTime; char gCount,gSecond; void ISP_Disable()ISP_CONTR = 0;ISP_ADDRH = 0;ISP_ADDRL = 0; unsigned char Byte_Read(unsigned int add)ISP_DATA = 0 x00;ISP_CONTR = 0 x83;ISP_CMD = 0 x

38、01;ISP_ADDRH = (unsigned char)(add8);ISP_ADDRL = (unsigned char)(add&0 xff);ISP_TRIG = 0 x46; ISP_TRIG = 0 xB9; _nop_();ISP_Disable();return (ISP_DATA); void Byte_Program(unsigned int add,unsigned char ch)ISP_CONTR = 0 x83;ISP_CMD = 0 x02;ISP_ADDRH = (unsigned char)(add8);ISP_ADDRL = (unsigned c

39、har)(add&0 xff);ISP_DATA = ch;ISP_TRIG = 0 x46;ISP_TRIG = 0 xB9;_nop_();ISP_Disable(); void Sector_Erase(unsigned int add) / ISP_CONTR = 0 x83;ISP_CMD = 0 x03;ISP_ADDRH = (unsigned char)(add8);ISP_ADDRL = (unsigned char)(add&0 xff);ISP_TRIG = 0 x46;ISP_TRIG = 0 xB9;_nop_();ISP_Disable(); voi

40、d DelayMs(uint n)uint x,y; for(x=n;x0;x-) for(y=110;y0;y-); void TimerInit()TMOD = 0 x11; TH0 = (65536-1000)/256; TL0 = (65536-1000)%256; TH1 = (65536-50000)/256; TL1 = (65536-50000)%256; TR0 = 1; ET0 = 1; ET1 = 1; EA = 1; void WaitTimeSet(void)if(k1=0) dig0=ShowDig14;dig1=ShowDig14;dig2=ShowDig14;d

41、ig3=ShowDig14;while(!k1); DelayMs(500); dig1=ShowDig17; dig2=ShowDiggWaitTime/10; dig3=ShowDiggWaitTime%10;while(k1) if(k8=0) DelayMs(250); gWaitTime+; if(gWaitTime=100) / 当自加到 100 时,自动清零gWaitTime=0; Sector_Erase(0 x2000);/ 擦除内部 EEPROM(写入之前必须先擦除) Byte_Program(0 x2000,gWaitTime);/ 将新设置的等待时间写入到内部 EEPR

42、OM 的 0 x2000 这个地址Byte_Program(0 x2001,gAnswerTime);/ 将答题时间写入到内部EEPROM 的 0 x2001 这个地址dig2=ShowDiggWaitTime/10;/ 更新数码管的秒数显式(十位)dig3=ShowDiggWaitTime%10;/ 更新数码管的秒数显式(个位)if(k7=0)/ 判断“减”按键是否被按下DelayMs(250);/ 利用延时去抖gWaitTime-;/ 当前要设置的秒数自减 1if(gWaitTime=-1) / 当自减到-1 时,自动变成99gWaitTime=99; Sector_Erase(0 x20

43、00);/ 擦除内部 EEPROM(写入之前必须先擦除) Byte_Program(0 x2000,gWaitTime);/ 将新设置的等待时间写入到内部 EEPROM 的 0 x2000 这个地址Byte_Program(0 x2001,gAnswerTime);/ 将答题时间写入到内部EEPROM 的 0 x2001 这个地址dig2=ShowDiggWaitTime/10;/ 更新数码管的秒数显式(十位)dig3=ShowDiggWaitTime%10;/ 更新数码管的秒数显式(个位)while(!k1);DelayMs(500); void AnswerTimeSet(void)if(

44、k2=0) / 数码管显示“FFFF”dig0=ShowDig15;dig1=ShowDig15;dig2=ShowDig15;dig3=ShowDig15;while(!k2); DelayMs(500);/ 利用延时去抖dig1=ShowDig17; dig2=ShowDiggAnswerTime/10; dig3=ShowDiggAnswerTime%10;while(k2) if(k8=0)DelayMs(250); gAnswerTime+; if(gAnswerTime=100) gAnswerTime=0; Sector_Erase(0 x2000); / 擦除内部 EEPROM

45、(写入之前必须先擦除)Byte_Program(0 x2000,gWaitTime);/ 将等待时间写入到内部EEPROM 的 0 x2000 这个地址Byte_Program(0 x2001,gAnswerTime);/ 将新设置的答题时间写入到内部 EEPROM 的 0 x2001 这个地址dig2=ShowDiggAnswerTime/10;/ 更新数码管的秒数显式(十位)dig3=ShowDiggAnswerTime%10;/ 更新数码管的秒数显式(个位)if(k7=0)/ 判断“减”按键是否被按下DelayMs(250);/ 利用延时去抖gAnswerTime-;/ 当前要设置的秒数

46、自减 1if(gAnswerTime=-1) / 当自减到-1 时,自动变成 99gAnswerTime=99; Sector_Erase(0 x2000); / 擦除内部 EEPROM(写入之前必须先擦除) Byte_Program(0 x2000,gWaitTime);/ 将等待时间写入到内部EEPROM 的 0 x2000 这个地址Byte_Program(0 x2001,gAnswerTime);/ 将新设置的答题时间写入到内部 EEPROM 的 0 x2001 这个地址dig2=ShowDiggAnswerTime/10;/ 更新数码管的秒数显式(十位)dig3=ShowDiggAnswer

温馨提示

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

评论

0/150

提交评论