LJMP SERIAL
***************************************
功能:中断服务程序
SERIAL:
PUSH ACC
PUSH DPH
PUSH DPL
PUSH B
PUSH PSW
SETB RS1 区2(10H-17H)
CLR RS0 区2工作
JBC RI,COMRXD
JBC TI,COMTXD
POPD:
CLR BUSOV_BZ 清3.5ms溢出标志
MOV BUS_DS,#BUS_V 置初值为7。7×0.5ms=3.5ms
SETB BUSEN_BZ 3.5MS允唯吵许计数
POPDT:
POP PSW
POP B
POP DPL
POP DPH
POP ACC
RETI
COMTXD: 发送子程序
SETB TI_BZ
SJMP POPDT
**************************通讯子程序************************
COMM:
SETB RS1
CLR RS0
JNB RXE_BZ,COMMRET 是否有接收完毕标志
CLR RXE_BZ
CLR DATAC_BZ
CLR TI_BZ
LCALL CHECKCRC 效验BCC,正确则置EEPROM读写标志
-----------CRC错误则发送错误响应
JNB CRCR_BZ,COMMRET BCC效验错误则退出不执行响应
CLR CRCR_BZ
-----------
MOV R1,#FUNC_R
MOV A,@R1
FUNC01:
CJNE A,#01H,FUNC03 读状态字,位
LCALL RDZT
JNB AORN_BZ,SNAK 若出错则统一进行异议响应
LCALL FMT01
LCALL SACKZT
JMP COMMRET
FUNC03:
CJNE A,#03H,FUNC04 读设定参数
LCALL RDEA 读取设定并转化为2进制
JNB AORN_BZ,SNAK 若出错则统一进行异明山扰议响应
LCALL FMT03 整理待发送数据(数据长度,CRC,要发送的字节总数等)
LCALL SACKRDE
JMP COMMRET
.........................................................................
.........................................................................
COMMRET:
CLR RS1
CLR RS0
RET
我从程序里截出来的,MODBUS的,我也不整激旦理了,你自己参考吧!
AT命令集的描述符号 * 表明该命令的设置可用AT&Wn命令存于两个用户方案中的一个
A/ 重执行命令
重执行前一AT命令行,主要用于连接时占线,无应答或号码错误。这一命令必须单独构成一命令行并由"/"字符结束,(<Enter> 不能用于结束命令)。
+++ 退出字符 缺省:+
切换调制解调器从在线状态到命令状态,而不会中断数据连接。可以通过改变S寄存器S2的值来改变这一字符。
AT=x 写入被选的S寄存器
这一命令将数值x写入当前被选的S寄存器,一个S寄存器可由ATSn命令选择,若 x 是一个数字,所有S 寄存器将返回 OK 响应。
AT? 读被选的S寄存器
这一命令读并且显示被选的S寄存器的内容。一个S寄存器可由ATSn命令选择。
ATA 应答
它必须是命令行中的最后一条指令。调制解调器在应答方式下继续执行连接程序。在与远端调制解调器交换载波后进入连接状态,如果在由寄存器S7规定的时间内(缺省值=50秒)没有检测到载波, 调制解调器将挂机。在连接过程中,通过DTE输入的任何一个字母都将中断这一命令。
ATBn* 选择ITU-T或Bell模式 缺省=0
ATB0 选择在1200和300bps速率下通讯的ITU-T V.22和V.21协议
ATB1 选择在1200和300bps速率下通讯的Bell 212A和103协议
ATCn 载波控制缺省=1
包含这一命令只是为了保证兼容性,执行号只是返回一结果码而没有其它作用。
ATC1 正常传输载波切换
ATDn 拨号
它必须是命令行中的最后一条指令, ATD命令使调制指掘解调器摘机后, 根据输入的参数拨号,以建立连接。
如果不带参数,调制解调器摘机后,不拨号进入发起方式。
使用标点可使命令更易读懂。圆括号,连字符和空格符会被忽略。拔号命令行中如果唯镇核出现了非法字符,则该字符及其后的内容将被忽略。调制解调器允许的拨号命令长度为36个字符。
参数:0-9 A B C D * # L P T R ! @ W , ^ S=n
0-9 DTMF 符号0到9
A-D DTMF 符号A,B,C和D。在一些国家中不使用这些符号
* "星"号(仅用于音频拨号)
# "#"号(仅用于音频拨号)
J 为本次呼叫执行在可提供的最高速率下的MNP10链路协商(可选)
K 使本次呼叫MNP10链路协商期间电源电平可调(可选)
L 重拨上一次拨过的号码
P 脉冲拨号
T 双音频拨号
R 逆叫方式。允许调制解调器使用应答方式呼叫只能作为发起使用的调制解调 器, 必须作为命令行中的最后一个字符输入。
! 使调制解调器按照S29中规定的值挂机一段时间再摘机。
@ 使旅铅调制解调器等待5秒钟的无声回答
w 按照寄存器S7中规定的时间,在拨号前等待拨号音。
, 在拨号过程中,按照寄存器S8中规定的时间,暂停
拨号后返回命令状态
^ 打开呼叫音
() 被忽视,用于格式化号码串
- 被忽视,用于格式化号码串
<space> 被忽视,用于格式化号码串
S=n 用AT&Zn 命令存在地址n处的号码拨号
ATE* 命令回应 缺省:1
ATE0 关闭命令回应
ATE1 打开 命令回应
ATHn 摘挂机控制 缺省:0
ATH0 使调制解调器挂机
ATH1 当调制解调器处于挂机状态,使调制解调器摘机,返回响 OK,等待进一步的命令。
ATIn 识别
I0 报告产品代码
I1 报告ROM中预先计算的校验和
I2 计算校验和并与ROM中的校验和比较,返回"OK"或"ERROR"结果码
I3 报告固件修正
I4 报告OEM定义的识别串
I5 报告国家代码参数
I6 报告固件修正
I7 报告调制解调器数据泵类型
ATLn* 扬声器音量 缺省:2
ATL0 扬声器低音量
ATL1 扬声器低音量
ATL2 扬声器中音量
ATL3 扬声器高音量
ATMn* 扬声器控制 缺省:1
ATM0 关闭扬声器
ATM1 扬声器在呼叫建立握手阶段打开至检测到来自于远端调制解调器的载波后关闭
ATM2 扬声器持续开
ATM3 扬声器在应答期间打开。当检测到来自于远端的调制解调器的载波和拨号时关闭
ATNn* 调制握手 缺省:1
ATN0 要求调制解调器S37选择连接速率,若S37=0,则连接速率必须与发出的上一条AT命令的速率相匹配。如果所选择的速率可用不止一个通讯标准实现(如Bell212A或ITU-T V.22 速率在 1200bps)调制解调器同时参考ATB 命令选择。
ATN1 允许时使用双方调制解调器都支持的任一速率握手,使能够自动检测。在这一方式下,ATB命令被忽视,调制解调器只用ITU-T方式连接。
ATOn 进入数据在现状态 缺省:0
ATO0 使调制解调器从命令在现状态直接返回数据在线状态,不经过自动均衡。
ATO1 使调制解调器从命令在现状态返回数据在状态,经过自动均衡。
ATP* 设脉冲拨号为缺省
ATQn* 结果码显示 缺省:0
ATQ0 调制解调器向DTE发送结果码
ATQ1 禁止调制解调器向DTE发送结果码
参阅调制解调器结果码一节的详细说明
ATSn 设S寄存器n为缺省寄存器
ATSn? 读S寄存器
读S寄存器中的内容,所有的S寄存器都可以读
ATSn=x 写入S寄存器
将 x值写入指定的S寄存器n
ATT* 设音频拔号为缺省
ATVn* 结束码类型 (消息控制) 缺省:1
ATV0 发送短型 (数字型) 结果码
ATV1 发送长型 (字符型) 结果码
ATWn* 协商进程报告 缺省:0
ATW0 不报告纠错呼叫进程
ATW1 报告纠错呼叫进程
ATW2 不报告纠错呼叫进程,CONNECT xxxx指示DCE速率。
ATXn* 扩展结果码 缺省:4
ATX0 调制解调器忽视拨号音和忙音。当由盲拨建立连接时,发送CONNECT信息。
ATX1 调制解调器忽视拨号音和忙音。当由盲拨建立连接时,CONNECT XXXX 反映的是比特速率
ATX2 调制解调器忽视忙音,但在拨号前等待拨号音,如果5秒钟内检测不到拨号音,则发送NO DIAL TONE 信息,连接建立后 发送 CONNECT xxxx反映比特速率。
ATX3 调制解调器忽视拨号音,若检测到忙音,发送BUSY信息,当由盲拨建立起连接时, CONNECT XXXX 反映的是比特速率。
ATX4 如果5秒钟内检测不到拨号音,发送NO DIAL TONE 讯息,检测到忙音, 发送BUSY信息。连接建立后发送CONNECT XXXX 反映比特速率。
分类: 教育/科学 >>科学技术 >>工程技术科学解析拍搜:
AT指令在当代手机通讯中起着重要的作用,能够通过AT指令控制手机的许多行为,包括拨叫号码、按键控制、传真、GPRS等
AT指令用法
1、 测试命令(Test Command)
在AT指令后面加上“=?”即构成测试命令。例如“AT+CSCS=?”会列举出所有支持的字符集。
2、 读取命令(Read Command)
在AT指令后面加上“?”即构成读取命令。例如“AT+CSCS?”会列举出当前设置。团纤
3、 执行命令(Execute Command)一般而言在AT指令后加上“=”及命令参数即可。有些命令例如袭或历AT+CMGR命令没有参数,直接就可以执行。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)