?? ocmj4×15d.lst
字號:
C51 COMPILER V7.50 OCMJ4×15D 04/13/2008 10:47:22 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE OCMJ4×15D
OBJECT MODULE PLACED IN Ocmj4×15D.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Ocmj4×15D.C BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg52.h>
2 #define uchar unsigned char
3 #define lcd_regnada P1
4 #define lcd_data P1
5 #define lcd_control P2
6 sbit lcd_rs =P3^4; //L:存取緩存器,H:存取DDRAM
7 sbit lcd_wr =P3^5; //L有效
8 sbit lcd_rd =P2^3; //L有效
9 sbit lcd_cs1 =P2^2; //L有效
10 sbit lcd_cs2 =P3^3; //H有效
11 sbit lcd_busy =P2^0;
12 sbit lcd_int =P2^1;
13 sbit lcd_rst =P2^4; //L有效
14 //***************************************************
15 void delay(int k)
16 {
17 1 int i;
18 1 for(i=0;i<k;i++);
19 1 }
20 void delay1 (int ms)
21 {
22 1 int i,j;
23 1 for(i=0;i<ms;i++)
24 1 for(j=0;j<123;j++);
25 1 }
26 //=============================================
27 void lcd_regwr(uchar regnada) small
28 {
29 1 lcd_regnada = regnada;
30 1 lcd_cs1 =0; // chip enable.
31 1 lcd_rd = 1; //
32 1 lcd_rs = 0; // rs = 0;
33 1 lcd_wr = 0; // wr = 0;
34 1 ;
35 1 lcd_wr = 1; // wr = 1;
36 1 lcd_rs = 1; // rs = 1;
37 1 lcd_cs1 =1; // chip disable.
38 1 }
39
40 void lcd_regwrite(uchar regname,uchar regdata) small
41 { //寫資料到緩存器
42 1 lcd_regwr(regname);
43 1 delay(1);
44 1 lcd_regwr(regdata);
45 1 }
46
47 //.............................................
48 void lcd_datawrite(uchar wrdata) small
49 { //寫資料到DDRAM
50 1 while(lcd_busy == 1);
51 1 lcd_data = wrdata;
52 1 lcd_cs1 =0; // chip enable.
53 1 lcd_rd = 1; //
54 1 lcd_rs = 1; // rs = 1;
55 1 lcd_wr = 0; // wr = 0;
C51 COMPILER V7.50 OCMJ4×15D 04/13/2008 10:47:22 PAGE 2
56 1 ;
57 1 lcd_wr = 1; // wr = 1;
58 1 lcd_rs = 1; // rs = 1;
59 1 lcd_cs1 =1; // chip disable.
60 1 }
61 //.............................................
62 uchar lcd_regread(uchar regname) small
63 { //讀緩存器
64 1 uchar reg_rddata;
65 1 lcd_regwr(regname);
66 1
67 1 lcd_data = 0xff;
68 1 lcd_cs1 =0; // chip enable.
69 1 lcd_wr = 1; // wr = 1;
70 1 lcd_rs = 0; // rs = 0;
71 1 lcd_rd = 0; // rd = 0;
72 1 ;
73 1 reg_rddata = lcd_data;
74 1 lcd_rd = 1; // rd = 1;
75 1 lcd_rs = 1; // rs = 1;
76 1 lcd_cs1 =1; // chip disable.
77 1 return(reg_rddata);
78 1 }
79 //.............................................
80 void gotoxy(uchar x,uchar y) small
81 { //定坐標
82 1 lcd_regwrite(0x60,x); // active window top register(awtr)
83 1 lcd_regwrite(0x70,y); // active window top register(awtr)
84 1 }
85 //=============================================
86
87 void lcd_reset(void) small
88 { //上電復位
89 1 delay1(120); // delay 120ms 等待上電復位
90 1 lcd_control = 0xff; // lcd_rs/wr/rd/cs1/cs2 normal - skeep high.
91 1 }
92 //.............................................
93 void lcd_initial(void) small
94 { //初始化
95 1 lcd_regwrite(0x00,0xc9); // lcd control register(lcr)
96 1 lcd_regwrite(0x01,0xf2); // misc.register(mir)
97 1 lcd_regwrite(0x02,0x10); // advance power setup register(apsr)
98 1 lcd_regwrite(0x03,0x80); // advance display setup regiser(adsr)
99 1 lcd_regwrite(0x10,0x6b); // cursor control register(ccr)
100 1 lcd_regwrite(0x11,0x00); // distance of word or lines register(dwlr)
101 1 lcd_regwrite(0x12,0x91); // memory access mode register(awrr)
102 1 lcd_regwrite(0x21,0x1d); // display window right register(dwrr)
103 1 lcd_regwrite(0x31,0x3f); // display window bottom register(dwbr)
104 1 lcd_regwrite(0x41,0x00); // display window left register(dwlr)
105 1 lcd_regwrite(0x51,0x00); // display window top register(dwtr)
106 1 lcd_regwrite(0x20,0x1d); // active window right register(awrr)
107 1 lcd_regwrite(0x30,0x3f); // active window bottom register(awbr)
108 1 lcd_regwrite(0x40,0x00); // active window left register(awlr)
109 1 lcd_regwrite(0x50,0x00); // active window top register(awtr)
110 1 lcd_regwrite(0x60,0x00); // cursor position x register(cpxr)
111 1 lcd_regwrite(0x61,0x00); // begin segment position register(bgsg)
112 1 lcd_regwrite(0x70,0x00); // cursor position y register(cpyr)
113 1 lcd_regwrite(0x71,0x00); // shift action range,begin commom register(bgcm)
114 1 lcd_regwrite(0x72,0x3f); // shift action range,end commom register(edcm)
115 1 lcd_regwrite(0x80,0xaa); // blink time register(btr)
116 1 lcd_regwrite(0x81,0x00); // frame rate polarity change at common_fa register(fdca)
117 1 lcd_regwrite(0x91,0x00); // frame rate polarity change at common_fb register(fdcb)
C51 COMPILER V7.50 OCMJ4×15D 04/13/2008 10:47:22 PAGE 3
118 1 lcd_regwrite(0x90,0x1e); // shift clock control register(sccr)
119 1 lcd_regwrite(0xa0,0x11); // interrupt setup & status register(frcb)
120 1 lcd_regwrite(0xa1,0x00); // key scan control register(kscr)
121 1 lcd_regwrite(0xa2,0x00); // key scan data register(ksdr)
122 1 lcd_regwrite(0xa3,0x00); // key scan data expand register(kser)
123 1 lcd_regwrite(0xb0,0x1d); // interrupt column setup register(intx)
124 1 lcd_regwrite(0xb1,0x3f); // interrupt row setup register(inty)
125 1 lcd_regwrite(0xc0,0x00); // touch panel control register(tpcr)
126 1 lcd_regwrite(0xc1,0x0a); // adc status register(adcs)
127 1 lcd_regwrite(0xc8,0x80); // touch panel segment high byte data register(tpxr)
128 1 lcd_regwrite(0xc9,0x80); // touch panel common high byte data register(tpyr)
129 1 lcd_regwrite(0xca,0x00); // touch panel segment/common low byte data register(tpzr)
130 1 lcd_regwrite(0xd0,0x80); // lcd contrast control register (lccr)
131 1 lcd_regwrite(0xe0,0x00); // pattern data register(pdr)
132 1 lcd_regwrite(0xf0,0xa0); // font control register(fcr)
133 1 lcd_regwrite(0xf1,0x0f); // font size control register
134 1 }
135 //.............................................
136 void lcd_clear(void) small
137 { //清屏
138 1 uchar reg_rddata;
139 1 lcd_regwrite(0xe0,0x00);
140 1 reg_rddata = lcd_regread(0xf0);
141 1 reg_rddata |= 0x08;
142 1 lcd_regwrite(0xf0,reg_rddata);
143 1 }
144 //.............................................
145 void lcd_photo(uchar code *pho) small
146 { //顯示圖形
147 1 uchar i,j,k;
148 1 uchar code *pp;
149 1 gotoxy(0,0);
150 1 for(k=0;k<4;k++)
151 1 {
152 2 pp=pho;
153 2 for(j=0;j<60;j++)
154 2 {
155 3 for(i=0;i<40;i++)
156 3 {
157 4 lcd_datawrite(*pp);
158 4 ++pp;
159 4 }
160 3 }
161 2 }
162 1 }
163 //.............................................
164 void lcd_lattice(uchar data1,uchar data2) small
165 { //顯示點陣
166 1 uchar i,j;
167 1 gotoxy(0,0);
168 1 for(j=0;j<60;j++)
169 1 {
170 2 for(i=0;i<80;i++)
171 2 {
172 3 lcd_datawrite(data1);
173 3 }
174 2 for(i=0;i<80;i++)
175 2 {
176 3 lcd_datawrite(data2);
177 3 }
178 2 }
179 1 }
C51 COMPILER V7.50 OCMJ4×15D 04/13/2008 10:47:22 PAGE 4
180 //.............................................
181 void lcd_character(uchar code *cha,int count) small
182 { //顯示中文或字符
183 1 int i;
184 1 for(i=0;i<count;i++)
185 1 {
186 2 lcd_datawrite(*cha);
187 2 ++cha;
188 2 }
189 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 596 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 7
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -