1. 帮忙看一段程序,一个用c语言编写的抢答器,帮忙分析一下这个程序每条指令和整个程序的作用,越详细越好
这个程序不全,首先看#define ,定义了uchar和uint代表char型和int型无符号数,下面定义了两个函数,再看main函数,首先调用sysini()函数,现在看sysini();函数,P2没有定义,0x是十六进制,后面加的是数,delay();函数也没有定义,后面都是没有定义的东西了
2. 求一个由AT89C52单片机控制的八路抢答器的C语言程序设计
#include<reg51.h>
#define uchar unsigned char
uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f};
sbit rstkey=P2^2;
sbit speaker=P2^0;
void delay()//延时约400毫秒
{
uchar i,j;
for(i=0;i<200;i++)
for(j=0;j<250;j++);
}
main()
{
uchar i,key;
P2=0xff;
while(1)
{
i=0;
P1=table[i];
while(1)
{
key=P3;
if(key!=0)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;
}
P1=table[i];//显示按下抢答器的号
P0=key;//显示按下键号的LED
while(1)
{
if(rstkey==0)break;//主持人按下复位键则重新开始
speaker=~speaker;//否则蜂鸣器报警
delay();
}
}
}
3. 设计一个8位竞赛抢答器 求c语言程序,thank you
代码如下:
i=2;break;
if(key==0)break;250;
sbit rstkey=P2^2;/
case 0x08:break;
case 0x04;200;j++);
default;/
#define uchar unsigned char
uchar table[]={0x3f,0x4f;break,0x06;/
P2=0xff:i=8,0x6d:i=6;
}
switch(key)
{
case 0x01,0x7f};i<
case 0x80;reg51:i=7:i=1:i=3;
void delay()/,0x66;
case 0x40,0x7d:i=4;break;
}
P1=table[i];break;
case 0x10:i=5,0x07,j;
P1=table[i];break;
while(1)
{
i=0;j<break;
case 0x02,0x5b;延时约400毫秒
{
uchar i;
for(i=0;break;
while(1)
{
key=P3,key;
case 0x20;i++)
for(j=0;/.h>break;否则蜂鸣器报警
delay();显示按下键号的LED
while(1)
{
if(rstkey==0)break;/
sbit speaker=P2^0;主持人按下复位键则重新开始
speaker=~speaker#include<显示按下抢答器的号
P0=key;
}
main()
{
uchar i
4. 用C语言编写八路抢答器程序,附单片机原理图.
简单的说一下吧,
既然是八路,那么有8个LED,8个按键,
硬件:
8个LED 接P1口,(注意要接上拉电阻,低电平驱动)
8个按键接P2口,按键另一端接地。
编程:
swhich case语句, 8个case语句 判断了哪个按键,注意每次判断需要屏蔽其他口,比如你按了P2.0,那么P1.0亮,P1.1-P1.7都要灭。然后死循环。这样就判断了谁先按。而之后按的都无效。
另外,站长团上有产品团购,便宜有保证
5. 求一个简易单片机C语言编程AT89C51设计的抢答器!
这个是毕业设计吧,网上一大堆相似程序,这个你自己写就成了,最简单用if语句询问P1的4个I/O口状态,设置好逻辑关系,只显示最初的那个(别告诉我这个逻辑关系你不会写),不就得了,再用一个数码管显示数字,直到按下复位按钮重新开始
6. 用C语言编程六路抢答器,用52单片机,程序中要有锁存功能,要有说明呀。。
......这不是哥在科技知识竞赛做的么........你要的话留个邮箱
7. AT89C51单片机8路抢答器C语言代码怎么写,急用,谢谢了
这个代码没有问题,我仿真过:
#include<reg51.h>
#defineucharunsignedchar
uchartable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f};
sbitrstkey=P2^2;
sbitspeaker=P2^0;
voiddelay()//延时约400毫秒
{
uchari,j;
for(i=0;i<200;i++)
for(j=0;j<250;j++);
}
main()
{
uchari,key;
P2=0xff;
while(1)
{
i=0;
P1=table[i];
while(1)
{
key=P3;
if(key!=0)break;
}
switch(key)
{
case0x01:i=1;break;
case0x02:i=2;break;
case0x04:i=3;break;
case0x08:i=4;break;
case0x10:i=5;break;
case0x20:i=6;break;
case0x40:i=7;break;
case0x80:i=8;break;
default:break;
}
P1=table[i];//显示按下抢答器的号
P0=key;//显示按下键号的LED
while(1)
{
if(rstkey==0)break;//主持人按下复位键则重新开始
speaker=~speaker;//否则蜂鸣器报警
delay();
}
}
}