STC12C5202AD 51单片机串口通信配置模板

本文介绍了如何使用STC12C5202AD 51单片机进行串口通信配置,包括采用定时器方式2设置8位自动重装实现波特率为9600。关键点在于发送函数中增加适当的延时以避免乱码,以及在ISP软件烧写时确保Step4选择外部晶体振荡器,否则可能导致通信乱码。同时注意避免串口中断和发送函数中TI标志的重复清零,以免影响连续发送功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

定时器方式2:  8位自动重装   波特率 9600

#include<reg52.h>      
 
void delayms(int x)  
{  
    int i, j;  
    for(i = x; i; --i)  
    for(j= 110; j; --j);  
    return ;  
} 
 
void initSCI(void)    
{    
	SM0 = 0;      /*Step 1 :  确定串口通信方式*/      
    SM1 = 1; 
          
    TMOD = 0x20;  /*step 2: 根据串口通信方式 确定是否设置波特率*/       
    TH1  = 0xfd;      
    TL1  = 0xfd;      
          
    TR1  = 1;     /*step 3 :启动*/      
    REN  = 1;      
    
	EA = 1;       /*step 4: 是否启用中断函数*/      
    ES = 1;     
}    
    
void putChar (unsigned char chr)//发送一个字符    
{    
    SBUF = chr;                                                      
}    
    
void putStr(unsigned char str[], unsigned char n)    
{    
    while( n-- )    
    {    
        SBUF = str[n];    
		delayms(1); 
    }    
}    
      
int main()      
{      
    initSCI();     
          
    while(1)    
    {    
		putChar('A');
        //operation;      
    }     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值