标题:
八路抢答器proteus仿真和源码
[打印本页]
作者:
qq1357002447
时间:
2016-10-20 08:25
标题:
八路抢答器proteus仿真和源码
八路抢答器的proteus仿真原理图:
0.png
(32.57 KB, 下载次数: 52)
下载附件
2016-10-20 11:14 上传
单片机源程序:
#include <reg51.h>
#define uint unsigned int //宏定义
#define uchar unsigned char
sbit P3_3=P3^3;
sbit P3_4=P3^4;
void delayms(uint xms);
uchar code tab[8]={0xf9,0xa4,0xb0,0x99,0x82,0xf8,0x80,0x90};
/*-------------------------------
TNTO 中断函数
---------------------------------*/
void int_0() interrupt 0
{
uchar button;
P0=0xff;
button=P0;
button&=0xff;
switch (button)
{
case 0xfe:P2=tab[0];P3_4=~P3_4;delayms(1);break;
case 0xfd:P2=tab[1];P3_4=~P3_4;delayms(1);break;
case 0xfb:P2=tab[2];P3_4=~P3_4;delayms(1);break;
case 0xf7:P2=tab[3];P3_4=~P3_4;delayms(1);break;
case 0xef:P2=tab[4];P3_4=~P3_4;delayms(1);break;
case 0xdf:P2=tab[5];P3_4=~P3_4;delayms(1);break;
case 0xbf:P2=tab[6];P3_4=~P3_4;delayms(1);break;
case 0x7f:P2=tab[7];P3_4=~P3_4;delayms(1);break;
}
delayms(3000);
P2=0xff;
}
/*--------------------------------------
TNT1 中断函数---增加案件的识别
-------------------------------------------*/
void int_1() interrupt 2
{
P3=0x0f;
if(P3_3==0)
delayms(10);
if(P3_3==0)
{P2=0xbf;
while(P3_3==0);
do
{ delayms(10); }
while(P3_3==0);
}
delayms(3000);
P2=0xff;
}
/*--------------------------------------
主函数
-------------------------------------------*/
void main()
{
uchar k,w;;
EA=1;
EX0=1;
IT0=1;
IT1=1;
EX1=1;
PX1=1;
while(1)
{ w=0x01;
for(k=0;k<8;k++)
{
P1=~w;
delayms(500);
w<<=1;
}
}
}
/*--------------------------------------*/
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
复制代码
0.png
(59.97 KB, 下载次数: 55)
下载附件
2016-10-20 11:15 上传
所有资料打包下载:
八路抢答器.rar
(40 KB, 下载次数: 30)
2016-10-20 08:25 上传
点击文件名下载附件
八路抢答器
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1