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

📄 zz.lis

📁 avr基础程序大全
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 00EA                   .dbline 82
 00EA           ;       write_shuju(0,0x01);                    //清屏
 00EA 21E0              ldi R18,1
 00EC 0027              clr R16
 00EE BCDF              xcall _write_shuju
 00F0                   .dbline 83
 00F0           ;       delay_ms(100);
 00F0 04E6              ldi R16,100
 00F2 10E0              ldi R17,0
 00F4                   .dbline -2
 00F4           L25:
 00F4                   .dbline 0 ; func end
 00F4 90CF              xjmp _delay_ms
 00F6                   .dbend
 00F6                   .dbfunc e write_hz _write_hz fV
 00F6           ;              s -> R20,R21
                        .even
 00F6           _write_hz::
 00F6 4A93              st -y,R20
 00F8 5A93              st -y,R21
 00FA A801              movw R20,R16
 00FC                   .dbline -1
 00FC                   .dbline 87
 00FC           ; 
 00FC           ; }
 00FC           ; void write_hz(char *s)
 00FC           ;    {
 00FC 06C0              xjmp L28
 00FE           L27:
 00FE                   .dbline 89
 00FE           ;       while(*s)
 00FE           ;           {
 00FE                   .dbline 90
 00FE           ;               write_shuju(1,*s);
 00FE FA01              movw R30,R20
 0100 2081              ldd R18,z+0
 0102 01E0              ldi R16,1
 0104 B1DF              xcall _write_shuju
 0106                   .dbline 91
 0106           ;               s++;
 0106 4F5F              subi R20,255  ; offset = 1
 0108 5F4F              sbci R21,255
 010A                   .dbline 92
 010A           ;               }
 010A           L28:
 010A                   .dbline 88
 010A FA01              movw R30,R20
 010C 2080              ldd R2,z+0
 010E 2220              tst R2
 0110 B1F7              brne L27
 0112           X6:
 0112                   .dbline -2
 0112           L26:
 0112                   .dbline 0 ; func end
 0112 5991              ld R21,y+
 0114 4991              ld R20,y+
 0116 0895              ret
 0118                   .dbsym r s 20 pc
 0118                   .dbend
 0118                   .dbfunc e locate _locate fV
 0118           ;              y -> R20
 0118           ;              x -> R10
                        .even
 0118           _locate::
 0118 0E940000          xcall push_xgsetF00C
 011C 422F              mov R20,R18
 011E A02E              mov R10,R16
 0120                   .dbline -1
 0120                   .dbline 95
 0120           ; }
 0120           ; void locate(uchar x,uchar y)
 0120           ; {
 0120                   .dbline 96
 0120           ;       switch(x)
 0120 6A2D              mov R22,R10
 0122 7727              clr R23
 0124 6130              cpi R22,1
 0126 E0E0              ldi R30,0
 0128 7E07              cpc R23,R30
 012A 69F0              breq L34
 012C           X7:
 012C 6230              cpi R22,2
 012E E0E0              ldi R30,0
 0130 7E07              cpc R23,R30
 0132 79F0              breq L35
 0134           X8:
 0134 6330              cpi R22,3
 0136 E0E0              ldi R30,0
 0138 7E07              cpc R23,R30
 013A 89F0              breq L36
 013C           X9:
 013C 6430              cpi R22,4
 013E E0E0              ldi R30,0
 0140 7E07              cpc R23,R30
 0142 99F0              breq L37
 0144           X10:
 0144 17C0              xjmp L32
 0146           L34:
 0146                   .dbline 98
 0146           ;               {
 0146           ;               case 1:write_shuju(0,(0x80+y-1)); break;
 0146 242F              mov R18,R20
 0148 2058              subi R18,128    ; addi 128
 014A 2150              subi R18,1
 014C 0027              clr R16
 014E 8CDF              xcall _write_shuju
 0150                   .dbline 98
 0150 11C0              xjmp L32
 0152           L35:
 0152                   .dbline 99
 0152           ;               case 2:write_shuju(0,(0x90+y-1));break;
 0152 242F              mov R18,R20
 0154 2057              subi R18,112    ; addi 144
 0156 2150              subi R18,1
 0158 0027              clr R16
 015A 86DF              xcall _write_shuju
 015C                   .dbline 99
 015C 0BC0              xjmp L32
 015E           L36:
 015E                   .dbline 100
 015E           ;               case 3:write_shuju(0,(0x88+y-1));break; 
 015E 242F              mov R18,R20
 0160 2857              subi R18,120    ; addi 136
 0162 2150              subi R18,1
 0164 0027              clr R16
 0166 80DF              xcall _write_shuju
 0168                   .dbline 100
 0168 05C0              xjmp L32
 016A           L37:
 016A                   .dbline 101
 016A           ;               case 4:write_shuju(0,(0x98+y-1));break;
 016A 242F              mov R18,R20
 016C 2856              subi R18,104    ; addi 152
 016E 2150              subi R18,1
 0170 0027              clr R16
 0172 7ADF              xcall _write_shuju
 0174                   .dbline 101
 0174                   .dbline 102
 0174           ;               default:break;           
 0174           L32:
 0174                   .dbline -2
 0174           L30:
 0174                   .dbline 0 ; func end
 0174 0C940000          xjmp pop_xgsetF00C
 0178                   .dbsym r y 20 c
 0178                   .dbsym r x 10 c
 0178                   .dbend
 0178                   .dbfunc e cls _cls fV
                        .even
 0178           _cls::
 0178                   .dbline -1
 0178                   .dbline 106
 0178           ;               }
 0178           ; }
 0178           ; void cls()
 0178           ; {
 0178                   .dbline 107
 0178           ;       delay_us(200);
 0178 08EC              ldi R16,200
 017A 10E0              ldi R17,0
 017C 44DF              xcall _delay_us
 017E                   .dbline 108
 017E           ;       write_shuju(0,0x01);                    //清屏
 017E 21E0              ldi R18,1
 0180 0027              clr R16
 0182 72DF              xcall _write_shuju
 0184                   .dbline 109
 0184           ;       delay_ms(20);
 0184 04E1              ldi R16,20
 0186 10E0              ldi R17,0
 0188                   .dbline -2
 0188           L38:
 0188                   .dbline 0 ; func end
 0188 46CF              xjmp _delay_ms
 018A                   .dbend
 018A                   .dbfile C:\DOCUME~1\Administrator\桌面\12864_~1\adc.h
 018A                   .dbfunc e mega16_adc _mega16_adc fi
 018A           ;         addata -> R10,R11
                        .even
 018A           _mega16_adc::
 018A AA92              st -y,R10
 018C BA92              st -y,R11
 018E                   .dbline -1
 018E                   .dbline 6
 018E           ; #include <iom16v.h>
 018E           ; #include <macros.h>
 018E           ; #define  uchar unsigned char
 018E           ; #define  uint  unsigned int
 018E           ; uint mega16_adc()
 018E           ; {
 018E                   .dbline 8
 018E           ;      uint addata;
 018E           ;        DDRA&=~BIT(0);
 018E D098              cbi 0x1a,0
 0190                   .dbline 9
 0190           ;        PORTA&=~BIT(0);
 0190 D898              cbi 0x1b,0
 0192                   .dbline 10
 0192           ;        ADMUX=0x40;
 0192 80E4              ldi R24,64
 0194 87B9              out 0x7,R24
 0196                   .dbline 11
 0196           ;        ADCSR=0X80;
 0196 80E8              ldi R24,128
 0198 86B9              out 0x6,R24
 019A                   .dbline 12
 019A           ;        ADCSR|=BIT(6);
 019A 369A              sbi 0x6,6
 019C           L40:
 019C                   .dbline 13
 019C           ;        while(!(ADCSR&(BIT(4))));
 019C           L41:
 019C                   .dbline 13
 019C 349B              sbis 0x6,4
 019E FECF              rjmp L40
 01A0           X11:
 01A0                   .dbline 14
 01A0           ;      addata=ADCL;
 01A0 A4B0              in R10,0x4
 01A2 BB24              clr R11
 01A4                   .dbline 15
 01A4           ;        addata=addata+ADCH*256;
 01A4 25B1              in R18,0x5
 01A6 3327              clr R19
 01A8 00E0              ldi R16,256
 01AA 11E0              ldi R17,1
 01AC 0E940000          xcall empy16s
 01B0 A00E              add R10,R16
 01B2 B11E              adc R11,R17
 01B4                   .dbline 16
 01B4           ;        return addata;
 01B4 8501              movw R16,R10
 01B6                   .dbline -2
 01B6           L39:
 01B6                   .dbline 0 ; func end
 01B6 B990              ld R11,y+
 01B8 A990              ld R10,y+
 01BA 0895              ret
 01BC                   .dbsym r addata 10 i
 01BC                   .dbend
 01BC                   .dbfile C:\DOCUME~1\Administrator\桌面\12864_~1\18B20.h
 01BC                   .dbfunc e delay_10us _delay_10us fV
 01BC           ;              i -> R16
                        .even
 01BC           _delay_10us::
 01BC                   .dbline -1
 01BC                   .dbline 14
 01BC           ; #include <iom16v.h>
 01BC           ; #include <macros.h>
 01BC           ; #define  uchar unsigned char
 01BC           ; #define  uint  unsigned int 
 01BC           ; #define DQ_IN DDRC &= ~(1 << PA3)             /*设置输入*/
 01BC           ; #define DQ_OUT        DDRC |= (1 << PA3)              /*设置输出*/
 01BC           ; #define DQ_CLR        PORTC &= ~(1 << PA3)    /*置低电平*/
 01BC           ; #define DQ_SET        PORTC |= (1 << PA3)             /*置高电平*/
 01BC           ; #define DQ_R  PINC & (1 << PA3)               /*读了电平*/
 01BC           ; 
 01BC           ; uchar flag;/*中断标志缓存*/                           
 01BC           ; #define delay4us {NOP();NOP();NOP();NOP();}
 01BC           ; #define delay10us {NOP();NOP();NOP();NOP();NOP();NOP();NOP();NOP();NOP();NOP();} 
 01BC           ; void delay_10us(unsigned char i) {
 01BC                   .dbline 16
 01BC           ; 
 01BC           ;       if (i == 0) {
 01BC 0023              tst R16
 01BE 29F4              brne L47
 01C0           X12:
 01C0                   .dbline 16
 01C0                   .dbline 17
 01C0           ;               return ;
 01C0 09C0              xjmp L43
 01C2           L46:
 01C2                   .dbline 19
 01C2           ;               }
 01C2           ;       while (i--) {
 01C2                   .dbline 20
 01C2           ;               delay4us;
 01C2                   .dbline 20
 01C2 0000              nop
 01C4                   .dbline 20
 01C4 0000              nop
 01C6                   .dbline 20
 01C6 0000              nop
 01C8                   .dbline 20
 01C8 0000              nop
 01CA                   .dbline 20
 01CA                   .dbline 20
 01CA                   .dbline 21
 01CA           ;               }
 01CA           L47:
 01CA                   .dbline 19
 01CA 202E              mov R2,R16
 01CC 3324              clr R3
 01CE 0150              subi R16,1
 01D0 2220              tst R2
 01D2 B9F7              brne L46
 01D4           X13:
 01D4                   .dbline -2
 01D4           L43:
 01D4                   .dbline 0 ; func end
 01D4 0895              ret
 01D6                   .dbsym r i 16 c
 01D6                   .dbend
 01D6                   .dbfunc e ds1820_reset _ds1820_reset fc
 01D6           ;              i -> R20
                        .even
 01D6           _ds1820_reset::
 01D6 4A93              st -y,R20
 01D8                   .dbline -1
 01D8                   .dbline 24
 01D8           ; }
 01D8           ; /*DS18B20复位函数*/
 01D8           ; unsigned char ds1820_reset(void) {
 01D8                   .dbline 27
 01D8           ; 
 01D8           ;       unsigned char i;
 01D8           ;       flag = SREG;                            /*中断保护*/
 01D8 2FB6              in R2,0x3f
 01DA 20921800          sts _flag,R2
 01DE                   .dbline 28
 01DE           ;       CLI();                                          /*关中断*/
 01DE F894              cli
 01E0                   .dbline 29
 01E0           ;       DQ_OUT;
 01E0 A39A              sbi 0x14,3
 01E2                   .dbline 30
 01E2           ;       DQ_CLR;
 01E2 AB98              cbi 0x15,3
 01E4                   .dbline 31
 01E4           ;       delay_10us(49);                         /*延时500uS(480-960)*/
 01E4 01E3              ldi R16,49
 01E6 EADF              xcall _delay_10us
 01E8                   .dbline 32
 01E8           ;       DQ_SET;
 01E8 AB9A              sbi 0x15,3
 01EA                   .dbline 33
 01EA           ;       DQ_IN;
 01EA A398              cbi 0x14,3
 01EC                   .dbline 34

⌨️ 快捷键说明

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