基于51单片机的五路抢答器.doc_第1页
基于51单片机的五路抢答器.doc_第2页
基于51单片机的五路抢答器.doc_第3页
基于51单片机的五路抢答器.doc_第4页
基于51单片机的五路抢答器.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

实习(设计)报告姓 名 班 级 学 号 实习(设计)科目 基于51单片机的五路抢答器 实习(设计)地点 实习(设计)时间 电气工程及自动化学院school of electrical engineering & automation一 实验安排1. 设计一个八路抢答器。2. 必须有主持人按钮,当主持人按下按钮,开始30秒倒计时,这30秒内即是八位选手抢答的时长,若30秒内无人抢答,则视为所有选手弃权。3. 倘若主持人按下开始的30秒内有人抢答,定时到10秒,同时在一屏幕上显示该抢答选手号码,当主持人按下开始答题键时,则倒计时从10秒开始,同时选手号码清零。若10秒内无法回答,则该选手视为题目回答错误。/*五路抢答器c语言程序设计*/#include #define uchar unsigned char#define uint unsigned intsbit wela_hao=p30; /显示选手的数码管位选sbit wela1=p31;sbit wela2=p37;sbit qing=p35;sbit host=p36;sbit answer=p34;sbit key1=p10;sbit key2=p11;sbit key3=p12;sbit key4=p13;sbit key5=p14;uchar hao,shu,shi,ge,t0,start,flag;uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;void init();/*初始函数申明*/void display(uchar shi,uchar ge,uchar hao);void delay(uint z);void keyscan();void main() init(); while(1) if(host=0)/主持人 delay(5); if(host=0) shu=30; hao=0; flag=1; start=1; delay(5); while(!host); if(qing=0)/清零 delay(5); if(qing=0) while(1) shu=0; shi=shu/10; ge=shu%10; tr0=0; delay(5); hao=0; wela1=0; wela2=0; wela_hao=0; delay(1); display(shi,ge,hao); if(host=0)break; delay(5); while(!qing); if(answer=0) /开始答题 delay(5); if(answer=0) flag=1; shu=10; start=1; hao=0; delay(5); while(!answer); if(flag=1) if(start=0) /选手按下,定时10秒 shu=10; shi=shu/10; ge=shu%10; wela1=0; wela2=0; wela_hao=0; delay(1);tr0=0; display(shi,ge,hao); delay(1); if(start=1) /主持人按下,倒计时30秒 wela1=1; wela2=1; wela_hao=1; delay(1); tr0=1; display(shi,ge,hao); delay(1);keyscan(); void init() /*初始化*/ t0=0; t1=0; shi=shu/10; ge=shu%10; flag=0; shu=30; wela_hao=1; hao=0; tmod=0x11; th0=(65536-50000)/256; tl0=(65536-50000)%256; ea=1; et0=1; tr0=0;void display(uchar shi,uchar ge,uchar hao) /*数码管动态扫描*/ wela1=1; wela2=0; p0=tablege; delay(5); wela2=1; wela1=0; p0=tableshi; delay(5); wela_hao=0; p2=tablehao; delay(5);void keyscan() /*按键扫描函数*/ if(key1=0) delay(5);if(key1=0) hao=1; p2=tablehao; start=0; delay(5); while(!key1); if(key2=0) delay(5);if(key2=0) hao=2; p2=tablehao; start=0; delay(5); while(!key2); if(key3=0) delay(5);if(key3=0) hao=3; p2=tablehao; start=0; delay(5); while(!key3); if(key4=0) delay(5);if(key4=0) hao=4; p2=tablehao; start=0; delay(5); while(!key4); if(key5=0) delay(5);if(key5=0) hao=5; p2=tablehao; start=0; delay(5); while(!key5); void delay(uint z) /*延时函数*/ uint x,y; for(x=z;x0;x-) for(y=110;y0;y-);void time0() interrupt 1 /*定时器0*/ th0=(65536-50000)/256; tl0=(65536-50000)%256; shi=shu/10; ge=shu%10; t0+; if(t0=20) t0=0; shu-; shi=s

温馨提示

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

评论

0/150

提交评论