- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
智能八路抢答器设计
1引言
1.1设计目的
此设计采用AT89C52单片机为核心控制元件,结合 数码管、蜂鸣器、发光二极管等器件构成一个简易的八 路抢答器。利用了单片机的按键复位电路、时钟电路、 定时中断等电路,设计的抢答器具有实时显示抢答功 能。
1.2设计要求
设计一个可供8人进行抢答的抢答器。
系统设置复位按钮,按动后,重新开始抢答。
2设计方案及原理
2. 1设计方案
复位电路
89C52的复位输入引脚RST为89C52提供了初始化的手段,可以使程序从指定 处开始执行,在89C52的时钟电路工作后,只要RST引脚上出现超过两个机器周期 以上的高电平时,即可产生复位的操作,如果RST保持高电平,则单片机循环复位。 只有当RST由高电平变低电平以后,89C52才从0000H地址开始执行程序。本系统 采用按键复位方式的复位电路。
时钟电路
89C52的时钟可以由两种方式产生,一种是内部方式,利用芯片内部的振荡电 路:另外一种为外部方式。本论文根据实际需要和简便,采用内部振荡方式。89C52 内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是此 放大器的输入端和输出端。这个放大器与作为反馈元件的片外晶体或陶瓷谐振器 一起构成一个自激振荡器。
输入电路
抢答器输入信号由八个小按键控制,八个按铤连接在P2口当有键按下的时候, 就产生了有效的输入信号,使与这个按键相连的引脚变为低电平,产生一个低电平
的输入信号。
2.2系统组成框图
该系统的组成框图如图1所示,在89C52单片机的P2口接上八个开关用于八路 抢答;P3.2口接启动开关,用于主持人控制抢答是否开始;在RST脚接复位开关用 于清零:在P1.0F1接蜂鸣器用于开始提示和超时后报警:在P0口接三个数码管用于 显示倒计时时间和抢答者的编号°该系统还包括时钟电路部分°
复位第一路AT89C52po.po.P2.丄第八路
复位
第一路
AT89C52
po.po.P2.丄
第八路
XTAL1时钟P3.2
XTAL1
时钟
P3.7
图1系统组成框图
3硬件设计
3.1系统总体电路
sis。控样兵套?S林米代Kg笔B峻氣归国。建想0g鼬苴潴归川口 z?【d?o._d .固抱?壬薛玄?鼬更窮冷塁理宏eq?东nod。驴蒸祁§蟹如钳底暗。茎 s$sf^ ?M,S四如毎迂话?撕理添5怛川三帳黯玄关哨
s?g
ZOY/ZOd
WV/9CM
9OV/9Dd XlV/^Od WV/€Od OTV/ZOd UJV/lOd OOY/OOd
一t
N/A Cd IS SZd LSCd SB 皿2d Wild 讷3
。修玄寸瓯导笠吾M6瓯冢出 军名細沒诲辟fflswK国壮?a8gtlzdYsH埠米床归£?話去怨择如争
韻tfffi排地霜Z.S
王安买*遂矯県§
空5戳底詡西家
3.5耳尊册界
昆母5 一SXTAL 一古XTAL2李落SEW否曲鸠芸為演浜其率?答函65:北。
P2 0fA8 P2.VA9 P2 2/A10 P2.3/A11 P2 4/A12 P2 5TA13 P2 6/A14 P27/A15
P3 0/RXD P3.1/TXD P3 2/1NT0 P33INT1
P3.4/TO P351
P3.6M/RP3.7/RD
添區號mw浴沼二邰=±兩沔,或榇*停堆耳骷为ww=4?画m%忘沖-季禾m 枢二声3P3.7 口 矮(?妾占函5骂沐。
POO ADO P01心 P0AD2 P0RAD3
PO4/AD4
PO5/AD5
3心
PO7/AD7
P2 0M P2g P22/A10
3TA11 /A12
?2 5rAl5
F/AU
O3SXD
PS1/TXD
亠圭主
图6时钟电路
4软件设计
4.1程序总体流程
初始化
图7程序总体流程图
4.2分段程序设计
延时程序段,即DelayOffi数。该函数用以调整单片机CPU处理指令的延时, 实现数码管动态扫描显示、蜂鸣器发声等功能。
数码管显示程序段,分为Display_l()和Disp】ay_2()两个函数。前者用于在还 没有选手抢答时显示问题倒计时,后者用于在有选手抢答后,数码管对时间和抢 答成功者编号的显示。
蜂鸣器发声程序段,即ring()函数。用于控制蜂鸣器响一段时间。
程序主函数,即main()o该程序段用于指示单片机整个程序的入口,并设置 好相应的参数、单片机处理的主要任务等。
中断函数interruptOO,用于触发主程序的执行,即打开定时器、开始倒计时 等功能。
定时器运行函数timeO(),用于初始化定时器的初值以触发中断,实现准确倒 计时的功能。该函数的执行使定时器每10ms触发一次中断,每触发100次,即计时 满Is,将倒计时的数字減一。在倒计时未结束时,持续扫描键盘按钮,当有选手抢 答时,将标志位
原创力文档


文档评论(0)