12232 LCM Driver

自己写的12232LCM模块的驱动代码,实现了基本的功能。
  1 None.gif // ==============================================================
  2 None.gif // 12232.h
  3 None.gif // ==============================================================
  4 None.gif #ifndef __12232Driver_H
  5 None.gif #define  __12232Driver_H
  6 None.gif void  LCD_Init( void );
  7 None.gif void  LCD_Reset( void );
  8 None.gif void  LCD_FillAll( void );
  9 None.gif void  LCD_ClearAll( void );
 10 None.gif void  LCD_WriteCmd(unsigned  char  cmd);
 11 None.gif void  LCD_WriteCmd1(unsigned  char  cmd);
 12 None.gif void  LCD_WriteCmd2(unsigned  char  cmd);
 13 None.gif void  LCD_SetColumn(unsigned  char  column);
 14 None.gif void  LCD_SetColumn1(unsigned  char  column);
 15 None.gif void  LCD_SetColumn2(unsigned  char  column);
 16 None.gif void  LCD_SetPage(unsigned  char  page);
 17 None.gif void  LCD_SetPage1(unsigned  char  page);
 18 None.gif void  LCD_SetPage2(unsigned  char  page);
 19 None.gif void  LCD_WriteData(unsigned  char  d);
 20 None.gif void  LCD_WriteData1(unsigned  char  d);
 21 None.gif void  LCD_WriteData2(unsigned  char  d);
 22 None.gifunsigned  char  LCD_ReadData1( void );
 23 None.gifunsigned  char  LCD_ReadData2( void );
 24 None.gif #endif
 25 None.gif
 26 None.gif // ==============================================================
 27 None.gif // 12232Driver.c
 28 None.gif // ==============================================================
 29 None.gif #include  < reg51.h >
 30 None.gif#include  " 12232Driver.h "
 31 None.gif // #include <intrins.h>
 32 None.gif
 33 None.gifsbit E1 = P3 ^ 4 ;
 34 None.gifsbit E2 = P3 ^ 5 ;
 35 None.gifsbit A0 = P3 ^ 7 ;
 36 None.gifsbit RST = P3 ^ 2 ;
 37 None.gifsbit RW = P3 ^ 6 ;
 38 None.gif
 39 None.gif #define  LCD_DISPLAY_ON         0xAF
 40 None.gif #define  LCD_DISPLAY_OFF        0xAE
 41 None.gif #define  LCD_START_LINE_0    0xC0     // Set Start Line 0
 42 None.gif #define  LCD_DRIVER_NORMAL    0xA4     // Normal display operation
 43 None.gif #define  LCD_DRIVER_STATIC    0xA5     // Power Save
 44 None.gif #define  LCD_DUTY_32            0xA9
 45 None.gif #define  LCD_DUTY_16            0xA8
 46 None.gif #define  LCD_RIGHTWARD_OUTPUT    0xA0
 47 None.gif #define  LCD_LEFTWARD_OUTPUT        0xA1
 48 None.gif #define  LCD_RESET            0xE3
 49 None.gif #define  LCD_PAGE_0            0xB8
 50 None.gif #define  LCD_RMW 0xE0
 51 None.gif #define  LCD_END                0xEE
 52 None.gif #define  uchar unsigned char
 53 None.gif // LCD Controller Display and Control Functions
 54 None.gif
 55 None.gif void  LCD_Init( void )
 56 ExpandedBlockStart.gifContractedBlock.gif dot.gif {
 57InBlock.gif    //E1=0;
 58InBlock.gif    //E2=0;
 59InBlock.gif    //Reset
 60InBlock.gif    RST=0;
 61InBlock.gif    RST=1;
 62InBlock.gif    LCD_WriteCmd(LCD_DISPLAY_ON);    //Display On
 63InBlock.gif    LCD_WriteCmd(LCD_START_LINE_0);        //Start = 0
 64InBlock.gif    LCD_WriteCmd(LCD_DRIVER_NORMAL);        //Driver
 65InBlock.gif    LCD_WriteCmd(LCD_DUTY_32);        //Duty 32
 66InBlock.gif    LCD_WriteCmd(LCD_RIGHTWARD_OUTPUT);        //ADC
 67InBlock.gif    LCD_WriteCmd(LCD_RESET);        //Reset
 68InBlock.gif    LCD_Reset();
 69ExpandedBlockEnd.gif}

 70 None.gif
 71 None.gif void  LCD_Reset( void )
 72 ExpandedBlockStart.gifContractedBlock.gif dot.gif {
 73InBlock.gif    LCD_WriteCmd(LCD_RESET);
 74ExpandedBlockEnd.gif}

 75 None.gif
 76 None.gif void  LCD_FillAll( void )
 77 ExpandedBlockStart.gifContractedBlock.gif dot.gif {
 78InBlock.gif    uchar page,y;
 79InBlock.gif    LCD_WriteCmd(LCD_RMW);
 80InBlock.gif    for(page=0;page<4;page++)
 81ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif{
 82InBlock.gif        LCD_SetPage(page);
 83InBlock.gif        LCD_SetColumn(0);
 84InBlock.gif        for(y=0;y<61;y++)
 85ExpandedSubBlockStart.gifContractedSubBlock.gif        dot.gif{
 86InBlock.gif            LCD_WriteData(0xFF);        
 87ExpandedSubBlockEnd.gif        }

 88InBlock.gif        LCD_WriteCmd(LCD_END);
 89ExpandedSubBlockEnd.gif    }

 90ExpandedBlockEnd.gif}

 91 None.gif
 92 None.gif void  LCD_ClearAll( void )
 93 ExpandedBlockStart.gifContractedBlock.gif dot.gif {
 94InBlock.gif    uchar page,y;
 95InBlock.gif    LCD_WriteCmd(LCD_RMW);
 96InBlock.gif    for(page=0;page<4;page++)
 97ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif{
 98InBlock.gif        LCD_SetPage(page);
 99InBlock.gif        LCD_SetColumn(0);
100InBlock.gif        for(y=0;y<61;y++)
101ExpandedSubBlockStart.gifContractedSubBlock.gif        dot.gif{
102InBlock.gif            LCD_WriteData(0);        
103ExpandedSubBlockEnd.gif        }

104InBlock.gif        LCD_WriteCmd(LCD_END);
105ExpandedSubBlockEnd.gif    }

106ExpandedBlockEnd.gif}

