STC12C5A60S2 单片机串口2的通信功能测试

这篇具有很好参考价值的文章主要介绍了STC12C5A60S2 单片机串口2的通信功能测试。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

根据手册说明,STC12C5A60S2 系列单片机可以直接使用 reg51.h 的头文件,只是在用到相应的特殊功能寄存器时,要做相应的定义即可。

笔记来自视频教程链接: https://www.bilibili.com/video/BV1Qq4y1Z7iS/?spm_id_from=333.880.my_history.page.click&vd_source=b91967c499b23106586d7aa35af46413

STC12C5A60S2 单片机串口2的通信功能测试,单片机,嵌入式硬件
STC12C5A60S2 单片机串口2的通信功能测试,单片机,嵌入式硬件
STC12C5A60S2 单片机串口2的通信功能测试,单片机,嵌入式硬件
STC12C5A60S2 单片机串口2的通信功能测试,单片机,嵌入式硬件
STC12C5A60S2 单片机串口2的通信功能测试,单片机,嵌入式硬件

开启两个串口,进行测试。

STC12C5A60S2 单片机串口2的通信功能测试,单片机,嵌入式硬件

使用串口二的接收中断,要把串口二中断使能给加进来。

 IE2 = 0x01;             //Enable UART2 interrupt

uart2.c 的代码如下:

#include "uart2.h"

extern void sendByte(unsigned char dat);

void uart2_init(void)  //9600bps@11.0592MHz
{
	AUXR &= 0xF7;		//波特率不倍速
	S2CON = 0x50;		//8位数据,可变波特率
	AUXR &= 0xFB;		//定时器时钟12T模式
	BRT = 0xFD;			//设置定时重载值
	AUXR |= 0x10;		//启动独立波特率发射器
	
	IE2 = 0x01;             //Enable UART2 interrupt
}

void uart2_SendByte(unsigned char dat)
{
		S2BUF = dat;
		
		while(!(S2CON & S2TI)); // S2CON & S2TI == 0 时,会一直等在这
		S2CON &= ~S2TI;         // 手动清 0
}

#if 0
void uart2_SendString(unsigned char *dat)
{
		while(*dat != '\0') 
		{
				uart2_SendByte(*dat++);
		}
}
#endif

char putchar(char c)
{
	uart2_SendByte(c);
	return c;
}

/*----------------------------
UART2 interrupt service routine
----------------------------*/
void Uart2() interrupt 8
{
		unsigned char dat;
	
    if (S2CON & S2RI)
    {
        S2CON &= ~S2RI;     //Clear receive interrupt flag
        dat = S2BUF;
				sendByte(dat);
    }
}

uart2.h 的代码如下:

#ifndef _UART2_H_
#define _UART2_H_

#include "stc12c5a60s2.h"

#define S2RI  0x01          //S2CON.0
#define S2TI  0x02          //S2CON.1
#define S2RB8 0x04          //S2CON.2
#define S2TB8 0x08          //S2CON.3

// 函数声明
extern void uart2_init(void);
extern void uart2_SendByte(unsigned char dat);
extern void uart2_SendString(unsigned char *dat);


#endif

工程是在(基于串口超时接收用户自定义通讯协议的编程实现——协议内 CRC16 校验及接收应答处理)基础上改的,代码已上传至CSDN资料库。

STC12C5A60S2 单片机串口2的通信功能测试,单片机,嵌入式硬件

STC12C5A60S2 单片机串口2的通信功能测试,单片机,嵌入式硬件

12T – 12 分频 – 每12个时钟计数一次
1T – 不分频 – 每1个时钟计数一次

波特率设置为 115200

STC12C5A60S2 单片机串口2的通信功能测试,单片机,嵌入式硬件文章来源地址https://www.toymoban.com/news/detail-608714.html

