我這個12864.h 頭文件的調用方法(51單片機)是不是很簡單:
- #include<stc12c5a60s2.h>
- #include<12864.h>
- void main()
- {
- LCDInit();
- Str_6x12(1,0,"蘇冰航");
- Str_6x12(2,0,"2015212211035");
-
- while(1){}
- }
復制代碼
0.png (51.01 KB, 下載次數: 59)
下載附件
2017-7-3 23:18 上傳
12864.h液晶驅動的頭文件內容預覽(附件里面可下載完整代碼):
- #include <STC12C5A60S2.H>
- #include <string.H>
- #include <intrins.h>
- #define uint unsigned int
- #define uchar unsigned char
- /**************************************************************
- 12864基本指令宏定義
- **************************************************************/
- #define SCREEN_CLEAR 0XF4 //整屏清屏命令
- #define BACK_ONOFF 0XB5 //背光開關命令
- #define CONTRAST_GRADIENT 0XE6 //對比度調整命令
- #define TEMPERATURE_SET 0XEE //設置溫度補償開關和系數命令
- #define SOFT_RESET 0XEF //復位命令
- #define SINGLE_DOT 0XF2 //任意點: 顯示命令
- #define DRAWLINE 0XC5 //任意點: 畫線
- #define SCREEN_ONOFF 0XFE //屏幕開命令
- #define STR_ASCII_8X8_LOC 0XDF //任意點: 顯示8X8ASCII字符串命令
- #define STR_6X12 0XB9 //固定處: 顯示12X12中文和6X12ASCII混合字符串命令
- #define WHOLE_MOVE_RIGHT 0XF8 //整屏右移命令
- //********************
- //UART口初始化 串口中斷初始化
- //********************
- void Uart_Init(void)
- {
- TMOD = 0x20; //timer 1 working mode 1
- TL1 = 0xfa; // fa=9600 for 1.0592mhz Fosc,and ...
- TH1 = 0xfa; //...fd=19200 for 11.0592mhz Fosc
- SCON = 0x50;//d8 //uart mode 3,ren==1 1100 1000
- PCON = 0x80; //smod=1
- TR1 = 1; //start timer1
- }
- //********************
- //延時函數100us
- //********************
- void Delay_100us(uint j) //對于11.0592MHz時鐘延時100us
- {
- uchar i;
- while(j--)
- {
- for(i=0;i<12;i++)
- {}
- }
- }
- //*********************
- //串口方式寫數據
- //*********************
- void put_char(uchar ch)
- {
- SBUF = ch;
- while( TI == 0 ); //查詢法
- TI = 0;
- }
- /*************************************************************
- 函數名稱:Screen_Clear
- 函數功能:整屏清屏
- 調用函數:NO
- 被調函數:NO
- 輸入參數:NO
- 輸出參數:NO
- 函數返回:NO
- 其他說明:NO
- *************************************************************/
- void Screen_Clear(void)
- {
- put_char(SCREEN_CLEAR); //0xE3 行位置0-7 列位置0-25 ASC2字符代碼 9*16 0-9數字
- Delay_100us(600); //延時
- }
- /*************************************************************
- 函數名稱:Back_Onoff
- 函數功能:背光開關命令
- 調用函數:NO
- 被調函數:NO
- 輸入參數:Back-背光開關(0/1)
- 輸出參數:NO
- 函數返回:NO
- 其他說明:NO
- *************************************************************/
- void Back_Onoff(unsigned char Back)
- {
- put_char(BACK_ONOFF);
- put_char(Back);
- Delay_100us(600); //延時
- }
- /*************************************************************
- 函數名稱:Contrast_Gradient
- 函數功能:顯示對比度設置
- 調用函數:NO
- 被調函數:NO
- 輸入參數:Contrast-對比度級數(0-63)
- 輸出參數:NO
- 函數返回:NO
- 其他說明:NO
- *************************************************************/
- void Contrast_Gradient(unsigned char Contrast)
- {
- put_char(CONTRAST_GRADIENT);
- put_char(Contrast);
- Delay_100us(600); //延時
- }
- /*************************************************************
- 函數名稱:Temperature_Set
- 函數功能:溫度補償開關和系數
- 調用函數:NO
- 被調函數:NO
- 輸入參數:Temperature-溫度補償系數,0-關閉,1-5為系數
- 輸出參數:NO
- 函數返回:NO
- 其他說明:NO
- *************************************************************/
- void Temperature_Set(unsigned char Temperature)
- {
- put_char(TEMPERATURE_SET);
- put_char(Temperature);
- Delay_100us(600); //延時
- }
- /*************************************************************
- 函數名稱:Soft_Reset
- 函數功能:復位
- 調用函數:NO
- 被調函數:NO
- 輸入參數:NO
- 輸出參數:NO
- 函數返回:NO
- 其他說明:NO
- *************************************************************/
- void Soft_Reset(void)
- {
- put_char(SOFT_RESET);
- Delay_100us(600); //延時
- }
- /*************************************************************
- 函數名稱:Whole_Move_Right
- 函數功能:整屏右移
- 調用函數:NO
- 被調函數:NO
- 輸入參數:NO
- 輸出參數:NO
- 函數返回:NO
- 其他說明:NO
- *************************************************************/
- void Whole_Move_Right(void)
- {
- put_char(WHOLE_MOVE_RIGHT); //0xE3 行位置0-7 列位置0-25 ASC2字符代碼 9*16 0-9數字
- Delay_100us(100); //延時
- }
- /*************************************************************
- 函數名稱:Single_Dot
- 函數功能:在指定位置顯示一個點
- 調用函數:NO
- 被調函數:NO
- 輸入參數:Y-行數(0-63),X-列數(0-127)
- 輸出參數:NO
- 函數返回:NO
- 其他說明:在MCU端口初始化時調用
- *************************************************************/
- void Single_Dot(unsigned char Y, unsigned char X)
- {
- put_char(SINGLE_DOT);
- put_char(Y);
- put_char(X);
- Delay_100us(100); //延時
- }
- /*************************************************************
- 函數名稱:Drawline
- 函數功能:任意點畫線
- 調用函數:NO
- 被調函數:NO
- 輸入參數:CursorY-起始點行坐標(0-63),CursorX-起始點坐標(0-127)
- LH-0畫垂直線,1畫水平線,Line-畫清零/實線/虛線(0/1/2)
- S-顯示內容
- 輸出參數:NO
- 函數返回:NO
- 其他說明:NO
- *************************************************************/
- void Drawline(unsigned char CursorY, unsigned char CursorX,
- unsigned char LH, unsigned char Line, unsigned char LineLen)
- {
- put_char(DRAWLINE);
- put_char(CursorY);
- put_char(CursorX);
- put_char(LH);
- put_char(Line);
- put_char(LineLen); // 顯示字符
- Delay_100us(600); //延時
- }
- /*************************************************************
- 函數名稱:Screen_Onoff
- 函數功能:屏幕全亮命令0/1
- 調用函數:NO
- 被調函數:NO
- 輸入參數:Switch-開關(0/1)
- 輸出參數:NO
- 函數返回:NO
- 其他說明:NO
- *************************************************************/
- void Screen_Onoff(unsigned char Switch)
- {
- put_char(SCREEN_ONOFF);
- put_char(Switch);
- put_char(02);
- Delay_100us(600); //延時
- }
- /*************************************************************
- 函數名稱:Str_Ascii_8x8_Loc
- 函數功能:任意點顯示一個8X8的ASCII字符串
- 調用函數:NO
- 被調函數:NO
- 輸入參數:CursorY-左上角行坐標(0-56),CursorX-左上角坐標(0-120)
- S-顯示內容
- 輸出參數:NO
- 函數返回:NO
- 其他說明:NO
- *************************************************************/
- void Str_Ascii_8x8_Loc(unsigned char CursorY, unsigned char CursorX, unsigned char *s)
- {
- put_char(STR_ASCII_8X8_LOC);
- put_char(CursorY);
- put_char(CursorX);
- while (*s)
- {
- put_char(*s); // 顯示字符
- s++;
- }
- put_char(0X00); //結束符
- Delay_100us(600); //延時
- }
- /*************************************************************
- 函數名稱:Str_6x12
- 函數功能:在指定位置顯示12X12中文和6X12ASCII字符串
- 調用函數:NO
- 被調函數:NO
- 輸入參數:Y-行數(0-3),X-列數(0-15), *S-顯示內容
- 輸出參數:NO
- 函數返回:NO
- 其他說明:NO
- *************************************************************/
- void Str_6x12(unsigned char Y, unsigned char X, unsigned char *s)
- {
- put_char(STR_6X12);
- put_char(Y);
- put_char(X);
- while (*s)
- {
- put_char(*s); // 顯示字符
- s++;
- }
- put_char(0X00); //結束符
- Delay_100us(600); //延時
- }R
- /***********************************************************
- 函數名稱:LCDInit
- 函數功能:12864初始化
- 輸入參數:無
- ***********************************************************/
- void LCDInit(void)
- {
- uchar i;
- Soft_Reset(); //復位
- Screen_Clear(); //函數功能:整屏清屏
- Uart_Init(); //串口初始化
- Back_Onoff(1); //打開背光
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
全部資料下載地址:
12864.rar
(33.71 KB, 下載次數: 182)
2017-7-3 18:23 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|