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

📄 gsm_main.s

📁 实现机于通讯芯片的电话接听 拨出 以及来电振领提示
💻 S
📖 第 1 页 / 共 2 页
字号:
	.module gsm_main.c
	.area data(ram, con, rel)
_cmd::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.dbsym e cmd _cmd c
_cmd_num::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.dbsym e cmd_num _cmd_num c
_flag::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.dbsym e flag _flag c
_j::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.dbsym e j _j c
_xk::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.dbsym e xk _xk c
_req_flag::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.dbsym e req_flag _req_flag c
_start_flag::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.dbsym e start_flag _start_flag c
_vision_flag::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.dbsym e vision_flag _vision_flag c
_cmd_flag::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.dbsym e cmd_flag _cmd_flag c
_hand::
	.blkb 2
	.area idata
	.byte 15,52
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.blkb 2
	.area idata
	.byte 255,0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.dbsym e hand _hand A[14:14]c
_ring::
	.blkb 2
	.area idata
	.byte 1,54
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.blkb 2
	.area idata
	.byte 255,0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.dbsym e ring _ring A[14:14]c
_num::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.dbsym e num _num c
_num_end_flag::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.dbsym e num_end_flag _num_end_flag c
_hkon::
	.blkb 2
	.area idata
	.byte 1,49
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.blkb 2
	.area idata
	.byte 255,0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.dbsym e hkon _hkon A[14:14]c
_hkoff::
	.blkb 2
	.area idata
	.byte 1,48
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.blkb 2
	.area idata
	.byte 255,0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.dbsym e hkoff _hkoff A[14:14]c
_mton::
	.blkb 2
	.area idata
	.byte 1,'D
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.blkb 2
	.area idata
	.byte 255,0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.dbsym e mton _mton A[14:14]c
_mtoff::
	.blkb 2
	.area idata
	.byte 1,'C
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.blkb 2
	.area idata
	.byte 255,0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.dbsym e mtoff _mtoff A[14:14]c
_hookon::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.dbsym e hookon _hookon c
_hookoff::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.dbsym e hookoff _hookoff c
_muteon::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.dbsym e muteon _muteon c
_muteoff::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.dbsym e muteoff _muteoff c
	.area text(rom, con, rel)
	.dbfile C:\DOCUME~1\Rooger\桌面\GSM_PHONE\gsm_main.c
	.dbfunc e Delay _Delay fV
;              i -> R20,R21
;            num -> R16,R17
	.even
_Delay::
	rcall push_gset1
	.dbline -1
	.dbline 27
; #include <iom8v.h>
; #include <macros.h>
; #include "define.h"
; #include "iic.h"
; /***********************define iic paramer***********************/
; uchar buf[18];
; uchar cmd=0;//i2c数据缓存
; uchar cmd_num=0;//i2c数据计数
; uchar flag=0; //标记
; uchar j=0;  //i2c发送数据记数
; uchar *data;//i2c发送数据缓存
; uchar xk=0;
; uchar req_flag=0,start_flag=0,vision_flag=0,cmd_flag=0;//定义来自pc端不同数据的标记
; uchar hand[]={0x0f,0x34,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
; uchar ring[]={0x01,0x36,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
; uchar telnum[14];//拨出的电话号码
; uchar num=0;//电话号码长度
; uchar num_end_flag=0;//电话号码结束标记
; uchar hkon[]={0x01,0x31,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
; uchar hkoff[]={0x01,0x30,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
; uchar mton[]={0x01,0x44,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
; uchar mtoff[]={0x01,0x43,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
; uchar idnum[14];
; uchar hookon=0,hookoff=0,muteon=0,muteoff=0;
; /****************************************************************/
; void Delay(uint num )
; {	 
	.dbline 29
; 	 uint i;
;  	 for(;num>0;num--)
	rjmp L5
L2:
	.dbline 30
; 	 {
	.dbline 31
; 	   i=600;
	ldi R20,600
	ldi R21,2
	rjmp L7
L6:
	.dbline 33
	.dbline 34
	subi R20,1
	sbci R21,0
	.dbline 35
L7:
	.dbline 32
	cpi R20,0
	cpc R20,R21
	brne L6
X0:
	.dbline 36
L3:
	.dbline 29
	subi R16,1
	sbci R17,0
L5:
	.dbline 29
	cpi R16,0
	cpc R16,R17
	brne L2
X1:
	.dbline -2
L1:
	rcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r i 20 i
	.dbsym r num 16 i
	.dbend
	.dbfunc e main _main fV
	.even
_main::
	.dbline -1
	.dbline 39
; 	   while(i)
; 	   {
; 	     i--;
; 	   }
; 	 }
; }
; void main()
; {
	.dbline 40
;    DDRC |=0x38; //设置SDA SCL MUTE即port3 portc4 portc5为输出
	in R24,0x14
	ori R24,56
	out 0x14,R24
	.dbline 41
;    DDRB |=0x20;//设置pwr 即portb5为输出
	sbi 0x17,5
	.dbline 42
;    DDRD |=0x04;//设置gsm_rst即portd2为输出
	sbi 0x11,2
	.dbline 45
;    
;    /*********IIC初始化******************/
;    TWBR=0;
	clr R2
	out 0x0,R2
	.dbline 46
;    TWSR=00;
	out 0x1,R2
	.dbline 47
;    TWAR=0x20;
	ldi R24,32
	out 0x2,R24
	.dbline 48
;    Twi_ACK();
	ldi R24,197
	out 0x36,R24
	.dbline 51
;    /***********系统功能初始化***************/
; 	 
;    PWRON;
	in R24,0x18
	andi R24,223
	out 0x18,R24
	.dbline 52
;    PORTD |=0x04;
	sbi 0x12,2
	.dbline 53
;    Delay(500);
	ldi R16,500
	ldi R17,1
	rcall _Delay
	.dbline 54
;    PORTD &=0xfb;
	in R24,0x12
	andi R24,251
	out 0x12,R24
	.dbline 56
;    
;    USART_Init();
	rcall _USART_Init
	.dbline 57
;    SREG |= 0x80;
	bset 7
	.dbline 58
;    Delay(1000);
	ldi R16,1000
	ldi R17,3
	rcall _Delay
	.dbline 59
;    Usart_Command("AT",2);
	ldi R18,2
	ldi R19,0
	ldi R16,<L10
	ldi R17,>L10
	rcall _Usart_Command
	.dbline 60
;    Usart_Tx(0x0d);
	ldi R16,13
	ldi R17,0
	rcall _Usart_Tx
	.dbline 62
;   // Delay(30000);
;    Usart_Command("AT+CLIP=1",9); //设置来电显示
	ldi R18,9
	ldi R19,0
	ldi R16,<L11
	ldi R17,>L11
	rcall _Usart_Command
	.dbline 63
;    Usart_Tx(0x0d);
	ldi R16,13
	ldi R17,0
	rcall _Usart_Tx
	rjmp L13
L12:
	.dbline 65
;    while(1)
;    {
	.dbline 66
;    	    if(start_flag) //如果接受到的是0x0f
	lds R2,_start_flag
	tst R2
	breq L15
	.dbline 67
; 		{
	.dbline 68
; 			start_flag=0;
	clr R2
	sts _start_flag,R2
	.dbline 69

⌨️ 快捷键说明

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