有at89c51单片机的四路抢答器的仿真和程序吗?想了解一下 5

 我来答
孤傲何妨CG
2018-12-19 · TA获得超过106个赞
知道小有建树答主
回答量:343
采纳率:79%
帮助的人:39.9万
展开全部


#include

#define uint unsigned int

#define uchar unsigned char

sbit D0=P0^0;//指示灯

sbit beep=P0^1;//蜂鸣器

sbit K0=P0^2;//开始抢答按键

sbit S1=P0^3;//答题计时键

sbit S2=P0^4;//开始抢答时间调整键

sbit S3=P0^5;//答题计时时间调整键

sbit K1=P2^0;//1号选手抢答按键

sbit K2=P2^1;//2号选手抢答按键

sbit K3=P2^2;//3号选手抢答按键

sbit K4=P2^3;//4号选手抢答按键

sbit K5=P2^4;//5号选手抢答按键

sbit K6=P2^5;//6号选手抢答按键

sbit K7=P2^6;//7号选手抢答按键

sbit K8=P2^7;//8号选手抢答按键

char s;

uchar num=0;

char time1;//抢答时间

char time2;//答题限时时间

uint m,n;//T0,T1定时器定一秒时

bit flag1,flag2,flag3,flag4; //标志位

bit aa,bb;//时间调整标志位

//延时子函数

void delay(uint z)

{

uint x,y;

for(x=z;x>0;x--)

for(y=120;y>0;y--);

}

uchar code table1[]={

//共阴数码管段码值

0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71

};

uchar code table2[]={

//共阴数码管位码值

0xf7,0xfb,

0xfd,0xfe

};

//初始化子函数

void init()

{

TMOD=0x11;

TH0=(65536-2000)/256;
……等 字数有限发不了这么多。

INTPde杂货铺
2018-12-18 · TA获得超过117个赞
知道答主
回答量:21
采纳率:50%
帮助的人:1.1万
展开全部
暂时没时间帮你新写了,不好意思。给你提供一条思路:硬件方面四个按钮一端公共接地,另一端兵分两路,一路接单片机除P3外的IO口,一路接四输入与非门,与非门输出接中断口。软件部分:按下按钮后中断,中断服务程序指示哪一位选手抢答(可能是亮灯,可能是数码管),进入空循环等待按下重置按钮(可能是单片机最小系统的RST,也可能是你另外接了一个按钮作复位),中断返回或系统重置。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式