C51单片机8路抢答器实训报告Word文件下载.docx

上传人:b****6 文档编号:21746925 上传时间:2023-02-01 格式:DOCX 页数:24 大小:847.74KB
下载 相关 举报
C51单片机8路抢答器实训报告Word文件下载.docx_第1页
第1页 / 共24页
C51单片机8路抢答器实训报告Word文件下载.docx_第2页
第2页 / 共24页
C51单片机8路抢答器实训报告Word文件下载.docx_第3页
第3页 / 共24页
C51单片机8路抢答器实训报告Word文件下载.docx_第4页
第4页 / 共24页
C51单片机8路抢答器实训报告Word文件下载.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

C51单片机8路抢答器实训报告Word文件下载.docx

《C51单片机8路抢答器实训报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《C51单片机8路抢答器实训报告Word文件下载.docx(24页珍藏版)》请在冰豆网上搜索。

C51单片机8路抢答器实训报告Word文件下载.docx

1)制作一个8人抢答器,以开关中的某个开关的按下(闭合)作为抢答按键。

2)无人抢答时,8只数码管轮流循环显示1~8(跑马),谁先抢答,数码管停止跑马,8个数码管同时亮谁的编号,并用蜂鸣器发提示音;

其后再有人按键,系统不予响应,直到复位键按下,开始下一轮抢答。

3)主持人端有一个复位键,可重新开始抢答;

有一个答案正确的按键,和一个答案错误的按键,按下时有不同的提示音;

要想实现8路抢答器,首先要清楚抢答器的功能。

需要设置多少个功能键?

功能按键通过哪个I/O口控制?

对于此系统,我们第一步应该做什么,先完成哪个部分?

1.2本系统涉及的知识点

本系统涉及到的知识点有:

1.按键的处理。

2.数码管的动态静态显示。

2系统硬件设计

2.1模块图

2.2部分模块电路图

1.4*3矩阵键盘,本系统中只用到3个功能键,故令P1^4=0控制列线,P1^1,P1^2,P^3分别为横线,不需要做扫描。

分别控制S1,S5,S9.

2.8路独立按键,为本系统的8路抢答按键。

通过P3口输入控制。

3.蜂鸣器,接在P1^5.

3系统软件设计

延时函数模块代码如下:

VoidmDelay(unsignedintDelay){

unsignedinti;

for(;

Delay>

0;

Delay--){

for(i=0;

i<

124;

i++){

;

}

}

}

主程序函数模块,代码:

#include<

reg51.h>

sbitP14=P1^4;

sbitRight=P1^1;

sbitFalse=P1^2;

sbitP13=P1^3;

sbitBeep=P1^5;

unsignedchartable[8]={0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f};

unsignedcharwei[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdF,0xbF,0x7F};

voidmain()

{

inti,t;

P14=0;

//ap1:

P3=0xff;

while

(1)

{

8;

i++)

{

P2=wei[i];

//从这里开始修改选手编号跑马效果

P0=table[i];

mDelay(150);

if(P3!

=0xff)

{

//r8=P3;

switch(P3){

case0xfe:

{

//for(t=0;

t<

2;

t++)//抢答后选手编号闪烁次数

//{

P2=0xfe;

//按下哪一个按键,则数码管位码送该位。

即3号抢答,调到3号数码管,4号抢答跳到4号数码管

P0=0x06;

mDelay(500);

P0=0x00;

//}

while

(1){

P0=0x06;

P2=0x00;

//此处写蜂鸣器提示音

if(Right==0){

for(t=0;

3;

{

P2=0xfe;

P0=0x06;

mDelay(500);

P0=0x00;

}

Beep=0;

mDelay(150);

Beep=1;

mDelay(500);

}

if(False==0){

P0=0xff;

if(P13==0)

break;

}

break;

}

case0xfd:

P2=0xfd;

P0=0x5b;

P2=0x00;

if(Right==0){

}

//退出switch

case0xfb:

P2=0xfb;

P0=0x4f;

case0xf7:

P2=0xf7;

P0=0x66;

case0xef:

P2=0xef;

P0=0x6d;

case0xdf:

P2=0xdf;

P0=0x7d;

case0xbf:

P2=0xbf;

P0=0x07;

while

(1){

mDelay(

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1