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

📄 m16.lis

📁 ewts avr驱动程序 角速度传感器 104为秒
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 0184 30E0              ldi R19,>_BCD+1
 0186 0A2D              mov R16,R10
 0188 03D0              xcall _DisText
 018A                   .dbline -2
 018A           L18:
 018A 0E940000          xcall pop_gset3
 018E                   .dbline 0 ; func end
 018E 0895              ret
 0190                   .dbsym r i 20 c
 0190                   .dbsym r num 22 i
 0190                   .dbsym r addr 10 c
 0190                   .dbend
 0190                   .dbfunc e DisText _DisText fV
 0190           ;              p -> R20,R21
 0190           ;           addr -> R22
                        .even
 0190           _DisText::
 0190 0E940000          xcall push_gset2
 0194 A901              movw R20,R18
 0196 602F              mov R22,R16
 0198                   .dbline -1
 0198                   .dbline 81
 0198           ; }
 0198           ; 
 0198           ; void DisText(uchar addr,uchar *p)
 0198           ; {
 0198                   .dbline 82
 0198           ;  WrOp(addr) ;
 0198 062F              mov R16,R22
 019A 3BD0              xcall _WrOp
 019C 04C0              xjmp L28
 019E           L27:
 019E                   .dbline 83
 019E FA01              movw R30,R20
 01A0 0191              ld R16,Z+
 01A2 AF01              movw R20,R30
 01A4 48D0              xcall _WrDat
 01A6           L28:
 01A6                   .dbline 83
 01A6           ;  while(*p !='\0')WrDat(*(p++)) ;
 01A6 FA01              movw R30,R20
 01A8 2080              ldd R2,z+0
 01AA 2220              tst R2
 01AC C1F7              brne L27
 01AE                   .dbline -2
 01AE           L26:
 01AE 0E940000          xcall pop_gset2
 01B2                   .dbline 0 ; func end
 01B2 0895              ret
 01B4                   .dbsym r p 20 pc
 01B4                   .dbsym r addr 22 c
 01B4                   .dbend
 01B4                   .dbfunc e DisTextConst _DisTextConst fV
 01B4           ;              p -> R20,R21
 01B4           ;           addr -> R22
                        .even
 01B4           _DisTextConst::
 01B4 0E940000          xcall push_gset2
 01B8 A901              movw R20,R18
 01BA 602F              mov R22,R16
 01BC                   .dbline -1
 01BC                   .dbline 87
 01BC           ; }
 01BC           ; 
 01BC           ; void DisTextConst(uchar addr,uchar const *p)
 01BC           ; {
 01BC                   .dbline 88
 01BC           ;  WrOp(addr) ;
 01BC 062F              mov R16,R22
 01BE 29D0              xcall _WrOp
 01C0 06C0              xjmp L32
 01C2           L31:
 01C2                   .dbline 89
 01C2 1A01              movw R2,R20
 01C4 4F5F              subi R20,255  ; offset = 1
 01C6 5F4F              sbci R21,255
 01C8 F101              movw R30,R2
 01CA 0491              lpm R16,Z
 01CC 34D0              xcall _WrDat
 01CE           L32:
 01CE                   .dbline 89
 01CE           ;  while(*p !='\0')WrDat(*(p++)) ;
 01CE FA01              movw R30,R20
 01D0 E491              lpm R30,Z
 01D2 EE23              tst R30
 01D4 B1F7              brne L31
 01D6                   .dbline -2
 01D6           L30:
 01D6 0E940000          xcall pop_gset2
 01DA                   .dbline 0 ; func end
 01DA 0895              ret
 01DC                   .dbsym r p 20 pkc
 01DC                   .dbsym r addr 22 c
 01DC                   .dbend
 01DC                   .dbfunc e LcdIni _LcdIni fV
 01DC           ;              i -> R20,R21
                        .even
 01DC           _LcdIni::
 01DC 0E940000          xcall push_gset1
 01E0                   .dbline -1
 01E0                   .dbline 93
 01E0           ; }
 01E0           ; 
 01E0           ; void LcdIni()
 01E0           ; {
 01E0                   .dbline 95
 01E0           ;     uint i ;
 01E0           ;  DDRD=0XFF ;   //设置PA输出
 01E0 8FEF              ldi R24,255
 01E2 81BB              out 0x11,R24
 01E4                   .dbline 96
 01E4           ;  PORTD=0XFF ;   //全部加上上拉电阻
 01E4 82BB              out 0x12,R24
 01E6                   .dbline 97
 01E6           ;  DDRC=0XFF ;   //设置PC为输出
 01E6 84BB              out 0x14,R24
 01E8                   .dbline 98
 01E8           ;  PORTC=0XFF ;   //全部加上上拉电阻
 01E8 85BB              out 0x15,R24
 01EA                   .dbline 99
 01EA           ;  WrOp(0x38) ;   
 01EA 08E3              ldi R16,56
 01EC 12D0              xcall _WrOp
 01EE                   .dbline 100
 01EE           ;  WrOp(0x06) ;   //光标加1
 01EE 06E0              ldi R16,6
 01F0 10D0              xcall _WrOp
 01F2                   .dbline 101
 01F2           ;  WrOp(0x0c) ;   //开显示
 01F2 0CE0              ldi R16,12
 01F4 0ED0              xcall _WrOp
 01F6                   .dbline 102
 01F6           ;  WrOp(0x01) ;
 01F6 01E0              ldi R16,1
 01F8 0CD0              xcall _WrOp
 01FA                   .dbline 103
 01FA 4427              clr R20
 01FC 5527              clr R21
 01FE 02C0              xjmp L38
 0200           L35:
 0200                   .dbline 103
 0200           L36:
 0200                   .dbline 103
 0200 4F5F              subi R20,255  ; offset = 1
 0202 5F4F              sbci R21,255
 0204           L38:
 0204                   .dbline 103
 0204           ;  for(i=0 ;i<5000 ;i++) ;
 0204 4838              cpi R20,136
 0206 E3E1              ldi R30,19
 0208 5E07              cpc R21,R30
 020A D0F3              brlo L35
 020C                   .dbline -2
 020C           L34:
 020C 0E940000          xcall pop_gset1
 0210                   .dbline 0 ; func end
 0210 0895              ret
 0212                   .dbsym r i 20 i
 0212                   .dbend
 0212                   .dbfunc e WrOp _WrOp fV
 0212           ;              i -> R20
 0212           ;            dat -> R20
                        .even
 0212           _WrOp::
 0212 0E940000          xcall push_gset1
 0216 402F              mov R20,R16
 0218                   .dbline -1
 0218                   .dbline 107
 0218           ; }
 0218           ; 
 0218           ; void WrOp(uchar dat)
 0218           ; {
 0218                   .dbline 109
 0218           ;  uchar i ;
 0218           ;  ChkBusy() ;
 0218 20D0              xcall _ChkBusy
 021A                   .dbline 110
 021A           ;  PORTD &=~BIT(rs) ; //RS=0
 021A 9298              cbi 0x12,2
 021C                   .dbline 111
 021C           ;  PORTD &=~BIT(rw) ; //RW=0
 021C 9398              cbi 0x12,3
 021E                   .dbline 112
 021E           ;  PORTD &=~BIT(en) ; //EN=0
 021E 9498              cbi 0x12,4
 0220                   .dbline 113
 0220           ;  PORTC =dat ;   //送数据
 0220 45BB              out 0x15,R20
 0222                   .dbline 114
 0222           ;  PORTD |=BIT(en) ; //EN=1
 0222 949A              sbi 0x12,4
 0224                   .dbline 115
 0224 41E0              ldi R20,1
 0226 01C0              xjmp L43
 0228           L40:
 0228                   .dbline 115
 0228           L41:
 0228                   .dbline 115
 0228 4395              inc R20
 022A           L43:
 022A                   .dbline 115
 022A           ;  for(i=1 ;i ;i++) ;  //延时
 022A 4423              tst R20
 022C E9F7              brne L40
 022E                   .dbline 116
 022E           ;  PORTD &=~BIT(en) ; //EN=0
 022E 9498              cbi 0x12,4
 0230                   .dbline -2
 0230           L39:
 0230 0E940000          xcall pop_gset1
 0234                   .dbline 0 ; func end
 0234 0895              ret
 0236                   .dbsym r i 20 c
 0236                   .dbsym r dat 20 c
 0236                   .dbend
 0236                   .dbfunc e WrDat _WrDat fV
 0236           ;              i -> R20
 0236           ;            dat -> R20
                        .even
 0236           _WrDat::
 0236 0E940000          xcall push_gset1
 023A 402F              mov R20,R16
 023C                   .dbline -1
 023C                   .dbline 120
 023C           ; }
 023C           ; 
 023C           ; void WrDat(uchar dat)
 023C           ; {
 023C                   .dbline 122
 023C           ;  uchar i ;
 023C           ;  ChkBusy() ;
 023C 0ED0              xcall _ChkBusy
 023E                   .dbline 123
 023E           ;  PORTD |=BIT(rs) ; //rs=1
 023E 929A              sbi 0x12,2
 0240                   .dbline 124
 0240           ;  PORTD &=~BIT(rw) ; //rw=0
 0240 9398              cbi 0x12,3
 0242                   .dbline 125
 0242           ;  PORTD &=~BIT(en) ; //en=0
 0242 9498              cbi 0x12,4
 0244                   .dbline 126
 0244           ;  PORTC=dat ;   //送数据
 0244 45BB              out 0x15,R20
 0246                   .dbline 127
 0246           ;  PORTD |=BIT(en) ; //en=1
 0246 949A              sbi 0x12,4
 0248                   .dbline 128
 0248 41E0              ldi R20,1
 024A 01C0              xjmp L48
 024C           L45:
 024C                   .dbline 128
 024C           L46:
 024C                   .dbline 128
 024C 4395              inc R20
 024E           L48:
 024E                   .dbline 128
 024E           ;  for(i=1 ;i ;i++) ;  //延时
 024E 4423              tst R20
 0250 E9F7              brne L45
 0252                   .dbline 129
 0252           ;  PORTD &=~BIT(en) ; //en=0
 0252 9498              cbi 0x12,4
 0254                   .dbline -2
 0254           L44:
 0254 0E940000          xcall pop_gset1
 0258                   .dbline 0 ; func end
 0258 0895              ret
 025A                   .dbsym r i 20 c
 025A                   .dbsym r dat 20 c
 025A                   .dbend
 025A                   .dbfunc e ChkBusy _ChkBusy fV
                        .even
 025A           _ChkBusy::
 025A                   .dbline -1
 025A                   .dbline 133
 025A           ; }
 025A           ; 
 025A           ; void ChkBusy()
 025A           ; {
 025A                   .dbline 134
 025A           ;  DDRC=0X00 ;   //设置为输入
 025A 2224              clr R2
 025C 24BA              out 0x14,R2
 025E                   .dbline 135
 025E           ;  PORTC=0X00 ;   //不设置上拉电阻
 025E 25BA              out 0x15,R2
 0260                   .dbline 136
 0260           ;  PORTD &=~BIT(rs) ; //RS=0
 0260 9298              cbi 0x12,2
 0262                   .dbline 137
 0262           ;  PORTD |=BIT(rw) ; //RW=1
 0262 939A              sbi 0x12,3
 0264                   .dbline 138
 0264           ;  PORTD |=BIT(en) ; //EN=1
 0264 949A              sbi 0x12,4
 0266           L50:
 0266                   .dbline 139
 0266           L51:
 0266                   .dbline 139
 0266           ;  while(PINC & 0x80) ; //送数据
 0266 9F99              sbic 0x13,7
 0268 FECF              rjmp L50
 026A                   .dbline 140
 026A           ;  PORTD &=~BIT(en) ; //en=0
 026A 9498              cbi 0x12,4
 026C                   .dbline 141
 026C           ;  DDRC=0xff ;   //设置为输出
 026C 8FEF              ldi R24,255
 026E 84BB              out 0x14,R24
 0270                   .dbline -2
 0270           L49:
 0270                   .dbline 0 ; func end
 0270 0895              ret
 0272                   .dbend
 0272                   .dbfunc e delayms _delayms fV
 0272           ;              i -> R20,R21
 0272           ;              j -> R22
 0272           ;              n -> R16,R17
                        .even
 0272           _delayms::
 0272 0E940000          xcall push_gset2
 0276                   .dbline -1
 0276                   .dbline 145
 0276           ; }
 0276           ; 
 0276           ; void delayms(uint n)
 0276           ; {
 0276                   .dbline 148
 0276           ;   uchar j ;
 0276           ;  uint i ;
 0276           ;   for(i=0 ;i<n ;i++)
 0276 4427              clr R20
 0278 5527              clr R21
 027A 07C0              xjmp L57
 027C           L54:
 027C                   .dbline 149
 027C 6627              clr R22
 027E 01C0              xjmp L61
 0280           L58:
 0280                   .dbline 149
 0280           L59:
 0280                   .dbline 149
 0280 6395              inc R22
 0282           L61:
 0282                   .dbline 149
 0282 6A3F              cpi R22,250
 0284 E8F3              brlo L58
 0286           L55:
 0286                   .dbline 148
 0286 4F5F              subi R20,255  ; offset = 1
 0288 5F4F              sbci R21,255
 028A           L57:
 028A                   .dbline 148
 028A 4017              cp R20,R16
 028C 5107              cpc R21,R17
 028E B0F3              brlo L54
 0290                   .dbline -2
 0290           L53:
 0290 0E940000          xcall pop_gset2
 0294                   .dbline 0 ; func end
 0294 0895              ret
 0296                   .dbsym r i 20 i
 0296                   .dbsym r j 22 c
 0296                   .dbsym r n 16 i
 0296                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile D:\PROTEU~1.7\PROTEU~1.7\JOHU\a___EWTS82\m16.c
 0000           _Adc::
 0000                   .blkb 6
 0006                   .dbsym e Adc _Adc A[6:3]I
 0006           _BCD::
 0006                   .blkb 6
 000C                   .dbsym e BCD _BCD A[6:6]c

⌨️ 快捷键说明

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