包含12864 1602 5110
00000.png (25.61 KB, 下載次數(shù): 118)
下載附件
2016-1-11 18:58 上傳
完整代碼(包含頭文件)下載:
液晶.rar
(4.73 KB, 下載次數(shù): 42)
2016-1-11 11:28 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
以下是文件內(nèi)容預(yù)覽:
12864:
5110:
- /******************************
- 文檔說明:NOKIA5110顯示模塊驅(qū)動
- 修改日期:9月8日
- 版本: v1
- ********************************/
- #include "LCD5110.h"
- #include "suzu.h"
- /************************************************
- 函數(shù)名: void LCD_init(void)
- 功能: NKIA5110初始化配置
- 輸入?yún)?shù): 無
- 輸出參數(shù): 無
- 修改日期: 9月8日
- 特殊說明: 不同模塊所需調(diào)的是28行代碼,大概范圍150-255
- ************************************************/
- void LCD_init(void)
- {
- unsigned char i;
- SRST=0;
- for(i=0;i<150;i++);
- SRST=1;
- LCD_write_byte(0x21,0);
- LCD_write_byte(195,0); //偏置電壓設(shè)置
- LCD_write_byte(0x20,0);
- LCD_clear();
- LCD_write_byte(0x0c,0);
- SCE=0;
- }
- /************************************************
- 函數(shù)名: void LCD_write_byte(unsigned char dat,unsigned char command)
- 功能: 向NKIA5110寫字節(jié)數(shù)據(jù)
- 輸入?yún)?shù): unsigned char dat,unsigned char command
- 輸出參數(shù): 無
- 修改日期: 9月8日
- ************************************************/
- void LCD_write_byte(unsigned char dat,unsigned char command)
- {
- unsigned char i;
- SCE=0;
- if(command==0)
- SDC=0;
- else
- SDC=1;
- for(i=0;i<8;i++)
- {
- if(dat&0x80)
- SDIN=1;
- else
- SDIN=0;
- SCLK=0;
- dat=dat<<1;
- SCLK=1;
- }
- SCE=1;
- }
- /************************************************
- 函數(shù)名: void LCD_set_XY(unsigned char X,unsigned char Y)
- 功能: 設(shè)置NKIA5110顯示XY坐標位置
- 輸入?yún)?shù): unsigned char X,unsigned char Y
- 輸出參數(shù): 無
- 修改日期: 9月8日
- ************************************************/
- void LCD_set_XY(unsigned char X,unsigned char Y)
- {
- LCD_write_byte(0x40|Y,0);//列
- LCD_write_byte(0x80|X,0);//行
- }
- /************************************************
- 函數(shù)名: void LCD_clear(void)
- 功能: NKIA5110 清屏
- 輸入?yún)?shù): 無
- 輸出參數(shù): 無
- 修改日期: 9月8日
- ************************************************/
- void LCD_clear(void)
- {
- unsigned char t;
- unsigned char k;
- LCD_set_XY(0,0);
- for(t=0;t<6;t++)
- {
- for(k=0;k<84;k++)
- {
- LCD_write_byte(0x00,1);
- }
- }
- }
-
- /************************************************
- 函數(shù)名: void LCD_write_char(unsigned char x,unsigned y,unsigned char c)
- 功能: NKIA5110 顯示字符
- 輸入?yún)?shù): unsigned char x,unsigned y,unsigned char c
- 輸出參數(shù): 無
- 修改日期: 9月8日
- ************************************************/
- void LCD_write_char(unsigned char x,unsigned y,unsigned char c)
- {
- unsigned char i;
- c-=32;
- LCD_set_XY(x,y);
- for(i=0;i<6;i++)
- {
- LCD_write_byte(font6x8[c][i],1);
- if(i==5)
- {
- y++;
- LCD_set_XY(x,y);
- }
- }
- }
- /************************************************
- 函數(shù)名: void LCD_write_Num(unsigned char X,unsigned char Y,unsigned int num)
- 功能: NKIA5110 顯示數(shù)字
- 輸入?yún)?shù): X為一個位置為6,Y為行取值為0~5,num為要顯示的數(shù)字
- 輸出參數(shù): 無
- 修改日期: 9月8日
- ************************************************/
- void LCD_write_Num(unsigned char X,unsigned char Y,unsigned int num)
- {
- unsigned char str[8],i=0,len=0;
- unsigned int temp;
- temp = num;
- while(temp)
- {
- temp /=10;
- len++;
- }
- if(!num)
- {
- len++;
- str[0]=0x30;
- }
- str[len] = 0;
- while(num)
- {
- str[len-i-1] = num%10 + 0x30;
- num /=10;
- i++;
- }
- LCD_write_string(X,Y,(char *)str);
- }
- /************************************************
- 函數(shù)名: void LCD_write_Num(unsigned char X,unsigned char Y,unsigned int num)
- 功能: NKIA5110 顯示字符串
- 輸入?yún)?shù): X為一個位置為6,Y為行取值為0~5,*s為要顯示的字符串
- 輸出參數(shù): 無
- 修改日期: 9月8日
- ************************************************/
- void LCD_write_string(unsigned char X,unsigned char Y,char *s)
- {
- while(*s)
- {
- LCD_write_char(X,Y,*s);
- s++;
- X+=6;
- }
- }
- ///************************************************
- // 函數(shù)名: void disp16_16(unsigned char x,unsigned char y,unsigned char address)
- // 功能: NKIA5110 顯示16*16的字符
- // 輸入?yún)?shù): unsigned char x,unsigned y,unsigned char c
- // 輸出參數(shù): 無
- // 修改日期: 9月8日
- // ************************************************/
- //void disp16_16(unsigned char x,unsigned char y,unsigned char address)
- //{
- // unsigned char c;
- // LCD_set_XY(x*8, y);
- // for(c=0;c<16;c++)
- // {
- // LCD_write_byte(han[address*32+c],1);
- // }
- // LCD_set_XY(x*8, y+1);
- // for(c=16;c<32;c++)
- // {
- // LCD_write_byte(han[address*32+c],1);
- // }
- //}
- // /************************************************
- // 函數(shù)名: void LCD_write_chinese_string(unsigned char X, unsigned char Y,
- // unsigned char ch_with,unsigned char num,
- // unsigned char line,unsigned char row)
- // 功能: NKIA5110 顯示中文字符
- // 輸入?yún)?shù): unsigned char X, unsigned char Y,
- // unsigned char ch_with,unsigned char num,
- // unsigned char line,unsigned char row
- // 輸出參數(shù): 無
- // 修改日期: 9月8日
- // ************************************************/
- //void LCD_write_chinese_string(unsigned char X, unsigned char Y, unsigned char ch_with,unsigned char num,unsigned char line,unsigned char row) //x,y為坐標,ch_with為漢字寬度,num為數(shù)組中第幾個漢字,line為行,row為列
- //{
- // unsigned char i,n;
- // LCD_set_XY(X,Y); //
- // for (i=0;i<num;)
- // {
- // for (n=0; n<ch_with*2; n++) //
- // {
- // if (n==ch_with) //
- // {
- // if (i==0) LCD_set_XY(X,Y+1);
- // else
- // LCD_set_XY((X+(ch_with+row)*i),Y+1);
- // }
- // LCD_write_byte(write_chinese[line+i][n],1);
- // }
- // i++;
- // LCD_set_XY((X+(ch_with+row)*i),Y);
- // }
- //}
-
-
-
-
復(fù)制代碼
1602:
|