📄 lcd.lst
字号:
C51 COMPILER V7.50 LCD 07/13/2010 12:51:59 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE LCD
OBJECT MODULE PLACED IN LCD.obj
COMPILER INVOKED BY: D:\Program Files\KEIL\C51\BIN\C51.EXE Source\LCD.c LARGE BROWSE DEBUG OBJECTEXTEND PRINT(.\LCD.lst)
- OBJECT(LCD.obj)
line level source
1 /*
2 ================================================================================
3 Copytight : Yihetech Co,.Ltd, All rightd reserved. 版权归属亿和电子工作室
4 Store : http://shop57165217.taobao.com/
5
6 File Name : lcd.c
7 Description : LCD module operations
8 Date : 2009-7-19 21:17:45
9 Version : V1.0
10 Author : LiYong(李勇), yihe_liyong@126.com
11 Target device : C8051F340
12 Compiler : KeilC51 V8.16
13 Note : 转载时务必保留此信息,否则无权以任何形式传播本文件
14 ================================================================================
15 */
16 #define _LCD_C_
17 #include "LCD.H"
18
19
20 #define LCDCOM 0
21 #define LCDDAT 1
22
23 sbit LED_RD = P2^5;
24 sbit LED_CS = P2^7;
25 sbit LED_WR = P2^4;
26 sbit LED_A0 = P2^3;
27 sbit BLACKLIGHT = P2^0;
28
29
30 void _delay_ms(unsigned char del)
31 {
32 1 unsigned int i,j;
33 1 for(i=0; i<del; i++)
34 1 for(j=0; j<182; j++)
35 1 ;
36 1 }
37 /*
38 ================================================================================
39 * Name : LCD_Init( )
40 * Description : Initialize the LCD module
41 * Input : None
42 * Output : None
43 * Note : None
44 ================================================================================
45 */
46 void LCDWR( INT8U cmd_dt, INT8U value )
47 {
48 1 LED_RD = 1;
49 1 LED_CS = 1;
50 1 LED_WR = 1;
51 1 if(cmd_dt)
52 1 {
53 2 LED_A0 = 1;
54 2 }
C51 COMPILER V7.50 LCD 07/13/2010 12:51:59 PAGE 2
55 1 else
56 1 {
57 2 LED_A0 = 0;
58 2 }
59 1 P0 = value;
60 1 LED_CS = 0;
61 1 LED_WR = 0;
62 1 LED_WR = 1;
63 1 LED_CS = 1;
64 1 }
65 /*
66 ================================================================================
67 * Name : LCD_Init( )
68 * Description : Initialize the LCD module
69 * Input : None
70 * Output : None
71 * Note : None
72 ================================================================================
73 */
74 void LCD_Init( void )
75 {
76 1 LCDWR( LCDCOM, 0x01);//software reset
77 1 _delay_ms(50); //delay 150ms
78 1 LCDWR( LCDCOM,0xD7); // Auto load set
79 1 LCDWR ( LCDDAT,0x9f);//auto load disable//0x9f
80 1 LCDWR( LCDCOM,0xe0); //EE read/write mode
81 1 LCDWR ( LCDDAT,0x00); //set read mode
82 1 _delay_ms(50); //delay 150 ms
83 1 LCDWR( LCDCOM,0xe3); //read active
84 1 _delay_ms(50); //delay 150 ms
85 1 LCDWR( LCDCOM,0xe1); //cancel control close read mode
86 1
87 1 /////sleep out ///////
88 1 LCDWR( LCDCOM,0x28); //display off
89 1 LCDWR( LCDCOM,0x11); //sleep out
90 1 _delay_ms(20);
91 1
92 1 //////////////////////////////////////////////////////
93 1 /////VOP set///////////
94 1 LCDWR( LCDCOM,0xc0); //vo voltage set
95 1 LCDWR ( LCDDAT,0xff);///////////f5///// 08//00
96 1 LCDWR ( LCDDAT,0x00);//00//01
97 1
98 1 LCDWR( LCDCOM,0x25); //write contrast for mobile
99 1 LCDWR ( LCDDAT,0x3f);
100 1 //-----------OTPB SET----------------------//
101 1 LCDWR( LCDCOM,0xc3);// bias set
102 1 LCDWR ( LCDDAT,0x00); //1/12
103 1 LCDWR( LCDCOM,0xc4); //booster set
104 1 LCDWR ( LCDDAT,0x06);// //06 7倍压
105 1 LCDWR( LCDCOM,0xc5); //booster efficiency set
106 1 LCDWR ( LCDDAT,0x01); //11
107 1 LCDWR( LCDCOM,0xcb); //vg booster set
108 1 LCDWR ( LCDDAT,0x01);
109 1
110 1 LCDWR( LCDCOM,0xd0); //set vg source
111 1 LCDWR ( LCDDAT,0x1d);
112 1
113 1 //------------MTP SET-------------------------//
114 1 LCDWR( LCDCOM,0xb5); //n-line set
115 1 LCDWR ( LCDDAT,0x89);//00
116 1
C51 COMPILER V7.50 LCD 07/13/2010 12:51:59 PAGE 3
117 1 LCDWR( LCDCOM,0xbd); //x-talk compensation
118 1 LCDWR ( LCDDAT,0x02); //step2=level3
119 1
120 1 LCDWR( LCDCOM,0xf0);
121 1 LCDWR ( LCDDAT,0x06);
122 1 LCDWR ( LCDDAT,0x0b);
123 1 LCDWR ( LCDDAT,0x0d);
124 1 LCDWR ( LCDDAT,0x15);
125 1
126 1 LCDWR( LCDCOM,0x36); //MEMORY ACCESS CONTROL
127 1 LCDWR ( LCDDAT,0x88);//c8
128 1
129 1 LCDWR( LCDCOM,0x3a); //interface pixer format
130 1 LCDWR ( LCDDAT,0x05); //16bits pixel
131 1
132 1 LCDWR( LCDCOM,0xb0); //duty setting
133 1 LCDWR ( LCDDAT,0x7f); //duty=128
134 1 //=====================new
135 1 LCDWR( LCDCOM,0x2a); //col
136 1 LCDWR ( LCDDAT,0x00); //0~127
137 1 LCDWR ( LCDDAT,0x7f);
138 1
139 1 LCDWR( LCDCOM,0x2b); //page
140 1 LCDWR ( LCDDAT,0x00); //0~127
141 1 LCDWR ( LCDDAT,0x7f);
142 1
143 1 //-------------------gamma table set------------------//
144 1
145 1 LCDWR( LCDCOM, 0xF9); //Gamma
146 1 LCDWR ( LCDDAT,0x00); //
147 1 LCDWR ( LCDDAT,0x02); //
148 1 LCDWR ( LCDDAT,0x04); //
149 1 LCDWR ( LCDDAT,0x06); //
150 1 LCDWR ( LCDDAT,0x08); //
151 1 LCDWR ( LCDDAT,0x0A); //
152 1 LCDWR ( LCDDAT,0x0C); //
153 1 LCDWR ( LCDDAT,0x0E); //
154 1 LCDWR ( LCDDAT,0x10); //
155 1 LCDWR ( LCDDAT,0x12); //
156 1 LCDWR ( LCDDAT,0x14); //
157 1 LCDWR ( LCDDAT,0x16); //
158 1 LCDWR ( LCDDAT,0x18); //
159 1 LCDWR ( LCDDAT,0x1A); //
160 1 LCDWR ( LCDDAT,0x1C); //
161 1 LCDWR ( LCDDAT,0x1E); //
162 1
163 1 LCDWR( LCDCOM,0x29);
164 1 LCDWR( LCDCOM,0x2c);
165 1 }
166 /*
167 ========================================================================================================
168 Name: LCD_SetArea
169 Function: Set the area of screen for displaying
170 Input:
171 1.xs : Start position X
172 2.xe : End position X
173 3.ys : Start position Y
174 4.ye : End position Y
175 Output: None
176 Author: LiYong
177 Date : 2008.08.09
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -