11.0592M的晶片,ALE经过74HC74四分频,检查了好久,都不知道到错在哪里
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar ADnum[8];
sbit AD_OE=P2^6;
sbit AD_ST=P2^7;
uchar bai0,shi0,ge0;
uchar code table[]={0x84,0xbe,0x4c,0x45,0x27,0x15,0x14,0xc7,0x04,0x07,0xbc,0x06};
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=114;y>0;y--);
}
void delay10us(uint zz)
{
uint xx,yy;
for(xx=zz;xx>0;xx--)
for(yy=1;yy>0;yy--);
}
void send_4_byte(uchar qian,uchar bai,uchar shi,uchar ge)?/发送 数据 给 数码管 显示
{
uint i;
for(i=0;i<2;i++)
{
SBUF=table[qian];
delay10us(1);
SBUF=table[bai];
delay10us(1);
SBUF=table[shi];
delay10us(1);
SBUF=table[ge];
delay(20);
}
}
void main()
{
uchar i;
SCON=0;
TI=0;
ES=1;
EA=1;
while(1)
{
P2=0x00;
for(i=0;i<2;i++) //只扫描 两路 模拟 信道
{
P0=0;
P2=P2&0xf0|i;
AD_ST=1;
delay10us(1);
AD_ST=0;
delay(200);
AD_OE=1;
delay10us(1);
ADnum[i]=P0;
AD_OE=0;
if(i==1) //检错比较用
{
P0=123;
ADnum[i]=P0;
}
bai0=ADnum[i]/100;
shi0=ADnum[i]%100/10;
ge0=ADnum[i]%10;
send_4_byte(10,bai0,shi0,ge0);
}
}
}
void ser0() interrupt 4
{
TI=0;
}
结果:硬件电路只在in0 提供定位器的变化电压,数码管只是 L000与L123 的交换显示 |