📄 ht1621_drv.lst
字号:
105 1 Byte bBits= 0x80; //write mode command and address is 1000b.
106 1
107 1 LCD_CS = 0;
108 1 LCD_DA = 1;
109 1 for (i=0; i<4; i++) { //transmit data "1000"
110 2 LCD_RW = 0;
111 2 if (bBits & 0x80) LCD_DA = 1;
112 2 else LCD_DA = 0;
113 2 bBits <<= 1;
114 2 LCD_RW = 1;
115 2 }
116 1 //bBits = bByte;
117 1 HT1621_getMSB(bByte);
118 1 LCD_CS = 1;
119 1 LCD_DA = 1;
120 1 }
121
122 /*F**************************************************************************
123 * NAME: HT1621_getdata
124 *----------------------------------------------------------------------------
125 * PARAMS:
126 *
127 * return:
128 * Decoded key pressed
129 *----------------------------------------------------------------------------
130 * PURPOSE:
131 *----------------------------------------------------------------------------
132 * EXAMPLE:
133 *----------------------------------------------------------------------------
134 * NOTE:
135 *----------------------------------------------------------------------------
136 * REQUIREMENTS:
137 *****************************************************************************/
138 /***************************************************/
139 void HT1621_getdata(Byte address,Byte bByte) {
140 1
141 1 address = (address | 0x40);//write mode command and address is 101000000b.
142 1 LCD_CS = 0;
143 1 LCD_RW = 0;
144 1 LCD_DA = 1;
145 1 LCD_RW = 1;
146 1 HT1621_getMSB(address);
147 1 HT1621_getLSB(bByte);
148 1 LCD_CS = 1;
C51 COMPILER V8.01 HT1621_DRV 08/07/2006 11:16:11 PAGE 10
149 1 LCD_DA = 1;
150 1 }
151
152
153 /*-----------------------------------------------*/
154 /*LCD所有的显示RAM清除*/
155 void ht1621_cls (void)
156 {
157 1 Byte i; //data
158 1
159 1 LCD_CS = 0;
160 1 LCD_RW = 0;
161 1 LCD_DA = 1;
162 1 LCD_RW = 1;
163 1 HT1621_getMSB(0x40);
164 1 for (i=0; i<9; i++){
165 2 HT1621_getLSB(0X00);
166 2 }
167 1 LCD_CS = 1;
168 1 LCD_DA = 1;
169 1 }
170
171 /*-----------------------------------------------*/
172 /*ht1621秒钟显示*/
173 void glht1621_sec(Byte bByte)
174 {
175 1 HT1621_getdata(HT1621SEC_ADDH,ht1621disp_Map[bByte/10]); /*显示十位*/
176 1 HT1621_getdata(HT1621SEC_ADDL,ht1621disp_Map[bByte%10]); /*显示个位*/
177 1 //HT1621_getdata(HT1621SEC_ADDL,0x06); /*显示十位*/
178 1 //HT1621_getdata(HT1621SEC_ADDH,0x06); /*显示个位*/
179 1 }
180 /*-----------------------------------------------*/
181 /*ht1621分钟显示*/
182 void glht1621_min(Byte bByte)
183 {
184 1 HT1621_getdata(HT1621MIN_ADDH,ht1621disp_Map[bByte/10]); /*显示十位*/
185 1 HT1621_getdata(HT1621MIN_ADDL,ht1621disp_Map[bByte%10] | HT1621COL); /*显示个位*/
186 1 }
187
188 /*-----------------------------------------------*/
189 /*ht1621曲目数显示*/
190 void glht1621_TRACK(Byte bByte)
191 {
192 1 HT1621_getdata(HT1621TRACK_ADDH,ht1621disp_Map[bByte/10]); /*显示十位*/
193 1 HT1621_getdata(HT1621TRACK_ADDL,ht1621disp_Map[bByte%10]); /*显示个位*/
194 1 }
195
196 /*-----------------------------------------------*/
197 /*ht1621“STOP”字符显示*/
198 void glht1621_stop(void)
199 {
200 1 HT1621_getdata(HT1621_ADDRESS3,0xc7); /*显示字符“S”*/
201 1 HT1621_getdata(HT1621_ADDRESS4,0x8e); /*显示字符“t”*/
202 1 HT1621_getdata(HT1621_ADDRESS5,0xcc); /*显示字符“o”*/
203 1 HT1621_getdata(HT1621_ADDRESS6,0x2f); /*显示字符“P”*/
204 1 }
205
206 /*-----------------------------------------------*/
207 /*ht1621“REC”字符显示*/
208 void glht1621_rec(void)
209 {
210 1 HT1621_getdata(HT1621_ADDRESS1,0x8e); /*显示字符“r”*/
C51 COMPILER V8.01 HT1621_DRV 08/07/2006 11:16:11 PAGE 11
211 1 HT1621_getdata(HT1621_ADDRESS2,0x8f); /*显示字符“E”*/
212 1 }
213
214 /*-----------------------------------------------*/
215 /*ht1621 VOLUME调整显示*/
216 void glht1621_volume(void)
217 {
218 1 HT1621_getdata(HT1621TRACK_ADDH,ht1621disp_Map[vol_value/10] | HT1621VOL); /*显示十位*/
219 1 HT1621_getdata(HT1621TRACK_ADDL,ht1621disp_Map[vol_value%10]); /*显示个位*/
220 1 }
221 /*ht1621 P OFF字符显示*/
222 void glht1621_POFF(void)
223 {
224 1 HT1621_getdata(HT1621TRACK_ADDL,0Xf2); /*显示“P”*/
225 1 HT1621_getdata(HT1621MIN_ADDH,0Xbe); /*显示“O”*/
226 1 HT1621_getdata(HT1621MIN_ADDL,0Xf0); /*显示“F”*/
227 1 HT1621_getdata(HT1621SEC_ADDH,0Xf0); /*显示“F”*/
228 1 }
229
230 /*F**************************************************************************
231 * NAME: dts_DispMem
232 *----------------------------------------------------------------------------
233 * PARAMS:
234 *
235 * return:
236 *----------------------------------------------------------------------------
237 * PURPOSE:
238 * Display task initialization
239 *----------------------------------------------------------------------------
240 * EXAMPLE:
241 *----------------------------------------------------------------------------
242 * NOTE:
243 *----------------------------------------------------------------------------
244 * REQUIREMENTS:
245 *****************************************************************************/
246 void dts_DispMem (void)
247 {
248 1 Byte temp;
249 1
250 1 temp = (Mem_add - Mem_StartAdd)/2;
251 1 HT1621_getdata(HT1621_ADDRESS0,0xf7);
252 1 HT1621_getdata(HT1621SEC_ADDH,ht1621disp_Map[temp/10]);
253 1 HT1621_getdata(HT1621SEC_ADDL,ht1621disp_Map[temp%10]);
254 1 }
255
256 /*F**************************************************************************
257 * NAME: dts_DispFer
258 *----------------------------------------------------------------------------
259 * PARAMS:
260 *
261 * return:
262 *----------------------------------------------------------------------------
263 * PURPOSE:
264 * Display task initialization
265 *----------------------------------------------------------------------------
266 * EXAMPLE:
267 *----------------------------------------------------------------------------
268 * NOTE:
269 *----------------------------------------------------------------------------
270 * REQUIREMENTS:
271 *****************************************************************************/
272 void dtsFM_DispFer (void)
C51 COMPILER V8.01 HT1621_DRV 08/07/2006 11:16:11 PAGE 12
273 {
274 1 char temp;
275 1 if(dts_frequency < 1000){
276 2 temp = dts_frequency/100;
277 2 //ht1621disp_Buffer[3] = ht1621disp_Map[temp];
278 2 HT1621_getdata(HT1621TRACK_ADDH,ht1621disp_Map[temp]);
279 2 temp = (dts_frequency-temp*100);
280 2 //ht1621disp_Buffer[4] = ht1621disp_Map[temp/10];
281 2 HT1621_getdata(HT1621TRACK_ADDL,ht1621disp_Map[temp/10]);
282 2 //ht1621disp_Buffer[5] = ht1621disp_Map[temp%10];
283 2 HT1621_getdata(HT1621MIN_ADDH,ht1621disp_Map[temp%10]);
284 2 //ht1621disp_Buffer[7] = 0x00;
285 2 HT1621_getdata(HT1621TRACK_H_ADD,0x00);
286 2 }
287 1 else{
288 2 if(dts_frequency ==1000){
289 3 //ht1621disp_Buffer[3] = ht1621disp_Map[0];
290 3 //ht1621disp_Buffer[4] = ht1621disp_Map[0];
291 3 //ht1621disp_Buffer[5] = ht1621disp_Map[0];
292 3 HT1621_getdata(HT1621TRACK_ADDH,0xbe);
293 3 HT1621_getdata(HT1621TRACK_ADDL,0xbe);
294 3 HT1621_getdata(HT1621MIN_ADDH,0xbe);
295 3 }
296 2 else {
297 3 //ht1621disp_Buffer[3] = ht1621disp_Map[0];
298 3 HT1621_getdata(HT1621TRACK_ADDH,0xbe);
299 3 temp = (dts_frequency-1000);
300 3 //ht1621disp_Buffer[4] = ht1621disp_Map[temp/10];
301 3 //ht1621disp_Buffer[5] = ht1621disp_Map[temp%10];
302 3 HT1621_getdata(HT1621TRACK_ADDL,ht1621disp_Map[temp/10]);
303 3 HT1621_getdata(HT1621MIN_ADDH,ht1621disp_Map[temp%10]);
304 3 }
305 2 //ht1621disp_Buffer[7] = 0x60;
306 2 HT1621_getdata(HT1621TRACK_H_ADD,0x60);
307 2 }
308 1 //HT1621_getdata(HT1621TRACK_ADDH,ht1621disp_Buffer[3]);
309 1 //HT1621_getdata(HT1621TRACK_ADDL,ht1621disp_Buffer[4]);
310 1 //HT1621_getdata(HT1621MIN_ADDH,ht1621disp_Buffer[5]);
311 1 //HT1621_getdata(HT1621TRACK_H_ADD,ht1621disp_Buffer[7]);
312 1 }
313
314 /*LCD字码表*/
315 Byte code ht1621disp_Map[]={
316 0xbe, //0/
317 0x06, //1/
318 0xda, //2/
319 0x5e, //3/
320 0x66, //4/
321 0x7c, //5/
322 0xfc, //6
323 0x16, //7
324 0xfe, //8
325 0x7e, //9
326 };
327
328 #endif
C51 COMPILER V8.01 HT1621_DRV 08/07/2006 11:16:11 PAGE 13
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION ht1621_init (BEGIN)
; SOURCE LINE # 80
; SOURCE LINE # 81
; SOURCE LINE # 82
0000 D280 SETB P0_0
; SOURCE LINE # 83
0002 D282 SETB P0_2
; SOURCE LINE # 84
0004 D281 SETB P0_1
; SOURCE LINE # 85
0006 22 RET
; FUNCTION ht1621_init (END)
; FUNCTION _HT1621_command (BEGIN)
; SOURCE LINE # 103
;---- Variable 'bByte' assigned to Register 'R7' ----
; SOURCE LINE # 105
;---- Variable 'bBits' assigned to Register 'R6' ----
0000 7E80 MOV R6,#080H
; SOURCE LINE # 107
0002 C282 CLR P0_2
; SOURCE LINE # 108
0004 D280 SETB P0_0
; SOURCE LINE # 109
;---- Variable 'i' assigned to Register 'R5' ----
0006 E4 CLR A
0007 FD MOV R5,A
0008 ?C0002:
; SOURCE LINE # 110
0008 C281 CLR P0_1
; SOURCE LINE # 111
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -