wangch_sh 发表于 2014-7-29 14:07 
原理图,程序?什么也没有,怎么分析?
不好意思,刚没有上传图片
代码:
#include<iom16v.h>
#include<macros.h>
#define uint unsigned int
#define uchar unsigned char
#define sclon PORTA|=BIT(0)
#define scloff PORTA&=~BIT(0)
#define dion PORTA|=BIT(1)
#define dioff PORTA&=~BIT(1)
extern const unsigned char
tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void dataout(uchar temp)
{
uchar i,temp1;
temp1=tab[temp];
for(i=0;i<8;i++)
{
scloff;
NOP();
if((temp1&0x80)!=0x80)
{
dioff;
NOP();
}
else
{
NOP();
dion;
NOP();
}
sclon;
NOP();
NOP();
temp<<=1;
NOP();
NOP();
scloff;
}
}
void delay(void)
{
uint i;
for(i=0;i<200;i++);
}
void display(uint k)
{
dataout(k/1000);
PORTA&=0x03;
delay();
dataout(k/100%10);
PORTA|=0x04;
delay();
dataout(k/10%10);
PORTA&=0x0b;
PORTA|=0x08;
delay();
dataout(k%10);
PORTA|=0x0c;
delay();
}
void main(void)
{
DDRA=0xff;
while(1)
{
delay();
display(1234);
delay();
}
}
|