📄 12232drivers.lst
字号:
C51 COMPILER V7.50 12232DRIVERS 09/26/2007 17:19:04 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE 12232DRIVERS
OBJECT MODULE PLACED IN 12232Drivers.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE 12232Drivers.c LARGE BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "mylib.h"
2 uchar dot_buffer[32]; //点阵缓存区
3 struct data_gb16 code hz16[] =
4 {
5 "向",
6 0x00,0x00,0xFC,0x04,0x04,0xE6,0x25,0x24,0x24,0x24,0xE4,0x04,0x04,0xFC,0x00,0x00,
7 0x00,0x00,0x7F,0x00,0x00,0x0F,0x04,0x04,0x04,0x04,0x0F,0x20,0x40,0x3F,0x00,0x00,
8 "盘",
9 0x20,0x20,0xA0,0x7C,0x24,0x26,0x6D,0xB4,0x24,0x24,0x24,0xFC,0x20,0x20,0x20,0x00,
10 0x44,0x42,0x41,0x7C,0x44,0x44,0x7C,0x45,0x44,0x7D,0x46,0x45,0x7C,0x40,0x40,0x00,
11 "检",
12 0x08,0x88,0x68,0xFF,0x28,0x48,0x10,0x48,0x44,0x43,0x44,0x48,0x50,0x10,0x10,0x00,
13 0x02,0x01,0x00,0x7F,0x00,0x20,0x22,0x2C,0x21,0x2E,0x30,0x28,0x27,0x22,0x20,0x00,
14 "仪",
15 0x40,0x20,0xF0,0x0C,0x03,0x00,0x38,0xC0,0x01,0x0E,0x04,0xE0,0x1C,0x00,0x00,0x00,
16 0x00,0x00,0xFF,0x00,0x40,0x40,0x20,0x10,0x0B,0x04,0x0B,0x10,0x20,0x60,0x20,0x00,
17 "测",
18 0x08,0x31,0x86,0x60,0x00,0xFE,0x02,0xF2,0x02,0xFE,0x00,0xF8,0x00,0x00,0xFF,0x00,
19 0x04,0xFC,0x03,0x00,0x80,0x47,0x30,0x0F,0x10,0x67,0x00,0x07,0x40,0x80,0x7F,0x00,
20 "正",
21 0x00,0x02,0x02,0xC2,0x02,0x02,0x02,0x02,0xFE,0x82,0x82,0x82,0x82,0x82,0x02,0x00,
22 0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x20,0x20,0x00,
23 "常",
24 0x20,0x18,0x08,0x09,0xEE,0xAA,0xA8,0xAF,0xA8,0xA8,0xEC,0x0B,0x2A,0x18,0x08,0x00,
25 0x00,0x00,0x3E,0x02,0x02,0x02,0x02,0xFF,0x02,0x02,0x12,0x22,0x1E,0x00,0x00,0x00,
26 "矩",
27 0xA0,0x90,0x8F,0xF8,0x88,0x88,0x88,0x00,0xFE,0x22,0x22,0x22,0x22,0xE2,0x02,0x00,
28 0x40,0x20,0x18,0x07,0x02,0x04,0x18,0x00,0x7F,0x42,0x42,0x42,0x42,0x47,0x40,0x00,
29 "转",
30 0xC8,0xA8,0x9C,0xEB,0x88,0x88,0x88,0x40,0x48,0xF8,0x4F,0x48,0x48,0x48,0x40,0x00,
31 0x08,0x08,0x04,0xFF,0x04,0x04,0x00,0x02,0x0B,0x12,0x22,0xD2,0x0E,0x02,0x00,0x00,
32 "角",
33 0x00,0x40,0x20,0xF0,0x98,0x97,0x92,0x92,0xF2,0x92,0x9A,0x96,0x92,0xF0,0x00,0x00,
34 0x00,0x80,0x60,0x1F,0x04,0x04,0x04,0x04,0xFF,0x04,0x04,0x44,0x84,0x7F,0x00,0x00,
35 "欠",
36 0x80,0x40,0x20,0x18,0x0F,0x0A,0x08,0xE8,0x08,0x08,0x48,0x28,0x18,0x08,0x00,0x00,
37 0x40,0x40,0x20,0x20,0x10,0x0C,0x03,0x00,0x03,0x0C,0x10,0x30,0x60,0x20,0x20,0x00,
38 "压",
39 0x00,0x00,0xFE,0x02,0x42,0x42,0x42,0x42,0xFA,0x42,0x42,0x42,0x62,0x42,0x02,0x00,
40 0x20,0x18,0x27,0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x21,0x2E,0x24,0x20,0x20,0x00,
41 "完",
42 0x00,0x90,0x8C,0xA4,0xA4,0xA4,0xA5,0xA6,0xA4,0xA4,0xA4,0xA4,0x94,0x8C,0x04,0x00,
43 0x00,0x80,0x40,0x20,0x18,0x07,0x00,0x00,0x00,0x3F,0x40,0x40,0x40,0x70,0x00,0x00,
44 "成",
45 0x00,0x00,0xF8,0x48,0x48,0x48,0xC8,0x08,0xFF,0x08,0x09,0x0A,0xC8,0x88,0x08,0x00,
46 0x40,0x30,0x0F,0x00,0x08,0x50,0x4F,0x20,0x10,0x0B,0x0C,0x12,0x21,0x40,0xF0,0x00,
47 "保",
48 0x40,0x20,0xF8,0x17,0x82,0x80,0xBE,0xA2,0xA2,0xE2,0xA2,0xA2,0xBE,0x80,0x80,0x00,
49 0x00,0x00,0x7F,0x00,0x20,0x10,0x08,0x06,0x01,0x7F,0x03,0x0C,0x18,0x30,0x10,0x00,
50 "存",
51 0x00,0x04,0x04,0xC4,0x64,0x1C,0x27,0x25,0x24,0x24,0xA4,0x64,0x24,0x04,0x00,0x00,
52 0x04,0x02,0x01,0xFF,0x00,0x02,0x02,0x02,0x42,0x82,0x7F,0x02,0x02,0x02,0x02,0x00,
53 "选",
54 0x40,0x40,0x42,0xCC,0x00,0x50,0x4E,0xC8,0x48,0x7F,0xC8,0x48,0x48,0x40,0x00,0x00,
55 0x00,0x40,0x20,0x1F,0x20,0x48,0x46,0x41,0x40,0x40,0x47,0x48,0x48,0x4E,0x40,0x00,
C51 COMPILER V7.50 12232DRIVERS 09/26/2007 17:19:04 PAGE 2
56 "择",
57 0x08,0x08,0xFF,0x88,0x48,0x08,0x42,0x46,0x2A,0xD2,0x2A,0x46,0x42,0x80,0x80,0x00,
58 0x42,0x81,0x7F,0x00,0x00,0x08,0x09,0x09,0x09,0xFF,0x09,0x09,0x09,0x08,0x08,0x00,
59 "定",
60 0x00,0x10,0x0C,0xA4,0x24,0x24,0x25,0xE6,0x24,0x24,0x24,0x24,0x14,0x0C,0x04,0x00,
61 0x40,0x20,0x18,0x07,0x08,0x10,0x20,0x7F,0x42,0x42,0x42,0x42,0x40,0x40,0x00,0x00,
62 "检",
63 0x08,0x88,0x68,0xFF,0x28,0x48,0x10,0x48,0x44,0x43,0x44,0x48,0x50,0x10,0x10,0x00,
64 0x02,0x01,0x00,0x7F,0x00,0x20,0x22,0x2C,0x21,0x2E,0x30,0x28,0x27,0x22,0x20,0x00,
65 "标",
66 0x10,0x10,0xD0,0xFF,0x50,0x90,0x20,0x22,0x22,0x22,0xE2,0x22,0x22,0x22,0x20,0x00,
67 0x04,0x03,0x00,0xFF,0x00,0x09,0x04,0x03,0x40,0x80,0x7F,0x00,0x01,0x06,0x1C,0x00,
68 "电",
69 0x00,0x00,0xF8,0x48,0x48,0x48,0x48,0xFF,0x48,0x48,0x48,0x48,0xF8,0x00,0x00,0x00,
70 0x00,0x00,0x0F,0x04,0x04,0x04,0x04,0x3F,0x44,0x44,0x44,0x44,0x4F,0x40,0x70,0x00,
71 "状",
72 0x08,0x30,0x00,0xFF,0x20,0x20,0x20,0x20,0xFF,0x20,0xE1,0x26,0x2C,0x20,0x20,0x00,
73 0x04,0x02,0x01,0xFF,0x40,0x20,0x18,0x07,0x00,0x00,0x03,0x0C,0x30,0x60,0x20,0x00,
74 "态",
75 0x00,0x04,0x04,0x04,0x84,0x44,0x34,0x4F,0x94,0x24,0x44,0x84,0x84,0x04,0x00,0x00,
76 0x00,0x60,0x39,0x01,0x00,0x3C,0x40,0x42,0x4C,0x40,0x40,0x70,0x04,0x09,0x31,0x00,
77 "与",
78 0x00,0x00,0x00,0x00,0x7E,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0xCC,0x08,0x00,
79 0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x24,0x46,0x44,0x20,0x1F,0x00,0x00,
80 "上",
81 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x40,0x40,0x40,0x40,0x40,0x00,0x00,0x00,
82 0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x7F,0x40,0x40,0x40,0x40,0x40,0x60,0x40,0x00,
83 "位",
84 0x00,0xC0,0x30,0xEC,0x03,0x2A,0xC8,0x09,0x0A,0x0E,0x08,0xE8,0x48,0x08,0x00,0x00,
85 0x01,0x00,0x00,0x7F,0x20,0x20,0x20,0x27,0x20,0x30,0x2E,0x21,0x20,0x20,0x20,0x00,
86 "机",
87 0x08,0x08,0xC8,0xFF,0x48,0x88,0x08,0x00,0xFE,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,
88 0x04,0x03,0x00,0xFF,0x00,0x41,0x30,0x0C,0x03,0x00,0x00,0x00,0x3F,0x40,0x78,0x00,
89 "通",
90 0x40,0x41,0xC6,0x00,0x00,0xF2,0x52,0x52,0x56,0xFA,0x5A,0x56,0xF2,0x00,0x00,0x00,
91 0x40,0x20,0x1F,0x20,0x40,0x5F,0x42,0x42,0x42,0x5F,0x4A,0x52,0x4F,0x40,0x40,0x00,
92 "讯",
93 0x20,0x21,0x2E,0xE4,0x00,0x42,0x42,0xFE,0x42,0x42,0x42,0x02,0xFE,0x00,0x00,0x00,
94 0x00,0x00,0x00,0x7F,0x20,0x10,0x00,0x7F,0x00,0x00,0x00,0x00,0x3F,0x40,0x38,0x00
95
96
97 };
98 void send_mi(uchar instruction)
99 {
100 1 clr_E2(); //关S
101 1 set_E1(); //开M
102 1 wait_ready();
103 1 clr_A0(); //指令
104 1 clr_WR(); //写触发
105 1 NOP();
106 1 lcd_data = instruction; //指令码
107 1 NOP();
108 1 clr_E1(); //关M
109 1 }
110
111 void send_md(uchar c)
112 {
113 1 clr_E2(); //关S
114 1 set_E1(); //开M
115 1 wait_ready();
116 1 set_A0(); //数据
117 1 clr_WR(); //写触发
C51 COMPILER V7.50 12232DRIVERS 09/26/2007 17:19:04 PAGE 3
118 1 NOP();
119 1 lcd_data = c; //数据
120 1 NOP();
121 1 clr_E1(); //关M
122 1 }
123
124 void send_si(uchar instruction)
125 {
126 1 clr_E1(); //关M
127 1 set_E2(); //开S
128 1 wait_ready();
129 1 clr_A0(); //指令
130 1 clr_WR(); //写触发
131 1 NOP();
132 1 lcd_data=instruction; //指令码
133 1 NOP();
134 1 clr_E2(); //关S
135 1 }
136
137 void send_sd(uchar c)
138 {
139 1 clr_E1();
140 1 set_E2();
141 1 wait_ready();
142 1 set_A0(); //数据
143 1 clr_WR(); //写触发
144 1 lcd_data = c;
145 1 NOP();
146 1 clr_E2();
147 1 }
148
149 //等待ready:等待LCD内部操作完成
150
151 void wait_ready(void)
152 {
153 1 // DDRA = 0x00; //PA口输入
154 1 clr_A0(); //指令
155 1 set_WR(); //读
156 1 NOP();
157 1 while(lcd_data & status_busy); //读入LCD状态,1=忙,一直等待LCD内部操作完成
158 1 // DDRA = 0xff; //重新置PA口输出
159 1 }
160
161 //122x32LCD初始化
162 void lcd_init(void)
163 {
164 1 send_mi(reset); //复位m-left,s-right
165 1 send_si(reset);
166 1
167 1 send_mi(disp_off); //关闭显示
168 1 send_si(disp_off);
169 1
170 1 send_mi(dynamic_driver); //动态驱动
171 1 send_si(dynamic_driver);
172 1
173 1 send_mi(clk32); //1/32占空比
174 1 send_si(clk32);
175 1
176 1 send_mi(adc_select); //clockwise
177 1 send_si(adc_select);
178 1
179 1 send_mi(mode_write); //写模式
C51 COMPILER V7.50 12232DRIVERS 09/26/2007 17:19:04 PAGE 4
180 1 send_si(mode_write);
181 1
182 1 send_mi(col_addr_set);
183 1 send_mi(disp_start_line); //归回零列,设定显示起始行首
184 1 send_si(col_addr_set);
185 1 send_si(disp_start_line);
186 1
187 1 send_mi(disp_on); //开显示
188 1 send_si(disp_on);
189 1 }
190
191 //清屏
192 void lcd_clr(void)
193 {
194 1 uchar i, page;
195 1 for (page=0;page<4;page++)
196 1 {
197 2 send_mi(page_addr_set|page); //0xb8 10111000
198 2 send_si(page_addr_set|page);
199 2 send_mi(0); //主窗口设置为0列
200 2 send_si(0); //从窗口设置为0列
201 2 for (i=0;i<62;i++)
202 2 {
203 3 send_md(0x00);
204 3 send_sd(0x00);
205 3 }
206 2 }
207 1 }
208
209 void lcd_clr1(uchar page,uchar i,uchar withe,uchar mode)
210 {
211 1 //uchar page;
212 1 //for (page=0;page<4;page++)
213 1 //{
214 1 uchar k;
215 1 send_mi(page_addr_set|page); //0xb8 10111000
216 1 send_si(page_addr_set|page);
217 1 send_mi(i);
218 1 send_si(i);
219 1 //for (i=0;i<62;i++)
220 1 for(k=i;k<(i+withe);k++)
221 1 {
222 2 //send_md(0x00);
223 2 //send_sd(0x00);
224 2 if(mode)
225 2 {
226 3 send_md(0); //左屏
227 3 // send_sd(0);
228 3 }
229 2 else send_sd(0); //右屏
230 2 }
231 1 //}
232 1 }
233 /*void lcd_clr2()
234 {
235 lcd_clr1(0,6,54,1);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -