导航:首页 > 编程语言 > 串口通信编程汇编

串口通信编程汇编

发布时间:2022-05-13 17:32:51

‘壹’ 求一个 串口通信发送的程序 用汇编的

;程序如下:
MOV SCON, #0x50; //串口工作在方式1.
ANL PCON, #0x7F; //SMOD=0
MOV TMOD, #0x20; //定时器1当做波特率发生器.
MOV TH1, #0xFD; //初值, 9600 @ 11.0592MHz
MOV TL1, #0xFD;
SETB TR1;
LOOP:
MOV A, #0
MOV SBUF, A
JNB TI, $
CLR TI
INC A
CJNE A, #31, LOOP
SJMP $

end

‘贰’ 汇编 串口通信

参考:

http://hi..com/do_sermon/item/c382edd859cf70d8241f4067

‘叁’ 单片机串口通信程序怎么用汇编写

单片机串口通信程序用汇编写的仿真实例,可以仿真试试,参考一下吧。
很抱歉,回答者上传的附件已失效

‘肆’ 串口通信汇编程序解释

首先,你这样的写法是不对的,
ORG 001BH
AJMP sign0
这两句应该放到LJMP main后面,以免中间的字节占用到001B,那样就会出乱的。
第二、你的定时器0是用做中断吗?没看见你的中断入口。
第三、你的中断处理程序这样写是大忌:LJMP $ ;虚拟主程序,等待中断
中断处理程序不跳出去,除非是中断优先级更高的中断才能进来,而且这样做程序的流程更混乱
第四、你的p1.0取反在两个地方都写了,最好只在一秒处理里面写。

‘伍’ 汇编串口通信程序

用8250做吗???
框图我搞不出来,2台机子之间的数据输送倒可以
一开始初始化8250,搞成双工的相同的波特和格式
然后一开始判断有没有那4个错误,没有则判断
数据接受准备好没有,准备好则就去接受,然后打印到
屏幕,没准备好则去检查发送准备好没有,好了就可以打字传送了,没准备好则返回继续检查那4个错误

‘陆’ 求单片机高手编写一个串口通信接受字符程序,用汇编语言. 急急急!!!!

ORG 00H

AJMP MAIN

ORG 23H

AJMP URT;串口中断

ORG 30H

MAIN:

MOV SP,#60H

MOV R0,#50H

MOV TMOD,#20H;T1工作方式2

SETB EA;开总中断

ACALL URTINIT;串口初始化

AJMP $ ;等待串口中断

URT: ;串口中断每次只收1个字节,未完继续进入中断,接收。

PUSH ACC

JNB RI,URT1

URT0:

CLR ES

CLR RI

MOV A,SBUF

MOV @R0,A;先保存

INC R0

CJNE R0,#60H,URT1

CLR EA

URT1:

SETB ES

POP ACC

RTI: RETI

URTINIT:

MOV SCON,#50H;串口工作方式1,接收

MOV TH1,#0F4H;11.0592M2400BPS

MOV TL1,TH1

SETB TR1;开启定时器

SETB ES;开启串口中断

RET

‘柒’ 单片机 汇编程序 串口通信

HERE: AJMP HERE
SINT: MOV P1,R0
JB RI,RECV
JB TI,SEND
AJMP HERE

中断里面直接用这种方式直接跳到主程序,我以前还是真没试过,不过估计能行吧。 我一直用RETI 返回堆栈地址位置的。

但下面这地方肯定有错的,就是执行MOV SBUF,A 后没有等待!!
正确的顺序是: CLR TI ;清发送标记
MOV SBUF,A ;发送
JNB TI,$ ; 这里是如果TI没有被置1就等待,因为送数可能还没有完成。。就去执行别的动作,可能会有问题。
接收也一样要等待:
MOV A,SBUF
JNB RI,$ ;等待接收完成标志。

另外:
CPL P1.7 有问题,我猜你是用P1.7来观察接收次数,
但由于CPL P1.7取反命令是读一下P1.7再取反输出的,如果你的p1.7外接电路不科学,不合理,可能会出现你每次不管发1,还是发0,p1.7都是低电平,比如你将p1.7直接接在npn三管基极就会一直是0V或0.7V , P1.7的读入值会总为0,CPL 输出会总是为1
你可以用内部(非P口的位地址过度一下),比如: CPL 01H
MOV C,01H
MOV P1.7,C
你先试验吧。。。

