我这个12864.h 头文件的调用方法(51单片机)是不是很简单:
- #include<stc12c5a60s2.h>
- #include<12864.h>
- void main()
- {
- LCDInit();
- Str_6x12(1,0,"苏冰航");
- Str_6x12(2,0,"2015212211035");
-
- while(1){}
- }
复制代码
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)
|