单片机八人抢答器程序设计,求用C51的版本。

设计要求利用KEILC51仿真软件分别编制控制程序。利用proteus仿真软件,绘制单片机控制系统,P1口接8个按钮,分别代表8个小组,各小组编号为1、2、3、。。。7、... 设计要求
利用KEILC51仿真软件分别编制控制程序。
利用proteus仿真软件,绘制单片机控制系统,P1口接8个按钮,分别代表8个小组,各小组编号为1、2、3、。。。 7、8;P3.7接主持人“开始或复位”按钮;P0口接一个数码管(共阳极);P2口接8个LED灯,用于对应8个小组抢答指示。
(1)当主持人没有按下“开始”按钮时,数码管显示0;
(2)当主持人按下“开始”按钮并松开后,数码管显示P,允许各小组抢答;
(3)若有某一个小组按钮按下,点亮抢答小组的指示灯,并将抢答小组号显示在数码管上。
(4)当主持人按下“复位”按钮并松开后,重新进入(1)。

分可加,求速度
展开
 我来答
zhxiufan
2017-10-17 · 知道合伙人软件行家
zhxiufan
知道合伙人软件行家
采纳数:14923 获赞数:38384
国家科技进步奖

向TA提问 私信TA
展开全部

#include<reg51.h>

#define uchar unsigned char

uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f};

sbit rstkey=P3^7;

main()

{

uchar i,key;

while(1)

{

P2=0xff;

i=0;

P0=table[i];

while(1)

{

key=P1;

if(key!=0xff)break;

}

switch(~key)

{

case 0x01:i=1;break;

case 0x02:i=2;break;

case 0x04:i=3;break;

case 0x08:i=4;break;

case 0x10:i=5;break;

case 0x20:i=6;break;

case 0x40:i=7;break;

case 0x80:i=8;break;

default:break;

}

P0=table[i];//显示按下抢答器的号

P2=key;//显示按下键号的LED

while(1)

{

if(rstkey==0)break;//主持人按下复位键则重新开始

}

}

}

此ID有违规内容
推荐于2017-10-17 · 超过10用户采纳过TA的回答
知道答主
回答量:26
采纳率:0%
帮助的人:27.1万
展开全部
班导已死,小事烧纸,大事招魂,急事挖粪。。。
邮箱查收。。。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
QQ285022465
2012-12-09
知道答主
回答量:42
采纳率:0%
帮助的人:10.8万
展开全部
我可代做
追问
好的,求教导。求程序。
追答
我QQ285022465 加我私聊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式