請教4094級聯(lián)問題在哪兒???
程序:
#include<reg52.h>
#include<absacc.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit sda=P2^0;
sbit sck=P2^1;
sbit rck=P2^2;
uchar code led[10]={0xfc,0x60,0xdb,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6}; //"0,1,2,3,4,5,6,7,8,9"
uchar code pos[5]={0x08,0x10,0x20,0x40,0x80};
char data dis_data[5]={0,0,0,0,0}; //顯示數(shù)據(jù)
/*void delay2ms()
{
unsigned char a,b,c;
for(a=0;a<2;a++)
for(b=0;b<3;b++)
for(c=0;c<220;c++);
} */
void delay(uint k)
{
uint m,n;
for(m=k;m>0;m--)
for(n=0;n<125;n++);
}
void disply()
{
unsigned char num,n,date;
for(num=0;num<5;num++)
{
//將位數(shù)據(jù)寫入4094
date=pos[num];
for(n=0;n<8;n++)
{
date=date<<1;
sda=CY;
sck=0;
_nop_();
_nop_();
sck=1;
}
//將段數(shù)據(jù)寫入4094
date=led[dis_data[num]];
for(n=0;n<8;n++)
{
date=date<<1;
sda=CY;
sck=0;
_nop_();
_nop_();
sck=1;//上升沿發(fā)生位移
}
//數(shù)據(jù)輸出
rck=0;
_nop_();
_nop_();
rck=1;
//delay2ms();
delay(300);
}
}
void main()
{
long dis_data1;
while(1)
{
dis_data1=65432;
dis_data[4]=(dis_data1%100000)/10000;
dis_data[3]=(dis_data1%10000)/1000;
dis_data[2]=(dis_data1%1000)/100;
dis_data[1]=(dis_data1%100)/10;
dis_data[0]=dis_data1%10;
disply();
}
}
歡迎光臨 (http://www.torrancerestoration.com/bbs/) | Powered by Discuz! X3.1 |