📄 main.lis
字号:
.module main.c
.area text(rom, con, rel)
0000 .dbfile D:\工作\老董_11.8\程序库\BLUETOOTH_UART\main.c
0000 .dbfunc e Delay_1us _Delay_1us fV
0000 ; i -> R16,R17
.even
0000 _Delay_1us::
0000 .dbline -1
0000 .dbline 22
0000 ; #include<iom16v.h>
0000 ; #include<macros.h>
0000 ;
0000 ; #define ROOM1_SHOW asm("cbi 0x1b,0")
0000 ; #define ROOM1_DOWN asm("sbi 0x1b,0")
0000 ; #define ROOM2_SHOW asm("sbi 0x1b,1")
0000 ; #define ROOM2_DOWN asm("cbi 0x1b,1")
0000 ; unsigned char flag_twinkle1;
0000 ; unsigned char flag_twinkle2;
0000 ; unsigned char flag_stake;
0000 ; unsigned char stakeout_key;
0000 ; unsigned char data;
0000 ; unsigned char data_stake;
0000 ; unsigned char r_data[10];
0000 ; unsigned int second1,second2;
0000 ;
0000 ;
0000 ;
0000 ;
0000 ; //延时us级
0000 ; void Delay_1us(void)
0000 ; {
0000 .dbline 24
0000 ; unsigned int i;
0000 ; for(i=1;i<1000;i++)
0000 01E0 ldi R16,1
0002 10E0 ldi R17,0
0004 02C0 xjmp L5
0006 L2:
0006 .dbline 25
0006 L3:
0006 .dbline 24
0006 0F5F subi R16,255 ; offset = 1
0008 1F4F sbci R17,255
000A L5:
000A .dbline 24
000A 083E cpi R16,232
000C E3E0 ldi R30,3
000E 1E07 cpc R17,R30
0010 D0F3 brlo L2
0012 .dbline -2
0012 L1:
0012 .dbline 0 ; func end
0012 0895 ret
0014 .dbsym r i 16 i
0014 .dbend
0014 .dbfunc e Delay_1ms _Delay_1ms fV
0014 ; i -> R16,R17
.even
0014 _Delay_1ms::
0014 .dbline -1
0014 .dbline 30
0014 ; ;
0014 ; }
0014 ;
0014 ; //延时ms级
0014 ; void Delay_1ms(void)
0014 ; {
0014 .dbline 32
0014 ; unsigned int i;
0014 ; for(i=1;i<900;i++)
0014 01E0 ldi R16,1
0016 10E0 ldi R17,0
0018 02C0 xjmp L10
001A L7:
001A .dbline 33
001A L8:
001A .dbline 32
001A 0F5F subi R16,255 ; offset = 1
001C 1F4F sbci R17,255
001E L10:
001E .dbline 32
001E 0438 cpi R16,132
0020 E3E0 ldi R30,3
0022 1E07 cpc R17,R30
0024 D0F3 brlo L7
0026 .dbline -2
0026 L6:
0026 .dbline 0 ; func end
0026 0895 ret
0028 .dbsym r i 16 i
0028 .dbend
0028 .dbfunc e Delay _Delay fV
0028 ; i -> R20,R21
0028 ; n -> R22,R23
.even
0028 _Delay::
0028 0E940000 xcall push_gset2
002C B801 movw R22,R16
002E .dbline -1
002E .dbline 38
002E ; ;
002E ; }
002E ;
002E ; // 延时
002E ; void Delay(unsigned int n)
002E ; {
002E .dbline 39
002E ; unsigned int i=0;
002E 4427 clr R20
0030 5527 clr R21
0032 .dbline 40
0032 ; for(i=0;i<n;i++)
0032 03C0 xjmp L15
0034 L12:
0034 .dbline 41
0034 EFDF xcall _Delay_1ms
0036 L13:
0036 .dbline 40
0036 4F5F subi R20,255 ; offset = 1
0038 5F4F sbci R21,255
003A L15:
003A .dbline 40
003A 4617 cp R20,R22
003C 5707 cpc R21,R23
003E D0F3 brlo L12
0040 .dbline -2
0040 L11:
0040 0E940000 xcall pop_gset2
0044 .dbline 0 ; func end
0044 0895 ret
0046 .dbsym r i 20 i
0046 .dbsym r n 22 i
0046 .dbend
0046 .dbfunc e Uart_Read_Data _Uart_Read_Data fc
.even
0046 _Uart_Read_Data::
0046 .dbline -1
0046 .dbline 46
0046 .dbline 47
0046 5F9B sbis 0xb,7
0048 05C0 rjmp L17
004A .dbline 47
004A .dbline 47
004A 2CB0 in R2,0xc
004C 20920F00 sts _data,R2
0050 .dbline 47
0050 20920E00 sts _data_stake,R2
0054 .dbline 47
0054 L17:
0054 .dbline -2
0054 L16:
0054 .dbline 0 ; func end
0054 0895 ret
0056 .dbend
0056 .dbfunc e Uart_Write_Data _Uart_Write_Data fV
0056 ; r_data -> R16
.even
0056 _Uart_Write_Data::
0056 .dbline -1
0056 .dbline 53
0056 .dbline 54
0056 5E99 sbic 0xb,6
0058 01C0 rjmp L20
005A .dbline 54
005A 0CB9 out 0xc,R16
005C L20:
005C .dbline -2
005C L19:
005C .dbline 0 ; func end
005C 0895 ret
005E .dbsym r r_data 16 c
005E .dbend
005E .dbfunc e Room_Select _Room_Select fV
.even
005E _Room_Select::
005E 0E940000 xcall push_gset2
0062 .dbline -1
0062 .dbline 65
0062 ; Delay_1ms();
0062 ; }
0062 ;
0062 ; //查询接收
0062 ; unsigned char Uart_Read_Data(void)
0062 ; {
0062 ; if(UCSRA&0x80) {data=UDR; data_stake=data;}
0062 ; //else ;
0062 ; }
0062 ;
0062 ; //查询发送
0062 ; void Uart_Write_Data(unsigned char r_data)
0062 ; {
0062 ; if(!(UCSRA&0x40)) UDR=r_data;
0062 ; //else;
0062 ; }
0062 ;
0062 ; //*************************************************
0062 ; //照明控制系统
0062 ; //*************************************************
0062 ;
0062 ;
0062 ; //房间选择
0062 ; void Room_Select()
0062 ; {
0062 .dbline 66
0062 ; if(((data&0xc3)==0x01)|(data==0x00)) Room1_Handle(); //房间1处理
0062 80910F00 lds R24,_data
0066 837C andi R24,195
0068 8130 cpi R24,1
006A 19F4 brne L25
006C 61E0 ldi R22,1
006E 70E0 ldi R23,0
0070 02C0 xjmp L26
0072 L25:
0072 6627 clr R22
0074 7727 clr R23
0076 L26:
0076 20900F00 lds R2,_data
007A 2220 tst R2
007C 19F4 brne L27
007E 41E0 ldi R20,1
0080 50E0 ldi R21,0
0082 02C0 xjmp L28
0084 L27:
0084 4427 clr R20
0086 5527 clr R21
0088 L28:
0088 1B01 movw R2,R22
008A 242A or R2,R20
008C 352A or R3,R21
008E 2220 tst R2
0090 11F4 brne X0
0092 3320 tst R3
0094 11F0 breq L23
0096 X0:
0096 .dbline 66
0096 20D0 xcall _Room1_Handle
0098 1CC0 xjmp L24
009A L23:
009A .dbline 67
009A ; else if(((data&0xc3)==0x02)|((data&0xc3)==0x03)) Room2_Handle(); //房间2处理
009A 80910F00 lds R24,_data
009E 837C andi R24,195
00A0 8230 cpi R24,2
00A2 19F4 brne L31
00A4 61E0 ldi R22,1
00A6 70E0 ldi R23,0
00A8 02C0 xjmp L32
00AA L31:
00AA 6627 clr R22
00AC 7727 clr R23
00AE L32:
00AE 80910F00 lds R24,_data
00B2 837C andi R24,195
00B4 8330 cpi R24,3
00B6 19F4 brne L33
00B8 41E0 ldi R20,1
00BA 50E0 ldi R21,0
00BC 02C0 xjmp L34
00BE L33:
00BE 4427 clr R20
00C0 5527 clr R21
00C2 L34:
00C2 1B01 movw R2,R22
00C4 242A or R2,R20
00C6 352A or R3,R21
00C8 2220 tst R2
00CA 11F4 brne X1
00CC 3320 tst R3
00CE 09F0 breq L29
00D0 X1:
00D0 .dbline 67
00D0 7FD0 xcall _Room2_Handle
00D2 L29:
00D2 L24:
00D2 .dbline -2
00D2 L22:
00D2 0E940000 xcall pop_gset2
00D6 .dbline 0 ; func end
00D6 0895 ret
00D8 .dbend
00D8 .dbfunc e Room1_Handle _Room1_Handle fc
.even
00D8 _Room1_Handle::
00D8 .dbline -1
00D8 .dbline 76
00D8 ; //else ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -