📄 display.lst
字号:
C51 COMPILER V7.09 DISPLAY 11/19/2006 16:03:08 PAGE 1
C51 COMPILER V7.09, COMPILATION OF MODULE DISPLAY
OBJECT MODULE PLACED IN display.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE display.c BROWSE DEBUG OBJECTEXTEND
line level source
1
2 #include "includes.h"
3 #include "display.h"
4 #include "eeprom.h"
5
6 sbit LCD_CS = P2^2;
7 sbit LCD_WR = P2^1;
8 sbit LCD_DA = P2^0;
9
10 uchar LCD[20] = {
11 0xd7, 0xc0, 0x9d, 0xdc, 0xca,
12 0x5e, 0x5f, 0xd0, 0xdf, 0xde,
13 0x00, 0x08, 0x9b, 0xdb
14 };
15
16 void WriteCmd(uint cmd)
17 {
18 1 uint temp;
19 1 uchar i;
20 1 temp = cmd << 5;
21 1 temp |= 0x8000;
22 1 LCD_CS = 1;
23 1 LCD_WR = 1;
24 1 LCD_DA = 1;
25 1 LCD_CS = 0;
26 1 for (i = 0; i < 12; i++) {
27 2 LCD_WR = 0;
28 2 if ((temp & 0x8000) != 0)
29 2 LCD_DA = 1;
30 2 else
31 2 LCD_DA = 0;
32 2 LCD_WR = 1;
33 2 temp = temp << 1;
34 2 }
35 1 LCD_WR = 1;
36 1 LCD_DA = 1;
37 1 LCD_CS = 1;
38 1 }
39
40 void WriteDat(uchar add, uchar dat)
41 {
42 1 uint temp;
43 1 uchar i;
44 1 temp = (add << 3) | dat;
45 1 temp = temp << 4;
46 1 temp |= 0xa000;
47 1 LCD_CS = 1;
48 1 LCD_WR = 1;
49 1 LCD_DA = 1;
50 1 LCD_CS = 0;
51 1 for (i = 0; i < 13; i++) {
52 2 LCD_WR = 0;
53 2 if ((temp & 0x8000) != 0)
54 2 LCD_DA = 1;
55 2 else
C51 COMPILER V7.09 DISPLAY 11/19/2006 16:03:08 PAGE 2
56 2 LCD_DA = 0;
57 2 LCD_WR = 1;
58 2 temp = temp << 1;
59 2 }
60 1 LCD_WR = 1;
61 1 LCD_DA = 1;
62 1 LCD_CS = 1;
63 1 }
64 void DisSet(char menu, char coun)
65 {
66 1 switch (menu) {
67 2 case 1:
68 2 DisSon(0, 11, 0);
69 2 DisSon(1, 1, 0);
70 2 DisSon(2, 11, 0);
71 2 switch (coun) {
72 3 case 0:
73 3 DisSon(4, 0, 0);
74 3 break;
75 3 case 1:
76 3 DisSon(4, 1, 0);
77 3 break;
78 3 default:
79 3 break;
80 3 }
81 2 break;
82 2 case 2:
83 2 DisSon(0, 11, 0);
84 2 DisSon(1, 1, 0);
85 2 DisSon(2, 11, 0);
86 2 switch (coun) {
87 3 case 0:
88 3 DisSon(3, 1, 0);
89 3 DisSon(4, 9, 0);
90 3 DisSon(5, 2, 0);
91 3 DisSon(6, 0, 0);
92 3 DisSon(7, 0, 0);
93 3 break;
94 3 case 1:
95 3 DisSon(3, 9, 0);
96 3 DisSon(4, 6, 0);
97 3 DisSon(5, 0, 0);
98 3 DisSon(6, 0, 0);
99 3 DisSon(7, 10, 0);
100 3 break;
101 3 case 2:
102 3 DisSon(3, 4, 0);
103 3 DisSon(4, 8, 0);
104 3 DisSon(5, 0, 0);
105 3 DisSon(6, 0, 0);
106 3 DisSon(7, 10, 0);
107 3 break;
108 3 case 3:
109 3 DisSon(3, 2, 0);
110 3 DisSon(4, 4, 0);
111 3 DisSon(5, 0, 0);
112 3 DisSon(6, 0, 0);
113 3 DisSon(7, 10, 0);
114 3 break;
115 3 case 4:
116 3 DisSon(3, 1, 0);
117 3 DisSon(4, 2, 0);
C51 COMPILER V7.09 DISPLAY 11/19/2006 16:03:08 PAGE 3
118 3 DisSon(5, 0, 0);
119 3 DisSon(6, 0, 0);
120 3 DisSon(7, 10, 0);
121 3 break;
122 3 case 5:
123 3 DisSon(3, 6, 0);
124 3 DisSon(4, 0, 0);
125 3 DisSon(5, 0, 0);
126 3 DisSon(6, 10, 0);
127 3 DisSon(7, 10, 0);
128 3 break;
129 3 case 6:
130 3 DisSon(3, 3, 0);
131 3 DisSon(4, 0, 0);
132 3 DisSon(5, 0, 0);
133 3 DisSon(6, 10, 0);
134 3 DisSon(7, 10, 0);
135 3 break;
136 3 default:
137 3 break;
138 3 }
139 2 break;
140 2 default:
141 2 break;
142 2 }
143 1 }
144
145 void Clear(void)
146 {
147 1 uchar i;
148 1 for (i = 0; i < 8; i++)
149 1 DisSon(i, 10, 0);
150 1 DisSon1(0, 0);
151 1 DisSon1(1, 0);
152 1 DisSon1(2, 0);
153 1 }
154
155 void DisSon(uchar num, uchar dat, bit dp)
156 {
157 1 uchar addr, temp;
158 1 switch (num) {
159 2 case 0:
160 2 addr = 29;
161 2 break;
162 2 case 1:
163 2 addr = 26;
164 2 break;
165 2 case 2:
166 2 addr = 22;
167 2 break;
168 2 case 3:
169 2 addr = 19;
170 2 break;
171 2 case 4:
172 2 addr = 15;
173 2 break;
174 2 case 5:
175 2 addr = 12;
176 2 break;
177 2 case 6:
178 2 addr = 8;
179 2 break;
C51 COMPILER V7.09 DISPLAY 11/19/2006 16:03:08 PAGE 4
180 2 case 7:
181 2 addr = 5;
182 2 break;
183 2 default:
184 2 break;
185 2 }
186 1 temp = LCD[dat];
187 1 if (dp == 1)
188 1 WriteDat(addr, (temp >> 5) | 0x01);
189 1 else
190 1 WriteDat(addr, (temp >> 5));
191 1 addr += 1;
192 1 WriteDat(addr, (temp >> 2) & 0x07);
193 1 addr += 1;
194 1 WriteDat(addr, ((temp << 1) & 0x06));
195 1 }
196
197 void DisSon1(uchar num, bit flag)
198 {
199 1 uchar addr;
200 1 switch (num) {
201 2 case 0:
202 2 addr = 25;
203 2 break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -