3840|8

79

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

用汇编怎么能让串口一次发送多个数据 [复制链接]


用汇编怎么能让串口一次发送多个数据

最新回复

你是说你的这段程序不能正确的发完所有数。是吗?  详情 回复 发表于 2007-6-15 09:44
点赞 关注

回复
举报

64

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
我要发很多十六进制数, 0012H,0013H,0015 等等

MOV A,#0012H
MOV SBUF,
CLR TI
那是发一个的.
但我想把它们全发出去,一班应该怎么写?
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
做个缓冲区,定时发,
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

4
 
本质上,串口就是串行通信,一次发一个位,一帧发一个字节
它不可能同时发这么多数据

 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

5
 
看LZ的意思已经知道了循环发送的方式,也就只有那样了,别无它法
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(中级)

6
 
哈哈 他想要一个循环发送最经典的代码 代表我女儿谢谢大家了
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

7
 
经典?

两个思路:
一:定长发送
发送一定的长度(相当于一帧数字)

二:定特殊字符
除非遇到自己定义的特殊字符(像C标准库里定义的是'\0')不然就不停循环发送缓冲区里的数据

呵呵,一般就这两个
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

8
 
ORG 0000H
        AJMP START
ORG 000BH
        AJMP TIMER1               
ORG 0023H
        AJMP SERIAL
ORG 30H

START:
        MOV DPTR,#TABLE
       
        MOV SP,#5FH
        MOV TMOD,#00100101B                ;定时计数器1作计数用,1。0不用全置0
        MOV PCON,#80H
        MOV TH1,#0FDH
        MOV SCON,#50H
        ;预置值,要求每计到6个脉冲即为一个事件
        MOV TH0,#0FFH
        MOV TL0,#0FAH
        SETB REN
        SETB TR1
        SETB TR0
        SETB EA
        SETB ET0
        SETB ES
        GG:JNB P1.1,COMMFS
        AJMP GG
;串口发数据
COMMFS:
        MOV A,#01FH
        ;CLR A
        ;MOVC A,@A+DPTR
        ;MOV SBUF,A
        ;CLR RI
        ;CJNE A,#01H,LOOP1
       
        ;LCALL DELAY
        ;AJMP GG
        ;LOOP1:INC DPTR
        ;AJMP COMMFS
        MOV SBUF,A
        CLR RI
        LCALL DELAY
        JBC TI,GG                                        ;如果TI等于1则清TI并转GG
;串口收数据
SERIAL:
        MOV A,SBUF
        MOV P2,A
        CLR RI
        RETI
;串口发数据
TIMER1:
        MOV TH0,#0FFH
        MOV TL0,#0FAH
        ;MOV A,#011H
        ;改一次发多个数
        LX:CLR A
        MOVc A,@a+DPTR
        MOV A,#05H
        MOV SBUF,A
        CLR RI
        CJNE A,#01H,LOOP2
        LCALL DELAY
        RETI
        LOOP2:INC DPTR
        AJMP LX

        ;MOV SBUF,A
        ;LCALL DELAY
        ;CLR RI
        ;RETI
;延时子程序
DELAY:       
        MOV R7,#0FFH
        DJNZ R7,$
        RET
        ;表数据
        TABLE:DB 05H,05H,31H,05H,05H
              DB 05H,05H,05H,05H,05H
              DB 01H
END

帮我看看我串口发送有什么问题
 
 
 

回复

116

帖子

0

TA的资源

一粒金砂(中级)

9
 
你是说你的这段程序不能正确的发完所有数。是吗?
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表