标题: 51单片机串口发送汉字程序 [打印本页]

作者: huangminggang    时间: 2018-11-25 16:15
标题: 51单片机串口发送汉字程序
#include <reg52.h>
#include <stdio.h>


#define uint unsigned int
#define uchar unsigned char


//毫秒级延时函数定义
void delay(uint z)
{
        uint x,y;
        for(x = z; x > 0; x--)
                for(y = 114; y > 0 ; y--);                 
}


//串口初始化
void UARTInit()
{
        SM0 = 0;        SM1 = 1;//串口工作方式1,8位UART波特率可变
        TR1 = 1;//启动定时器1
        TMOD |= 0x20;//定时器1,工作模式2 8位自动重装
        TH1 = 0xfd;
        TL1 = 0xfd;//设置比特率9600
}


void main()
{
        UARTInit(); //串口初始化
        while(1)
        {
                TI = 1;//发送请求标志位
                puts("大家好!欢迎学习单片机");//发送的汉字
                while(!TI);//判断是否发送完成  发送完成出循环
                TI = 0;
                delay(1000);//延迟1秒
        }        
}


作者: ssk7793    时间: 2018-11-26 13:08
不错。简单明了。有空测试一下
作者: 梦园心田    时间: 2019-1-22 01:37
没问题这个代码,不行可以用printf
作者: bhjyqjs    时间: 2019-1-22 09:08
测试过了,好用!不要用stc-isp内置的串口助手,会出现乱码!
作者: 2236744811    时间: 2021-7-13 09:02
为什么串口初始化不用打开接收位REN=1就可以接收发送的文字?
作者: A1233dj    时间: 2021-8-13 17:28
2236744811 发表于 2021-7-13 09:02
为什么串口初始化不用打开接收位REN=1就可以接收发送的文字?

因为这里的REN=1,是打开接收串口,而这个程序只需要满足发送就可以了




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1