问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

使用单片机实现GPRS通信所需的程序

发布网友 发布时间:2022-05-12 20:43

我来回答

5个回答

热心网友 时间:2023-11-13 01:41

我刚好这段时间做这个,希望这个对你有所帮助
;RAM定义
BCOUNT DATA 07FH
TIMER DATA 07EH
TIMER1 DATA 07DH
TIMER2 DATA 07CH
HOURS DATA 07BH
HOURG DATA 07AH
MINUS DATA 079H
MINUG DATA 078H
SECOS DATA 077H
SECOG DATA 076H
SECO DATA 075H
MINU DATA 074H
HOUR DATA 073H
TEN DATA 072H
FLAG DATA 071H
DIN DATA 020H
DOUT DATA 021H
SLA DATA 070H
SUBA DATA 00H
ACK BIT 00H
; I/O定义
KEY BIT P3.2
CS BIT P1.2
CLK BIT P1.3
DAT BIT P1.4
SCL BIT P1.0
SDA BIT P1.1
MTD EQU 04AH
MRD EQU 058H
MRD1 EQU 063H
ORG 0000H
AJMP START
ORG 0003H ;外部中断0中断服务子程序入口地址
AJMP INTL
ORG 0013H ;外部中断1中断服务子程序入口地址
AJMP INTY
ORG 0100H
START: MOV SP,#30H
MOV P1,#11110011B ;initial I/O
MOV SLA,#0A0H ;FM24C16器件从地址
MOV SUBA,#00H ;器件子地址
CLR P2.1
MOV TMOD,#20H ;串行口初始化
MOV TH1,#0FDH
MOV TL1,#0FDH
MOV PCON,#00H
MOV SCON,#40H
SETB TR1
SETB IT0 ;INT0为1,边沿触发方式
SETB IT1 ;INT1为1,边沿触发方式
SETB EX0
SETB EX1
SETB PX1 ;INT1为高优先级
SETB EA ;开总中断
MAIN: …
AJMP MAIN ;主程序
INTL: …
RETI ;外部中断0中断服务子程序
INTY: …
RETI ;外部中断1中断服务子程序
END

2. HD7279键盘显示子程序

INTL: MOV DOUT,#15H ;读键盘指令
ACALL SEND
ACALL RECV ;读键盘数据
SETB CS
MOV A,DIN
MOV B,#10 ;HEX change BCD code
DIV AB
MOV DOUT,#10100001B
ACALL SEND
MOV DOUT,#11001000B
ACALL SEND
MOV DOUT,B ;send 个位 to HD7279A
ACALL SEND
SETB CS
RETI
SEND: MOV BCOUNT,#8 ;set bit counter=8
CLR CS ;CS for lv
ACALL LDELAY ;long delay
SLOOP: MOV C,DOUT.7 ;output 1 bit
MOV DAT,C
SETB CLK ;set CLK for hv
MOV A,DOUT ;the data that will send left move
RL A
MOV DOUT,A
ACALL SDELAY ;short delay
CLR CLK ;set CLK for lv
ACALL SDELAY
DJNZ BCOUNT,SLOOP ;check 8 bit send over or else
CLR DAT ;send over, return
RET
RECV: MOV BCOUNT,#8
SETB DAT ;set (DATA) hv(input state)
ACALL LDELAY
RLOOP: SETB CLK
ACALL SDELAY
MOV A,DIN
RL A
MOV DIN,A
MOV C,DAT
MOV DIN.0,C
CLR CLK
ACALL SDELAY
DJNZ BCOUNT,RLOOP
RET
LDELAY: MOV TIMER,#25 ;delay 50uS
DELOOP: DJNZ TIMER,DELOOP
RET
SDELAY: MOV TIMER,#4 ;delay 8uS
SHOTLOP:DJNZ TIMER,SHOTLOP
RET

3. FM24C16读写子程序