107 None.gif
108 None.gif
109 None.gif void  LCD_WriteCmd(unsigned  char  cmd)
110 ExpandedBlockStart.gifContractedBlock.gif dot.gif {
111InBlock.gif    LCD_WriteCmd1(cmd);
112InBlock.gif    LCD_WriteCmd2(cmd);
113InBlock.gif    return;
114ExpandedBlockEnd.gif}

115 None.gif
116 None.gif void  LCD_WriteCmd1(unsigned  char  cmd)
117 ExpandedBlockStart.gifContractedBlock.gif dot.gif {
118InBlock.gif    RW=0;
119InBlock.gif    E1=0;
120InBlock.gif    A0=0;
121InBlock.gif    P1=cmd;
122InBlock.gif    E1=1;
123InBlock.gif    E1=0;
124InBlock.gif    return;
125ExpandedBlockEnd.gif}

126 None.gif
127 None.gif void  LCD_WriteCmd2(unsigned  char  cmd)
128 ExpandedBlockStart.gifContractedBlock.gif dot.gif {
129InBlock.gif    RW=0;
130InBlock.gif    E2=0;
131InBlock.gif    A0=0;
132InBlock.gif    P1=cmd;
133InBlock.gif    E2=1;
134InBlock.gif    E2=0;
135InBlock.gif    return;
136ExpandedBlockEnd.gif}

137 None.gif
138 None.gif void  LCD_WriteData(unsigned  char  d)
139 ExpandedBlockStart.gifContractedBlock.gif dot.gif {
140InBlock.gif    LCD_WriteData1(d);
141InBlock.gif    LCD_WriteData2(d);
142InBlock.gif    return ;
143ExpandedBlockEnd.gif}

144 None.gif
145 None.gif void  LCD_WriteData1(unsigned  char  d)
146 ExpandedBlockStart.gifContractedBlock.gif dot.gif {
147InBlock.gif    RW=0;
148InBlock.gif    E1=0;
149InBlock.gif    A0=1;
150InBlock.gif    P1=d;
151InBlock.gif    E1=1;
152InBlock.gif    E1=0;
153InBlock.gif    return;
154ExpandedBlockEnd.gif}

155 None.gif
156 None.gif void  LCD_WriteData2(unsigned  char  d)
157 ExpandedBlockStart.gifContractedBlock.gif dot.gif {
158InBlock.gif    RW=0;
159InBlock.gif    E2=0;
160InBlock.gif    A0=1;
161InBlock.gif    P1=d;
162InBlock.gif    E2=1;
163InBlock.gif    E2=0;
164InBlock.gif    return;
165ExpandedBlockEnd.gif}

166 None.gif
167 None.gif void  LCD_SetColumn(unsigned  char  d)
168 ExpandedBlockStart.gifContractedBlock.gif dot.gif {
169InBlock.gif    LCD_SetColumn1(d);
170InBlock.gif    LCD_SetColumn2(d);
171InBlock.gif    return;
172ExpandedBlockEnd.gif}

173 None.gif void  LCD_SetColumn1(unsigned  char  d)
174 ExpandedBlockStart.gifContractedBlock.gif dot.gif {
175InBlock.gif    LCD_WriteCmd1(d);
176InBlock.gif    return;
177ExpandedBlockEnd.gif}

178 None.gif
179 None.gif void  LCD_SetColumn2(unsigned  char  d)
180 ExpandedBlockStart.gifContractedBlock.gif dot.gif {
181InBlock.gif    LCD_WriteCmd2(d);
182InBlock.gif    return;
183ExpandedBlockEnd.gif}

184 None.gif
185 None.gif void  LCD_SetPage(unsigned  char  page)
186 ExpandedBlockStart.gifContractedBlock.gif dot.gif {
187InBlock.gif    LCD_SetPage1(page);
188InBlock.gif    LCD_SetPage2(page);
189InBlock.gif    return;
190ExpandedBlockEnd.gif}

191 None.gif void  LCD_SetPage1(unsigned  char  page)
192 ExpandedBlockStart.gifContractedBlock.gif dot.gif {
193InBlock.gif    page=page%4;
194InBlock.gif    LCD_WriteCmd1(LCD_PAGE_0+page);    //0x5C
195InBlock.gif    return;
196ExpandedBlockEnd.gif}

197 None.gif
198 None.gif void  LCD_SetPage2(unsigned  char  page)
199 ExpandedBlockStart.gifContractedBlock.gif dot.gif {
200InBlock.gif    page=page%4;
201InBlock.gif    LCD_WriteCmd2(LCD_PAGE_0+page);    //0x5C
202InBlock.gif    return;
203ExpandedBlockEnd.gif}

204 None.gif
205 None.gifunsigned  char  LCD_ReadData1( void )
206 ExpandedBlockStart.gifContractedBlock.gif dot.gif {
207InBlock.gif    unsigned char d=0;
208InBlock.gif    RW=1;
209InBlock.gif    E1=0;
210InBlock.gif    A0=1;
211InBlock.gif    P1=0xFF;
212InBlock.gif    E1=1;
213InBlock.gif    d=P1;
214InBlock.gif    E1=0;
215InBlock.gif    return d;
216ExpandedBlockEnd.gif}

217 None.gif
218 None.gifunsigned  char  LCD_ReadData2( void )
219 ExpandedBlockStart.gifContractedBlock.gif dot.gif {
220InBlock.gif    unsigned char d=0;
221InBlock.gif    RW=1;
222InBlock.gif    E2=0;
223InBlock.gif    A0=1;
224InBlock.gif    P1=0xFF;
225InBlock.gif    E2=1;
226InBlock.gif    d=P1;
227InBlock.gif    E2=0;
228InBlock.gif    return d;
229ExpandedBlockEnd.gif}
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值