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

📄 bluetooth_uart.lst

📁 在AVR单片机上源程序 bluetooth uart
💻 LST
📖 第 1 页 / 共 2 页
字号:
(0091)     {
(0092)       PORTB=(0xfe&PINB);  //1开
    0110 B386      IN	R24,0x16
    0111 7F8E      ANDI	R24,0xFE
    0112 BB88      OUT	0x18,R24
(0093)       Delay(second1);  
    0113 018B      MOVW	R16,R22
    0114 DF4A      RCALL	_Delay
(0094)       PORTB^=0x01;  //1关
    0115 E081      LDI	R24,1
    0116 B228      IN	R2,0x18
    0117 2628      EOR	R2,R24
    0118 BA28      OUT	0x18,R2
(0095) 	  //PORTA=0xff;  //2关
(0096)       Delay(second1);
    0119 018B      MOVW	R16,R22
    011A DF44      RCALL	_Delay
(0097) 	  PORTB=(0xfe&PINB);  //1开
    011B B386      IN	R24,0x16
    011C 7F8E      ANDI	R24,0xFE
    011D BB88      OUT	0x18,R24
(0098) 	}
(0099)   if(flag_twinkle2)
    011E 90200072  LDS	R2,flag_twinkle2
    0120 2022      TST	R2
    0121 F071      BEQ	0x0130
(0100)     {
(0101)       PORTB=(0xfd&PINB);  //2开
    0122 B386      IN	R24,0x16
    0123 7F8D      ANDI	R24,0xFD
    0124 BB88      OUT	0x18,R24
(0102)       Delay(second2);
    0125 018A      MOVW	R16,R20
    0126 DF38      RCALL	_Delay
(0103)       PORTB^=0x02;  //2关
    0127 E082      LDI	R24,2
    0128 B228      IN	R2,0x18
    0129 2628      EOR	R2,R24
    012A BA28      OUT	0x18,R2
(0104) 	  //PORTA=0xff;  //1关
(0105)       Delay(second2);
    012B 018A      MOVW	R16,R20
    012C DF32      RCALL	_Delay
(0106) 	  PORTB=(0xfd&PINB);  //2开
    012D B386      IN	R24,0x16
    012E 7F8D      ANDI	R24,0xFD
    012F BB88      OUT	0x18,R24
(0107)     }
    0130 940E01E7  CALL	pop_gset2
    0132 9508      RET
(0108) }
(0109)  
(0110) 
(0111) 
(0112) 
(0113) //房间2处理
(0114) unsigned char Room2_Handle(void)
(0115) {
(0116)   if((data&0x03)==0x02) {flag_twinkle2=0; PORTB=(0xfd&PINB);}
_Room2_Handle:
    0133 9180006F  LDS	R24,data
    0135 7083      ANDI	R24,3
    0136 3082      CPI	R24,2
    0137 F439      BNE	0x013F
    0138 2422      CLR	R2
    0139 92200072  STS	flag_twinkle2,R2
    013B B386      IN	R24,0x16
    013C 7F8D      ANDI	R24,0xFD
    013D BB88      OUT	0x18,R24
    013E C006      RJMP	0x0145
(0117)     else {flag_twinkle2=0; PORTB=(0xfe|PINB);}
    013F 2422      CLR	R2
    0140 92200072  STS	flag_twinkle2,R2
    0142 B386      IN	R24,0x16
    0143 6F8E      ORI	R24,0xFE
    0144 BB88      OUT	0x18,R24
(0118) 	  //if(FLAG_TWINKLE2) Room_Twinkle(SECOND1,SECOND2);
(0119)   if((data&0x1c)==0x1c) {flag_twinkle2=1; second2=500;}//Room_Twinkle(SECOND1,500);}  //房间2_0.5s闪烁
    0145 9180006F  LDS	R24,data
    0147 718C      ANDI	R24,0x1C
    0148 318C      CPI	R24,0x1C
    0149 F451      BNE	0x0154
    014A E081      LDI	R24,1
    014B 93800072  STS	flag_twinkle2,R24
    014D EF84      LDI	R24,0xF4
    014E E091      LDI	R25,1
    014F 93900061  STS	second2+1,R25
    0151 93800060  STS	second2,R24
    0153 C02C      RJMP	0x0180
(0120)     else if((data&0x1c)==0x10) {flag_twinkle2=1; second2=1000;}//Room_Twinkle(SECOND1,1000);}  //房间2_1s闪烁
    0154 9180006F  LDS	R24,data
    0156 718C      ANDI	R24,0x1C
    0157 3180      CPI	R24,0x10
    0158 F451      BNE	0x0163
    0159 E081      LDI	R24,1
    015A 93800072  STS	flag_twinkle2,R24
    015C EE88      LDI	R24,0xE8
    015D E093      LDI	R25,3
    015E 93900061  STS	second2+1,R25
    0160 93800060  STS	second2,R24
    0162 C01D      RJMP	0x0180
(0121) 	  else if((data&0x1c)==0x14) {flag_twinkle2=1; second2=2000;}//Room_Twinkle(SECOND1,2000);}  //房间2_2s闪烁
    0163 9180006F  LDS	R24,data
    0165 718C      ANDI	R24,0x1C
    0166 3184      CPI	R24,0x14
    0167 F451      BNE	0x0172
    0168 E081      LDI	R24,1
    0169 93800072  STS	flag_twinkle2,R24
    016B ED80      LDI	R24,0xD0
    016C E097      LDI	R25,7
    016D 93900061  STS	second2+1,R25
    016F 93800060  STS	second2,R24
    0171 C00E      RJMP	0x0180
(0122) 	    else if((data&0x1c)==0x18) {flag_twinkle2=1; second2=3000;}//Room_Twinkle(SECOND1,3000);}  //房间2_3s闪烁
    0172 9180006F  LDS	R24,data
    0174 718C      ANDI	R24,0x1C
    0175 3188      CPI	R24,0x18
    0176 F449      BNE	0x0180
    0177 E081      LDI	R24,1
    0178 93800072  STS	flag_twinkle2,R24
    017A EB88      LDI	R24,0xB8
    017B E09B      LDI	R25,0xB
    017C 93900061  STS	second2+1,R25
    017E 93800060  STS	second2,R24
    0180 9508      RET
_stakeout:
    0181 940E01F2  CALL	push_gset1
(0123) 		  //else ;
(0124) }
(0125) 
(0126) //********************************************
(0127) //安防监视系统
(0128) //********************************************
(0129) 
(0130) void stakeout(void)
(0131) {
(0132)   if(data==0x41) flag_stake=1;
    0183 9180006F  LDS	R24,data
    0185 3481      CPI	R24,0x41
    0186 F421      BNE	0x018B
    0187 E081      LDI	R24,1
    0188 93800071  STS	flag_stake,R24
    018A C005      RJMP	0x0190
(0133)     else {flag_stake=0; stakeout_key=0;}
    018B 2422      CLR	R2
    018C 92200071  STS	flag_stake,R2
    018E 92200070  STS	stakeout_key,R2
(0134)   if((!(PIND&0x04))&flag_stake) stakeout_key=1;
    0190 9982      SBIC	0x10,2
    0191 C003      RJMP	0x0195
    0192 E041      LDI	R20,1
    0193 E050      LDI	R21,0
    0194 C002      RJMP	0x0197
    0195 2744      CLR	R20
    0196 2755      CLR	R21
    0197 90200071  LDS	R2,flag_stake
    0199 2433      CLR	R3
    019A 012A      MOVW	R4,R20
    019B 2042      AND	R4,R2
    019C 2053      AND	R5,R3
    019D 2044      TST	R4
    019E F411      BNE	0x01A1
    019F 2055      TST	R5
    01A0 F101      BEQ	0x01C1
    01A1 E081      LDI	R24,1
    01A2 93800070  STS	stakeout_key,R24
    01A4 C01C      RJMP	0x01C1
(0135)   while(flag_stake&stakeout_key)
(0136)   {
(0137)     Uart_Read_Data();
    01A5 DEC8      RCALL	_Uart_Read_Data
(0138) 	if(data_stake==0x45) {data_stake=0; Uart_Write_Data(0x45);}
    01A6 9180006E  LDS	R24,data_stake
    01A8 3485      CPI	R24,0x45
    01A9 F429      BNE	0x01AF
    01AA 2422      CLR	R2
    01AB 9220006E  STS	data_stake,R2
    01AD E405      LDI	R16,0x45
    01AE DEC7      RCALL	_Uart_Write_Data
(0139) 	if(data==0x40) {flag_stake=0; stakeout_key=0;}
    01AF 9180006F  LDS	R24,data
    01B1 3480      CPI	R24,0x40
    01B2 F431      BNE	0x01B9
    01B3 2422      CLR	R2
    01B4 92200071  STS	flag_stake,R2
    01B6 92200070  STS	stakeout_key,R2
    01B8 C008      RJMP	0x01C1
(0140) 	  else
(0141) 	  {
(0142)         PORTB=0xfb;
    01B9 EF8B      LDI	R24,0xFB
    01BA BB88      OUT	0x18,R24
(0143) 	    Delay_1us();
    01BB DE8F      RCALL	_Delay_1us
(0144) 	    PORTB^=0x04;
    01BC E084      LDI	R24,4
    01BD B228      IN	R2,0x18
    01BE 2628      EOR	R2,R24
    01BF BA28      OUT	0x18,R2
(0145) 	    Delay_1us();
    01C0 DE8A      RCALL	_Delay_1us
    01C1 90200070  LDS	R2,stakeout_key
    01C3 90300071  LDS	R3,flag_stake
    01C5 2032      AND	R3,R2
    01C6 F6F1      BNE	0x01A5
    01C7 940E01F5  CALL	pop_gset1
    01C9 9508      RET
(0146) 	  }
(0147)   }
(0148) }
(0149) /*
(0150) //***************************************
(0151) //电视系统
(0152) //***************************************
(0153) void tv_
(0154) */
(0155) 
(0156) 
(0157) //主函数
(0158) void main(void)
(0159) {
(0160)   PORTA=0xff;
_main:
    01CA EF8F      LDI	R24,0xFF
    01CB BB8B      OUT	0x1B,R24
(0161)   DDRA=0xff;
    01CC BB8A      OUT	0x1A,R24
(0162)   PORTB=0xff;
    01CD BB88      OUT	0x18,R24
(0163)   DDRB=0xff;
    01CE BB87      OUT	0x17,R24
(0164)   PORTC=0xff;
    01CF BB85      OUT	0x15,R24
(0165)   DDRC=0xff;
    01D0 BB84      OUT	0x14,R24
(0166)   UBRRH=0x00;  //初始化串口9600
    01D1 2422      CLR	R2
    01D2 BC20      OUT	0x20,R2
(0167)   UBRRL=0x33;
    01D3 E383      LDI	R24,0x33
    01D4 B989      OUT	0x09,R24
(0168)   UCSRB=0x18;  //发送接收允许
    01D5 E188      LDI	R24,0x18
    01D6 B98A      OUT	0x0A,R24
(0169)    Delay_1ms();
    01D7 DE7D      RCALL	_Delay_1ms
    01D8 C00C      RJMP	0x01E5
(0170)   while(1)
(0171)   {
(0172)     Uart_Read_Data();
    01D9 DE94      RCALL	_Uart_Read_Data
(0173) 	Room_Select();
    01DA DE9F      RCALL	_Room_Select
(0174) 	Room_Twinkle(second1,second2);
    01DB 91200060  LDS	R18,second2
    01DD 91300061  LDS	R19,second2+1
    01DF 91000062  LDS	R16,second1
    01E1 91100063  LDS	R17,second1+1
    01E3 DF24      RCALL	_Room_Twinkle
(0175) 	stakeout();
FILE: <library>
    01E4 DF9C      RCALL	_stakeout
    01E5 CFF3      RJMP	0x01D9
    01E6 9508      RET
pop_gset2:
    01E7 E0E2      LDI	R30,2
    01E8 940C01F6  JMP	pop
push_gset5:
    01EA 92FA      ST	R15,-Y
    01EB 92EA      ST	R14,-Y
push_gset4:
    01EC 92DA      ST	R13,-Y
    01ED 92CA      ST	R12,-Y
push_gset3:
    01EE 92BA      ST	R11,-Y
    01EF 92AA      ST	R10,-Y
push_gset2:
    01F0 937A      ST	R23,-Y
    01F1 936A      ST	R22,-Y
push_gset1:
    01F2 935A      ST	R21,-Y
    01F3 934A      ST	R20,-Y
    01F4 9508      RET
pop_gset1:
    01F5 E0E1      LDI	R30,1
pop:
    01F6 9149      LD	R20,Y+
    01F7 9159      LD	R21,Y+
    01F8 FDE0      SBRC	R30,0
    01F9 9508      RET
    01FA 9169      LD	R22,Y+
    01FB 9179      LD	R23,Y+
    01FC FDE1      SBRC	R30,1
    01FD 9508      RET
    01FE 90A9      LD	R10,Y+
    01FF 90B9      LD	R11,Y+
    0200 FDE2      SBRC	R30,2
    0201 9508      RET
    0202 90C9      LD	R12,Y+
    0203 90D9      LD	R13,Y+
    0204 FDE3      SBRC	R30,3
    0205 9508      RET
    0206 90E9      LD	R14,Y+
    0207 90F9      LD	R15,Y+
    0208 9508      RET

⌨️ 快捷键说明

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