您的位置:   首页>>设计与制作>>电脑抢答器设计与制作
  16路抢答器软件
  • 来源:
  • 作者:qdq
  • 时间:2006-09-29 08:25:36
  • 网友评论:0
  • 点击数:8196
推荐阅读   加入收藏      
 
                                            作者:51单片机


    曾经受过一个朋友的拜托帮他设计一个1带16的电子抢答器,考虑到以后他好升级于是采用了RS485总线来实现抢答器主机和从机的通讯,而不是像市面上从机不带单片机仅仅是开关量输出的简单做法。这样,以后可以最多加到255个接点(不过估计没有那么大的抢答赛了,呵呵)。
    完成后经过朋友的适用感觉还不错,而我经常在网上看到有网友像自己做这个的帖子,所以把设计的文档发了上来。大家看来有什么问题欢迎在论坛上发贴讨论。
    附件中包括了电路图sch和源程序(其中主机的程序是采用RTOS编写,对想学习os编程的网友有较大的参考价值),其中的电路和程序绝对是可以正确运行的,所以希望大家转载的话注明出自本站,谢谢。

#include <reg51.h>
#define uchar unsigned char
uchar a,b,c; 
sfr key=0x90;
bit fkey=0;
delay(uchar t )
{
uchar i,j;
for (i=0;i<t;i++)
for (j=0;j<120;j++)
;
}
main()
{
while(1)
{
P2=0x01;
 
key=0x0f;
if(key !=0x0f)
{
delay(20);
if(key !=0x0f)
{
a=key;
}
key=0xf0;
c=key;
a=a|c;
if(fkey==0)
{
switch(a)
{
case 0xee:{P0=0x3f;fkey=1;break;}
case 0xed:{P0=0x06;fkey=1;break;}
case 0xeb:{P0=0x5b;fkey=1;break;}
case 0xe7:{P0=0x4f;fkey=1;break;}
case 0xde:{P0=0x66;fkey=1;break;}
case 0xdd:{P0=0x6d;fkey=1;break;}
case 0xdb:{P0=0x7d;fkey=1;break;}
case 0xd7:{P0=0x07;fkey=1;break;}
case 0xbe:{P0=0x7f;fkey=1;break;}
case 0xbd:{P0=0x67;fkey=1;break;}
case 0xbb:{P0=0x77;fkey=1;break;}
case 0xb7:{P0=0x7c;fkey=1;break;}
case 0x7e:{P0=0x39;fkey=1;break;}
case 0x7d:{P0=0x5e;fkey=1;break;}
case 0x7b:{P0=0x79;fkey=1;break;}
case 0x77:{P0=0x71;fkey=1;break;}
default:   break;
}
}
}
}
}

 

 

上一条:用VB做抢答器        下一条:一个抢答器程序
相关文章