1、C51单片机(STC8G2K64S4)串口实验

一、串口1接线图

1、下面是单片机外接电路图,P30,P31分别用于RXD和TXD功能引脚

2、我们来查看单片机手册

串口1需要设置的寄存器

串口1的功能脚配置选择位,看电路图选择的是P3.0,P3.1。

3、串口1:SCON控制寄存器

设置为0x50:0101 0000。(SCON=0x50)

4、数据寄存器

5、电源管理寄存器

6、辅助寄存器1使用

AUXR |= 0x01;//串口1选择定时器2为波特率发生器

AUXR |= 0x04;//定时器2时钟为Fosc,即1T

AUXR |= 0x10;//启动定时器2

7、串口波特率的计算公式

定时器2重载值:65536-35000000/(4 * 115200) = 0xFFB4。

7、定时器2的设置

特别注意在使用串口时,这个需要设置为35.0MHZ。否则串口调试助手不能正常显示。

二、串口1代码

复制代码
#include "uart.h"
#include "delay.h"
void Uart_Init()
{
	SCON = 0x50;//模式1 8位数据 可变波特率
	AUXR |= 0x01;
	AUXR |= 0x04;
	T2H = 0xFF;
	T2L = 0xB4;
	AUXR |= 0x10;

	ES = 1;//打开串口中断
	EA = 1;
}

void Uart_SendByte(unsigned char byte)
{
	SBUF = byte;
}

void Uart_SendDat(unsigned char *dat)
{
	while(*dat != '\0')
	{
		Uart_SendByte(*dat);
		dat++;
		Delay_ms(50);
	}
}

#include "delay.h"

//延时1us
void Delay1us()
{
	unsigned char i;
	_nop_();
	_nop_();
	i = 9;
	while(--i);
}

//延时10us
void Delay10us()
{
	unsigned char i;
	_nop_();
	_nop_();
	i = 114;
	while(--i);
}

//延时1ms
void Delay1ms()
{
	unsigned char i,j;
	_nop_();
	_nop_();
	i = 46;
	j = 113;
	do{
		while(--j);
	}while(--i);
}

void Delay_ms(unsigned int ms)
{
	unsigned int i = 0;
	for(i = 0;i < ms;i++)
	{
		Delay1ms();
	}
}

#include "stc8g.h"
#include "uart.h"
#include "delay.h"

sbit LED_R = P0^5;
sbit LED_Y = P0^6;
sbit LED_G = P0^7;

unsigned char uartRec;

void IO_Init()
{
	P_SW1= 0x00;//S1_S P3.0 P3.1
	P0M0 = 0x00;
	P0M1 = 0x00;
	P1M0 = 0x00;
	P1M1 = 0x00;
	P2M0 = 0x00;
	P2M1 = 0x00;
	P3M0 = 0x00;
	P3M1 = 0x00;
	P4M0 = 0x00;
	P4M1 = 0x00;
	P5M0 = 0x00;
	P5M1 = 0x00;
}

void main()
{
	IO_Init();
	Uart_Init();//串口初始化

	while(1)
	{
		Uart_SendDat("sdhak");
	}
}

void Uart_Isr() interrupt 4
{
	if(TI == 1)
	{
		TI = 0;
		LED_R = !LED_R;
	}
	if(RI == 1)
	{
		uartRec = SBUF;
		RI = 0;
		LED_Y = !LED_Y;
		SBUF = uartRec;
	}
}
相关推荐
树的枝10 分钟前
【STM32】03.中断和EXTI外设
笔记·stm32·单片机·嵌入式硬件
单片机杂货铺1 小时前
【单片机毕业设计选题】基于stm32单片机儿童公路车速度检测报警
stm32·单片机·嵌入式硬件·51单片机·硬件工程·课程设计
振南的单片机世界2 小时前
看门狗硬核拆解:1.6秒不喂狗,硬件强制“掀桌子”
arm开发·stm32·单片机·嵌入式硬件
嵌入式阿蔡3 小时前
Linux_01:交叉编译与开发环境实战——从单片机跨到 Linux 的第一道坎
linux·运维·网络·单片机·嵌入式硬件·嵌入式实时数据库
NYFEA4 小时前
徕飞 FCA系列全面上新,一站式I/O扩展国产替代方案
单片机·嵌入式硬件
国科安芯5 小时前
ASL622S:把“信号失真“挡在门外的航天级运放
网络·单片机·嵌入式硬件·架构·状态模式·低轨卫星星座
XiHongShi20165 小时前
STM32H7 FLASH和SRAM标准例程
stm32·单片机·嵌入式硬件
单片机杂货铺6 小时前
【单片机毕业设计选题】基于单片机的智能牛奶保鲜箱设计
人工智能·stm32·单片机·物联网·毕业设计·课程设计
莫浅子1 天前
day01-USB架构与枚举
c++·单片机·嵌入式驱动
恒锐丰科技韩生1 天前
SS8844T|8.2‑40V 四通道独立半桥驱动 ETSSOP28 带散热焊盘 工业自动化机器人专用
嵌入式硬件·硬件工程