【MCS-51单片机汇编语言】期末复习总结⑥——串口通信(题型六)

文章目录

  • 知识准备
    • 发送/接收缓冲器 SBUF
    • 串口通信控制寄存器SCON
    • 电源控制寄存器 PCON
    • 各个工作方式波特率的设定
  • 常考题型
    • 例题1
        • 题目描述
        • 题目解析
        • 题解
    • 例题2
        • 题目描述
        • 题解

在这里插入图片描述

知识准备

发送/接收缓冲器 SBUF

  • 单片机在发送或接收数据的前先将数据存储在SBUF中;
  • 接收:MOV A, SUBF
  • 发送:MOV SUBF, A

串口通信控制寄存器SCON

D7D6D5D4D3D2D1D0
SM0SM1SM2RENTB8RB8TIRI
  • SM0、SM1决定串行口的工作方式共四种组合,如下表所示:
M1M0方式帧格式波特率
00方式08位移位寄存器晶振 / 12
01方式110位UART可变,由定时器控制
10方式210位UART晶振 / 64或∫晶振 / 32
11方式310位UART可变,由定时器控制
  • SM2:多机控制位;
  • REN:允许串行口接收控制位:
    • 0:禁止;
    • 1:允许;
  • TB8:发送第9位数据;
  • RB8:接收第9位数据;
  • TI:发送中断标志;
  • RI:接收中断标志;

电源控制寄存器 PCON

D7D6D5D4D3D2D1D0
SMODGF1GF0PDIDL
  • SMOD:串行口波特率系数控制位;

