?? lcd_disp.c
字號:
//本模塊用于對LCD的顯示進(jìn)行控制
//其中l(wèi)cd_disp_data()函數(shù)可將1000倍轉(zhuǎn)角數(shù)據(jù)在LCD上以角度顯示
#define PORT_DISP PORTB //PORT_DISP為LED控制端口,1為CLK,2為DIN
//LCD顯示驅(qū)動(dòng)
void lcd_disp(char a[8])
{
int i,j,data;
for(i=0;i<8;i++)
{
for(j=0;j<8;j++)
{
data = (a[i] & (1<<j))>>j; //提取欲顯示段數(shù)據(jù)
PORT_DISP |= (data<<1); //DIN數(shù)據(jù)準(zhǔn)備
PORT_DISP |= (1<<0); //CLK上跳
PORT_DISP &= ~(1<<0); //CLK下跳
PORT_DISP &= ~(1<<1); //DIN復(fù)位
}
}
}
//出錯(cuò)顯示,顯示“Error”
void lcd_disp_error(void)
{
char a[8] = {0x00,0x9E,0x0A,0x0A,0x3A,0x0A,0x00,0x00};
lcd_disp(a);
}
//將0-9轉(zhuǎn)換為LCD段碼
char convert(int input)
{
char result = 0x40;
if(input==0)
result = 0xFC;
if(input==1)
result = 0x60;
if(input==2)
result = 0xDA;
if(input==3)
result = 0xF2;
if(input==4)
result = 0x66;
if(input==5)
result = 0xB6;
if(input==6)
result = 0xBE;
if(input==7)
result = 0xE0;
if(input==8)
result = 0xFE;
if(input==9)
result = 0xF6;
return result;
}
//將六位整數(shù)顯示于LCD
void lcd_disp_data(int data)
{
char a[8];
if(data>360000||data<-360000)
goto OVER;
if(data>0) //判斷符號
a[0] = 0x40;
else
{
a[0] = 0x00;
data = 0 - data;
}
a[1] = convert((data/100000)%10);
a[2] = convert((data/10000)%10);
a[3] = convert((data/1000)%10) + 0x01; //小數(shù)點(diǎn)
a[4] = convert((data/100)%10);
a[5] = convert((data/10)%10);
a[6] = convert(data%10);
a[7] = 0x63; //“度”符號
lcd_disp(a);
OVER:lcd_disp_error();
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -