標(biāo)題:
上位機和下位機通信的單片機程序
[打印本頁]
作者:
tdcqabc
時間:
2017-11-13 21:15
標(biāo)題:
上位機和下位機通信的單片機程序
上位機和下位機通信的程序
單片機源程序如下:
#include <c8051f020.h>
#define SYSCLK 22118400 // 系統(tǒng)時鐘頻率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; /*延時計數(shù)器*/
OSCXCN = 0x67; /*打開外部晶體振蕩器*/
for (i=0; i < 256; i++) ; /*延時,等待振蕩器啟動(>1ms)*/
while (!(OSCXCN & 0x80)) ; /*查詢外部晶體是否穩(wěn)定起振*/
OSCICN = 0x88; /*用外部晶體作為系統(tǒng)時鐘,并使能時鐘丟失檢測*/
}
/**************************************
端口的初始化
***************************************/
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 <baudrate> 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黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
程序.rar
(94.64 KB, 下載次數(shù): 35)
2017-11-13 21:15 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1