📄 119.c
字号:
#include <c8051f410.H>
#define uchar unsigned char
#define uint unsigned int
sbit DS =P2^5;
sbit STCP =P2^3; //////define port for 595 use at led
sbit SHCP =P2^4;
////////////////////////////////////////////////////////////////////////////////led digital code define
uchar discod[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xc0,0x83,0x92,0x98,0x86,0x8e};
////////////////={ 0 1 2 3 4 5 6 7 8 9 A b s q e f };
uchar disbuf[6]={0x01,0x02,0x03,0x04,0x05,0x06}; ///six led figue buffer
uchar seriout,dseriout,seriin=0,fuctionled; ///situation variable define
///////////////////////
void Delay_x10ms(unsigned char DelayTime) //***************10ms延时**********//
{
unsigned char ic,jc,kc;
for(ic=0;ic<DelayTime;ic++)
for(jc=0;jc<10;jc++)
for(kc=0;kc<120;kc++) {;}
}
display() // display by 74hc595d
{
uchar i,ii,iii,iiii,disad=1; //i:6lednumber ii:ledallcodnumber disad:led at address
uint dscod,sericode;
/////////////////////////////////// here compile the display code then send to buffer
disbuf[0]=~discod[1]; ///
disbuf[1]=~discod[2]; ///
disbuf[2]=~discod[3]; ///
disbuf[3]=~discod[4]; ///
disbuf[4]=~discod[5]; ///
disbuf[5]=~discod[6]; ///
///////////////////////////////////
for(iiii=0;iiii<1;iiii++)
{
for(i=0;i<6;i++)
{
sericode=(disbuf[i])+(~disad*256); //the number of 595 use to shefit out
disad*=2; //led address add one //begin datashfit
for(ii=0;ii<17;ii++) //shfit 16 bit
{
STCP=0;SHCP=0; //pluse down for ready
for(iii=0;iii<22;iii++); //dealy 100
dscod=sericode&0x8000; //cunt out bit
DS=dscod; //out
STCP=1;SHCP=1; //clok pluse up data_bit out
STCP=0;SHCP=0; //pluse down for ready
sericode<<=1; //lift shfit one bit
} //595 enable on all data out
Delay_x10ms(5);
for(iii=0;iii<200;iii++); //dealy 100
}
}
}
void main(void)
{ XBR1=0X41;
PCA0MD=0X00;
OSCICN|=0x07;
PCA0CPM0=0x46;
PCA0MD|=0x08;
for(;;)
{
display();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -