找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1427|回复: 1
打印 上一主题 下一主题
收起左侧

STC15F2K60S2单片机串口通信汇编源码

[复制链接]
跳转到指定楼层
楼主
ID:301181 发表于 2018-7-22 09:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、利用单片机的串口用查询方式发送英文字符的 ASCII 码,波特率为 9600,可以在示波器上正确显示时序波形。
2、 在 PC 机上通过串口调试软件发送英文字符,单片机端通过中断方式接收并应答相同的字符。
      在发送时,采用查询方式,因为发送时是 CPU 主动的行为,一般不需要额外的使用中断,但是在接受时,CPU 处于被动状态,如果不适用中断,需要 CPU 一直处于查询状态,才能确保每个数据都被接受,比较浪费资源,这时采用中断的方式是一种比较好的选择

中断接收         -------------脱机运行

ORG 0000H
LJMP MAIN
ORG 0023H
LJMP INTT0
ORG 0100H
MAIN: MOV TMOD,#20H ;方式 2 计时
MOV  TH1, #0FDH ;波特率 9600
MOV  TL1, #0FDH
MOV  SCON, #50H ;方式 1 串口通信,允许接收
MOV PCON, #00H
MOV 8EH,#00H;
SETB TR1 ;开始计时
SETB  ES ;允许串行口中断
SETB  EA ;允许 CPU 中断
SJMP $
INTT0:
CLR RI ;接收数据完毕,中断标志位复位
MOV  A,SBUF ;读取接收数据
MOV SBUF,A ;应答相同数据
LOOP: JNB TI,LOOP ;等待一帧数据发送结束
CLR TI  ;发送数据完毕,中断标志位复位
RETI ;中断返回
END
查询发送
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN: MOV  TMOD,#20H ;设置定时器 T1 为方式 2
MOV TH1, #0FDH ;设置波特率 9600
MOV  TL1, #0FDH
MOV  SCON, #50H ;设置串口为方式 1
MOV  PCON, #00H
SETB TR1  ;定时器 1 开始计数
LOOP: MOV SBUF, #41H ;开始发送数据
SEND:  ;查询发送中断标志位 TI
JBC TI, LOOP ;若完成,再次发送
AJMP  SEND ;若非,则继续查询
END


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:301181 发表于 2018-7-22 09:22 | 只看该作者
我用的单片机型号STC15F2K60S2
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表