標題: 51單片機串口發(fā)送漢字程序 [打印本頁]

作者: huangminggang    時間: 2018-11-25 16:15
標題: 51單片機串口發(fā)送漢字程序
#include <reg52.h>
#include <stdio.h>


#define uint unsigned int
#define uchar unsigned char


//毫秒級延時函數(shù)定義
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;//發(fā)送請求標志位
                puts("大家好!歡迎學習單片機");//發(fā)送的漢字
                while(!TI);//判斷是否發(fā)送完成  發(fā)送完成出循環(huán)
                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內置的串口助手,會出現(xiàn)亂碼!
作者: 2236744811    時間: 2021-7-13 09:02
為什么串口初始化不用打開接收位REN=1就可以接收發(fā)送的文字?
作者: A1233dj    時間: 2021-8-13 17:28
2236744811 發(fā)表于 2021-7-13 09:02
為什么串口初始化不用打開接收位REN=1就可以接收發(fā)送的文字?

因為這里的REN=1,是打開接收串口,而這個程序只需要滿足發(fā)送就可以了




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1