?? 1.lst
字號(hào):
(0117) asm("nop");
_delay_1us:
170 0000 NOP
171 9508 RET
_delay_nus:
i --> R20
n --> R10
172 940E 0644 CALL push_xgset300C
174 0158 MOVW R10,R16
(0118) }
(0119)
(0120) void delay_nus(unsigned int n) //N us延時(shí)函數(shù)
(0121) {
(0122) unsigned int i=0;
175 2744 CLR R20
176 2755 CLR R21
(0123) for (i=0;i<n;i++)
177 C003 RJMP 0x017B
(0124) delay_1us();
178 DFF7 RCALL _delay_1us
179 5F4F SUBI R20,0xFF
17A 4F5F SBCI R21,0xFF
17B 154A CP R20,R10
17C 055B CPC R21,R11
17D F3D0 BCS 0x0178
17E 940C 0649 JMP pop_xgset300C
(0125) }
(0126)
(0127) void delay_1ms(void) //1ms延時(shí)函數(shù)
(0128) {
(0129) unsigned int i;
(0130) for (i=0;i<1140;i++);
_delay_1ms:
i --> R16
180 2700 CLR R16
181 2711 CLR R17
182 C002 RJMP 0x0185
183 5F0F SUBI R16,0xFF
184 4F1F SBCI R17,0xFF
185 3704 CPI R16,0x74
186 E0E4 LDI R30,4
187 071E CPC R17,R30
188 F3D0 BCS 0x0183
189 9508 RET
_delay_nms:
i --> R20
n --> R10
18A 940E 0644 CALL push_xgset300C
18C 0158 MOVW R10,R16
(0131) }
(0132)
(0133) void delay_nms(unsigned int n) //N ms延時(shí)函數(shù)
(0134) {
(0135) unsigned int i=0;
18D 2744 CLR R20
18E 2755 CLR R21
(0136) for (i=0;i<n;i++)
18F C003 RJMP 0x0193
(0137) delay_1ms();
190 DFEF RCALL _delay_1ms
191 5F4F SUBI R20,0xFF
192 4F5F SBCI R21,0xFF
193 154A CP R20,R10
194 055B CPC R21,R11
195 F3D0 BCS 0x0190
196 940C 0649 JMP pop_xgset300C
_Format:
str --> R20
data --> R10
198 940E 0644 CALL push_xgset300C
19A 01A9 MOVW R20,R18
19B 2EA0 MOV R10,R16
(0138) }
(0139)
(0140) unsigned char *Format(unsigned char data,unsigned char *str)
(0141) {
(0142) str[0]=tab[(data/10)%10];
19C E02A LDI R18,0xA
19D E030 LDI R19,0
19E 2D0A MOV R16,R10
19F 2711 CLR R17
1A0 940E 054A CALL div16s
1A2 E02A LDI R18,0xA
1A3 E030 LDI R19,0
1A4 940E 0546 CALL mod16s
1A6 01F8 MOVW R30,R16
1A7 E680 LDI R24,0x60
1A8 E090 LDI R25,0
1A9 0FE8 ADD R30,R24
1AA 1FF9 ADC R31,R25
1AB 8020 LDD R2,Z+0
1AC 01FA MOVW R30,R20
1AD 8220 STD Z+0,R2
(0143) str[1]=tab[data%10];
1AE E02A LDI R18,0xA
1AF E030 LDI R19,0
1B0 2D0A MOV R16,R10
1B1 2711 CLR R17
1B2 940E 0546 CALL mod16s
1B4 01F8 MOVW R30,R16
1B5 E680 LDI R24,0x60
1B6 E090 LDI R25,0
1B7 0FE8 ADD R30,R24
1B8 1FF9 ADC R31,R25
1B9 8020 LDD R2,Z+0
1BA 01FA MOVW R30,R20
1BB 8221 STD Z+1,R2
(0144) return str;
1BC 018F MOVW R16,R30
1BD 940C 0649 JMP pop_xgset300C
_LCD_write_shu:
wei --> R12
shi --> R14
bai --> R22
qian --> R20
wan --> R10
n --> R12
t --> Y,+13
x --> Y,+11
1BF 940E 0541 CALL push_arg4
1C1 940E 0639 CALL push_xgsetF0FC
1C3 9721 SBIW R28,1
1C4 84CF LDD R12,Y+15
1C5 88D8 LDD R13,Y+16
(0145) }
(0146)
(0147) void LCD_write_shu(unsigned int x,unsigned int t,unsigned int n)
(0148) {
(0149) unsigned int wan;
(0150) unsigned int qian;
(0151) unsigned int bai;
(0152) unsigned int shi;
(0153) unsigned int wei;
(0154) wan=n/10000;
1C6 E120 LDI R18,0x10
1C7 E237 LDI R19,0x27
1C8 0186 MOVW R16,R12
1C9 940E 0566 CALL div16u
1CB 0158 MOVW R10,R16
(0155) qian=(n-wan*10000)/1000;
1CC E100 LDI R16,0x10
1CD E217 LDI R17,0x27
1CE 0195 MOVW R18,R10
1CF 940E 05EA CALL empy16s
1D1 0118 MOVW R2,R16
1D2 0186 MOVW R16,R12
1D3 1902 SUB R16,R2
1D4 0913 SBC R17,R3
1D5 EE28 LDI R18,0xE8
1D6 E033 LDI R19,3
1D7 940E 0566 CALL div16u
1D9 01A8 MOVW R20,R16
(0156) bai=(n-wan*10000-qian*1000)/100;
1DA E100 LDI R16,0x10
1DB E217 LDI R17,0x27
1DC 0195 MOVW R18,R10
1DD 940E 05EA CALL empy16s
1DF 0116 MOVW R2,R12
1E0 1A20 SUB R2,R16
1E1 0A31 SBC R3,R17
1E2 EE08 LDI R16,0xE8
1E3 E013 LDI R17,3
1E4 019A MOVW R18,R20
1E5 940E 05EA CALL empy16s
1E7 1A20 SUB R2,R16
1E8 0A31 SBC R3,R17
1E9 E624 LDI R18,0x64
1EA E030 LDI R19,0
1EB 0181 MOVW R16,R2
1EC 940E 0566 CALL div16u
1EE 01B8 MOVW R22,R16
(0157) shi=(n-wan*10000-qian*1000-bai*100)/10;
1EF E100 LDI R16,0x10
1F0 E217 LDI R17,0x27
1F1 0195 MOVW R18,R10
1F2 940E 05EA CALL empy16s
1F4 0116 MOVW R2,R12
1F5 1A20 SUB R2,R16
1F6 0A31 SBC R3,R17
1F7 EE08 LDI R16,0xE8
1F8 E013 LDI R17,3
1F9 019A MOVW R18,R20
1FA 940E 05EA CALL empy16s
1FC 1A20 SUB R2,R16
1FD 0A31 SBC R3,R17
1FE E604 LDI R16,0x64
1FF E010 LDI R17,0
200 019B MOVW R18,R22
201 940E 05EA CALL empy16s
203 1A20 SUB R2,R16
204 0A31 SBC R3,R17
205 E02A LDI R18,0xA
206 E030 LDI R19,0
207 0181 MOVW R16,R2
208 940E 0566 CALL div16u
20A 0178 MOVW R14,R16
(0158) wei=(n-wan*10000-qian*1000-bai*100-shi*10);
20B E100 LDI R16,0x10
20C E217 LDI R17,0x27
20D 0195 MOVW R18,R10
20E 940E 05EA CALL empy16s
210 0116 MOVW R2,R12
211 1A20 SUB R2,R16
212 0A31 SBC R3,R17
213 EE08 LDI R16,0xE8
214 E013 LDI R17,3
215 019A MOVW R18,R20
216 940E 05EA CALL empy16s
218 1A20 SUB R2,R16
219 0A31 SBC R3,R17
21A E604 LDI R16,0x64
21B E010 LDI R17,0
21C 019B MOVW R18,R22
21D 940E 05EA CALL empy16s
21F 1A20 SUB R2,R16
220 0A31 SBC R3,R17
221 E00A LDI R16,0xA
222 E010 LDI R17,0
223 0197 MOVW R18,R14
224 940E 05EA CALL empy16s
226 1A20 SUB R2,R16
227 0A31 SBC R3,R17
228 0161 MOVW R12,R2
(0159) LCD_write_char(x++,t,tab[wan]);
229 E680 LDI R24,0x60
22A E090 LDI R25,0
22B 01F5 MOVW R30,R10
22C 0FE8 ADD R30,R24
22D 1FF9 ADC R31,R25
22E 8020 LDD R2,Z+0
22F 8228 STD Y+0,R2
230 852D LDD R18,Y+13
231 842B LDD R2,Y+11
232 843C LDD R3,Y+12
233 01C1 MOVW R24,R2
234 9601 ADIW R24,1
235 879C STD Y+12,R25
236 878B STD Y+11,R24
237 2D02 MOV R16,R2
238 DF2B RCALL _LCD_write_char
(0160) LCD_write_char(x++,t,tab[qian]);
239 E680 LDI R24,0x60
23A E090 LDI R25,0
23B 01FA MOVW R30,R20
23C 0FE8 ADD R30,R24
23D 1FF9 ADC R31,R25
23E 8020 LDD R2,Z+0
23F 8228 STD Y+0,R2
240 852D LDD R18,Y+13
241 842B LDD R2,Y+11
242 843C LDD R3,Y+12
243 01C1 MOVW R24,R2
244 9601 ADIW R24,1
245 879C STD Y+12,R25
246 878B STD Y+11,R24
247 2D02 MOV R16,R2
248 DF1B RCALL _LCD_write_char
(0161) LCD_write_char(x++,t,tab[bai]);
249 E680 LDI R24,0x60
24A E090 LDI R25,0
24B 01FB MOVW R30,R22
24C 0FE8 ADD R30,R24
24D 1FF9 ADC R31,R25
24E 8020 LDD R2,Z+0
24F 8228 STD Y+0,R2
250 852D LDD R18,Y+13
251 856B LDD R22,Y+11
252 857C LDD R23,Y+12
253 01CB MOVW R24,R22
254 9601 ADIW R24,1
255 879C STD Y+12,R25
256 878B STD Y+11,R24
257 2F06 MOV R16,R22
258 DF0B RCALL _LCD_write_char
(0162) LCD_write_char(x++,t,tab[shi]);
259 E680 LDI R24,0x60
25A E090 LDI R25,0
25B 01F7 MOVW R30,R14
25C 0FE8 ADD R30,R24
25D 1FF9 ADC R31,R25
25E 8020 LDD R2,Z+0
25F 8228 STD Y+0,R2
260 852D LDD R18,Y+13
261 856B LDD R22,Y+11
262 857C LDD R23,Y+12
263 01CB MOVW R24,R22
264 9601 ADIW R24,1
265 879C STD Y+12,R25
266 878B STD Y+11,R24
267 2F06 MOV R16,R22
268 DEFB RCALL _LCD_write_char
(0163) LCD_write_char(x,t,tab[wei]);
269 E680 LDI R24,0x60
26A E090 LDI R25,0
26B 01F6 MOVW R30,R12
26C 0FE8 ADD R30,R24
26D 1FF9 ADC R31,R25
26E 8020 LDD R2,Z+0
26F 8228 STD Y+0,R2
270 852D LDD R18,Y+13
271 850B LDD R16,Y+11
272 DEF1 RCALL _LCD_write_char
(0164) x=0;
273 2400 CLR R0
274 2411 CLR R1
275 861C STD Y+12,R1
276 860B STD Y+11,R0
277 9621 ADIW R28,1
278 940E 062E CALL pop_xgsetF0FC
27A 9624 ADIW R28,4
27B 9508 RET
FILE: C:\DOCUME~1\qiuqiu\桌面\測(cè)試\1\1.c
(0001) //ICC-AVR application builder : 2008-5-15 14:12:28
(0002) // Target : M16
(0003) // Crystal: 8.0000Mhz
(0004)
(0005) #include <iom16v.h>
(0006) #include <macros.h>
(0007) #include "lcd.h"
(0008) #define Vref 2560 //參考電壓值
(0009)
(0010) #define uchar unsigned char
(0011) #define uint unsigned int
(0012) uchar miao=0;
(0013)
(0014) unsigned int adc_rel;//AD轉(zhuǎn)換結(jié)果
(0015) unsigned char adc_mux;//AD通道
(0016) unsigned int voltage;
(0017) unsigned int adc_old;
(0018) unsigned int V0,V1,V2,V3;
(0019)
(0020) uint adc_x;
(0021) uint adc_y;
(0022)
(0023)
(0024) void get_adc();
(0025) /* 微秒級(jí)延時(shí)程序 */
(0026) void delay_us(uint time)
(0027) {
(0028) do
(0029) {
(0030) time--;
_delay_us:
time --> R16
27C 5001 SUBI R16,1
27D 4010 SBCI R17,0
(0031) }
(0032) while (time>1);
27E E081 LDI R24,1
27F E090 LDI R25,0
280 1780 CP R24,R16
281 0791 CPC R25,R17
282 F3C8 BCS 0x027C
283 9508 RET
_delay_ms:
time --> R20
284 934A ST R20,-Y
285 935A ST R21,-Y
286 01A8 MOVW R20,R16
(0033) }
(0034)
(0035) /*****************************************/
(0036) void delay_ms(uint time)
(0037) {
287 C005 RJMP 0x028D
(0038) while(time!=0)
(0039) {
(0040) delay_us(1000);
288 EE08 LDI R16,0xE8
289 E013 LDI R17,3
28A DFF1 RCALL _delay_us
(0041) time--;
28B 5041 SUBI R20,1
28C 4050 SBCI R21,0
28D 3040 CPI R20,0
28E 0745 CPC R20,R21
28F F7C1 BNE 0x0288
290 9159 LD R21,Y+
291 9149 LD R20,Y+
292 9508 RET
(0042) }
(0043) }
(0044)
(0045)
(0046)
(0047)
(0048) //端口初始化
(0049) void port_init(void)
(0050) {
(0051) PORTA = 0x00;
_port_init:
293 2422 CLR R2
294 BA2B OUT 0x1B,R2
(0052) DDRA = 0x00;
295 BA2A OUT 0x1A,R2
(0053) PORTB = 0x00;
296 BA28 OUT 0x18,R2
(0054) DDRB = 0x00;
297 BA27 OUT 0x17,R2
(0055) PORTC = 0x0f; //m103 output only
298 E08F LDI R24,0xF
299 BB85 OUT 0x15,R24
(0056) DDRC = 0x0f;
29A BB84 OUT 0x14,R24
(0057) PORTD = 0xff;
29B EF8F LDI R24,0xFF
29C BB82 OUT 0x12,R24
(0058) DDRD = 0x00;
29D BA21 OUT 0x11,R2
29E 9508 RET
(0059) }
(0060)
(0061)
(0062) //定時(shí)T1初始化
(0063) void timer1_init(void)
(0064) {
(0065) TCCR1B = 0x00;//停止定時(shí)器
_timer1_init:
29F 2422 CLR R2
2A0 BC2E OUT 0x2E,R2
(0066) TIMSK |= 0x04;//中斷允許
2A1 B789 IN R24,0x39
2A2 6084 ORI R24,4
2A3 BF89 OUT 0x39,R24
(0067) TCNT1H = 0xFC; //重裝值高位
2A4 EF8C LDI R24,0xFC
2A5 BD8D OUT 0x2D,R24
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -