📄 ac16-1.lst
字号:
__text_start:
__start:
022A E5CF LDI R28,0x5F
022B E0D4 LDI R29,4
022C BFCD OUT 0x3D,R28
022D BFDE OUT 0x3E,R29
022E 51C0 SUBI R28,0x10
022F 40D0 SBCI R29,0
0230 EA0A LDI R16,0xAA
0231 8308 STD Y+0,R16
0232 2400 CLR R0
0233 E6E0 LDI R30,0x60
0234 E0F0 LDI R31,0
0235 E010 LDI R17,0
0236 36E0 CPI R30,0x60
0237 07F1 CPC R31,R17
0238 F011 BEQ 0x023B
0239 9201 ST R0,Z+
023A CFFB RJMP 0x0236
023B 8300 STD Z+0,R16
023C E5E4 LDI R30,0x54
023D E0F4 LDI R31,4
023E E6A0 LDI R26,0x60
023F E0B0 LDI R27,0
0240 E014 LDI R17,4
0241 35E4 CPI R30,0x54
0242 07F1 CPC R31,R17
0243 F021 BEQ 0x0248
0244 95C8 LPM
0245 9631 ADIW R30,1
0246 920D ST R0,X+
0247 CFF9 RJMP 0x0241
0248 940E0264 CALL _main
_exit:
024A CFFF RJMP _exit
FILE: d:\MYDOCU~1\ac16-1\ac16-1.c
(0001) #include <iom16v.h>
(0002) #include <macros.h>
(0003) //-----------------------------------------------
(0004) #define uchar unsigned char
(0005) #define uint unsigned int
(0006) //---------------引脚电平的宏定义
(0007) #define RS_1 PORTB|=BIT(PB0)
(0008) #define RS_0 PORTB&=~BIT(PB0)
(0009) #define RW_1 PORTB|=BIT(PB1)
(0010) #define RW_0 PORTB&=~BIT(PB1)
(0011) #define EN_1 PORTB|=BIT(PB2)
(0012) #define EN_0 PORTB&=~BIT(PB2)
(0013) #define CS1_1 PORTB|=BIT(PB3)
(0014) #define CS1_0 PORTB&=~BIT(PB3)
(0015) #define CS2_1 PORTB|=BIT(PB4)
(0016) #define CS2_0 PORTB&=~BIT(PB4)
(0017) #define RST_1 PORTB|=BIT(PB5)
(0018) #define RST_0 PORTB&=~BIT(PB5)
(0019) //======================================
(0020) #define DataPort PORTA //端口定义,双向数据总线。
(0021) #define xtal 8
(0022)
(0023) void Delay_1ms(void) //1mS延时子函数
(0024) { uint i;
(0025) for(i=1;i<(uint)(xtal*143-2);i++)
_Delay_1ms:
i --> R16
024B E001 LDI R16,1
024C E010 LDI R17,0
024D C002 RJMP 0x0250
024E 5F0F SUBI R16,0xFF
024F 4F1F SBCI R17,0xFF
0250 3706 CPI R16,0x76
0251 E0E4 LDI R30,4
0252 071E CPC R17,R30
0253 F3D0 BCS 0x024E
0254 9508 RET
_Delay_nms:
i --> R20
n --> R22
0255 940E04E5 CALL push_gset2
0257 01B8 MOVW R22,R16
(0026) ;
(0027) }
(0028) //====================================
(0029) void Delay_nms(uint n) //n*1mS延时子函数
(0030) {
(0031) uint i=0;
0258 2744 CLR R20
0259 2755 CLR R21
025A C003 RJMP 0x025E
(0032) while(i<n)
(0033) {Delay_1ms();
025B DFEF RCALL _Delay_1ms
(0034) i++;
025C 5F4F SUBI R20,0xFF
025D 4F5F SBCI R21,0xFF
025E 1746 CP R20,R22
025F 0757 CPC R21,R23
0260 F3D0 BCS 0x025B
0261 940E04D9 CALL pop_gset2
0263 9508 RET
_main:
loop --> R20
0264 9723 SBIW R28,3
(0035) }
(0036) }
(0037) /**********函数声明列表*************/
(0038) void Delay_1ms(void);
(0039) void Delay_nms(uint n);
(0040) void wcode(uchar c,uchar sel_l,uchar sel_r);
(0041) void wdata(uchar c,uchar sel_l,uchar sel_r);
(0042) void set_startline(uchar i);
(0043) void set_xy(uchar x,uchar y);
(0044) void dison_off(uchar o);
(0045) void reset(void);
(0046) void m16_init(void);
(0047) void lcd_init(void);
(0048) void lw(uchar x, uchar y, uchar dd);
(0049) void display_hz(uchar x, uchar y, uchar n, uchar fb);
(0050) const uchar hz[];
(0051) /*************主函数*************/
(0052)
(0053) void main(void)
(0054) {
(0055) uchar loop;
(0056) m16_init();
0265 D153 RCALL _m16_init
(0057) lcd_init();
0266 D203 RCALL _lcd_init
(0058) Delay_nms(1000);
0267 EE08 LDI R16,0xE8
0268 E013 LDI R17,3
0269 DFEB RCALL _Delay_nms
026A C14B RJMP 0x03B6
(0059) while(1)
(0060) {
(0061) /************************************/
(0062) for(loop=0;loop<8;loop++)
026B 2744 CLR R20
026C C041 RJMP 0x02AE
(0063) {display_hz(2*loop,0,loop,0);
026D 2422 CLR R2
026E 822A STD Y+2,R2
026F 8348 STD Y+0,R20
0270 2722 CLR R18
0271 E082 LDI R24,2
0272 9F84 MUL R24,R20
0273 2D00 MOV R16,R0
0274 D212 RCALL _display_hz
(0064) display_hz(2*loop,0,loop,0);
0275 2422 CLR R2
0276 822A STD Y+2,R2
0277 8348 STD Y+0,R20
0278 2722 CLR R18
0279 E082 LDI R24,2
027A 9F84 MUL R24,R20
027B 2D00 MOV R16,R0
027C D20A RCALL _display_hz
(0065) display_hz(2*loop,0,loop,0);
027D 2422 CLR R2
027E 822A STD Y+2,R2
027F 8348 STD Y+0,R20
0280 2722 CLR R18
0281 E082 LDI R24,2
0282 9F84 MUL R24,R20
0283 2D00 MOV R16,R0
0284 D202 RCALL _display_hz
(0066) display_hz(2*loop,0,loop,0);
0285 2422 CLR R2
0286 822A STD Y+2,R2
0287 8348 STD Y+0,R20
0288 2722 CLR R18
0289 E082 LDI R24,2
028A 9F84 MUL R24,R20
028B 2D00 MOV R16,R0
028C D1FA RCALL _display_hz
(0067) display_hz(2*loop,0,loop,0);
028D 2422 CLR R2
028E 822A STD Y+2,R2
028F 8348 STD Y+0,R20
0290 2722 CLR R18
0291 E082 LDI R24,2
0292 9F84 MUL R24,R20
0293 2D00 MOV R16,R0
0294 D1F2 RCALL _display_hz
(0068) display_hz(2*loop,0,loop,0);
0295 2422 CLR R2
0296 822A STD Y+2,R2
0297 8348 STD Y+0,R20
0298 2722 CLR R18
0299 E082 LDI R24,2
029A 9F84 MUL R24,R20
029B 2D00 MOV R16,R0
029C D1EA RCALL _display_hz
(0069) display_hz(2*loop,0,loop,0);
029D 2422 CLR R2
029E 822A STD Y+2,R2
029F 8348 STD Y+0,R20
02A0 2722 CLR R18
02A1 E082 LDI R24,2
02A2 9F84 MUL R24,R20
02A3 2D00 MOV R16,R0
02A4 D1E2 RCALL _display_hz
(0070) display_hz(2*loop,0,loop,0);}
02A5 2422 CLR R2
02A6 822A STD Y+2,R2
02A7 8348 STD Y+0,R20
02A8 2722 CLR R18
02A9 E082 LDI R24,2
02AA 9F84 MUL R24,R20
02AB 2D00 MOV R16,R0
02AC D1DA RCALL _display_hz
02AD 9543 INC R20
02AE 3048 CPI R20,0x8
02AF F408 BCC 0x02B1
02B0 CFBC RJMP 0x026D
(0071) /******************************************/
(0072) for(loop=0;loop<8;loop++)
02B1 2744 CLR R20
02B2 C051 RJMP 0x0304
(0073) {display_hz(2*loop,2,loop+8,0);
02B3 2422 CLR R2
02B4 822A STD Y+2,R2
02B5 2F84 MOV R24,R20
02B6 5F88 SUBI R24,0xF8
02B7 8388 STD Y+0,R24
02B8 E022 LDI R18,2
02B9 E082 LDI R24,2
02BA 9F84 MUL R24,R20
02BB 2D00 MOV R16,R0
02BC D1CA RCALL _display_hz
(0074) display_hz(2*loop,2,loop+8,0);
02BD 2422 CLR R2
02BE 822A STD Y+2,R2
02BF 2F84 MOV R24,R20
02C0 5F88 SUBI R24,0xF8
02C1 8388 STD Y+0,R24
02C2 E022 LDI R18,2
02C3 E082 LDI R24,2
02C4 9F84 MUL R24,R20
02C5 2D00 MOV R16,R0
02C6 D1C0 RCALL _display_hz
(0075) display_hz(2*loop,2,loop+8,0);
02C7 2422 CLR R2
02C8 822A STD Y+2,R2
02C9 2F84 MOV R24,R20
02CA 5F88 SUBI R24,0xF8
02CB 8388 STD Y+0,R24
02CC E022 LDI R18,2
02CD E082 LDI R24,2
02CE 9F84 MUL R24,R20
02CF 2D00 MOV R16,R0
02D0 D1B6 RCALL _display_hz
(0076) display_hz(2*loop,2,loop+8,0);
02D1 2422 CLR R2
02D2 822A STD Y+2,R2
02D3 2F84 MOV R24,R20
02D4 5F88 SUBI R24,0xF8
02D5 8388 STD Y+0,R24
02D6 E022 LDI R18,2
02D7 E082 LDI R24,2
02D8 9F84 MUL R24,R20
02D9 2D00 MOV R16,R0
02DA D1AC RCALL _display_hz
(0077) display_hz(2*loop,2,loop+8,0);
02DB 2422 CLR R2
02DC 822A STD Y+2,R2
02DD 2F84 MOV R24,R20
02DE 5F88 SUBI R24,0xF8
02DF 8388 STD Y+0,R24
02E0 E022 LDI R18,2
02E1 E082 LDI R24,2
02E2 9F84 MUL R24,R20
02E3 2D00 MOV R16,R0
02E4 D1A2 RCALL _display_hz
(0078) display_hz(2*loop,2,loop+8,0);
02E5 2422 CLR R2
02E6 822A STD Y+2,R2
02E7 2F84 MOV R24,R20
02E8 5F88 SUBI R24,0xF8
02E9 8388 STD Y+0,R24
02EA E022 LDI R18,2
02EB E082 LDI R24,2
02EC 9F84 MUL R24,R20
02ED 2D00 MOV R16,R0
02EE D198 RCALL _display_hz
(0079) display_hz(2*loop,2,loop+8,0);
02EF 2422 CLR R2
02F0 822A STD Y+2,R2
02F1 2F84 MOV R24,R20
02F2 5F88 SUBI R24,0xF8
02F3 8388 STD Y+0,R24
02F4 E022 LDI R18,2
02F5 E082 LDI R24,2
02F6 9F84 MUL R24,R20
02F7 2D00 MOV R16,R0
02F8 D18E RCALL _display_hz
(0080) display_hz(2*loop,2,loop+8,0);}
02F9 2422 CLR R2
02FA 822A STD Y+2,R2
02FB 2F84 MOV R24,R20
02FC 5F88 SUBI R24,0xF8
02FD 8388 STD Y+0,R24
02FE E022 LDI R18,2
02FF E082 LDI R24,2
0300 9F84 MUL R24,R20
0301 2D00 MOV R16,R0
0302 D184 RCALL _display_hz
0303 9543 INC R20
0304 3048 CPI R20,0x8
0305 F408 BCC 0x0307
0306 CFAC RJMP 0x02B3
(0081) /*************************************/
(0082) for(loop=0;loop<8;loop++)
0307 2744 CLR R20
0308 C051 RJMP 0x035A
(0083) {display_hz(2*loop,4,loop+16,1);
0309 E081 LDI R24,1
030A 838A STD Y+2,R24
030B 2F84 MOV R24,R20
030C 5F80 SUBI R24,0xF0
030D 8388 STD Y+0,R24
030E E024 LDI R18,4
030F E082 LDI R24,2
0310 9F84 MUL R24,R20
0311 2D00 MOV R16,R0
0312 D174 RCALL _display_hz
(0084) display_hz(2*loop,4,loop+16,1);
0313 E081 LDI R24,1
0314 838A STD Y+2,R24
0315 2F84 MOV R24,R20
0316 5F80 SUBI R24,0xF0
0317 8388 STD Y+0,R24
0318 E024 LDI R18,4
0319 E082 LDI R24,2
031A 9F84 MUL R24,R20
031B 2D00 MOV R16,R0
031C D16A RCALL _display_hz
(0085) display_hz(2*loop,4,loop+16,1);
031D E081 LDI R24,1
031E 838A STD Y+2,R24
031F 2F84 MOV R24,R20
0320 5F80 SUBI R24,0xF0
0321 8388 STD Y+0,R24
0322 E024 LDI R18,4
0323 E082 LDI R24,2
0324 9F84 MUL R24,R20
0325 2D00 MOV R16,R0
0326 D160 RCALL _display_hz
(0086) display_hz(2*loop,4,loop+16,1);
0327 E081 LDI R24,1
0328 838A STD Y+2,R24
0329 2F84 MOV R24,R20
032A 5F80 SUBI R24,0xF0
032B 8388 STD Y+0,R24
032C E024 LDI R18,4
032D E082 LDI R24,2
032E 9F84 MUL R24,R20
032F 2D00 MOV R16,R0
0330 D156 RCALL _display_hz
(0087) display_hz(2*loop,4,loop+16,1);
0331 E081 LDI R24,1
0332 838A STD Y+2,R24
0333 2F84 MOV R24,R20
0334 5F80 SUBI R24,0xF0
0335 8388 STD Y+0,R24
0336 E024 LDI R18,4
0337 E082 LDI R24,2
0338 9F84 MUL R24,R20
0339 2D00 MOV R16,R0
033A D14C RCALL _display_hz
(0088) display_hz(2*loop,4,loop+16,1);
033B E081 LDI R24,1
033C 838A STD Y+2,R24
033D 2F84 MOV R24,R20
033E 5F80 SUBI R24,0xF0
033F 8388 STD Y+0,R24
0340 E024 LDI R18,4
0341 E082 LDI R24,2
0342 9F84 MUL R24,R20
0343 2D00 MOV R16,R0
0344 D142 RCALL _display_hz
(0089) display_hz(2*loop,4,loop+16,1);
0345 E081 LDI R24,1
0346 838A STD Y+2,R24
0347 2F84 MOV R24,R20
0348 5F80 SUBI R24,0xF0
0349 8388 STD Y+0,R24
034A E024 LDI R18,4
034B E082 LDI R24,2
034C 9F84 MUL R24,R20
034D 2D00 MOV R16,R0
034E D138 RCALL _display_hz
(0090) display_hz(2*loop,4,loop+16,1);}//60
034F E081 LDI R24,1
0350 838A STD Y+2,R24
0351 2F84 MOV R24,R20
0352 5F80 SUBI R24,0xF0
0353 8388 STD Y+0,R24
0354 E024 LDI R18,4
0355 E082 LDI R24,2
0356 9F84 MUL R24,R20
0357 2D00 MOV R16,R0
0358 D12E RCALL _display_hz
0359 9543 INC R20
035A 3048 CPI R20,0x8
035B F408 BCC 0x035D
035C CFAC RJMP 0x0309
(0091)
(0092) /**********************************/
(0093) for(loop=0;loop<8;loop++)
035D 2744 CLR R20
035E C051 RJMP 0x03B0
(0094) {display_hz(2*loop,6,loop+24,1);
035F E081 LDI R24,1
0360 838A STD Y+2,R24
0361 2F84 MOV R24,R20
0362 5E88 SUBI R24,0xE8
0363 8388 STD Y+0,R24
0364 E026 LDI R18,6
0365 E082 LDI R24,2
0366 9F84 MUL R24,R20
0367 2D00 MOV R16,R0
0368 D11E RCALL _display_hz
(0095) display_hz(2*loop,6,loop+24,1);
0369 E081 LDI R24,1
036A 838A STD Y+2,R24
036B 2F84 MOV R24,R20
036C 5E88 SUBI R24,0xE8
036D 8388 STD Y+0,R24
036E E026 LDI R18,6
036F E082 LDI R24,2
0370 9F84 MUL R24,R20
0371 2D00 MOV R16,R0
0372 D114 RCALL _display_hz
(0096) display_hz(2*loop,6,loop+24,1);
0373 E081 LDI R24,1
0374 838A STD Y+2,R24
0375 2F84 MOV R24,R20
0376 5E88 SUBI R24,0xE8
0377 8388 STD Y+0,R24
0378 E026 LDI R18,6
0379 E082 LDI R24,2
037A 9F84 MUL R24,R20
037B 2D00 MOV R16,R0
037C D10A RCALL _display_hz
(0097) display_hz(2*loop,6,loop+24,1);
037D E081 LDI R24,1
037E 838A STD Y+2,R24
037F 2F84 MOV R24,R20
0380 5E88 SUBI R24,0xE8
0381 8388 STD Y+0,R24
0382 E026 LDI R18,6
0383 E082 LDI R24,2
0384 9F84 MUL R24,R20
0385 2D00 MOV R16,R0
0386 D100 RCALL _display_hz
(0098) display_hz(2*loop,6,loop+24,1);
0387 E081 LDI R24,1
0388 838A STD Y+2,R24
0389 2F84 MOV R24,R20
038A 5E88 SUBI R24,0xE8
038B 8388 STD Y+0,R24
038C E026 LDI R18,6
038D E082 LDI R24,2
038E 9F84 MUL R24,R20
038F 2D00 MOV R16,R0
0390 D0F6 RCALL _display_hz
(0099) display_hz(2*loop,6,loop+24,1);
0391 E081 LDI R24,1
0392 838A STD Y+2,R24
0393 2F84 MOV R24,R20
0394 5E88 SUBI R24,0xE8
0395 8388 STD Y+0,R24
0396 E026 LDI R18,6
0397 E082 LDI R24,2
0398 9F84 MUL R24,R20
0399 2D00 MOV R16,R0
039A D0EC RCALL _display_hz
(0100) display_hz(2*loop,6,loop+24,1);
039B E081 LDI R24,1
039C 838A STD Y+2,R24
039D 2F84 MOV R24,R20
039E 5E88 SUBI R24,0xE8
039F 8388 STD Y+0,R24
03A0 E026 LDI R18,6
03A1 E082 LDI R24,2
03A2 9F84 MUL R24,R20
03A3 2D00 MOV R16,R0
03A4 D0E2 RCALL _display_hz
(0101) display_hz(2*loop,6,loop+24,1);}
03A5 E081 LDI R24,1
03A6 838A STD Y+2,R24
03A7 2F84 MOV R24,R20
03A8 5E88 SUBI R24,0xE8
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -