51单片机中用中断方式实现串口数据发送与接收
2012-05-02 14:50
597 查看
/* Description:用中断方式实现串口数据发送 Author:Jcy Date:2012-5-2 */
#include<reg52.h> #define uint unsigned int #define uchar unsigned char uchar receive_ser; //串口接收到的数据 uchar flag=0; uchar receivebuf[ ]="Jcy"; uchar i=0; uchar j; void init_ser() { TMOD=0X20;//定时器1工作在方式2 TH1=0XFD; TL1=0XFD; //波特率9600,51单片机大多用这个 TR1=1; //定时器/计数器1启动 EA=1; //开放总中断 SM0=0; SM1=1; //串行口方式1 REN=1;//允许串口接收 ES=1;//开串口 中断 } void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void ser_int() interrupt 4 //中断函数不用声明 { if(RI==1) { RI=0; receive_ser=SBUF; if(receive_ser!='\0') { receivebuf[i]=receive_ser; i++; if(i==12) { i=0; flag=1; } } } } void main() { init_ser(); while(1) { if(flag==1) { ES=0; //关闭中断 flag=0; //重置 for(j=0;j<12;j++) { SBUF=receivebuf[j]; //发送 while(!TI); //如果一直没发送完毕 TI=0; //为下次发送做准备 delay(10); //此处可以不用延迟 } ES=1; } } }
相关文章推荐
- 单片机C51串口中断接收和发送测试例程(含通信协议的实现)
- 单片机C51串口中断接收和发送测试例程(含通信协议的实现)
- 安卓Socket连接实现连接实现发送接收数据,openwrt wifi转串口连接单片机实现控制
- 安卓Socket连接实现连接实现发送接收数据,openwrt wifi转串口连接单片机实现控制
- 单片机C51串口中断接收和发送测试例程(含通信协议的实现)——龚建伟
- STM8S003F使用IO口模拟串口(三)使用中断方式发送和接收数据
- 单片机C51串口中断接收和发送测试例程(含通信协议的实现)
- 中断方式实现发送数据串口驱动
- 单片机处理用串口接收频次较高的数据方式
- MFC单文档之串口通讯实现16进制数据的发送和接收
- STM32使用串口IDLE中断的两种接收不定长数据的方式
- 串口发送数据查询方式与中断方式
- STM32—无需中断来实现使用DMA接收串口数据(原创)
- s3c6410 s3c2440串口发送接收数据的实现(轮询)及相关寄存器
- 控制台下WinApi同步方式实现的串口发送数据
- C51:串口接收和发送,查询与中断方法
- 51单片机串口程序,字符串/16进制发送与接收
- upD79F8513A(NEC)或upD78F0511A(NEC)之串口0中断发送和接收数据
- STM32—无需中断来实现使用DMA接收串口数据(原创)
- WPF内实现与串口发送数据和接收数据