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

📄 zz.lis

📁 avr基础程序大全
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 02D6 9CDF              xcall _ds1820_read_byte
 02D8 A02E              mov R10,R16
 02DA BB24              clr R11
 02DC                   .dbline 109
 02DC           ;          b = ds1820_read_byte();
 02DC 99DF              xcall _ds1820_read_byte
 02DE 602F              mov R22,R16
 02E0 7727              clr R23
 02E2                   .dbline 110
 02E2           ;          t = b;
 02E2 6B01              movw R12,R22
 02E4                   .dbline 111
 02E4           ;          t <<= 8;
 02E4 DC2C              mov R13,R12
 02E6 CC24              clr R12
 02E8                   .dbline 112
 02E8           ;          t = t | a;
 02E8 CA28              or R12,R10
 02EA DB28              or R13,R11
 02EC                   .dbline 114
 02EC           ; 
 02EC           ;         tt = t * 0.0625;
 02EC 00E0              ldi R16,<L74
 02EE 10E0              ldi R17,>L74
 02F0 0E940000          xcall lpm32
 02F4 1801              movw R2,R16
 02F6 2901              movw R4,R18
 02F8 8601              movw R16,R12
 02FA 0E940000          xcall uint2fp
 02FE 3A93              st -y,R19
 0300 2A93              st -y,R18
 0302 1A93              st -y,R17
 0304 0A93              st -y,R16
 0306 8101              movw R16,R2
 0308 9201              movw R18,R4
 030A 0E940000          xcall fpmule2
 030E 0883              std y+0,R16
 0310 1983              std y+1,R17
 0312 2A83              std y+2,R18
 0314 3B83              std y+3,R19
 0316                   .dbline 115
 0316           ;         t = tt * 10 + 0.5; //放大10倍输出并四舍五入
 0316 00E0              ldi R16,<L75
 0318 10E0              ldi R17,>L75
 031A 0E940000          xcall lpm32
 031E CE01              movw R24,R28
 0320 9A93              st -y,R25
 0322 8A93              st -y,R24
 0324 0E940000          xcall fpmule1
 0328 1801              movw R2,R16
 032A 2901              movw R4,R18
 032C 00E0              ldi R16,<L76
 032E 10E0              ldi R17,>L76
 0330 0E940000          xcall lpm32
 0334 3A93              st -y,R19
 0336 2A93              st -y,R18
 0338 1A93              st -y,R17
 033A 0A93              st -y,R16
 033C 8101              movw R16,R2
 033E 9201              movw R18,R4
 0340 0E940000          xcall fpadd2
 0344 0E940000          xcall fpint
 0348 6801              movw R12,R16
 034A                   .dbline 117
 034A           ; 
 034A           ;         a = t / 100;              //十位
 034A 24E6              ldi R18,100
 034C 30E0              ldi R19,0
 034E 0E940000          xcall div16u
 0352 5801              movw R10,R16
 0354                   .dbline 118
 0354           ;         b = t / 10 - a * 10;      //个位
 0354 0AE0              ldi R16,10
 0356 10E0              ldi R17,0
 0358 9501              movw R18,R10
 035A 0E940000          xcall empy16s
 035E 1801              movw R2,R16
 0360 2AE0              ldi R18,10
 0362 30E0              ldi R19,0
 0364 8601              movw R16,R12
 0366 0E940000          xcall div16u
 036A B801              movw R22,R16
 036C 6219              sub R22,R2
 036E 7309              sbc R23,R3
 0370                   .dbline 119
 0370           ;         c = t - a * 100 - b * 10; //小数位
 0370 04E6              ldi R16,100
 0372 10E0              ldi R17,0
 0374 9501              movw R18,R10
 0376 0E940000          xcall empy16s
 037A A601              movw R20,R12
 037C 401B              sub R20,R16
 037E 510B              sbc R21,R17
 0380 0AE0              ldi R16,10
 0382 10E0              ldi R17,0
 0384 9B01              movw R18,R22
 0386 0E940000          xcall empy16s
 038A 401B              sub R20,R16
 038C 510B              sbc R21,R17
 038E                   .dbline 120
 038E           ;               locate(1,7);
 038E 27E0              ldi R18,7
 0390 01E0              ldi R16,1
 0392 C2DE              xcall _locate
 0394                   .dbline 121
 0394           ;               write_shuju(1,a+0x30);
 0394 9501              movw R18,R10
 0396 205D              subi R18,208  ; offset = 48
 0398 3F4F              sbci R19,255
 039A 01E0              ldi R16,1
 039C 65DE              xcall _write_shuju
 039E                   .dbline 122
 039E           ;               write_shuju(1,b+0x30);
 039E 9B01              movw R18,R22
 03A0 205D              subi R18,208  ; offset = 48
 03A2 3F4F              sbci R19,255
 03A4 01E0              ldi R16,1
 03A6 60DE              xcall _write_shuju
 03A8                   .dbline 123
 03A8           ;               write_hz(".");
 03A8 00E0              ldi R16,<L77
 03AA 10E0              ldi R17,>L77
 03AC A4DE              xcall _write_hz
 03AE                   .dbline 124
 03AE           ;               write_shuju(1,c+0x30);
 03AE 9A01              movw R18,R20
 03B0 205D              subi R18,208  ; offset = 48
 03B2 3F4F              sbci R19,255
 03B4 01E0              ldi R16,1
 03B6 58DE              xcall _write_shuju
 03B8                   .dbline 125
 03B8           ;               delay(100);
 03B8 04E6              ldi R16,100
 03BA 10E0              ldi R17,0
 03BC 21DE              xcall _delay
 03BE                   .dbline -2
 03BE           L72:
 03BE                   .dbline 0 ; func end
 03BE 2496              adiw R28,4
 03C0 0C940000          xjmp pop_xgsetF03C
 03C4                   .dbsym l tt 0 D
 03C4                   .dbsym r c 20 i
 03C4                   .dbsym r b 22 i
 03C4                   .dbsym r a 10 i
 03C4                   .dbsym r t 12 i
 03C4                   .dbend
 03C4                   .dbfile C:\DOCUME~1\Administrator\桌面\12864_~1\zz.c
 03C4                   .dbfunc e port_init _port_init fV
                        .even
 03C4           _port_init::
 03C4                   .dbline -1
 03C4                   .dbline 44
 03C4           ; #include <iom16v.h>
 03C4           ; #include <macros.h>
 03C4           ; #include "12864.h"
 03C4           ; #include "adc.h"
 03C4           ; #include "18B20.h"
 03C4           ; #define  uchar unsigned char
 03C4           ; #define  uint  unsigned int
 03C4           ; uint A ,B;
 03C4           ; typedef unsigned char  U8;       /* defined for unsigned 8-bits integer variable        无符号8位整型变量  */
 03C4           ; typedef signed   char  S8;       /* defined for signed 8-bits integer variable                  有符号8位整型变量  */
 03C4           ; typedef unsigned int   U16;      /* defined for unsigned 16-bits integer variable       无符号16位整型变量 */
 03C4           ; typedef signed   int   S16;      /* defined for signed 16-bits integer variable         有符号16位整型变量 */
 03C4           ; typedef unsigned long  U32;      /* defined for unsigned 32-bits integer variable       无符号32位整型变量 */
 03C4           ; typedef signed   long  S32;      /* defined for signed 32-bits integer variable         有符号32位整型变量 */
 03C4           ; typedef float          F32;      /* single precision floating point variable (32bits) 单精度浮点数(32位长度) */
 03C4           ; typedef double         F64;      /* double precision floating point variable (64bits) 双精度浮点数(64位长度) */
 03C4           ;  #define    C4_IN       DDRB &= ~(1 << PB4)           /*设置输入*/
 03C4           ;  #define    C4_OUT      DDRB |= (1 << PB4)            /*设置输出*/
 03C4           ;  #define    C4_CLR      PORTB &= ~(1 << PB4)      /*置低电平*/
 03C4           ;  #define    C4_SET      PORTB |= (1 << PB4)           /*置高电平*/
 03C4           ;  #define    C4_R          PINB & (1 <<PB4)            /*读了电平*/
 03C4           ; 
 03C4           ; /**************************************************************************
 03C4           ;                     通讯I/O空间定义
 03C4           ; ***************************************************************************/
 03C4           ;  #define       COM_IN          C4_IN  
 03C4           ;  #define       COM_OUT         C4_OUT
 03C4           ;  #define       COM_CLR         C4_CLR
 03C4           ;  #define       COM_SET         C4_SET
 03C4           ;  #define       COM_R           C4_R
 03C4           ;  
 03C4           ; /**************************************************************************
 03C4           ;                     全局变量定义区
 03C4           ; ***************************************************************************/
 03C4           ;       U8       i;
 03C4           ;       U8    U8FLAG,k;
 03C4           ;       U8    U8count,U8temp;
 03C4           ;       U8    U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata;
 03C4           ;       U8    U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_temp;
 03C4           ;       U8    U8comdata;
 03C4           ;       U16   ReceiveHighByte;
 03C4           ;       U16   ReceiveLowByte;
 03C4           ; void port_init()
 03C4           ;     {
 03C4                   .dbline 45
 03C4           ;        DDRD = 0xFF;                           
 03C4 8FEF              ldi R24,255
 03C6 81BB              out 0x11,R24
 03C8                   .dbline 46
 03C8           ;        PORTD = 0x00;
 03C8 2224              clr R2
 03CA 22BA              out 0x12,R2
 03CC                   .dbline 47
 03CC           ;        DDRC = 0xFF;   
 03CC 84BB              out 0x14,R24
 03CE                   .dbline 48
 03CE           ;        PORTC = 0x00; 
 03CE 25BA              out 0x15,R2
 03D0                   .dbline 49
 03D0           ;        DDRA = 0xFE;   
 03D0 8EEF              ldi R24,254
 03D2 8ABB              out 0x1a,R24
 03D4                   .dbline 50
 03D4           ;        PORTA = 0x00;
 03D4 2BBA              out 0x1b,R2
 03D6                   .dbline 51
 03D6           ;        PORTC|=BIT(2)+BIT(5);
 03D6 85B3              in R24,0x15
 03D8 8462              ori R24,36
 03DA 85BB              out 0x15,R24
 03DC                   .dbline 52
 03DC           ;        PORTC&=~BIT(4);
 03DC AC98              cbi 0x15,4
 03DE                   .dbline 53
 03DE           ;        DDRB  = 0x0C;                   
 03DE 8CE0              ldi R24,12
 03E0 87BB              out 0x17,R24
 03E2                   .dbline 54
 03E2           ;      PORTB = 0x03;  
 03E2 83E0              ldi R24,3
 03E4 88BB              out 0x18,R24
 03E6                   .dbline -2
 03E6           L78:
 03E6                   .dbline 0 ; func end
 03E6 0895              ret
 03E8                   .dbend
 03E8                   .dbfunc e Delay _Delay fV
 03E8           ;              i -> R16,R17
                        .even
 03E8           _Delay::
 03E8                   .dbline -1
 03E8                   .dbline 57
 03E8           ;       } 
 03E8           ;       void Delay(unsigned int i)
 03E8           ; {
 03E8           L80:
 03E8                   .dbline 58
 03E8           ;       while(i--);
 03E8           L81:
 03E8                   .dbline 58
 03E8 1801              movw R2,R16
 03EA 0150              subi R16,1
 03EC 1040              sbci R17,0
 03EE 2220              tst R2
 03F0 D9F7              brne L80
 03F2 3320              tst R3
 03F4 C9F7              brne L80
 03F6           X22:
 03F6                   .dbline -2
 03F6           L79:
 03F6                   .dbline 0 ; func end
 03F6 0895              ret
 03F8                   .dbsym r i 16 i
 03F8                   .dbend
 03F8                   .dbfunc e DelaymS _DelaymS fV
 03F8           ;              i -> R20,R21
 03F8           ;            dly -> R16,R17
                        .even
 03F8           _DelaymS::
 03F8 4A93              st -y,R20
 03FA 5A93              st -y,R21
 03FC                   .dbline -1
 03FC                   .dbline 62
 03FC           ; }
 03FC           ; 
 03FC           ; void DelaymS (U16 dly)                   
 03FC           ; {
 03FC                   .dbline 64
 03FC           ;       U16 i;
 03FC           ;       for ( ; dly>0; dly--)
 03FC 0CC0              xjmp L87
 03FE           L84:
 03FE                   .dbline 65
 03FE           ;       {
 03FE                   .dbline 66
 03FE           ;           WDR();
 03FE A895              wdr
 0400                   .dbline 67
 0400           ;               for (i=0; i<1119; i++);        
 0400 4427              clr R20
 0402 5527              clr R21
 0404 02C0              xjmp L91
 0406           L88:
 0406                   .dbline 67
 0406           L89:
 0406                   .dbline 67
 0406 4F5F              subi R20,255  ; offset = 1
 0408 5F4F              sbci R21,255
 040A           L91:
 040A                   .dbline 67
 040A 4F35              cpi R20,95
 040C E4E0              ldi R30,4
 040E 5E07              cpc R21,R30
 0410 D0F3              brlo L88
 0412           X23:
 0412                   .dbline 68
 0412           ;       }
 0412           L85:
 0412                   .dbline 64
 0412 0150              subi R16,1
 0414 1040              sbci R17,0
 0416           L87:
 0416                   .dbline 64
 0416 0030              cpi R16,0
 0418 0107              cpc R16,R17
 041A 89F7              brne L84
 041C           X24:
 041C                   .dbline -2
 041C           L83:
 041C                   .dbline 0 ; func end
 041C 5991              ld R21,y+
 041E 4991              ld R20,y+
 0420 0895              ret
 0422                   .dbsym r i 20 i
 0422                   .dbsym r dly 16 i
 0422                   .dbend
 0422                   .dbfunc e Delay_10us _Delay_10us fV
 0422           ;              i -> R16
                        .even
 0422           _Delay_10us::
 0422                   .dbline -1
 0422                   .dbline 73
 0422           ; }
 0422           ; 
 0422           ; 
 0422           ;        void  Delay_10us(void)
 0422           ;       {

⌨️ 快捷键说明

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