原创 c语言与汇编编写的单片机抢答器程序(经过测试)

2008-11-17 23:53 5806 9 10 分类: MCU/ 嵌入式

#include
#define uchar unsigned char
#define uint unsigned int


void delay(uint);
void sysini(void);


/************************************************************

*c语言编写的单片机抢答器程序已经测试成功,大家烧写到芯片中就可以直接使用了
*************************************************************/


void main(void)
{sysini();



while(1)
{


P2=0x3f;
P2=0x3f;
if(P1!=0xff)
{P2=0x7c;
P3_1=0;
delay(65535);
P3_1=1;
continue;
}
while(P1==0xff); //循环判断 等待按键,同时显示0
//读取数据
switch(P1)
{case 0xfe:P2=0x03;break; //1
case 0xfd:P2=0x6d;break; //2
case 0xfb:P2=0x67;break; //3
case 0xf7:P2=0x53;break; //4
case 0xef:P2=0x76;break; //5
case 0xdf:P2=0x7e;break; //6
case 0xbf:P2=0x23;break; //7
case 0x7f:P2=0x7f;break; //8
default: P2=0x7c;
}
P3_1=0;
delay(65535);
P3_1=1;

while(P3_2)
{if(!P3_2) break;
if(!P3_2) break;
if(!P3_2) break;
if(!P3_2) break;
}


}



}



void delay(uint a)
{uint i;
for(i=0;i ;
}


void sysini(void)
{P2=0x00;delay(10000);
P2=0x01;delay(10000);
P2=0x02;delay(10000);
P2=0x04;delay(10000);
P2=0x08;delay(10000);
P2=0x10;delay(10000);
P2=0x20;delay(10000);
P2=0x00;delay(40000);


P2=0x38;delay(40000);
P2=0x00;delay(40000);
P2=0x7b;delay(40000);
P2=0x00;delay(40000);
P2=0x7b;delay(40000);
P2=0x00;delay(40000);



P2=0x01;delay(30000);
P2=0x03;delay(30000);
P2=0x07;delay(30000);
P2=0x0f;delay(30000);
P2=0x1f;delay(30000);
P2=0x3f;delay(30000);
}




---------下面还介绍一个汇编语言编程的单片机抢答器程序原理请读者自行分析-------------------


C0002:
MOV P2,#0C0H
C0004:
MOV A,P1
CPL A
JZ C0004
C0005:
MOV R7,P1
MOV A,R7
ADD A,#081H
JZ C0014
ADD A,#0C0H
JZ C0013
ADD A,#0E0H
JZ C0012
ADD A,#0F0H
JZ C0011
ADD A,#0F8H
JZ C0010
ADD A,#0FCH
JZ C0009
ADD A,#0FEH
JZ C0008
DEC A
JNZ C0015
C0007:
MOV P2,#0FCH
SJMP C0016
C0008:
MOV P2,#092H
SJMP C0016
C0009:
MOV P2,#098H
SJMP C0016
C0010:
MOV P2,#0ACH
SJMP C0016
C0011:
MOV P2,#089H
SJMP C0016
C0012:
MOV P2,#081H
SJMP C0016
C0013:
MOV P2,#0DCH
SJMP C0016
C0014:
MOV P2,#080H
SJMP C0016
C0015:
MOV P2,#088H
C0016:
JNB P3_1,C0002
SJMP C0016m

文章评论1条评论)

登录后参与讨论

用户377235 2014-3-31 11:14

这是几路的

相关推荐阅读
用户1444347 2009-02-13 14:36
求电容PPT
哪位大虾有电容的PPT或者其他什么好的资料,能否给小弟分享一下,谢谢了,小弟邮箱ldh101@126.com...
用户1444347 2009-01-22 11:50
常用电子元器件介绍
常用器件2006年07月24日 星期一 下午 02:18一、电阻   电阻在电路中用“R”加数字表示,如:R15表示编号为15的电阻。电阻在电路中的主要作用为分流、限流、分压、偏置、滤波(与电容器组合...
用户1444347 2008-11-18 15:59
DS1302中文资料
摘 要:介绍美国DALLAS公司推出的具有涓细电流充电能力的低功耗实时时钟电路DS1302的结构、工作原理及其在实时显示时间中的应用。它可以对年、月、日、周日、时、分、秒进行计时,且具有闰年补偿等多种...
用户1444347 2008-11-17 23:54
C语言指针详细阐述
C语言指针是很重要的一个部分,我们学习的时候往往会感觉到有点困难,下面我们详细的阐述C语言的指针:指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。 要搞清一个指针需要搞清指针的四方面...
用户1444347 2008-11-17 23:51
C语言中字符串的处理函数大全
size=3]C语言字符串函数大全1.函数名: stpcpy 功  能: 拷贝一个字符串到另一个 用  法: char *stpcpy(char *destin, char *source); 程序例...
我要评论
1
9
关闭 站长推荐上一条 /2 下一条