一般来说,过程如下:
1,配置串口参数、波特率等,开启串口中断;
void Init_UART()
{
}
2,中断函数里写中断响应函数,根据接收的指令或者数据,执行相应的动作;
程序一般为:
void UART_ISR() interrupt x using y
{
串口中断处理函数
}
x - 单片机的C51中断号
y - 指定使用的当前工作寄存器组号(0-3 PSW中的RS0,RS1组合)
3,主程序
int main(void)
{
Init_UART()
while(1)
{
//数据发送函数
}
}
void Init_Com(void)//功能:串口初始化,波特率,方式1{
TMOD=0x20//定时器工作方式2
TH1=0xfa//晶振11.0592,波特率4800
TL1=0xfa
SCON=0x50//串行口工作在方式1,允许接收,波特率由定时器控制
PCON=0x00//串行口加倍位为0
ES=1
TR1=1
ES = 1 //开串口中断
EA = 1 //开总中断
}
void Com_Int(void) interrupt 4 //串口接收中断函数
{
EA = 0
if(RI == 1) //当硬件接收到一个数据时,RI会置位
{
DATA= SBUF//保存接收到的数据
RI = 0 //接收到一位数据后就让RI为零,关闭中断
}
EA = 1
}
C,不过是软件打工仔们常用的语言。要想深入到计算机内部,机器语言、汇编语言,才是真正的计算机语言。
参考一下:
http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/b738c5d010b2ce349a5027ee.html
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)