此帖出自嵌入式系统论坛
最新回复
程序已经被我搞定了,看了大半天原来是指令写错位置了。下面把源程序发上来给大家参考一下。不过还是谢谢大家的帮助。
#include
#define uchar unsigned char
#define uint unsigned int
uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff};
uchar num,temp;
void delay(uint z);
void main()
{
while(1)
{
P1=0xfe;
temp=P1;
temp=temp&0xf0;
while(temp!=0xf0)
{
delay(5);
temp=P1;
temp=temp&0xf0;
while(temp!=0xf0)
{
temp=P1;
switch(temp)
{
case 0xee:num=0; break;
case 0xde:num=1; break;
case 0xbe:num=2; break;
case 0x7e:num=3; break;
}
while(temp!=0xf0) //songshoujiance
{
temp=P1;
temp=temp&0xf0;
}
P3=0x00;
P0=table[num];
}
}
P1=0xfd;
temp=P1;
temp=temp&0xf0;
while(temp!=0xf0)
{
delay(5);
temp=P1;
temp=temp&0xf0;
while(temp!=0xf0)
{
temp=P1;
switch(temp)
{
case 0xed:num=4; break;
case 0xdd:num=5; break;
case 0xbd:num=6; break;
case 0x7d:num=7; break;
}
while(temp!=0xf0)
{
temp=P1;
temp=temp&0xf0;
}
P3=0x00;
P0=table[num];
}
}
P1=0xfb;
temp=P1;
temp=temp&0xf0;
while(temp!=0xf0)
{
delay(5);
temp=P1;
temp=temp&0xf0;
while(temp!=0xf0)
{
temp=P1;
switch(temp)
{
case 0xeb:num=8; break;
case 0xdb:num=9; break;
case 0xbb:num=10; break;
case 0x7b:num=11; break;
}
while(temp!=0xf0)
{
temp=P1;
temp=temp&0xf0;
}
P3=0x00;
P0=table[num];
}
}
P1=0xf7;
temp=P1;
temp=temp&0xf0;
while(temp!=0xf0)
{
delay(5);
temp=P1;
temp=temp&0xf0;
while(temp!=0xf0)
{
temp=P1;
switch(temp)
{
case 0xe7:num=12; break;
case 0xd7:num=13; break;
case 0xb7:num=14; break;
case 0x77:num=15; break;
}
while(temp!=0xf0)
{
temp=P1;
temp=temp&0xf0;
}
P3=0x00;
P0=table[num];
}
}
}
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
详情
回复
发表于 2009-11-7 10:54
| ||
|
||
| |
|
|
此帖出自嵌入式系统论坛
| ||
|
||
此帖出自嵌入式系统论坛
| ||
|
||
浏览过的版块 |
EEWorld Datasheet 技术支持