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

📄 m16.lst

📁 ewts avr驱动程序 角速度传感器 104为秒
💻 LST
📖 第 1 页 / 共 2 页
字号:
    0115 9508      RET
_DisText:
  p                    --> R20
  addr                 --> R22
    0116 940E01D4  CALL	push_gset2
    0118 01A9      MOVW	R20,R18
    0119 2F60      MOV	R22,R16
(0078) }
(0079) 
(0080) void DisText(uchar addr,uchar *p)
(0081) {
(0082)  WrOp(addr) ;
    011A 2F06      MOV	R16,R22
    011B D03B      RCALL	_WrOp
    011C C004      RJMP	0x0121
(0083)  while(*p !='\0')WrDat(*(p++)) ;
    011D 01FA      MOVW	R30,R20
    011E 9101      LD	R16,Z+
    011F 01AF      MOVW	R20,R30
    0120 D048      RCALL	_WrDat
    0121 01FA      MOVW	R30,R20
    0122 8020      LDD	R2,Z+0
    0123 2022      TST	R2
    0124 F7C1      BNE	0x011D
    0125 940E01C5  CALL	pop_gset2
    0127 9508      RET
_DisTextConst:
  p                    --> R20
  addr                 --> R22
    0128 940E01D4  CALL	push_gset2
    012A 01A9      MOVW	R20,R18
    012B 2F60      MOV	R22,R16
(0084) }
(0085) 
(0086) void DisTextConst(uchar addr,uchar const *p)
(0087) {
(0088)  WrOp(addr) ;
    012C 2F06      MOV	R16,R22
    012D D029      RCALL	_WrOp
    012E C006      RJMP	0x0135
(0089)  while(*p !='\0')WrDat(*(p++)) ;
    012F 011A      MOVW	R2,R20
    0130 5F4F      SUBI	R20,0xFF
    0131 4F5F      SBCI	R21,0xFF
    0132 01F1      MOVW	R30,R2
    0133 9104      LPM	R16,0(Z)
    0134 D034      RCALL	_WrDat
    0135 01FA      MOVW	R30,R20
    0136 91E4      LPM	R30,0(Z)
    0137 23EE      TST	R30
    0138 F7B1      BNE	0x012F
    0139 940E01C5  CALL	pop_gset2
    013B 9508      RET
_LcdIni:
  i                    --> R20
    013C 940E01D6  CALL	push_gset1
(0090) }
(0091) 
(0092) void LcdIni()
(0093) {
(0094)     uint i ;
(0095)  DDRD=0XFF ;   //设置PA输出
    013E EF8F      LDI	R24,0xFF
    013F BB81      OUT	0x11,R24
(0096)  PORTD=0XFF ;   //全部加上上拉电阻
    0140 BB82      OUT	0x12,R24
(0097)  DDRC=0XFF ;   //设置PC为输出
    0141 BB84      OUT	0x14,R24
(0098)  PORTC=0XFF ;   //全部加上上拉电阻
    0142 BB85      OUT	0x15,R24
(0099)  WrOp(0x38) ;   
    0143 E308      LDI	R16,0x38
    0144 D012      RCALL	_WrOp
(0100)  WrOp(0x06) ;   //光标加1
    0145 E006      LDI	R16,6
    0146 D010      RCALL	_WrOp
(0101)  WrOp(0x0c) ;   //开显示
    0147 E00C      LDI	R16,0xC
    0148 D00E      RCALL	_WrOp
(0102)  WrOp(0x01) ;
    0149 E001      LDI	R16,1
    014A D00C      RCALL	_WrOp
(0103)  for(i=0 ;i<5000 ;i++) ;
    014B 2744      CLR	R20
    014C 2755      CLR	R21
    014D C002      RJMP	0x0150
    014E 5F4F      SUBI	R20,0xFF
    014F 4F5F      SBCI	R21,0xFF
    0150 3848      CPI	R20,0x88
    0151 E1E3      LDI	R30,0x13
    0152 075E      CPC	R21,R30
    0153 F3D0      BCS	0x014E
    0154 940E01D9  CALL	pop_gset1
    0156 9508      RET
_WrOp:
  i                    --> R20
  dat                  --> R20
    0157 940E01D6  CALL	push_gset1
    0159 2F40      MOV	R20,R16
(0104) }
(0105) 
(0106) void WrOp(uchar dat)
(0107) {
(0108)  uchar i ;
(0109)  ChkBusy() ;
    015A D020      RCALL	_ChkBusy
(0110)  PORTD &=~BIT(rs) ; //RS=0
    015B 9892      CBI	0x12,2
(0111)  PORTD &=~BIT(rw) ; //RW=0
    015C 9893      CBI	0x12,3
(0112)  PORTD &=~BIT(en) ; //EN=0
    015D 9894      CBI	0x12,4
(0113)  PORTC =dat ;   //送数据
    015E BB45      OUT	0x15,R20
(0114)  PORTD |=BIT(en) ; //EN=1
    015F 9A94      SBI	0x12,4
(0115)  for(i=1 ;i ;i++) ;  //延时
    0160 E041      LDI	R20,1
    0161 C001      RJMP	0x0163
    0162 9543      INC	R20
    0163 2344      TST	R20
    0164 F7E9      BNE	0x0162
(0116)  PORTD &=~BIT(en) ; //EN=0
    0165 9894      CBI	0x12,4
    0166 940E01D9  CALL	pop_gset1
    0168 9508      RET
_WrDat:
  i                    --> R20
  dat                  --> R20
    0169 940E01D6  CALL	push_gset1
    016B 2F40      MOV	R20,R16
(0117) }
(0118) 
(0119) void WrDat(uchar dat)
(0120) {
(0121)  uchar i ;
(0122)  ChkBusy() ;
    016C D00E      RCALL	_ChkBusy
(0123)  PORTD |=BIT(rs) ; //rs=1
    016D 9A92      SBI	0x12,2
(0124)  PORTD &=~BIT(rw) ; //rw=0
    016E 9893      CBI	0x12,3
(0125)  PORTD &=~BIT(en) ; //en=0
    016F 9894      CBI	0x12,4
(0126)  PORTC=dat ;   //送数据
    0170 BB45      OUT	0x15,R20
(0127)  PORTD |=BIT(en) ; //en=1
    0171 9A94      SBI	0x12,4
(0128)  for(i=1 ;i ;i++) ;  //延时
    0172 E041      LDI	R20,1
    0173 C001      RJMP	0x0175
    0174 9543      INC	R20
    0175 2344      TST	R20
    0176 F7E9      BNE	0x0174
(0129)  PORTD &=~BIT(en) ; //en=0
    0177 9894      CBI	0x12,4
    0178 940E01D9  CALL	pop_gset1
    017A 9508      RET
(0130) }
(0131) 
(0132) void ChkBusy()
(0133) {
(0134)  DDRC=0X00 ;   //设置为输入
_ChkBusy:
    017B 2422      CLR	R2
    017C BA24      OUT	0x14,R2
(0135)  PORTC=0X00 ;   //不设置上拉电阻
    017D BA25      OUT	0x15,R2
(0136)  PORTD &=~BIT(rs) ; //RS=0
    017E 9892      CBI	0x12,2
(0137)  PORTD |=BIT(rw) ; //RW=1
    017F 9A93      SBI	0x12,3
(0138)  PORTD |=BIT(en) ; //EN=1
    0180 9A94      SBI	0x12,4
(0139)  while(PINC & 0x80) ; //送数据
    0181 999F      SBIC	0x13,7
    0182 CFFE      RJMP	0x0181
(0140)  PORTD &=~BIT(en) ; //en=0
    0183 9894      CBI	0x12,4
(0141)  DDRC=0xff ;   //设置为输出
    0184 EF8F      LDI	R24,0xFF
    0185 BB84      OUT	0x14,R24
    0186 9508      RET
_delayms:
  i                    --> R20
  j                    --> R22
  n                    --> R16
    0187 940E01D4  CALL	push_gset2
(0142) }
(0143) 
(0144) void delayms(uint n)
(0145) {
(0146)   uchar j ;
(0147)  uint i ;
(0148)   for(i=0 ;i<n ;i++)
    0189 2744      CLR	R20
    018A 2755      CLR	R21
    018B C007      RJMP	0x0193
(0149)   for(j=0 ;j<250 ;j++) ;
FILE: <library>
    018C 2766      CLR	R22
    018D C001      RJMP	0x018F
    018E 9563      INC	R22
    018F 3F6A      CPI	R22,0xFA
    0190 F3E8      BCS	0x018E
    0191 5F4F      SUBI	R20,0xFF
    0192 4F5F      SBCI	R21,0xFF
    0193 1740      CP	R20,R16
    0194 0751      CPC	R21,R17
    0195 F3B0      BCS	0x018C
    0196 940E01C5  CALL	pop_gset2
    0198 9508      RET
mod16u:
    0199 9468      BSET	6
    019A C001      RJMP	xdiv16u
div16u:
    019B 94E8      BCLR	6
xdiv16u:
    019C 92EA      ST	R14,-Y
    019D 92FA      ST	R15,-Y
    019E 938A      ST	R24,-Y
    019F 24EE      CLR	R14
    01A0 24FF      CLR	R15
    01A1 E180      LDI	R24,0x10
    01A2 0F00      LSL	R16
    01A3 1F11      ROL	R17
    01A4 1CEE      ROL	R14
    01A5 1CFF      ROL	R15
    01A6 16E2      CP	R14,R18
    01A7 06F3      CPC	R15,R19
    01A8 F018      BCS	0x01AC
    01A9 1AE2      SUB	R14,R18
    01AA 0AF3      SBC	R15,R19
    01AB 9503      INC	R16
    01AC 958A      DEC	R24
    01AD F7A1      BNE	0x01A2
    01AE F416      BRTC	0x01B1
    01AF 2D0E      MOV	R16,R14
    01B0 2D1F      MOV	R17,R15
    01B1 9189      LD	R24,Y+
    01B2 90F9      LD	R15,Y+
    01B3 90E9      LD	R14,Y+
    01B4 9508      RET
empy16s:
    01B5 920A      ST	R0,-Y
    01B6 921A      ST	R1,-Y
    01B7 938A      ST	R24,-Y
    01B8 939A      ST	R25,-Y
    01B9 9F02      MUL	R16,R18
    01BA 01C0      MOVW	R24,R0
    01BB 9F12      MUL	R17,R18
    01BC 0D90      ADD	R25,R0
    01BD 9F03      MUL	R16,R19
    01BE 0D90      ADD	R25,R0
    01BF 018C      MOVW	R16,R24
    01C0 9199      LD	R25,Y+
    01C1 9189      LD	R24,Y+
    01C2 9019      LD	R1,Y+
    01C3 9009      LD	R0,Y+
    01C4 9508      RET
pop_gset2:
    01C5 E0E2      LDI	R30,2
    01C6 940C01DA  JMP	pop
pop_gset3:
    01C8 E0E4      LDI	R30,4
    01C9 940C01DA  JMP	pop
pop_gset4:
    01CB E0E8      LDI	R30,0x8
    01CC 940C01DA  JMP	pop
push_gset5:
    01CE 92FA      ST	R15,-Y
    01CF 92EA      ST	R14,-Y
push_gset4:
    01D0 92DA      ST	R13,-Y
    01D1 92CA      ST	R12,-Y
push_gset3:
    01D2 92BA      ST	R11,-Y
    01D3 92AA      ST	R10,-Y
push_gset2:
    01D4 937A      ST	R23,-Y
    01D5 936A      ST	R22,-Y
push_gset1:
    01D6 935A      ST	R21,-Y
    01D7 934A      ST	R20,-Y
    01D8 9508      RET
pop_gset1:
    01D9 E0E1      LDI	R30,1
pop:
    01DA 9149      LD	R20,Y+
    01DB 9159      LD	R21,Y+
    01DC FDE0      SBRC	R30,0
    01DD 9508      RET
    01DE 9169      LD	R22,Y+
    01DF 9179      LD	R23,Y+
    01E0 FDE1      SBRC	R30,1
    01E1 9508      RET
    01E2 90A9      LD	R10,Y+
    01E3 90B9      LD	R11,Y+
    01E4 FDE2      SBRC	R30,2
    01E5 9508      RET
    01E6 90C9      LD	R12,Y+
    01E7 90D9      LD	R13,Y+
    01E8 FDE3      SBRC	R30,3
    01E9 9508      RET
    01EA 90E9      LD	R14,Y+
    01EB 90F9      LD	R15,Y+
    01EC 9508      RET
lsl8:
    01ED 2311      TST	R17
    01EE F019      BEQ	0x01F2
    01EF 0F00      LSL	R16
    01F0 951A      DEC	R17
    01F1 CFFB      RJMP	lsl8
    01F2 9508      RET

⌨️ 快捷键说明

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