|
我在一个多功能实验板proteus仿真中,P0口接了数码管,P2口接了按键,P1口接了0832的cs,0804的cs,wr,rd,intr,在测试数码管的程序中,只要接上0804和0832就不能运行了,断开0804和0832后数码管就能显示了,程序在KEIL中仿真是正确的.作为初学者这个问题实在难到我了:(请高手教教我!!!
程序:
#include<at89x52.h>
unsigned char disbuf[4]={2,3,4,5};
displaybrush()
{unsigned char code seg7code[12]=
{0x3f,0x06,0x5b,0x4f,0x66 ,0x6d ,0x7d ,0x07 ,0x7f ,0x6f ,0x77 ,0x7c};
static unsigned char i;
P0=seg7code[disbuf];
switch(i)
{
case 0:P2=0xfe;break;
case 1:P2=0xfd;break;
case 2:P2=0xfb;break;
case 3:P2=0xf7;break;
}
if(++i>3) i=0;
}
display()
{
static unsigned char key1;
if(key1==1)
{
if(P2_4==1) key1=0;
}
else
{
key1=1;
if(P2_4==0)
{
if(++disbuf[2]>9)
{
disbuf[2]=0;
if(++disbuf[1]>9) disbuf[1]=0;
}
}
}
}
void delay(unsigned char x)
{unsigned char a,b;
for (a=0;a<x;a++)
for (b=0;b<255;b++);
}
main()
{
while(1)
{displaybrush();
delay(1);
display();
}
}
我曾试过将0804和0832的CS置高电平,还是不行:( |
阿莫论坛20周年了!感谢大家的支持与爱护!!
如果天空是黑暗的,那就摸黑生存;
如果发出声音是危险的,那就保持沉默;
如果自觉无力发光,那就蜷伏于牆角。
但是,不要习惯了黑暗就为黑暗辩护;
也不要为自己的苟且而得意;
不要嘲讽那些比自己更勇敢的人。
我们可以卑微如尘土,但不可扭曲如蛆虫。
|