微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 51串口网上参考程序

51串口网上参考程序

时间:11-23 来源:互联网 点击:
学了几天,接收也没调通。原搬了网上程序,还是终于通了。贴人原程序吧!

网址如下:http://www.cnblogs.com/feng-bxr/articles/2302086.html谢谢原作者。

#include

sbit WINT1=P3^3; // 外部中断,接S4按键

void init() {

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

TMOD=0x20; //定时器1用作波特率发生器(具有自动重装载初值的功能)

SCON=0x50; //8为异步收发,波特率可变(由定时器控制)选择串口方式1,接收允许

TH1=0x0fd;

TL1=0x0fd; //设置波特率为9600bps,晶振11.0592MHz

RI=0; //清标志位

TI=0;

TR1=1; //开启计数T1

ES=1; //开串口中断

IT1=1; //设置为跳变触发方式

EX1=1; //开外部中断1

EA=1; //开总中断

}

void main(){

init();

while(1); //延时等待中断

}

void uart_interrupt (void) interrupt 4{

char date;

ES=0; //关闭串口中断

if(TI) { //判断是发送中断

TI=0; //清除发送中断标志

}

else {

date=SBUF; //数据缓存到date中

RI=0; //清除接收中断标志

date++; //数据处理

SBUF=date; //返回数据

}

ES=1; //打开串口中断

}

void int1_interrupt(void) interrupt 2 {

while(!WINT1); //按键松手检测

SBUF=0X41; //发送字符数据A

}


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top