‘捌’ 汇编语言编程 串口通信 程序

ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
MOV TMOD,#20H
MOV TH0,#0F4H
MOV TL0,#0F4H
SETB TR1
MOV SCON,#50H
LOOP:
JNB RI,$
CLR RI
MOV A,SBUF
CJNE A,#'A',LOOP1
MOV A,#'O'
LCALL SEND
MOV A,#'K'
LCALL SEND
SJMP LOOP
LOOP1:
CJNE A,#'B',LOOP2
MOV A,#'E'
LCALL SEND
MOV A,#'R'
LCALL SEND
LCALL SEND
SJMP LOOP
LOOP2:
MOV A,#'N'
LCALL SEND
MOV A,#'O'
LCALL SEND
LJMP LOOP
SEND:
MOV SBUF,A
JNB TI,$
CLR TI
RET
END

‘玖’ 51单片机串口通信(汇编)

HERE: AJMP HERE
SINT: MOV P1,R0
JB RI,RECV
JB TI,SEND
AJMP HERE

中断里面直接用这种方式直接跳到主程序,我以前还是真没试过,不过估计能行吧。 我一直用RETI 返回堆栈地址位置的。

但下面这地方肯定有错的,就是执行MOV SBUF,A 后没有等待!!
正确的顺序是: CLR TI ;清发送标记
MOV SBUF,A ;发送
JNB TI,$ ; 这里是如果TI没有被置1就等待,因为送数可能还没有完成。。就去执行别的动作,可能会有问题。
接收也一样要等待:
MOV A,SBUF
JNB RI,$ ;等待接收完成标志。

另外:
CPL P1.7 有问题,我猜你是用P1.7来观察接收次数,
但由于CPL P1.7取反命令是读一下P1.7再取反输出的,如果你的p1.7外接电路不科学,不合理,可能会出现你每次不管发1,还是发0,p1.7都是低电平,比如你将p1.7直接接在npn三管基极就会一直是0V或0.7V , P1.7的读入值会总为0,CPL 输出会总是为1
你可以用内部(非P口的位地址过度一下),比如: CPL 01H
MOV C,01H
MOV P1.7,C
你先试验吧。。。

‘拾’ 汇编语言之串口通信

ORG 0000H
LJMP START
ORG 0023H
LJMP UARTInterrupt
;这段程序没有意义呀,永远执行不了
MOV R1,#8EH ;AUXR
MOV A,#40H ;T1
ORL A,@R1
MOV @R1,A ;T1, 1T Mode
START:
MOV SP,#60H
LCALL InitUART

LOOP:
;add your code here!
LJMP LOOP

InitUART:
MOV TMOD,#20H
MOV SCON,#50H
MOV TH1,#0DCH
MOV TL1,TH1
MOV PCON,#00H
SETB EA
SETB ES
SETB TR1
RET

UARTInterrupt:
JB RI,IsUART_Receive
CLR TI
RETI
IsUART_Receive:
CLR RI
PUSH ACC
MOV A,SBUF
;========================
;add your code here!
;========================
POP ACC
RETI

SendOneByte:
CLR ES
CLR TI
MOV SBUF,A
WaitSendFinish:
JNB TI,WaitSendFinish
CLR TI
SETB ES
RET

END
;其余没有什么问题,就是只接受数据,发送没有调用。

阅读全文

与串口通信编程汇编相关的资料

热点内容
手机号码如何加密 浏览:424
沈阳程序员培训学校 浏览:538
一般服务器如何配置 浏览:895
图片怎样加密发邮件 浏览:619
万虹电脑文件夹密码忘记了怎么办 浏览:631
rc108单片机 浏览:867
战雷如何改变服务器 浏览:674
mactelnet命令 浏览:51
压缩袋压缩了拿出来 浏览:401
安卓手机相机怎么设置权限 浏览:121
美女程序员转行做主播 浏览:671
办理解压房产 浏览:575
道路工程概论pdf 浏览:388
超棒数学速算法大全 浏览:937
小米易语言登录源码 浏览:31
砖墙内加密钢筋 浏览:992
乡关何处pdf 浏览:84
小猪领赞小程序源码 浏览:336
python曲线如何原路返回 浏览:431
pdf快速看图破解版 浏览:295