实验5 MCS-51内部串行口实验

2023-10-13 19:10
文章标签 实验 51 内部 串行口 mcs

本文主要是介绍实验5 MCS-51内部串行口实验,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

实验5 MCS-51内部串行口实验

  • 一、实验目的
    • 二、实验内容

一、实验目的

  1. 理解串行通信的特点及分类
  2. 掌握单片机内部串口的4种工作方式的特点及应用
  3. 掌握双机通信的编程以及单工传输的特点
  4. 理解全双工通信的特点
  5. 理解主从式多机通信的工作过程,掌握串口的工作方式2和3的特点

二、实验内容

  1. 知识要点
    (1)8051内部有一个可编程的全双工的串行接口,可同时进行数据的串行发送和接收;串口有4种工作方式,但只有方式1,2,3能够实现串行异步通信,其不同在于波特率及数据帧格式。
    (2)与串口相关的控制字主要有SCON,PCON。
    (3)串口的工作方式3可以实现主从式多机通信,即一台主机,多台从机,从机接受主机的传输控制。
  2. 实验内容
    (1)利用8051内部串口实现自发自收的数据通信,波特率及帧格式自定,要求所传输的数据能够控制LED的亮灭。
    在这里插入图片描述
#include<reg51.h>
void main(){int led[]={1,2,4,8,16,32,64,128};int i,j;TMOD=0X20; // T1 定时 方式2 // 0010 0000TH1=0XF8; //  7 TL1=0XF8;TR1=1; // 允许 定时器SCON=0X50;//  方式1  10位数据异步通信方式 允许中断  0101 0000;PCON=0;while(1){for(i=0;i<8;i++){RI=0; //发送请求标志SBUF=~led[i];while(TI==0);//等待发送TI=0;	//接收请求标志while(RI==0);//等待接收P1=SBUF;for(j=0;j<20000;j++); //延时}}
}

(2)利用8051内部串口实现双机通信,波特率及帧格式自定。要求发送方采用查询控制方式,接收方采用中断控制方式。
在这里插入图片描述

#include<reg51.h>
void delay(){int j;for(j=0;j<20000;j++);
}void main(){int led[]={1,4,16,64,2,8,32,128};TMOD=0x20; // 方式2 T1TH1=0xf8;  TL1=0xf8; SCON=0X50; //  方式1 允许接收    0101 0000PCON=0; //  波特率不加倍;TR1=1; // while(1){int i;for(i=0;i<8;i++){SBUF=~led[i];while(TI==0); //等待发送	TI=0;delay();}}
}
#include<reg51.h>void delay(){unsigned int j;for(j=0;j<20000;j++);}void main(){TMOD=0x20;TH1=TL1=0xf8;SCON=0X50;PCON=0X00;TR1=1;EA=1;ES=1;while(1){while(RI==0);delay();}
}void ppp() interrupt 4{	P1=SBUF;RI=0;}

这篇关于实验5 MCS-51内部串行口实验的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/205273

相关文章

day-51 合并零之间的节点

思路 直接遍历链表即可,遇到val=0跳过,val非零则加在一起,最后返回即可 解题过程 返回链表可以有头结点,方便插入,返回head.next Code /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}*

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

STM32(十一):ADC数模转换器实验

AD单通道: 1.RCC开启GPIO和ADC时钟。配置ADCCLK分频器。 2.配置GPIO,把GPIO配置成模拟输入的模式。 3.配置多路开关,把左面通道接入到右面规则组列表里。 4.配置ADC转换器, 包括AD转换器和AD数据寄存器。单次转换,连续转换;扫描、非扫描;有几个通道,触发源是什么,数据对齐是左对齐还是右对齐。 5.ADC_CMD 开启ADC。 void RCC_AD

STM32内部闪存FLASH(内部ROM)、IAP

1 FLASH简介  1 利用程序存储器的剩余空间来保存掉电不丢失的用户数据 2 通过在程序中编程(IAP)实现程序的自我更新 (OTA) 3在线编程(ICP把整个程序都更新掉) 1 系统的Bootloader写死了,只能用串口下载到指定的位置,启动方式也不方便需要配置BOOT引脚触发启动  4 IAP(自己写的Bootloader,实现程序升级) 1 比如蓝牙转串口,

FreeRTOS内部机制学习03(事件组内部机制)

文章目录 事件组使用的场景事件组的核心以及Set事件API做的事情事件组的特殊之处事件组为什么不关闭中断xEventGroupSetBitsFromISR内部是怎么做的? 事件组使用的场景 学校组织秋游,组长在等待: 张三:我到了 李四:我到了 王五:我到了 组长说:好,大家都到齐了,出发! 秋游回来第二天就要提交一篇心得报告,组长在焦急等待:张三、李四、王五谁先写好就交谁的

java线程深度解析(一)——java new 接口?匿名内部类给你答案

http://blog.csdn.net/daybreak1209/article/details/51305477 一、内部类 1、内部类初识 一般,一个类里主要包含类的方法和属性,但在Java中还提出在类中继续定义类(内部类)的概念。 内部类的定义:类的内部定义类 先来看一个实例 [html]  view plain copy pu

HNU-2023电路与电子学-实验3

写在前面: 一、实验目的 1.了解简易模型机的内部结构和工作原理。 2.分析模型机的功能,设计 8 重 3-1 多路复用器。 3.分析模型机的功能,设计 8 重 2-1 多路复用器。 4.分析模型机的工作原理,设计模型机控制信号产生逻辑。 二、实验内容 1.用 VERILOG 语言设计模型机的 8 重 3-1 多路复用器; 2.用 VERILOG 语言设计模型机的 8 重 2-1 多

代码训练营 Day26 | 47.排序II | 51. N-皇后 |

47.排序II 1.跟46题一样只不过加一个树层去重 class Solution(object):def backtracking(self,nums,path,result,used):# recursion stopif len(path) == len(nums):# collect our setresult.append(path[:])return for i in range(

VB和51单片机串口通信讲解(只针对VB部分)

标记:该篇文章全部搬自如下网址:http://www.crystalradio.cn/thread-321839-1-1.html,谢谢啦            里面关于中文接收的部分,大家可以好好学习下,题主也在研究中................... Commport;设置或返回串口号。 SettingS:以字符串的形式设置或返回串口通信参数。 Portopen:设置或返回串口

61.以太网数据回环实验(4)以太网数据收发器发送模块

(1)状态转移图: (2)IP数据包格式: (3)UDP数据包格式: (4)以太网发送模块代码: module udp_tx(input wire gmii_txc ,input wire reset_n ,input wire tx_start_en , //以太网开始发送信