📄 ra8835.lst
字号:
C51 COMPILER V7.50 RA8835 09/18/2006 13:31:09 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE RA8835
OBJECT MODULE PLACED IN ra8835.OBJ
COMPILER INVOKED BY: C:\Program Files\Keil\C51\BIN\C51.EXE ra8835.C BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <hnk51.h>
2 #include <lcd_command.h>
3 #include <testchip.h>
4
5 void delay1ms(unsigned int count)
6 {
7 1 int i,j;
8 1 for(i=0;i<=count;i++)
9 1 for(j=0;j<=583;j++);
10 1 }
11
12 void lcd_reset(void)
13 {
14 1
15 1 lcd_RES = 1;
16 1 delay1ms(2);
17 1 lcd_SEL1 = 0;
18 1 lcd_A0 = 0;
19 1 lcd_WR = 1;
20 1 lcd_RD = 1;
21 1 lcd_CS = 1;
22 1 lcd_RES = 0;
23 1 delay1ms(100);
24 1 lcd_RES = 1;
25 1 delay1ms(500);
26 1
27 1 }
28
29 void lcd_initial(void)
30 {
31 1 lcd_cmdwrite(0x40); //SYSTEM SET
32 1 lcd_datawrite(0x30); //p1
33 1 lcd_datawrite(0x87); //p2
34 1 lcd_datawrite(0x07); //p3
35 1 lcd_datawrite(0x27); //p4
36 1 lcd_datawrite(0x37); //p5
37 1 lcd_datawrite(0xef); //p6
38 1 lcd_datawrite(0x28); //p7
39 1 lcd_datawrite(0x00); //p8
40 1
41 1
42 1 lcd_cmdwrite(0x44); //SCROLL
43 1 lcd_datawrite(0x00); //sa1-L
44 1 lcd_datawrite(0x00); //sa1-H
45 1 lcd_datawrite(0xf0); //sL1
46 1 lcd_datawrite(0x80); //sa2-L
47 1 lcd_datawrite(0x25); //sa2-H
48 1 lcd_datawrite(0xf0); //sL2
49 1 lcd_datawrite(0x00); //sa3-L
50 1 lcd_datawrite(0x3a); //sa3-H
51 1 lcd_datawrite(0x00); //sa4-L
52 1 lcd_datawrite(0x3a); //sa4-H
53 1
54 1 lcd_cmdwrite(0x5a); //HDOT SCR
55 1 lcd_datawrite(0x00);
C51 COMPILER V7.50 RA8835 09/18/2006 13:31:09 PAGE 2
56 1
57 1 lcd_cmdwrite(0x58); //DISP OFF
58 1 lcd_datawrite(0x54);
59 1
60 1 lcd_cmdwrite(0x5d); //CSR FORM
61 1 lcd_datawrite(0x00); //CRX
62 1 lcd_datawrite(0x00); //CRY
63 1
64 1 lcd_cmdwrite(0x59); //DISP ON
65 1 lcd_datawrite(0x54);
66 1
67 1 lcd_cmdwrite(0x5b);
68 1 lcd_datawrite(0x00);
69 1 }
70
71 void lcd_cmdwrite(unsigned char cmdx)
72 {
73 1 lcd_SEL1 = 0;
74 1 lcd_CMD = cmdx;
75 1 lcd_A0 = 1;
76 1 lcd_CS = 0;
77 1 lcd_WR = 0;
78 1 lcd_WR = 1;
79 1 lcd_CS = 1;
80 1 // lcd_A0 = 0;
81 1 }
82
83 void lcd_datawrite(unsigned char datax)
84 {
85 1 lcd_chkbusy();
86 1
87 1 lcd_SEL1 = 0;
88 1 lcd_A0 = 0;
89 1 lcd_DATA = datax;
90 1 lcd_CS = 0;
91 1 lcd_WR = 0;
92 1 lcd_WR = 1;
93 1 lcd_CS = 1;
94 1 lcd_A0 = 1;
95 1 }
96
97 unsigned char lcd_cmdread(void)
98 {
99 1 unsigned char address_cmd;
100 1 lcd_DATA=0xff;
101 1 lcd_SEL1 = 0;
102 1 lcd_A0 = 0;
103 1 lcd_CS = 0;
104 1 lcd_RD = 0;
105 1 address_cmd = lcd_DATA;
106 1 lcd_RD = 1;
107 1 lcd_CS = 1;
108 1 lcd_A0 = 0;
109 1 return(address_cmd);
110 1 }
111
112 unsigned char lcd_dataread(void)
113 {
114 1 char address_data;
115 1
116 1 lcd_DATA=0xff;
117 1 lcd_SEL1 = 0;
C51 COMPILER V7.50 RA8835 09/18/2006 13:31:09 PAGE 3
118 1 lcd_A0 = 1;
119 1 lcd_CS = 0;
120 1 lcd_RD = 0;
121 1
122 1 address_data = lcd_DATA;
123 1 lcd_RD = 1;
124 1 lcd_CS = 1;
125 1 lcd_A0 = 1;
126 1 return(address_data);
127 1 }
128
129
130 void lcd_cursorxy(unsigned char x,unsigned char y)
131 {
132 1 //lcd_chkbusy();
133 1 lcd_cmdwrite(0x46);
134 1 lcd_datawrite(x);
135 1 lcd_datawrite(y);
136 1
137 1 }
138
139 void lcd_chkbusy(void)
140 {
141 1 unsigned char busy;
142 1
143 1 do
144 1 {
145 2 busy =(lcd_cmdread() & 0x40);
146 2
147 2 }while(busy);
148 1
149 1 }
150
151 void lcd_showbig(unsigned char *text,unsigned int x)
152 {
153 1 while(*text != '\0')
154 1 {
155 2 lcd_datawrite(*text);
156 2 ++text;
157 2
158 2 delay1ms(x);
159 2 }
160 1 }
161
162 void lcd_clear(void)
163 {
164 1 unsigned int i;
165 1 lcd_cursorxy(0x00,0x00);
166 1 lcd_cmdwrite(0x42);
167 1 for(i=0;i<0x7fff;i++)
168 1 lcd_datawrite(0x00);
169 1 }
170
171
172
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 413 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
C51 COMPILER V7.50 RA8835 09/18/2006 13:31:09 PAGE 4
DATA SIZE = ---- 9
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 + -