C51单片机8路抢答器实训报告_第1页
C51单片机8路抢答器实训报告_第2页
C51单片机8路抢答器实训报告_第3页
C51单片机8路抢答器实训报告_第4页
C51单片机8路抢答器实训报告_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、?单片机与接口技术?课程设计报告抢答系统设计学生姓名: _ _曾超_学 号:_202158264031_班 级:_物联网_指导老师:_刘艳军_日 期:_2021/06/28_TOC o 1-3 h u HYPERLINK l _Toc28915 1 题目与要求 PAGEREF _Toc28915 3 HYPERLINK l _Toc14806 1.1 问题提出 PAGEREF _Toc14806 3 HYPERLINK l _Toc12827 1.2 本系统涉及的知识点 PAGEREF _Toc12827 3 HYPERLINK l _Toc8236 2系统硬件设计 PAGEREF _Toc8

2、236 3 HYPERLINK l _Toc8779 2.1 模块图 PAGEREF _Toc8779 3 HYPERLINK l _Toc1066 2.2 局部模块电路图 PAGEREF _Toc1066 4 HYPERLINK l _Toc32330 PAGEREF _Toc32330 6 HYPERLINK l _Toc26463 3系统软件设计 PAGEREF _Toc26463 6 HYPERLINK l _Toc16815 4 总结 PAGEREF _Toc16815 20 HYPERLINK l _Toc24136 4.1程序调试情况 PAGEREF _Toc24136 20 H

3、YPERLINK l _Toc340 4.2本人在程序设计中感想 PAGEREF _Toc340 22 HYPERLINK l _Toc31576 四参考文献左对齐,宋体粗四号 PAGEREF _Toc31576 221 题目与要求1.1 问题提出实现一个“抢答系统设计。1制作一个8人抢答器,以开关中的某个开关的按下闭合作为抢答按键。 2无人抢答时,8只数码管轮流循环显示18跑马,谁先抢答,数码管停止跑马,8个数码管同时亮谁的编号,并用蜂鸣器发提示音;其后再有人按键,系统不予响应,直到复位键按下,开始下一轮抢答。3主持人端有一个复位键,可重新开始抢答;有一个答案正确的按键,和一个答案错误的按键

4、,按下时有不同的提示音;要想实现8路抢答器,首先要清楚抢答器的功能。需要设置多少个功能键?功能按键通过哪个I/O口控制?对于此系统,我们第一步应该做什么,先完成哪个局部?1.2 本系统涉及的知识点本系统涉及到的知识点有:按键的处理。数码管的动态静态显示。2系统硬件设计2.1 模块图2.2 局部模块电路图1. 4*3矩阵键盘,本系统中只用到3个功能键,故令P14=0控制列线,P11,P12,P3分别为横线,不需要做扫描。分别控制S1,S5,S9.2.8路独立按键,为本系统的8路抢答按键。通过P3口输入控制。 蜂鸣器,接在P15.3系统软件设计延时函数模块代码如下:Void mDelay(unsi

5、gned int Delay)unsigned int i;for(;Delay0;Delay-)for(i=0;i124;i+);主程序函数模块,代码:#includesbit P14=P14;sbit Right=P11;sbit False=P12;sbit P13=P13;sbit Beep = P15;unsigned char table8=0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f;unsigned char wei8=0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdF,0 xbF,0 x7F;void ma

6、in()int i,t;P14=0;/ap1:P3=0 xff;while(1)for(i=0;i8;i+)P2=weii; /从这里开始修改选手编号跑马效果P0=tablei;mDelay(150);if(P3!=0 xff)/r8=P3;switch(P3)case 0 xfe:/for(t=0;t2;t+)/抢答后选手编号闪烁次数/P2=0 xfe;/按下哪一个按键,那么数码管位码送该位。即3号抢答,调到3号数码管,4号抢答跳到4号数码管P0=0 x06;mDelay(500);P0=0 x00;mDelay(500);/while(1)P0=0 x06;P2=0 x00; /此处写蜂鸣

7、器提示音if(Right=0)for(t=0;t3;t+)/抢答后选手编号闪烁次数P2=0 xfe;/按下哪一个按键,那么数码管位码送该位。即3号抢答,调到3号数码管,4号抢答跳到4号数码管P0=0 x06;mDelay(500);P0=0 x00;mDelay(500); Beep=0; mDelay(150); Beep=1; mDelay(150); Beep=0; mDelay(150); Beep=1; mDelay(150); Beep=0; mDelay(500); Beep=1; mDelay(500);if(False=0)for(t=0;t3;t+)/抢答后选手编号闪烁次数

8、P2=0 xfe;/按下哪一个按键,那么数码管位码送该位。即3号抢答,调到3号数码管,4号抢答跳到4号数码管P0=0 xff;mDelay(500);P0=0 x00;mDelay(500); Beep=0; mDelay(500); Beep=1; mDelay(500); Beep=0; mDelay(500); Beep=1; mDelay(500); Beep=0; mDelay(500); Beep=1; mDelay(500);if(P13=0)break; break;case 0 xfd:P2=0 xfd;P0=0 x5b;mDelay(500);P0=0 x00;mDelay

9、(500);while(1)P0=0 x5b;P2=0 x00;if(Right=0)for(t=0;t3;t+)/抢答后选手编号闪烁次数P2=0 xfe;/按下哪一个按键,那么数码管位码送该位。即3号抢答,调到3号数码管,4号抢答跳到4号数码管P0=0 x06;mDelay(500);P0=0 x00;mDelay(500); Beep=0; mDelay(150); Beep=1; mDelay(150); Beep=0; mDelay(150); Beep=1; mDelay(150); Beep=0; mDelay(500); Beep=1; mDelay(500);if(False=

10、0)for(t=0;t3;t+)/抢答后选手编号闪烁次数P2=0 xfe;/按下哪一个按键,那么数码管位码送该位。即3号抢答,调到3号数码管,4号抢答跳到4号数码管P0=0 xff;mDelay(500);P0=0 x00;mDelay(500); Beep=0; mDelay(500); Beep=1; mDelay(500); Beep=0; mDelay(500); Beep=1; mDelay(500); Beep=0; mDelay(500); Beep=1; mDelay(500);if(P13=0)break;break;/退出switchcase 0 xfb:P2=0 xfb;

11、P0=0 x4f;mDelay(500);P0=0 x00;mDelay(500);while(1)P0=0 x4f;P2=0 x00; if(Right=0)for(t=0;t3;t+)/抢答后选手编号闪烁次数P2=0 xfe;/按下哪一个按键,那么数码管位码送该位。即3号抢答,调到3号数码管,4号抢答跳到4号数码管P0=0 x06;mDelay(500);P0=0 x00;mDelay(500); Beep=0; mDelay(150); Beep=1; mDelay(150); Beep=0; mDelay(150); Beep=1; mDelay(150); Beep=0; mDela

12、y(500); Beep=1; mDelay(500);if(False=0)for(t=0;t3;t+)/抢答后选手编号闪烁次数P2=0 xfe;/按下哪一个按键,那么数码管位码送该位。即3号抢答,调到3号数码管,4号抢答跳到4号数码管P0=0 xff;mDelay(500);P0=0 x00;mDelay(500); Beep=0; mDelay(500); Beep=1; mDelay(500); Beep=0; mDelay(500); Beep=1; mDelay(500); Beep=0; mDelay(500); Beep=1; mDelay(500);if(P13=0)brea

13、k; break;case 0 xf7:P2=0 xf7;P0=0 x66;mDelay(500);P0=0 x00;mDelay(500);while(1)P0=0 x66;P2=0 x00;if(Right=0)for(t=0;t3;t+)/抢答后选手编号闪烁次数P2=0 xfe;/按下哪一个按键,那么数码管位码送该位。即3号抢答,调到3号数码管,4号抢答跳到4号数码管P0=0 x06;mDelay(500);P0=0 x00;mDelay(500); Beep=0; mDelay(150); Beep=1; mDelay(150); Beep=0; mDelay(150); Beep=1

14、; mDelay(150); Beep=0; mDelay(500); Beep=1; mDelay(500);if(False=0)for(t=0;t3;t+)/抢答后选手编号闪烁次数P2=0 xfe;/按下哪一个按键,那么数码管位码送该位。即3号抢答,调到3号数码管,4号抢答跳到4号数码管P0=0 xff;mDelay(500);P0=0 x00;mDelay(500); Beep=0; mDelay(500); Beep=1; mDelay(500); Beep=0; mDelay(500); Beep=1; mDelay(500); Beep=0; mDelay(500); Beep=

15、1; mDelay(500);if(P13=0)break;break;case 0 xef:P2=0 xef;P0=0 x6d;mDelay(500);P0=0 x00;mDelay(500);while(1)P0=0 x6d;P2=0 x00;if(Right=0)for(t=0;t3;t+)/抢答后选手编号闪烁次数P2=0 xfe;/按下哪一个按键,那么数码管位码送该位。即3号抢答,调到3号数码管,4号抢答跳到4号数码管P0=0 x06;mDelay(500);P0=0 x00;mDelay(500); Beep=0; mDelay(150); Beep=1; mDelay(150);

16、Beep=0; mDelay(150); Beep=1; mDelay(150); Beep=0; mDelay(500); Beep=1; mDelay(500);if(False=0)for(t=0;t3;t+)/抢答后选手编号闪烁次数P2=0 xfe;/按下哪一个按键,那么数码管位码送该位。即3号抢答,调到3号数码管,4号抢答跳到4号数码管P0=0 xff;mDelay(500);P0=0 x00;mDelay(500); Beep=0; mDelay(500); Beep=1; mDelay(500); Beep=0; mDelay(500); Beep=1; mDelay(500);

17、 Beep=0; mDelay(500); Beep=1; mDelay(500);if(P13=0)break;break;case 0 xdf:P2=0 xdf;P0=0 x7d;mDelay(500);P0=0 x00;mDelay(500);while(1)P0=0 x7d;P2=0 x00;if(Right=0)for(t=0;t3;t+)/抢答后选手编号闪烁次数P2=0 xfe;/按下哪一个按键,那么数码管位码送该位。即3号抢答,调到3号数码管,4号抢答跳到4号数码管P0=0 x06;mDelay(500);P0=0 x00;mDelay(500); Beep=0; mDelay(

18、150); Beep=1; mDelay(150); Beep=0; mDelay(150); Beep=1; mDelay(150); Beep=0; mDelay(500); Beep=1; mDelay(500);if(False=0)for(t=0;t3;t+)/抢答后选手编号闪烁次数P2=0 xfe;/按下哪一个按键,那么数码管位码送该位。即3号抢答,调到3号数码管,4号抢答跳到4号数码管P0=0 xff;mDelay(500);P0=0 x00;mDelay(500); Beep=0; mDelay(500); Beep=1; mDelay(500); Beep=0; mDelay

19、(500); Beep=1; mDelay(500); Beep=0; mDelay(500); Beep=1; mDelay(500);if(P13=0)break; break;case 0 xbf:P2=0 xbf;P0=0 x07;mDelay(500);P0=0 x00;mDelay(500); while(1)P0=0 x07;P2=0 x00;if(Right=0)for(t=0;t3;t+)/抢答后选手编号闪烁次数P2=0 xfe;/按下哪一个按键,那么数码管位码送该位。即3号抢答,调到3号数码管,4号抢答跳到4号数码管P0=0 x06;mDelay(500);P0=0 x00

20、;mDelay(500); Beep=0; mDelay(150); Beep=1; mDelay(150); Beep=0; mDelay(150); Beep=1; mDelay(150); Beep=0; mDelay(500); Beep=1; mDelay(500);if(False=0)for(t=0;t3;t+)/抢答后选手编号闪烁次数P2=0 xfe;/按下哪一个按键,那么数码管位码送该位。即3号抢答,调到3号数码管,4号抢答跳到4号数码管P0=0 xff;mDelay(500);P0=0 x00;mDelay(500); Beep=0; mDelay(500); Beep=1

21、; mDelay(500); Beep=0; mDelay(500); Beep=1; mDelay(500); Beep=0; mDelay(500); Beep=1; mDelay(500);if(P13=0)break; break;case 0 x7f:P2=0 x7f;P0=0 x7f;mDelay(500);P0=0 x00;mDelay(500);while(1)P0=0 x7f;P2=0 x00;if(Right=0)for(t=0;t3;t+)/抢答后选手编号闪烁次数P2=0 xfe;/按下哪一个按键,那么数码管位码送该位。即3号抢答,调到3号数码管,4号抢答跳到4号数码管P0=0 x06;mDelay(500);P0=0 x00;mDelay(500); Beep=0; mDelay(150); Beep=1; mDelay(150); Beep=0; mDelay(150); Beep=1; mDela

温馨提示

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

评论

0/150

提交评论