自己写的12232LCM模块的驱动代码,实现了基本的功能。
#ifndef __12232Driver_H #define __12232Driver_H void LCD_Init(void); void LCD_Reset(void); void LCD_FillAll(void); void LCD_ClearAll(void); void LCD_WriteCmd(unsigned char cmd); void LCD_WriteCmd1(unsigned char cmd); void LCD_WriteCmd2(unsigned char cmd); void LCD_SetColumn(unsigned char column); void LCD_SetColumn1(unsigned char column); void LCD_SetColumn2(unsigned char column); void LCD_SetPage(unsigned char page); void LCD_SetPage1(unsigned char page); void LCD_SetPage2(unsigned char page); void LCD_WriteData(unsigned char d); void LCD_WriteData1(unsigned char d); void LCD_WriteData2(unsigned char d); unsigned char LCD_ReadData1(void); unsigned char LCD_ReadData2(void); #endif
#include #include "12232Driver.h"
sbit E1=P3^4; sbit E2=P3^5; sbit A0=P3^7; sbit RST=P3^2; sbit RW=P3^6;
#define LCD_DISPLAY_ON 0xAF #define LCD_DISPLAY_OFF 0xAE #define LCD_START_LINE_0 0xC0 #define LCD_DRIVER_NORMAL 0xA4 #define LCD_DRIVER_STATIC 0xA5 #define LCD_DUTY_32 0xA9 #define LCD_DUTY_16 0xA8 #define LCD_RIGHTWARD_OUTPUT 0xA0 #define LCD_LEFTWARD_OUTPUT 0xA1 #define LCD_RESET 0xE3 #define LCD_PAGE_0 0xB8 #define LCD_RMW 0xE0 #define LCD_END 0xEE #define uchar unsigned char
void LCD_Init(void) {
RST=0; RST=1; LCD_WriteCmd(LCD_DISPLAY_ON); LCD_WriteCmd(LCD_START_LINE_0); LCD_WriteCmd(LCD_DRIVER_NORMAL); LCD_WriteCmd(LCD_DUTY_32); LCD_WriteCmd(LCD_RIGHTWARD_OUTPUT); LCD_WriteCmd(LCD_RESET); LCD_Reset(); }
void LCD_Reset(void) { LCD_WriteCmd(LCD_RESET); }
void LCD_FillAll(void) { uchar page,y; LCD_WriteCmd(LCD_RMW); for(page=0;page<4;page++) { LCD_SetPage(page); LCD_SetColumn(0); for(y=0;y<61;y++) { LCD_WriteData(0xFF); } LCD_WriteCmd(LCD_END); } }
void LCD_ClearAll(void) { uchar page,y; LCD_WriteCmd(LCD_RMW); for(page=0;page<4;page++) { LCD_SetPage(page); LCD_SetColumn(0); for(y=0;y<61;y++) { LCD_WriteData(0); } LCD_WriteCmd(LCD_END); } }
void LCD_WriteCmd(unsigned char cmd) { LCD_WriteCmd1(cmd); LCD_WriteCmd2(cmd); return; }
void LCD_WriteCmd1(unsigned char cmd) { RW=0; E1=0; A0=0; P1=cmd; E1=1; E1=0; return; }
void LCD_WriteCmd2(unsigned char cmd) { RW=0; E2=0; A0=0; P1=cmd; E2=1; E2=0; return; }
void LCD_WriteData(unsigned char d) { LCD_WriteData1(d); LCD_WriteData2(d); return ; }
void LCD_WriteData1(unsigned char d) { RW=0; E1=0; A0=1; P1=d; E1=1; E1=0; return; }
void LCD_WriteData2(unsigned char d) { RW=0; E2=0; A0=1; P1=d; E2=1; E2=0; return; }
void LCD_SetColumn(unsigned char d) { LCD_SetColumn1(d); LCD_SetColumn2(d); return; } void LCD_SetColumn1(unsigned char d) { LCD_WriteCmd1(d); return; }
void LCD_SetColumn2(unsigned char d) { LCD_WriteCmd2(d); return; }
void LCD_SetPage(unsigned char page) { LCD_SetPage1(page); LCD_SetPage2(page); return; } void LCD_SetPage1(unsigned char page) { page=page%4; LCD_WriteCmd1(LCD_PAGE_0+page); return; }
void LCD_SetPage2(unsigned char page) { page=page%4; LCD_WriteCmd2(LCD_PAGE_0+page); return; }
unsigned char LCD_ReadData1(void) { unsigned char d=0; RW=1; E1=0; A0=1; P1=0xFF; E1=1; d=P1; E1=0; return d; }
unsigned char LCD_ReadData2(void) { unsigned char d=0; RW=1;
|
自己写的12232LCM模块的驱动代码,实现了基本的功能。
#ifndef __12232Driver_H #define __12232Driver_H void LCD_Init(void); void LCD_Reset(void); void LCD_FillAll(void); void LCD_ClearAll(void); void LCD_WriteCmd(unsigned char cmd); void LCD_WriteCmd1(unsigned char cmd); void LCD_WriteCmd2(unsigned char cmd); void LCD_SetColumn(unsigned char column); void LCD_SetColumn1(unsigned char column); void LCD_SetColumn2(unsigned char column); void LCD_SetPage(unsigned char page); void LCD_SetPage1(unsigned char page); void LCD_SetPage2(unsigned char page); void LCD_WriteData(unsigned char d); void LCD_WriteData1(unsigned char d); void LCD_WriteData2(unsigned char d); unsigned char LCD_ReadData1(void); unsigned char LCD_ReadData2(void); #endif
#include #include "12232Driver.h"
sbit E1=P3^4; sbit E2=P3^5; sbit A0=P3^7; sbit RST=P3^2; sbit RW=P3^6;
#define LCD_DISPLAY_ON 0xAF #define LCD_DISPLAY_OFF 0xAE #define LCD_START_LINE_0 0xC0 #define LCD_DRIVER_NORMAL 0xA4 #define LCD_DRIVER_STATIC 0xA5 #define LCD_DUTY_32 0xA9 #define LCD_DUTY_16 0xA8 #define LCD_RIGHTWARD_OUTPUT 0xA0 #define LCD_LEFTWARD_OUTPUT 0xA1 #define LCD_RESET 0xE3 #define LCD_PAGE_0 0xB8 #define LCD_RMW 0xE0 #define LCD_END 0xEE #define uchar unsigned char
void LCD_Init(void) {
RST=0; RST=1; LCD_WriteCmd(LCD_DISPLAY_ON); LCD_WriteCmd(LCD_START_LINE_0); LCD_WriteCmd(LCD_DRIVER_NORMAL); LCD_WriteCmd(LCD_DUTY_32); LCD_WriteCmd(LCD_RIGHTWARD_OUTPUT); LCD_WriteCmd(LCD_RESET); LCD_Reset(); }
void LCD_Reset(void) { LCD_WriteCmd(LCD_RESET); }
void LCD_FillAll(void) { uchar page,y; LCD_WriteCmd(LCD_RMW); for(page=0;page<4;page++) { LCD_SetPage(page); LCD_SetColumn(0); for(y=0;y<61;y++) { LCD_WriteData(0xFF); } LCD_WriteCmd(LCD_END); } }
void LCD_ClearAll(void) { uchar page,y; LCD_WriteCmd(LCD_RMW); for(page=0;page<4;page++) { LCD_SetPage(page); LCD_SetColumn(0); for(y=0;y<61;y++) { LCD_WriteData(0); } LCD_WriteCmd(LCD_END); } }
void LCD_WriteCmd(unsigned char cmd) { LCD_WriteCmd1(cmd); LCD_WriteCmd2(cmd); return; }
void LCD_WriteCmd1(unsigned char cmd) { RW=0; E1=0; A0=0; P1=cmd; E1=1; E1=0; return; }
void LCD_WriteCmd2(unsigned char cmd) { RW=0; E2=0; A0=0; P1=cmd; E2=1; E2=0; return; }
void LCD_WriteData(unsigned char d) { LCD_WriteData1(d); LCD_WriteData2(d); return ; }
void LCD_WriteData1(unsigned char d) { RW=0; E1=0; A0=1; P1=d; E1=1; E1=0; return; }
void LCD_WriteData2(unsigned char d) { RW=0; E2=0; A0=1; P1=d; E2=1; E2=0; return; }
void LCD_SetColumn(unsigned char d) { LCD_SetColumn1(d); LCD_SetColumn2(d); return; } void LCD_SetColumn1(unsigned char d) { LCD_WriteCmd1(d); return; }
void LCD_SetColumn2(unsigned char d) { LCD_WriteCmd2(d); return; }
void LCD_SetPage(unsigned char page) { LCD_SetPage1(page); LCD_SetPage2(page); return; } void LCD_SetPage1(unsigned char page) { page=page%4; LCD_WriteCmd1(LCD_PAGE_0+page); return; }
void LCD_SetPage2(unsigned char page) { page=page%4; LCD_WriteCmd2(LCD_PAGE_0+page); return; }
unsigned char LCD_ReadData1(void) { unsigned char d=0; RW=1; E1=0; A0=1; P1=0xFF; E1=1; d=P1; E1=0; return d; }
unsigned char LCD_ReadData2(void) { unsigned char d=0; RW=1; E2=0; A0=1; P1=0xFF; E2=1; d=P1; E2=0; return d; }
E2=0; A0=1; P1=0xFF; E2=1; d=P1; E2=0; return d; }
|