⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1602_main.lis

📁 atmega32 +1602显示+ key控制 + ad转化电路都在一起测试通过
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 0280 0023              tst R16
 0282 29F4              brne L56
 0284                   .dbline 85
 0284                   .dbline 86
 0284 2224              clr R2
 0286 20920000          sts L55,R2
 028A                   .dbline 87
 028A 0027              clr R16
 028C 11C0              xjmp L54
 028E           L56:
 028E                   .dbline 89
 028E 20900000          lds R2,L55
 0292 2220              tst R2
 0294 61F4              brne L58
 0296                   .dbline 89
 0296                   .dbline 90
 0296 40930000          sts L55,R20
 029A                   .dbline 91
 029A 0AE0              ldi R16,10
 029C 10E0              ldi R17,0
 029E BDDE              xcall _delay_ms
 02A0                   .dbline 92
 02A0 57DF              xcall _key_read
 02A2 402F              mov R20,R16
 02A4                   .dbline 93
 02A4 20900000          lds R2,L55
 02A8 0215              cp R16,R2
 02AA 09F4              brne L60
 02AC                   .dbline 93
 02AC                   .dbline 94
 02AC 01C0              xjmp L54
 02AE           L60:
 02AE                   .dbline 96
 02AE           L58:
 02AE                   .dbline 97
 02AE 0027              clr R16
 02B0                   .dbline -2
 02B0           L54:
 02B0 0E940000          xcall pop_gset1
 02B4                   .dbline 0 ; func end
 02B4 0895              ret
 02B6                   .dbsym r i 20 c
 02B6                   .dbend
 02B6                   .dbfunc e get_ad _get_ad fi
 02B6           ;             hh -> <dead>
 02B6           ;             ll -> R20
 02B6           ;            num -> R22,R23
                        .even
 02B6           _get_ad::
 02B6 0E940000          xcall push_gset2
 02BA                   .dbline -1
 02BA                   .dbline 102
 02BA                   .dbline 104
 02BA 6627              clr R22
 02BC 7727              clr R23
 02BE                   .dbline 106
 02BE F894              cli
 02C0                   .dbline 107
 02C0 2224              clr R2
 02C2 2ABA              out 0x1a,R2
 02C4                   .dbline 108
 02C4 8FE7              ldi R24,127
 02C6 8BBB              out 0x1b,R24
 02C8                   .dbline 112
 02C8           ; //  delay_us(1);    //10us
 02C8           ; 
 02C8           ;  
 02C8           ;  ADMUX = 0x47;   /*基准AVCC、10位、通道7*/
 02C8 87E4              ldi R24,71
 02CA 87B9              out 0x7,R24
 02CC                   .dbline 113
 02CC           ;  ADCSRA = 0xC0;   /*使能、开启、4分频*/
 02CC 80EC              ldi R24,192
 02CE 86B9              out 0x6,R24
 02D0           L63:
 02D0                   .dbline 114
 02D0           L64:
 02D0                   .dbline 114
 02D0           ;  while(!(ADCSRA & (1 << ADIF))); /*等待*/
 02D0 349B              sbis 0x6,4
 02D2 FECF              rjmp L63
 02D4                   .dbline 115
 02D4           ;  ll=ADCL;
 02D4 44B1              in R20,0x4
 02D6                   .dbline 116
 02D6           ;  num = ADCH;
 02D6 65B1              in R22,0x5
 02D8 7727              clr R23
 02DA                   .dbline 117
 02DA           ;  num=num*256+ll;
 02DA 00E0              ldi R16,256
 02DC 11E0              ldi R17,1
 02DE 9B01              movw R18,R22
 02E0 0E940000          xcall empy16s
 02E4 B801              movw R22,R16
 02E6 242E              mov R2,R20
 02E8 3324              clr R3
 02EA 620D              add R22,R2
 02EC 731D              adc R23,R3
 02EE                   .dbline 118
 02EE           ;  ADCSRA &= ~(1 << ADIF);  /*清标志*/
 02EE 3498              cbi 0x6,4
 02F0                   .dbline 119
 02F0           ;  ADCSRA &= ~(1 << ADEN);  /*关闭转换*/
 02F0 3798              cbi 0x6,7
 02F2                   .dbline 121
 02F2           ;  
 02F2           ;  DDRA=0XFF;
 02F2 8FEF              ldi R24,255
 02F4 8ABB              out 0x1a,R24
 02F6                   .dbline 122
 02F6           ;  PORTA=0X00;
 02F6 2224              clr R2
 02F8 2BBA              out 0x1b,R2
 02FA                   .dbline 124
 02FA           ;  //SEI();
 02FA           ;   asm("sei");
 02FA 7894              sei
 02FC                   .dbline 125
 02FC           ;  return  num;
 02FC 8B01              movw R16,R22
 02FE                   .dbline -2
 02FE           L62:
 02FE 0E940000          xcall pop_gset2
 0302                   .dbline 0 ; func end
 0302 0895              ret
 0304                   .dbsym l hh 1 c
 0304                   .dbsym r ll 20 c
 0304                   .dbsym r num 22 i
 0304                   .dbend
 0304                   .dbfunc e lcd_process _lcd_process fc
                        .even
 0304           _lcd_process::
 0304 0E940000          xcall push_gset1
 0308 2597              sbiw R28,5
 030A                   .dbline -1
 030A                   .dbline 130
 030A           ;  
 030A           ; }
 030A           ; 
 030A           ; unsigned char lcd_process(void)
 030A           ; {
 030A                   .dbline 132
 030A           ; 
 030A           ;   if( disp_num2<=3.3&&disp_num2>=1)
 030A 00E0              ldi R16,<L69
 030C 10E0              ldi R17,>L69
 030E 0E940000          xcall lpm32
 0312 3A93              st -y,R19
 0314 2A93              st -y,R18
 0316 1A93              st -y,R17
 0318 0A93              st -y,R16
 031A 40900300          lds R4,_disp_num2+2
 031E 50900400          lds R5,_disp_num2+2+1
 0322 20900100          lds R2,_disp_num2
 0326 30900200          lds R3,_disp_num2+1
 032A 5A92              st -y,R5
 032C 4A92              st -y,R4
 032E 3A92              st -y,R3
 0330 2A92              st -y,R2
 0332 0E940000          xcall cmp32f
 0336 0CF4              brge X10
 0338 CBC0              xjmp L67
 033A           X10:
 033A 40900300          lds R4,_disp_num2+2
 033E 50900400          lds R5,_disp_num2+2+1
 0342 20900100          lds R2,_disp_num2
 0346 30900200          lds R3,_disp_num2+1
 034A 5A92              st -y,R5
 034C 4A92              st -y,R4
 034E 3A92              st -y,R3
 0350 2A92              st -y,R2
 0352 00E0              ldi R16,<L70
 0354 10E0              ldi R17,>L70
 0356 0E940000          xcall lpm32
 035A 3A93              st -y,R19
 035C 2A93              st -y,R18
 035E 1A93              st -y,R17
 0360 0A93              st -y,R16
 0362 0E940000          xcall cmp32f
 0366 0CF4              brge X11
 0368 B3C0              xjmp L67
 036A           X11:
 036A                   .dbline 133
 036A           ;   {
 036A                   .dbline 134
 036A           ;   LCD_write_char(1,0,'U');
 036A 85E5              ldi R24,85
 036C 8883              std y+0,R24
 036E 2227              clr R18
 0370 01E0              ldi R16,1
 0372 A7DE              xcall _LCD_write_char
 0374                   .dbline 135
 0374           ;   LCD_write_char(2,0,'=');
 0374 8DE3              ldi R24,61
 0376 8883              std y+0,R24
 0378 2227              clr R18
 037A 02E0              ldi R16,2
 037C A2DE              xcall _LCD_write_char
 037E                   .dbline 136
 037E           ;   LCD_write_num(3,0,(disp_num2*100)/100);
 037E 00E0              ldi R16,<L73
 0380 10E0              ldi R17,>L73
 0382 0E940000          xcall lpm32
 0386 3A93              st -y,R19
 0388 2A93              st -y,R18
 038A 1A93              st -y,R17
 038C 0A93              st -y,R16
 038E 40900300          lds R4,_disp_num2+2
 0392 50900400          lds R5,_disp_num2+2+1
 0396 20900100          lds R2,_disp_num2
 039A 30900200          lds R3,_disp_num2+1
 039E 5A92              st -y,R5
 03A0 4A92              st -y,R4
 03A2 3A92              st -y,R3
 03A4 2A92              st -y,R2
 03A6 0E940000          xcall empy32fs
 03AA 00E0              ldi R16,<L73
 03AC 10E0              ldi R17,>L73
 03AE 0E940000          xcall lpm32
 03B2 3A93              st -y,R19
 03B4 2A93              st -y,R18
 03B6 1A93              st -y,R17
 03B8 0A93              st -y,R16
 03BA 0E940000          xcall div32f
 03BE FE01              movw R30,R28
 03C0 0183              std z+1,R16
 03C2 1283              std z+2,R17
 03C4 2383              std z+3,R18
 03C6 3483              std z+4,R19
 03C8 FE01              movw R30,R28
 03CA 2180              ldd R2,z+1
 03CC 3280              ldd R3,z+2
 03CE 4380              ldd R4,z+3
 03D0 5480              ldd R5,z+4
 03D2 5A92              st -y,R5
 03D4 4A92              st -y,R4
 03D6 3A92              st -y,R3
 03D8 2A92              st -y,R2
 03DA 00E0              ldi R16,<L74
 03DC 10E0              ldi R17,>L74
 03DE 0E940000          xcall lpm32
 03E2 3A93              st -y,R19
 03E4 2A93              st -y,R18
 03E6 1A93              st -y,R17
 03E8 0A93              st -y,R16
 03EA 0E940000          xcall cmp32f
 03EE CCF0              brlt L71
 03F0 FE01              movw R30,R28
 03F2 2180              ldd R2,z+1
 03F4 3280              ldd R3,z+2
 03F6 4380              ldd R4,z+3
 03F8 5480              ldd R5,z+4
 03FA 5A92              st -y,R5
 03FC 4A92              st -y,R4
 03FE 3A92              st -y,R3
 0400 2A92              st -y,R2
 0402 00E0              ldi R16,<L74
 0404 10E0              ldi R17,>L74
 0406 0E940000          xcall lpm32
 040A 3A93              st -y,R19
 040C 2A93              st -y,R18
 040E 1A93              st -y,R17
 0410 0A93              st -y,R16
 0412 0E940000          xcall sub32f
 0416 0E940000          xcall fp2int
 041A A801              movw R20,R16
 041C 4050              subi R20,0  ; offset = 32768
 041E 5048              sbci R21,128
 0420 08C0              xjmp L72
 0422           L71:
 0422 FE01              movw R30,R28
 0424 0181              ldd R16,z+1
 0426 1281              ldd R17,z+2
 0428 2381              ldd R18,z+3
 042A 3481              ldd R19,z+4
 042C 0E940000          xcall fp2int
 0430 A801              movw R20,R16
 0432           L72:
 0432 4883              std y+0,R20
 0434 2227              clr R18
 0436 03E0              ldi R16,3
 0438 56DE              xcall _LCD_write_num
 043A                   .dbline 137
 043A           ;   LCD_write_char(4,0,'.');
 043A 8EE2              ldi R24,46
 043C 8883              std y+0,R24
 043E 2227              clr R18
 0440 04E0              ldi R16,4
 0442 3FDE              xcall _LCD_write_char
 0444                   .dbline 138
 0444           ;   LCD_write_num(5,0,(int)(disp_num2*10)%10);
 0444 00E0              ldi R16,<L75
 0446 10E0              ldi R17,>L75
 0448 0E940000          xcall lpm32
 044C 3A93              st -y,R19
 044E 2A93              st -y,R18
 0450 1A93              st -y,R17
 0452 0A93              st -y,R16
 0454 40900300          lds R4,_disp_num2+2
 0458 50900400          lds R5,_disp_num2+2+1
 045C 20900100          lds R2,_disp_num2
 0460 30900200          lds R3,_disp_num2+1
 0464 5A92              st -y,R5
 0466 4A92              st -y,R4
 0468 3A92              st -y,R3
 046A 2A92              st -y,R2
 046C 0E940000          xcall empy32f
 0470 0E940000          xcall fp2int
 0474 2AE0              ldi R18,10
 0476 30E0              ldi R19,0
 0478 0E940000          xcall mod16s
 047C 0883              std y+0,R16
 047E 2227              clr R18
 0480 05E0              ldi R16,5
 0482 31DE              xcall _LCD_write_num
 0484                   .dbline 139
 0484           ;   LCD_write_num(6,0,(int)(disp_num2*100)%10);
 0484 00E0              ldi R16,<L73
 0486 10E0              ldi R17,>L73
 0488 0E940000          xcall lpm32
 048C 3A93              st -y,R19
 048E 2A93              st -y,R18
 0490 1A93              st -y,R17
 0492 0A93              st -y,R16
 0494 40900300          lds R4,_disp_num2+2
 0498 50900400          lds R5,_disp_num2+2+1
 049C 20900100          lds R2,_disp_num2
 04A0 30900200          lds R3,_disp_num2+1
 04A4 5A92              st -y,R5
 04A6 4A92              st -y,R4
 04A8 3A92              st -y,R3
 04AA 2A92              st -y,R2
 04AC 0E940000          xcall empy32f
 04B0 0E940000          xcall fp2int
 04B4 2AE0              ldi R18,10
 04B6 30E0              ldi R19,0
 04B8 0E940000          xcall mod16s
 04BC 0883              std y+0,R16
 04BE 2227              clr R18
 04C0 06E0              ldi R16,6
 04C2 11DE              xcall _LCD_write_num
 04C4                   .dbline 140
 04C4           ;   LCD_write_char(7,0,'V');
 04C4 86E5              ldi R24,86
 04C6 8883              std y+0,R24
 04C8 2227              clr R18
 04CA 07E0              ldi R16,7
 04CC FADD              xcall _LCD_write_char

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -