天行健,君子以自强不息
分类: C/C++
2010-04-01 14:43:54
1、只发送
//采用方式一:波特率4800,晶振12M。一位起始位,8位数据位,和一位结束位。一帧数据有十位
#include "reg51.h"
#define uchar unsigned char #define uint unsigned int //延时程序//////////////////由Delay参数确定延迟时间*/
void mDelay(unsigned int Delay)
{ unsigned int i; for(;Delay>0;Delay--) { for(i=0;i<124;i++) {;} } } //////////////////// 主程序 //////////////////// void main()
{ uchar OutDat; //定义输出变量 TMOD=0x20; //TMOD=0 TH1=0xf3; //12MHZ ,BPS:4800,N,8,1,0xf3=243 TL1=0xf3; PCON=0x80; //方式一,8位数据位,一位起始位和一位结束位 TR1=1; //????????????????????????????? SCON=0x40; //串口通信控制寄存器 模式一 OutDat=0xaa; //向串口发送固定数据值 for(;;) //循环程序 { SBUF=OutDat;//发送数据 for(;;) { if(TI) //发送中断位 当发送停止位时置1,表示发送完成 break; } mDelay(500); TI=0; //清零中断位 //OutDat=~OutDat; //显示内容按位取反 } } |
2、将接收的数据发送出去 #include "reg51.h" //延时程序//////////////////由Delay参数确定延迟时间*/ void mDelay(unsigned int Delay) void main() TMOD=0x20; //TMOD=0
} void UART_SER (void) interrupt 4 //串行中断服务程序 |