深入浅出玩转51单片机——学习笔记,串口通信学习程序
0赞
发表于 5/1/2014 3:17:35 PM
阅读(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; //清零发送中断标志位
}
}
深入浅出玩转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; //清零发送中断标志位
}
}
