?? led_595.bak
字號(hào):
//#include <reg52.h>
sbit ser =P1^3; //串行線
sbit srclk =P3^5; //
sbit rclk =P3^3; //
code unsigned char seg[16] = {
0x03,0x9f,0x25,0x0d,//0,1,2,3,
0x99,0x49,0x41,0x1f,//4,5,6,7,
0x01,0x09,0x11,0xc1,//8,9,A,B,
0x63,0x85,0x61,0x71 //C,D,E,F,
};
unsigned char disp_buff[4]; //定義緩存
void disp_buff_char(void) //緩沖區(qū)
{
unsigned char char_seg; //待顯示數(shù)碼管的數(shù)值
char i,j;
rclk=0;
for(j=3;j>=0;j--) //給4個(gè)595賦值
{
char_seg=disp_buff[j];
for(i=0;i<8;i++) //把單片機(jī)內(nèi)的數(shù)值轉(zhuǎn)換為串行數(shù)據(jù)傳送給595,由595自動(dòng)再將串行轉(zhuǎn)并行
{
srclk=0;
ser=char_seg&0x01;
srclk=1;
char_seg=char_seg>>1;
}
}
rclk=1; //發(fā)送4個(gè)595里面的數(shù)值給數(shù)碼管顯示
}
void disp_num(int i,char dp_p) //顯示數(shù)字和小數(shù)點(diǎn)
{
if(i>=10000)
{
disp_buff[3]=seg[14];
disp_buff[2]=0xff;
disp_buff[1]=0xff;
disp_buff[0]=0xff;
} else
{
disp_buff[3]=seg[i/1000];
disp_buff[2]=seg[(i%1000)/100];
disp_buff[1]=seg[(i%100)/10];
disp_buff[0]=seg[i%10];
if((dp_p<=3)&&(dp_p>=1))
{
disp_buff[dp_p] = disp_buff[dp_p]&0xfe;
}
}
disp_buff_char();
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -