📄 bluetooth_uart.lst
字号:
(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 + -