到了这里,关于STC12C5A60S2 单片机串口2的通信功能测试的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STC15单片机-低功耗设计

    STC15省电模式(数据手册有介绍) STC15系列单片机可以运行3种省电模式以降低功耗,它们分别是: 低速模式 , 空闲模式 和 掉电模式 。 正常工作模式下,STC15系列单片机的典型功耗是2.7mA ~7mA,而掉电模式下的典型功耗是0.1uA,空闲模式下的典型功耗是1.8mA 低速模式由时钟分

    2024年02月05日
    浏览(84)
  • 为STC32单片机搭建开发环境

            自去年起,STC推出了51内核的32位单片机,但是单纯的51内核已经驾驭不了32位总线了。因此STC32单片机才用的是251内核,多了一个2,使得底层指令从111条扩充到了268条,这或许意味着以后的STC单片机会有更广大的想象空间?         也因此,STC32的开发环境与传统

    2024年02月08日
    浏览(93)
  • STC宏晶单片机初始开发教程

    STC宏晶单片机开发教程(以STC15F101W为例),包括所需开发软件、烧录器与单片机的连线。 STC官网:http://www.stcmcudata.com/ 相关步骤: 下载开发软件:Keil uVision5(注意要注册C51内核).。 下载并安装芯片包:“keil5_c51v954a”。 到STC官网下载 “STC-ISP软件”。 根据“STC-ISP”软件上

    2024年02月02日
    浏览(51)
  • 【STC15单片机】动态数码管

    目录 点亮一位数码管 动态数码管 100s倒计时 动态数码管封装代码 段选:选中哪一位数码管 位选:选中的数码管要显示的内容 这是我对段选位选的理解,就是选中某个位置,赋值字形码,显示想要的图形 如果只想让第一个数码管显示,就只需要让com1 = 1即可,其他comx都=0 如

    2024年02月13日
    浏览(46)
  • 单片机STC8H入门

      STC8H系列单片机是不需要外部晶振和外部复位的单片机。在相同的工作频率下,STC8H系列单片机比传统的8051快约12倍,是宽电压/高速/高可靠/低功耗/强抗静电/较强干扰的新一代8051单片机。 用常用的C51版的keil安装,可以进入下面链接下载: https://download.csdn.net/download/wei

    2024年02月02日
    浏览(51)
  • STC51单片机解码433M程序说明

    最近需要用到433M的单片机解码,上网搜了一下。大部分的程序都是基于定时器定时检测。感觉逻辑不够严谨。对于新手理解起来也比较困难。 查看EV1527手册 我是用的240K电阻。得到了每个数据宽度是1.29MS,每个数据宽度为16个LCK,每个LCK宽度大约为80us, 可以算出同步位的高

    2024年02月11日
    浏览(45)
  • STC单片机对DS1307读写操作

    📌相关篇《STC单片机对DS1302数据读写》 🌿实验对象:STC12C5A60S2 🌿晶振频率:外部11.059MHz 🌿串口波特率:9600 在使用STC12时尽量使用外部晶振作为时钟源: 📜串口打印读取信息: ✨如果程序需要适配到STC其他系列单片机上,需要重新配置串口输出相关代码,以及调整不同速

    2023年04月09日
    浏览(37)
  • STC单片机存储器介绍和使用

    🌿STC15F2K60S2系列内部结构框图 🌿STC12C5A60S2系列内部结构框图 📑程序存储器(ROM/Flash) 🔖STC单片机ROM容量大小可以根据其型号和命名规则了解到。 🌿STC15

    2024年02月09日
    浏览(52)
  • 基于STC15系列单片机的智能门锁

    一、项目背景及功能需求 1.1项目背景 智能门锁是一种智能化、高效、安全的门锁,它可以实现密码识别开锁方式,极大地提高了门锁的安全性和便利性。随着人们对安全性的要求越来越高,智能门锁已经成为了现代家庭和企业的必备设备。因此,本项目旨在设计一款基于S

    2024年02月04日
    浏览(65)
  • 【STC15单片机】简单的矩阵键盘代码

    单片机型号说明:IAP15F2K61S2 新建工程时单片机型号选择 STC15F2K60S2 51单片机矩阵键盘代码 本程序烧写到51单片机应该是正常使用的,手头没有51开发板了,暂时没测试 这个程序烧写到15单片机,前两列按键不能正常使用 只需要在判断第一列按键那部分程序,前面加上P42 = 0;

    2024年02月05日
    浏览(79)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包