- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
单片机综合实验报告
题
目:
8位竞赛抢答器的设计
班
级:
0309410
姓学
名:号:
许高杨
030941020
指导老师: 高林
时 间: 2011.12.28
实验内容:
以单片机为核心,设计一个 8位竞赛抢答器:同时供 8名选手或8个代表队比赛,分别用 8
个按钮S0~S7表示。
设置一个系统清除和抢答控制开关 S,开关由主持人控制。
抢答器具有锁存与显示功能。即选手按按钮,锁存相应的编号,并在优先抢答选手的编号一直保持到主持人将系统清除为止。
抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如 30秒)。
当主持人启动“开始”键后,定时器进行减计时,同时扬声器发出短暂的声响,声响持续的时间为0.5s左右。
参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。
如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示 00。通过键盘改变抢答的时间,原理与闹钟时间的设定相同,将定时时间的变量置为全局变量后,通
过键盘扫描程序使每按下一次按键,时间加 1(超过30时置0)。同时单片机不断进行按键扫描,当参赛选手的按键按下时,用于产生时钟信号的定时计数器停止计数,同时将选手编号(按键号)和抢答时间分别显示在 LED上。
二、实验电路及功能说明
主持人按“抢答开始”键,立刻进入抢答倒计时(预设20S抢答时间),如有选手抢答,会有提示,并会显示其号数,不进行抢答查询,所以第一个按抢答的选手有效。倒数时间到小于5S会每秒响一下提示音。
如倒计时期间,主持人想停止倒计时可以随时按“停止”按键,系统会自动进入准备状态,等待主持人按“抢答开始”进入下次抢答计时。
如果主持人未按“抢答开始”键,则无法按抢答按键。
.
..--qq.
F-■
篇-Hg-笘
罚空为
mJpE
PPP
三、实验程序流程图:
开始
开始
初始化
是
第一组
否
是
第二组
显示
组号
否 是
第三组
否
是
第八组
三、实验结果分析
如图表示5号选手获得抢答机会,剩余18秒抢答时间。
四、心得体会
我觉得通过这次的设计,不仅学会了很多原来没有掌握的理论教科书上的知识,更多是学到了一些理论书上没有的,如设计各种功能电路的方法、修改电路等。在平时的学习中基本不会遇到错误的电路,但现在是自己设计,还要自己发现错误,再自己修改,所以这需要很好的知识基础。很高兴有这样一个锻炼、提高自己的机会。
六、程序清单
#includereg52.h#defineuintunsignedint
#defineucharunsignedchar
/*-----------------------------------------------------------
共阴极数码管编码表0-f显示
------------------------------------------------------------*/
unsignedcharcodetable[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0x08,0x03,
0x46,0x21,0x06,0x0e};
/*-----------------------------------------------------------
变量定义
------------------------------------------------------------*/
sbitstart=P3^6;sbitstop=P3^5;sbitreset=P3^7;sbitkey1=P1^0;sbitkey2=P1^1;sbitkey3=P1^2;sbitkey4=P1^3;sbitkey5=P1^4;sbitkey6=P1^5;sbitkey7=P1^6;sbitkey8=P1^7;sbitbuzzer=P3^4;
bitstart_flag=0;bitstop_flag=0;bitkey1_flag=0;bitkey2_flag=0;bitkey3_flag=0;bitkey4_flag=0;bitkey5_flag=0;bitkey6_flag=0;
bitkey7_flag=0;bitkey8_flag=0;bitreset_flag=0;bitaction=0;
文档评论(0)