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

📄 gsb.lis

📁 单片机控制GSM22来工作
💻 LIS
📖 第 1 页 / 共 5 页
字号:
                        .module gsb.c
                        .area text(rom, con, rel)
 0000                   .dbfile E:\单片机\AVR程序\GSM_M22/12864.h
 0000                   .dbfunc e delay_1us _delay_1us fV
                        .even
 0000           _delay_1us::
 0000                   .dbline -1
 0000                   .dbline 30
 0000           ; //包含所需头文件
 0000           ; #include <ioM16v.h>
 0000           ; #include <macros.h>
 0000           ; 
 0000           ; 
 0000           ; /*------宏定义------*/
 0000           ; 
 0000           ; 
 0000           ; 
 0000           ; 
 0000           ; #include "12864.h"
 0000           ; #define Rcv_cap 100        //缓冲内容不能超过200个,搜索时不会先前搜
 0000           ; 
 0000           ; const uchar L[4] = {0x80,0x90,0x88,0x98};
 0000           ; uchar Rcv[Rcv_cap+1] = "ab";      //若缓冲足够变大,要改动程序
 0000           ; //const uchar AT[] = "AT\r";
 0000           ; //const uchar Settxt[] = "AT+CMGF=1\r";
 0000           ; uchar Sendtxt[] = "AT+CMGS=\"15986929180\"\r";
 0000           ; uchar Content[] = "How are you?\x1a";
 0000           ; uchar Phone[20] = "";         //11+4+4+1
 0000           ; uchar CPBW[35] = "AT+CPBW=1,\"";
 0000           ; uchar i_Rcv = 0;
 0000           ; uchar flagend = 0;
 0000           ; /*uchar key;
 0000           ; uchar pbefore = 0;
 0000           ; uchar pnext;*/
 0000           ;  uchar Stc1[] = "GSM 发信息中....";
 0000           ;  /*uchar Stc2[] = "电话簿:";
 0000           ;  uchar Stc3[] = "1.发送短信";
 0000           ;  uchar Stc4[] = "2.打电话";*/
 0000                   .dbline 31
 0000           ; 
 0000 0000              nop
 0002                   .dbline -2
 0002           L1:
 0002                   .dbline 0 ; func end
 0002 0895              ret
 0004                   .dbend
 0004                   .dbfunc e delay_nus _delay_nus fV
 0004           ;              i -> R20,R21
 0004           ;              n -> R22,R23
                        .even
 0004           _delay_nus::
 0004 0E940000          xcall push_gset2
 0008 B801              movw R22,R16
 000A                   .dbline -1
 000A                   .dbline 34
 000A           ;  
 000A           ;  
 000A           ; //端口初始化
 000A                   .dbline 35
 000A           ; void port_init(void)
 000A 4427              clr R20
 000C 5527              clr R21
 000E                   .dbline 36
 000E           ; {
 000E 03C0              xjmp L6
 0010           L3:
 0010                   .dbline 37
 0010 F7DF              xcall _delay_1us
 0012           L4:
 0012                   .dbline 36
 0012 4F5F              subi R20,255  ; offset = 1
 0014 5F4F              sbci R21,255
 0016           L6:
 0016                   .dbline 36
 0016 4617              cp R20,R22
 0018 5707              cpc R21,R23
 001A D0F3              brlo L3
 001C                   .dbline -2
 001C           L2:
 001C 0E940000          xcall pop_gset2
 0020                   .dbline 0 ; func end
 0020 0895              ret
 0022                   .dbsym r i 20 i
 0022                   .dbsym r n 22 i
 0022                   .dbend
 0022                   .dbfunc e delay_1ms _delay_1ms fV
 0022           ;              i -> R16,R17
                        .even
 0022           _delay_1ms::
 0022                   .dbline -1
 0022                   .dbline 40
 0022           ;  PORTA = 0x0f;
 0022           ;  DDRA  = 0x0f;
 0022           ;  PORTB = 0x00;
 0022           ;  DDRB  = 0x00;
 0022                   .dbline 42
 0022 0027              clr R16
 0024 1127              clr R17
 0026 02C0              xjmp L11
 0028           L8:
 0028                   .dbline 42
 0028           L9:
 0028                   .dbline 42
 0028 0F5F              subi R16,255  ; offset = 1
 002A 1F4F              sbci R17,255
 002C           L11:
 002C                   .dbline 42
 002C           ;  PORTC = 0x00;
 002C           ;  DDRC  = 0x00;
 002C 0437              cpi R16,116
 002E E4E0              ldi R30,4
 0030 1E07              cpc R17,R30
 0032 D0F3              brlo L8
 0034                   .dbline -2
 0034           L7:
 0034                   .dbline 0 ; func end
 0034 0895              ret
 0036                   .dbsym r i 16 i
 0036                   .dbend
 0036                   .dbfunc e delay_nms _delay_nms fV
 0036           ;              i -> R20,R21
 0036           ;              n -> R22,R23
                        .even
 0036           _delay_nms::
 0036 0E940000          xcall push_gset2
 003A B801              movw R22,R16
 003C                   .dbline -1
 003C                   .dbline 45
 003C           ;  PORTD = 0x00;
 003C           ;  DDRD  = 0x00;
 003C           ; }
 003C                   .dbline 46
 003C           ; /* 
 003C 4427              clr R20
 003E 5527              clr R21
 0040                   .dbline 47
 0040           ; //串口通信初始化
 0040 03C0              xjmp L16
 0042           L13:
 0042                   .dbline 48
 0042 EFDF              xcall _delay_1ms
 0044           L14:
 0044                   .dbline 47
 0044 4F5F              subi R20,255  ; offset = 1
 0046 5F4F              sbci R21,255
 0048           L16:
 0048                   .dbline 47
 0048 4617              cp R20,R22
 004A 5707              cpc R21,R23
 004C D0F3              brlo L13
 004E                   .dbline -2
 004E           L12:
 004E 0E940000          xcall pop_gset2
 0052                   .dbline 0 ; func end
 0052 0895              ret
 0054                   .dbsym r i 20 i
 0054                   .dbsym r n 22 i
 0054                   .dbend
 0054                   .dbfunc e send_8bit _send_8bit fV
 0054           ;              i -> R20
 0054           ;             ch -> R22
                        .even
 0054           _send_8bit::
 0054 0E940000          xcall push_gset2
 0058 602F              mov R22,R16
 005A                   .dbline -1
 005A                   .dbline 58
 005A           ; void usart_init(void)//9600
 005A           ; {
 005A           ;  UCSRB = 0x00;//禁止中断
 005A           ;  UCSRA = 0x00;
 005A           ;  UCSRC = BIT(URSEL) | 0x06;
 005A           ;  UBRRL = 0x33;
 005A           ;  UBRRH = 0x00;
 005A           ;  UCSRB = 0x98;
 005A           ; }*/
 005A           ;  
 005A           ; //串口通信初始化
 005A                   .dbline 60
 005A           ; void usart_init(void)    //115200
 005A           ; {
 005A 4427              clr R20
 005C 13C0              xjmp L21
 005E           L18:
 005E                   .dbline 61
 005E           ;  UCSRB = 0x00;//禁止中断
 005E                   .dbline 61
 005E DB9A              sbi 0x1b,3
 0060 01E0              ldi R16,1
 0062 10E0              ldi R17,0
 0064 CFDF              xcall _delay_nus
 0066                   .dbline 62
 0066           ;  UCSRA = 0x00;
 0066 062F              mov R16,R22
 0068 142F              mov R17,R20
 006A 0E940000          xcall lsl8
 006E 802F              mov R24,R16
 0070 8078              andi R24,128
 0072 11F0              breq L22
 0074                   .dbline 62
 0074 DA9A              sbi 0x1b,2
 0076 01C0              xjmp L23
 0078           L22:
 0078                   .dbline 63
 0078           ;  UCSRC = BIT(URSEL) | 0x06;
 0078 DA98              cbi 0x1b,2
 007A           L23:
 007A                   .dbline 64
 007A DB98              cbi 0x1b,3
 007C 01E0              ldi R16,1
 007E 10E0              ldi R17,0
 0080 C1DF              xcall _delay_nus
 0082                   .dbline 65
 0082           L19:
 0082                   .dbline 60
 0082 4395              inc R20
 0084           L21:
 0084                   .dbline 60
 0084 4830              cpi R20,8
 0086 58F3              brlo L18
 0088                   .dbline -2
 0088           L17:
 0088 0E940000          xcall pop_gset2
 008C                   .dbline 0 ; func end
 008C 0895              ret
 008E                   .dbsym r i 20 c
 008E                   .dbsym r ch 22 c
 008E                   .dbend
 008E                   .dbfunc e WriteData _WriteData fV
 008E           ;           data -> R20
                        .even
 008E           _WriteData::
 008E 0E940000          xcall push_gset1
 0092 402F              mov R20,R16
 0094                   .dbline -1
 0094                   .dbline 69
 0094           ;  UBRRL = 0x03;
 0094           ;  UBRRH = 0x00;
 0094           ;  UCSRB = 0x98;
 0094           ; }
 0094           ; void init_devices(void)
 0094           ; {
 0094                   .dbline 70
 0094           ;  CLI(); //禁止所有中断
 0094 D99A              sbi 0x1b,1
 0096                   .dbline 71
 0096           ;  //cpu_init(); 
 0096 0AEF              ldi R16,250
 0098 DDDF              xcall _send_8bit
 009A                   .dbline 72
 009A           ;   //delay_nms(200); 
 009A 042F              mov R16,R20
 009C 007F              andi R16,240
 009E DADF              xcall _send_8bit
 00A0                   .dbline 73
 00A0           ;  //lcm_init(); 
 00A0 042F              mov R16,R20
 00A2 0F70              andi R16,#0x0F
 00A4 0295              swap R16
 00A6 D6DF              xcall _send_8bit
 00A8                   .dbline 74
 00A8           ;  port_init();
 00A8 D998              cbi 0x1b,1
 00AA                   .dbline -2
 00AA           L24:
 00AA 0E940000          xcall pop_gset1
 00AE                   .dbline 0 ; func end
 00AE 0895              ret
 00B0                   .dbsym r data 20 c
 00B0                   .dbend
 00B0                   .dbfunc e WriteCommand _WriteCommand fV
 00B0           ;        command -> R20
                        .even
 00B0           _WriteCommand::
 00B0 0E940000          xcall push_gset1
 00B4 402F              mov R20,R16
 00B6                   .dbline -1
 00B6                   .dbline 78
 00B6           ;  lcd12864_init(); 
 00B6           ;  usart_init();
 00B6           ;  SEI();//开全局中断
 00B6           ; }
 00B6                   .dbline 79
 00B6           ; 
 00B6 D99A              sbi 0x1b,1
 00B8                   .dbline 80
 00B8           ; //串行接收结束中断服务程序
 00B8 08EF              ldi R16,248
 00BA CCDF              xcall _send_8bit
 00BC                   .dbline 81
 00BC           ; #pragma interrupt_handler usart_rx_isr:12
 00BC 042F              mov R16,R20
 00BE 007F              andi R16,240
 00C0 C9DF              xcall _send_8bit
 00C2                   .dbline 82
 00C2           ; void usart_rx_isr(void)  
 00C2 042F              mov R16,R20
 00C4 0F70              andi R16,#0x0F
 00C6 0295              swap R16
 00C8 C5DF              xcall _send_8bit
 00CA                   .dbline 83
 00CA           ; { 
 00CA D998              cbi 0x1b,1
 00CC                   .dbline -2
 00CC           L25:
 00CC 0E940000          xcall pop_gset1
 00D0                   .dbline 0 ; func end
 00D0 0895              ret
 00D2                   .dbsym r command 20 c
 00D2                   .dbend
 00D2                   .dbfunc e guangbiao _guangbiao fV
 00D2           ;              x -> R20
                        .even
 00D2           _guangbiao::
 00D2 0E940000          xcall push_gset1
 00D6 402F              mov R20,R16
 00D8                   .dbline -1
 00D8                   .dbline 87
 00D8           ;       uchar temp;
 00D8           ;       temp = UDR;
 00D8           ;    if(i_Rcv>(Rcv_cap-1))
 00D8           ;    {
 00D8                   .dbline 88
 00D8           ;     i_Rcv=0;   
 00D8 4130              cpi R20,1
 00DA 19F4              brne L27
 00DC                   .dbline 88
 00DC 0FE0              ldi R16,15
 00DE E8DF              xcall _WriteCommand
 00E0 02C0              xjmp L28
 00E2           L27:
 00E2                   .dbline 89
 00E2 0CE0              ldi R16,12
 00E4 E5DF              xcall _WriteCommand
 00E6           L28:
 00E6                   .dbline -2
 00E6           L26:
 00E6 0E940000          xcall pop_gset1
 00EA                   .dbline 0 ; func end
 00EA 0895              ret
 00EC                   .dbsym r x 20 c
 00EC                   .dbend
 00EC                   .dbfunc e Set_display_Adress _Set_display_Adress fV
 00EC           ;        address -> R20
 00EC           ;              x -> R22
 00EC           ;              y -> R20
                        .even
 00EC           _Set_display_Adress::
 00EC 0E940000          xcall push_gset2
 00F0 622F              mov R22,R18
 00F2 402F              mov R20,R16
 00F4                   .dbline -1
 00F4                   .dbline 94

⌨️ 快捷键说明

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