START: SETB SDA
NOP
SETB SCL ;起始条件建立时间大于4.7us
ACALL DELAY
CLR SDA
ACALL DELAY
CLR SCL ;钳住总线,准备发数据
NOP
RET
STOP: CLR SDA
NOP
SETB SCL ;发送结束条件的时钟信号
ACALL DELAY
SETB SDA ;结束总线
ACALL DELAY
RET
MACK: CLR SDA ;将SDA置0
NOP
NOP
SETB SCL
ACALL DELAY
CLR SCL
NOP
NOP
RET
MNACK: SETB SDA ;将SDA置1
NOP
NOP
SETB SCL
ACALL DELAY
CLR SCL
NOP
NOP
RET
CACK: SETB SDA
NOP
NOP
SETB SCL
CLR ACK
NOP
NOP
MOV C,SDA
JC CEND
SETB ACK ;判断应答位
CEND: NOP
CLR SCL
NOP
RET
WRBYTE: MOV R0,#08H
WLP: RLC A ;取数据位
JC WR1
SJMP WR0 ;判断数据位
WLP1: DJNZ R0,WLP
NOP
RET
WR1: SETB SDA ;发送1
NOP
SETB SCL
ACALL DELAY
CLR SCL
SJMP WLP1
WR0: CLR SDA ;发送0
NOP
SETB SCL
ACALL DELAY
CLR SCL
SJMP WLP1
RDBYTE: MOV R0,#08H
RLP: SETB SDA
NOP
SETB SCL ;时钟线为高,接收数据位
NOP
NOP
MOV C,SDA ;读取数据位
MOV A,R2
CLR SCL ;将SCL拉低,时间大于4.7us
RLC A ;进行数据位的处理
MOV R2,A
NOP
NOP
NOP
DJNZ R0,RLP ;未够8位,再来一次
RET
IWRNBYTE: MOV A,#11
MOV R3,A
LCALL START ;起动总线
MOV A,SLA
LCALL WRBYTE ;发送器件从地址
LCALL CACK
JNB ACK,RETWRN ;无应答则退出
MOV A,SUBA ;指定子地址
LCALL WRBYTE
LCALL CACK
MOV R1,#MTD
WRDA: MOV A,@R1
LCALL WRBYTE ;开始写入数据
LCALL CACK
JNB ACK,IWRNBYTE
INC R1
DJNZ R3,WRDA ;判断写完没有
RETWRN: LCALL STOP
RET
IRDNBYTE: MOV R3,#11
LCALL START
MOV A,SLA
LCALL WRBYTE ;发送器件从地址
LCALL CACK
JNB ACK,RETRDN
MOV A,SUBA ;指定子地址
LCALL WRBYTE
LCALL CACK
LCALL START ;重新起动总线
MOV A,SLA
INC A ;准备进行读*作
LCALL WRBYTE
LCALL CACK
JNB ACK,IRDNBYTE
MOV R1,#MRD
RDN1: LCALL RDBYTE ;读*作开始
MOV @R1,A
DJNZ R3,SACK
LCALL MNACK ;最后一字节发非应答位
RETRDN: LCALL STOP ;并结束总线
RET
SACK: LCALL MACK
INC R1
SJMP RDN1
DELAY: NOP
NOP
NOP
NOP
NOP
RET

4. DS12887应用子程序

DS12887: CLR P2.7
INTTIM:MOV DPTR,#7F0BH
MOV A,#0A2H ;选BCD码,24小时制
MOVX @DPTR,A
MOV DPTR,#7F04H ;HOUR单元地址
MOV A,#07H
MOVX @DPTR,A
inc dptr
mov a,#08h
movx @dptr,a
MOV DPTR,#7F02H ;MINUTE单元地址
MOV A,#59H
MOVX @DPTR,A
inc dptr
mov a,#00h
movx @dptr,a
MOV DPTR,#7F00H ;SEC0ND单元地址
MOV A,#58H
MOVX @DPTR,A
inc dptr
mov a,#00h
movx @dptr,a
MOV DPTR,#7F0AH ;寄存器A地址
MOV A,#20H ;############
MOVX @DPTR,A
MOV DPTR,#7F0CH ;寄存器C地址
MOVX A,@DPTR
INC DPTR
MOVX A,@DPTR ;寄存器D地址
MOV DPTR,#7F0BH ; 寄存器B地址
MOV A,#22H
MOVX @DPTR,A
MOV IE,#84H
RET