各个工作方式波特率的设定

  • 在串行通信中,收发双方的波特率必须一致。
  • 方式0的波特率:∫OSC / 12(∫OSC 是晶振频率);
  • 方式2的波特率:(2SMOD / 64) • ∫OSC
  • 方式1方式3的波特率:(2SMOD / 32) • T1的溢出率 = (2SMOD / 32) • ( ∫OSC / 12(256 - X);(注意一般使用T1的方式2作为波特率发生器);

常考题型

例题1

题目描述

  • MCS51单片机的时钟频率为u=11.0592MHZ,选用定时器T1工作在方式2作为波特率发生器,要求产生4800bit/s的波特率,求T1的计数初值。若串行口工作在方式1,允许接收,允许串行口中断,试写出该单片机串行口的初始化程序。

题目解析

本题可分为两个小问题看待。首先是求T1的初值:可根据方式1的波特率公式(2SMOD / 32) • ( ∫OSC / 12(256 - X)解出初值X的值。

  • 假设SMOD = 0(因为题目并未给出),则方式1的波特率 = (2SMOD / 32) • ( ∫OSC / 12(256 - X),代入数值得:
  • 4800 = (20 /32) • (11.0953 * 106 ) / 12(256 - X),解得 X = FAH;
  • 所以TH1 = TL1 = 0FAH

其次是写出初始化程序:

  • 根据题目要求串行口工作在方式1,允许接收,可以得出SCON = 0101 0000 = 50H
  • 由允许串行口中断可以得出 IE寄存器中的EA、ES必须置为1;
  • 由选用定时器1工作在方式2可得出 TCON = 0010 0000 = 20H

题解

MOV		TMOD,	#20H
MOV		TH1,	#0FAH
MOV		TL1,	#0FAH
SETB	TR1		;启用定时器1
MOV		PCON,	#00H
MOV		SCON,	#50H
SETB	EA
SETB	ES

例题2

题目描述

  • MCS51单片机进行通信。要求甲机将内部RAM地址30H开始存储的20个数据送入乙机器中内部RAM地址40H开始的存储空间中。要求双方的串口均采用方式1、中断方式进行数据传输。波特率为4800bit/s,晶振频率为11.0592MHZ。试分别写出甲乙机器的发送与接收程序。

题解

  • 方式1的波特率 = (2SMOD / 32) • ( ∫OSC / 12(256 - X),代入数值得:
  • 4800 = (20 /32) • (11.0953 * 106 ) / 12(256 - X),解得 X = FAH;
  • 所以TH1 = TL1 = 0FAH

甲机(发送数据)

	ORG		0000HAJMP	MAINORG		0023H		;串行口中断入口AJMP	SOUT		;跳转到中断服务程序ORG		0030H
MAIN:MOV		SCON,	#40H;采用方式1,且禁止接收MOV		TMOD,	#20H;定时器采用方式2MOV		TH1,	#0FAH;定时器初值MOV		TL1,	#0FAHSETB	TR1			;启用定时器1SETB	EA			;打开中断允许总开关SETB	ES			;允许串行口中断MOV		R0,		#30H;存储数据的地址MOV		R7,		#20H;控制循环次数MOV		A,		@R0MOV		SBUF,	A	;先将数据存储至SBUFDEC		R7			;R7-1SJMP	$			;死循环,等待中断
SOUT:CLR		TI			;发送中断标志位清零INC		R0		;R0+1MOV		A,		@R0MOV		SBUF,	ADJNZ	R7,		ENDSI;判断循环是否结束CLR		ES			;关闭串行口中断
ENDSI:RETIEND

乙机(接收数据)

	ORG		0000HAJMP	MAINORG		0023H		;串行口中断入口AJMP	SOUT		;跳转到中断服务程序ORG		0030H
MAIN:MOV		SCON,	#50H;采用方式1,且允许接收MOV		TMOD,	#20H;定时器采用方式2MOV		TH1,	#0FAH;定时器初值MOV		TL1,	#0FAHSETB	TR1			;启用定时器1SETB	EA			;打开中断允许总开关SETB	ES			;允许串行口中断MOV		R0,		#40H;存储数据的地址MOV		A,		@R0SJMP	$			;死循环,等待中断
SIN:CLR		RI			;接收中断标志位清零MOV		A,		SBUFMOV 	@R0,	AINC		R0
ENDSI:RETIEND

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/352474.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

程控电源CANoe上位机面板(CAN\ETH测试、RS232串口通信、编写设计思路)

程控电源CANoe上位机面板 编写此面板的目的编写思路一、通讯方式1、RS232串口连接2、CANoe与RS232串口相关的函数3、帧格式命令字4、校验码 二、面板设计1、所需文件说明2、导入使用3、功能模块化3.1 初始化3.2 端口设置3.3 控制方式3.4 脉冲程序3.5 电压电流状态3.6 运行设置的…

Android Studio Gradle实践之多渠道自动化打包+版本号管理

转: Android Studio Gradle实践之多渠道自动化打包版本号管理 上次介绍了Android Studio的安装、配置和基本使用。这次讲一下Android Studio用到的打包工具Gradle。Gradle是一种构建项目的框架,兼容Maven、Ant,为Java项目提供了很多插件去实现…

【测试实践】搞定云网络系统性能测试

一、前言 在部署或管理网络系统时,我们更多的是关心网络的连通性,而对于其整体的性能往往考虑不多,或者即使考虑到性能、异常或稳定性的问题,但却发现没有合适的手段去测试或监控网络健康状况。在本文中,首先简单介绍…

树莓派做一个获取GPS时间的NTP服务器

由于单位用的是内部网络,机器时间无法与internet同步,导致内网的所有设备各自为政,对工作和管理带来的麻烦说不清,为解决这个问题,决定用手里的树莓派做通过GPS获取时间,然后提供NTP服务。在某宝逛了一圈&a…

自动(智能)驾驶 | 全网第一本激光雷达手册阅读指南(下)

接着从上篇继续说,本部分主要介绍激光雷达数据等内容,这个可以说是看懂激光雷达手册的重中之重,也就是关键问题的关键(皮~)。同样由于velodyne的手册比较难啃但是内容完整丰富,本期我们依然以velodyne 128&…

GEO-SPARK 2000X PPS使用记录(三)

最近单位突然要使用GeoSpark电火花,至少有4年没有用过了。我一直没有独立操作过,只是看同事操作过,碰巧的是会使用这个设备的同事去大洋了,悲剧的是他们把所有的采集狗都拿走了,留下一个巨大的坑让我来填。 1、首先看看…

CMOS图像传感器——工作原理

一、像素阵列结构 一般像素阵列是由水平方向的行( Row ) 和垂直方向的列(Column)正交排列构成的。像素排列的最基本设计原则是:摄像器件像素排列的坐标,必须在显示的时候能够准确地还原在图像原来的相对位置上。在大多数情况下,每个像素中心线在行的方向和列的方向,即…

Kerberos从入门到精通以及案例实操系列(二)

5、安全集群使用说明 5.1、用户要求 具体要求以下使用说明均基于普通用户,安全集群对用户有以下要求: 集群中的每个节点都需要创建该用户该用户需要属于hadoop用户组需要创建该用户对应的Kerberos主体 实操,此处以atguigu用户为例&#x…

3.了解Spring Boot2自动配置原理

了解Spring Boot2自动配置原理 1、SpringBoot特点 1.1、依赖管理 1.父项目做依赖管理 依赖管理 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.4.RELEAS…

Docker搭建Elasticsearch方法及启动后服务自动关闭的问题

太长不看&#xff0c;一句话总结 内存太小&#xff0c;启动命令中添加参数修改虚拟机大小即可 docker run -e ES_JAVA_OPTS"-Xms256m -Xmx256m" -e "discovery.typesingle-node" -d -p 9200:9200 -p 9300:9300 --name elasticsearch elasticsearch:7.6.0配…

NTP自动退出问题排查

为什么80%的码农都做不了架构师?>>> 问题现象:ntp进程运行一段时间后自动退出 排查过程: 查看/var/log/message ntp异常信息如下 Feb 20 22:54:41 xnu_1 ntpd[2187]: 0.0.0.0 0617 07 panic_stop -28777 s; set clock manually within 1000 s. Feb 20 22:54:57 …

Docker部署Elasticsearch及安装后自动关闭的问题

Docker搭建Elasticsearch方法 前往dockerhub官网&#xff1a;dockerhub 可查看elasticsearch相应版本 拉取镜像 选取一个版本拉取镜像&#xff0c;如docker pull elasticsearch:7.9.2 不输入版本默认拉取最新版 启动容器 映射端口为9200和9300 docker pull elasticsearch:…

自动化基础笔记--元素操作

元素操作&#xff08;附带鼠标悬停&#xff09; 一些课程回顾&#xff0c;问题原因总结 函数只有在return的时候&#xff0c;才会返回一个数据。返回数据了才可以赋值的 报错&#xff1a; 等待时间不够返回的元素不是你想要的确实是你表达式写错了有句柄未切换或者有iframe未…

服务器设置了自动校时但是,同步时钟配置电脑自动校时

同步时钟配置电脑自动校时 一、同步时钟操作和指示灯说明。 同步时钟可接收全球定位系统GPS、北斗卫星信号。当GPS/北斗天线架设到屋顶时&#xff0c;天线的高度必须低于房屋顶避雷天线的高度&#xff0c;防止被雷击。 先关闭电源后再连接或者去掉天线。 电源指示灯&#xff1a…

计算机怎么关闭开机自启应用,如何关闭电脑开机自动启动的软件程序

如何关闭电脑开机自动启动的软件程序 我们在电脑中安装软件的时候,不小心设置了开机启动,该怎么取消呢?今天就跟大家介绍一下如何关闭电脑开机自动启动的软件程序的具体操作步骤。 1. 首先打开电脑,找到桌面上的【360安全卫士】软件,双击打开: 2. 进入主页面后,点击上方…

Latex使用algorithm2e包写伪代码

用Latex写伪代码我们需要用到一个包&#xff0c;Algorithm2e&#xff0c;这个工具包的使用手册下载地址为&#xff08;http://mlg.ulb.ac.be/files/algorithm2e.pdf&#xff09;CSDN的链接为&#xff08;&#xff09; 准备 导入该包 \usepackage[ruled,linesnumbered]{algor…

【复杂网络建模】——基于微博数据的影响力最大化算法(PageRank)

&#x1f935;‍♂️ 个人主页&#xff1a;Lingxw_w的个人主页 ✍&#x1f3fb;作者简介&#xff1a;计算机科学与技术研究生在读 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4a…

【Markdown小技巧】 整理小图标和表情符号

&#x1f40b;作者简介&#xff1a;博主是一位.Net开发者&#xff0c;同时也是RPA和低代码平台的践行者。 &#x1f42c;个人主页&#xff1a;会敲键盘的肘子 &#x1f436;座右铭&#xff1a;总有一天你所坚持的会反过来拥抱你。 &#x1f308;写在前面&#xff1a; 让博客变得…

工信部—高级软件开发工程师认证

工业和信息化部教育与考试中心是工业和信息化部直属事业单位&#xff0c;承担计算机技术与软件专业技术资格考试、通信专业技术人员职业水平考试、电子通信行业职业技能鉴定、全国信息技术人才培养工程、产业工人网络平台建设等人才培养选拔工作。 软件工程师(Software Enginee…

EasyCVR视频汇聚智能边缘网关在多平台级联及上下级对接中的应用说明

一、行业背景 近年来&#xff0c;在政务数据共享平台的建设上&#xff0c;对国家、省数据、市数据及区县对接上要求打破“信息孤岛”&#xff0c;拔掉“数据烟囱”&#xff0c;全面打通数据“脉络”的主通道。省市平台“级联对接”工作&#xff0c;由国家数据共享平台、省级数据…