石头

深入浅出玩转51单片机——学习笔记,串口通信学习程序

0
阅读(3122)
/****************************************************
深入浅出玩转51单片机——学习笔记,串口通信学习笔记
实现功能:串口发送数据,对应的小灯点亮
硬件接线:P1 口接Led小灯
晶振频率:11.0592Mhz
****************************************************/

#include<STC12C5A60S2.H>

typedef unsigned char uint8;
typedef unsigned int  uint16; 

uint16 temp = 0xff;

void UART_Init(uint16 baud);

void main()
{
    EA = 1;      //开总中断
    UART_Init(9600);
    while(1)
   {
        P1 = temp;
   }
}

void UART_Init(uint16 baud)
{
    SCON = 0x50;      //配置串口为模式1,允许接收
    TMOD &= 0x0f;
    TMOD |= 0x20;     //配置T1为模式2
    TH1 = 256 - (11059200/12/32)/baud;
    TL1 = TH1;
    ET1 = 0;     //禁止T1中断
    ES = 1;      //使能串口中断
    TR1 = 1;     //启动T1
}

void InterUART() interrupt 4 //串口中断服务函数
{
    if(RI)     //接收到字节
   {
        RI = 0;  //清零接收中断标志位
        temp = SBUF;   
   } 
   if(TI)  //字节发送完毕
   {
        TI = 0;  //清零发送中断标志位
   }   
}