热心网友 时间:2023-11-13 01:41

BYTE GPRSDial (void) {

signed char delayCount = 80;

transmit ("ATV0"); // 要求返回数字表示的回答

if (!Waitfor ("0", 30)) { // 等待 OK 回答

return -1;

}

DTR_ON;

transmit ("ATD*99***1#"); // 拨GGSN的号码

GPRSBuffFlush (); // 清空buffer

// 等待回答

while ((!GPRSBuffNotEmpty()) && (--delayCount > 0)) {

Delay (250);

}

热心网友 时间:2023-11-13 01:42

单片机的就用模块内部的协议。 看下AT指令 TCP/IP指令那块.

热心网友 时间:2023-11-13 01:42

万方数据中有相关的论文,我下载过。

热心网友 时间:2023-11-13 01:43

你不是都写出来了吗,剩下的就是按照AT命令写程序了啊。
难道还让别人帮你写啊
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
我爱杜大宝,藏头诗 大鹏忽起遮白日的下一句大鹏忽起遮白日的下一句是什么 盈余公积转增注册资本应交税但是逃税会怎么处罚? 黄茶的功效与作用禁忌 黄茶的功效和禁忌分别是什么 我是win7系统,装完VMware workstation8.0后,运行汉化包,结果就出现下面... 在win7 64位下安装vmware workstation 8.0遇到了错误 谁有win7 64位的可以安装的 VMware Workstation 8.02 或者可以用的激活... 怎样才能把家里的网络切换到外网呢?? ...有以下转化关系,部分产物未标出.试回答:(1)写出下列物质的化学式X... 霉变的食物霉变 霉豆子,霉豆腐是,霉变食物吗? FM24c08的电子元件作用是什么? 哪些食物是发霉后,哪怕是一点点发霉了就不能吃了的。 请罗列一下 在线求论文摘要翻译,急急急急~~~啊 proteus中24C04A是什么? 霉变的食物 GOSH成员遭到*,GAI也保不住这位好兄弟,你知道发生了什么吗? gai是什么学历 GAI私信女粉丝聊天记录曝光,是否有人在背后暗箱操作? gai的学历并不低是真的吗? 男孩子戴转运珠好吗. 男生带黄金转运珠好么??? 转运珠适合哪些人?男女都可以佩戴吗? 男生戴转运珠好吗 转运珠戒指男生可以戴吗?是要别人送呢还是可以自己买? 男人戴转运珠可以吗 2┐┌63*50*0.5表示什么意思,钢结构图纸出现这种表示。 这个是转运珠吗 男生戴可以吗? asset liabilities ower's equity revenue expenses income balancesheet 什么意思 详细说明加举例子 STM32f103单片机把外围FM24C64程序下电脑里,再通电单片机就不运行了。请问什么原因? 24C04怎么用单片机程序存数据 华为p30和OPPO reno十倍变焦哪个好? 吉林网上炒股平台网站是哪个? 吉林正规网上炒股平台有几家介绍? 女人贫血气虚吃什么好 到哪找吉林网上模拟炒股平台的网站? 吉林省金融办是属于政府部门吗? 吉林省融惠财智金融信息服务有限公司怎么样? 吉林省有哪些金融机构 吉林炒股开户网站有没有? 梦见男友和别人结婚,猫狗,孩子。 吉林省金融办公室特殊职位是干什么的?是公务员还是事业编?求解答,谢谢! 进保险公司上班买保险有折扣吗 怎样下载手机游戏?在哪里能下载到? 吉林大学金融专硕复试名单附件在哪里 真空包装的豆腐皮怎么撕开? iphone6s ios9.1升级好么 iphone6s9.1正式版怎么样 iphone6s升级ios9.1怎么样