- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(单片机实验1
单片机综合实验报告
题 目: 8位竞赛抢答器的设计
班 级: 0309410
姓 名: 罗勋义
学 号: 030941008
指导老师: 高林
时 间: 2011年12月28日
实验内容:
以单片机为核心,设计一个8位竞赛抢答器:同时供8名选手或8个代表队比赛,分别用8个按钮S0~S7表示。
设置一个系统清除和抢答控制开关S,开关由主持人控制。
抢答器具有锁存与显示功能。即选手按按钮,锁存相应的编号,并在优先抢答选手的编号一直保持到主持人将系统清除为止。
抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如30秒)。
当主持人启动“开始”键后,定时器进行减计时,同时扬声器发出短暂的声响,声响持续的时间为0.5s左右。
参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。
如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。
通过键盘改变抢答的时间,原理与闹钟时间的设定相同,将定时时间的变量置为全局变量后,通过键盘扫描程序使每按下一次按键,时间加1(超过30时置0)。同时单片机不断进行按键扫描,当参赛选手的按键按下时,用于产生时钟信号的定时计数器停止计数,同时将选手编号(按键号)和抢答时间分别显示在LED上。
二、实验电路及功能说明
竞赛抢答器是由AT89C52单片机控制的,有八路选手抢答,该抢答器由四部分组成,主持人按键部分,选手按键部分,显示部分和蜂鸣器部分。该抢答器设有抢答倒计时,在规定倒计时内有人抢答则显示倒计时会停止,没有人抢答则倒计时完毕蜂鸣器响提示主持人抢答无效,以此实现抢答功能。
2.1 硬件设计与实现总体框图
2.2 仿真图
三、实验程序流程图:
实验结果分析
4.1 软件keil的仿真
运行程序,查找语法错误,按照错误提示修改程序,直到0错误0警告为止才算调试成功,生成HEX文件以方便下载到单片机中。仿真结果如图1所示:
图1软件的仿真结果
4.2 硬件的proteus仿真
硬件按照详细设计中的设计连接好总体的系统电路图,将软件仿真生成的HEX文件下载到单片机并运行仿真;仿真结果如图2所示:
图2硬件仿真图
五、心得体会
通过本次设计,让我明白了学以致用的重要性,虽然本次设计的任务不是很难,但设计起来还是需要一些时间和耐心,本次设计中我查阅了很多资料,也对以前学过的一些相关知识作了一定的总结和复习,当然,再设计过程中我也遇到了一些困难,例如,程序调试阶段,一开始程序出了很多问题,一调试错误就是一堆,后来通过查阅相关书籍和网上的资料慢慢的该修改程序,通过这个阶段让我受益匪浅,让我学会了克服困难的精神,当然也加强了我的动手能力。但由于知识水平的局限,设计中可能还存在一些不足,所以在以后的学习中我会加强这方面的不足并加强相关知识的学习。
程序清单
#includereg52.h
#define uchar unsigned char
#define uint unsigned int
uint x,y,shi,ge,zhuchi,haoma,f,a;
uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90 ,0xff};
sbit key1=P1^0; //键盘端口
sbit key2=P1^1;
sbit key3=P1^2;
sbit key4=P1^3;
sbit key5=P1^4;
sbit key6=P1^5;
sbit key7=P1^6;
sbit key8=P1^7;
sbit keyzhu=P3^0;
sbit keyqing=P3^1;
sbit keyf=P3^7; //蜂鸣器端口
sbit wei1=P2^0; //位选端口
sbit wei3=P2^2;
sbit wei4=P2^3;
void delayms(uint xms) //延时函数
{
uint i,j;
for(i=xms;i0;i--)
for(j=120;j0;j--);
}
void init() //初始化
{
TMOD=0x11;
TH0=(65536-50000)/256;
TL0=(65536-50000)
文档评论(0)