/********函数声明********/voidSYSCLK_Init(void);//*单片机时钟初始化voidPORT_Init(vo"> /********函数声明********/voidSYSCLK_Init(void);//*单片机时钟初始化voidPORT_Init(vo" />
欢迎来到天天文库
浏览记录
ID:51697773
大小:39.95 KB
页数:5页
时间:2020-03-15
《串口通信c语言程序.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、串口通信c语言程序#include"c8051f020.h"#include/********函数声明********/voidSYSCLK_Init(void);//*单片机时钟初始化voidPORT_Init(void);//初始化IO口voidUart0_Init(void);//串口0初始化//****变量及I/O口定义*********unsignedchardataaaa[5]_at_0x30;unsignedchardataBBB[5]_at_0x40;unsignedcharda
2、taEEE_at_0x50;intk;//*********单片机时钟初始化***********//voidSYSCLK_Init(void){inti;//delaycounterOSCXCN=0x65;//startexternaloscillatorwith//18.432MHzcrystalfor(i=0;i<256;i++);//Waitforosc.tostartupwhile(!(OSCXCN&0x80));//Waitforcrystalosc.tosettleOSCICN=0x88;//selec
3、texternaloscillatorasSYSCLK//sourceandenablemissingclock//detector}//***************//初始化IO口*************************//voidPORT_Init(void){XBR0=0x07;//EnableSMBus,SPI0,andUART0XBR1=0x02;//交叉开关允许XBR2=0x40;//EnablecrossbarandweakP74OUT=0x04;pull-ups}//***********
4、****串口0初始化**************//voidUart0_Init(void){TMOD=0x20;//TMOD:定时器1,模式2,8位重载SCON0=0x40;//SCON0:模式1,8位UART,PCON=0x80;//SMOD00=1TH1=0x70;TL1=0x70;CKCON=0x10;//T1时钟为系统时钟12分频TR1=1;//计数器1开始计时,打开串口Uart0}//************主程序****************************//voidmain(void){W
5、DTCN=0xde;WDTCN=0xad;//关看门狗SYSCLK_Init();//初始化时钟PORT_Init();//初始化IO口Uart0_Init();//串口0初始化aaa[0]=0x011;aaa[1]=0x022;aaa[2]=0x033;aaa[3]=0x044;aaa[4]=0x055;aaa[5]=0x066;P5=0x40;//485发送for(k=0;k<=5;k++){SBUF0=aaa[k];while(TI0!=1);TI0=0;}P5=0x0;//485接收REN0=1;for(k=
6、0;k<=5;k++){while(RI0!=1);RI0=0;BBB[k]=SBUF0;}while(1);}
此文档下载收益归作者所有