因仑“3+1”工程特种兵精英论坛

标题: 串口1演示 [打印本页]

作者: 张衍波    时间: 2015-5-6 09:41
标题: 串口1演示
/*--------------------------------------
芯片    :STC12C5A60S2
晶振    :11.0592MHZ
开发平台:KEIL
功能    :串口一收发8位数据。(采用中断方式,T1产生波特率)
波特率  :9600BPS
日期    :11.5.19
其他    :采用查询方式发送稳定,但是接收数据极不稳定由于
官方资料使用的是中断方式,所以建议使用中断方式收发数据。

注意    :下载完程序后请复位系统后运行!(切记!!)

--------------------------------------*/

#include "STC12C5A60S2.h"
#define uchar unsigned char
#define uint unsigned int

uchar tab[]={"STC12C5A60S2!"};

uchar dat=0;
/*--------------------------------------
          延时函数
--------------------------------------*/
void delay ( uchar t )
{
        uchar i,j;

        for( i=0; i<t; i++)

        for( j=0; j<250; j++);
}

/*--------------------------------------
          串口初始化
--------------------------------------*/

void init(void)
{

        TMOD = 0x20;                                  //定时器1产生波特率

        SCON = 0x50;                                 //方式2,8位数据,波特率可变

        PCON = 0x00;                                 //不倍增波特率

        AUXR = 0x00;                                 //1T工作方式,不使用波特率发生器

        IP   = 0x00;                                 //优先级默认

        TH1  = TL1 = 0xfd;                         //波特率 9600
       
        TR1  = 1;                                 //启动定时器产生波特率
       
        EA   = 1; ES = 1;                         //开总中断,开串口中断
}

/*--------------------------------------
         发送一个字符
--------------------------------------*/

void  txd_c(uchar x)
{
        SBUF = x;
}

/*--------------------------------------
          发送接收中断函数
--------------------------------------*/

void uart_isr()  interrupt 4
{
        if( RI ) RI = 0;
       
        dat = SBUF;
       
        if( TI ) TI = 0;
}

/*--------------------------------------
          主函数
--------------------------------------*/

void main()
{
        uchar x;

        init();

        for( x=0;x<14;x++ ){

                txd_c(tab[x]);

                delay(200);
                                    }

        while(1) P0 = dat;                       

}

[attach]2771[/attach]







欢迎光临 因仑“3+1”工程特种兵精英论坛 (http://bbs.enlern.com/) Powered by Discuz! X3.4