1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 单片机上位机下位机通信c语言 上位机和下位机通信的单片机程序

单片机上位机下位机通信c语言 上位机和下位机通信的单片机程序

时间:2018-10-01 23:00:03

相关推荐

单片机上位机下位机通信c语言 上位机和下位机通信的单片机程序

#include

#define SYSCLK 22118400 // 系统时钟频率22.1184MHz

#define BAUDRATE 115200 // BAUDRATE

#define TIMER2_RELOAD 0x0000

sfr16 RCAP2 = 0xCA;// Timer2 Reload Register

sfr16 TMR2 = 0xCC; // Timer2 Register

/*******************

振荡器初始化

********************/

void OSCILLATOR_Init (void)

{

int i;/*延时计数器*/

OSCXCN = 0x67; /*打开外部晶体振荡器*/

for (i=0; i < 256; i++) ; /*延时,等待振荡器启动(>1ms)*/

while (!(OSCXCN & 0x80)) ; /*查询外部晶体是否稳定起振*/

OSCICN = 0x88; /*用外部晶体作为系统时钟,并使能时钟丢失检测*/

}

/**************************************

端口的初始化

***************************************/

void PORT_Init()

{

XBR0 = 0x04; //使能UART0EN(XBAR0.2),p0.0=TX0,p0.1=RX0

XBR2 = 0x40; //XBARE置1

}

//-----------------------------------------------------------------------------

// UART0_Init

//-----------------------------------------------------------------------------

//

// Return Value : None

// Parameters : None

//

// Configure the UART1 using Timer1, for and 8-N-1.

//

//-----------------------------------------------------------------------------

void UART0_Init (void)

{

SCON0 = 0x50; // SCON0: mode 1, 8-bit UART, enable RX

TMOD = 0x21; // TMOD: timer 1, mode 2, 8-bit reload

TH1 = -(SYSCLK/BAUDRATE/16); // set Timer1 reload value for baudrate

TR1 = 1; // start Timer1

CKCON |= 0x10; // Timer1 uses SYSCLK as time base

PCON|= 0x90; // SMOD00 = 1

//TI0 = 1; // Indicate TX0 ready

}

void UART1_Init (void)

{

SCON1=0x50;

T4CON=0x34;

CKCON |= 0x50;

PCON|= 0x90;

TH4=0XFF;

TL4=0XFA;

RCAP4L=0XFA;

RCAP4H=0XFF;

}

/*

T0初始化

*/

void T1_initial(void)

{

TMOD=0x21;

//CKCON |= 0x08;

//TH0=0x70;

//TL0=0x00;

TH0=0x70;

TL0=0x00;

TR0=1;

}

/*

T2初始化

*/

void T2_initial(void)

……………………

…………限于本文篇幅 余下代码请从51黑下载附件…………

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。