<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > C8051F330串口UART0示例程序

C8051F330串口UART0示例程序

作者: 時(shí)間:2016-11-23 來(lái)源:網(wǎng)絡(luò ) 收藏

//****************************************************************************
// 功能:C8051F330串口UART0示例程序
//****************************************************************************
//使用F330,串口為P0.4(TX0),P0.5(RX0);
//-----------------------------------------------------------------------------
// UART0.c
//-----------------------------------------------------------------------------

本文引用地址:http://dyxdggzs.com/article/201611/320381.htm

//-----------------------------------------------------------------------------
// 所包含的頭文件
//------------------------------------------------------------------------
#include
//#include

//-----------------------------------------------------------------------------
// 常量定義
//-----------------------------------------------------------------------------
// 系統工作頻率
#define SYSCLK 24500000
// 串口工作波特率
#define BAUDRATE 9600

//-----------------------------------------------------------------------------
// 功能函數
//-----------------------------------------------------------------------------
void SYSCLK_Init(void);
void PORT_Init(void);
void UART0_Init(void);
void Uart0_Transmit(unsigned char tmp);
void sendstr(unsigned char*tmp);
unsigned char temp ;
void delay_1ms()
{
unsigned int j ;
for(j=3060;j>0;j--);
}
void delay_ms(unsigned int i)
{
for(;i>0;i--)delay_1ms();
}
//-----------------------------------------------------------------------------
// 主程序
//-----------------------------------------------------------------------------

void main(void)
{
PCA0MD&=~0x40 ;
// 禁止看門(mén)狗
PORT_Init();
// 初始化端口I/O
SYSCLK_Init();
// 初始化系統時(shí)鐘
UART0_Init();
// 串口初始化
EA=1 ;
ES0=1 ;
while(1)
{
delay_ms(1000);
sendstr("Welcome to Julys Hut!");
//Uart0_Transmit(0x00);
}
}

//-----------------------------------------------------------------------------
// 端口初始化
//-----------------------------------------------------------------------------
//
// 配置交叉開(kāi)關(guān)和通用IO
//
// P0.4 - UART TX0
// P0.5 - UART RX0

void PORT_Init(void)
{
P0MDOUT|=0x10 ;
// 使能 UTX 為推挽輸出
XBR0=0x01 ;
// 使能 UART0 占用 P0.4(TXD) 和 P0.5(RXD)
XBR1=0x40 ;
//使能交叉開(kāi)關(guān)
}

//-----------------------------------------------------------------------------
// 系統時(shí)鐘初始化
//-----------------------------------------------------------------------------
void SYSCLK_Init(void)
{
OSCICN|=0x03 ;
// 配置內部振蕩器的的最大頻率
RSTSRC=0x04 ;
// 使能始終丟失檢測寄存器
}

//-----------------------------------------------------------------------------
// 串口UART0初始化
//-----------------------------------------------------------------------------
void UART0_Init(void)
{
SCON0=0x10 ;
if(SYSCLK/BAUDRATE/2/256<1)
{
TH1=-(SYSCLK/BAUDRATE/2);
CKCON&=~0x0B ;
CKCON|=0x08 ;
}
else if(SYSCLK/BAUDRATE/2/256<4)
{
TH1=-(SYSCLK/BAUDRATE/2/4);
CKCON&=~0x0B ;
CKCON|=0x09 ;
}
else if(SYSCLK/BAUDRATE/2/256<12)
{
TH1=-(SYSCLK/BAUDRATE/2/12);
CKCON&=~0x0B ;
}
else
{
TH1=-(SYSCLK/BAUDRATE/2/48);
CKCON&=~0x0B ;
CKCON|=0x02 ;
}

TL1=TH1 ;
TMOD&=~0xf0 ;
TMOD|=0x20 ;
TR1=1 ;
// TI0 = 1;
}
//-----------------------------------------------------------
// 串口UART0中斷
//-----------------------------------------------------------
//中斷向量0x0023
void UATR0_ISR(void)interrupt 4
{
//Rx、Tx共用中斷
//接收中斷
if(!TI0)
{
RI0=0 ;
temp=SBUF0 ;
Uart0_Transmit(temp);
}
//發(fā)送中斷
else TI0=0 ;
}
//-----------------------------------------------------------
// 串口UART0發(fā)送
//-----------------------------------------------------------
void Uart0_Transmit(unsigned char tmp)
{
ES0=0 ;
//關(guān)UART0中斷
EA=0 ;
//關(guān)全局中斷
SBUF0=tmp ;
while(TI0==0);
//TI0=0 ;
ES0=1 ;
//開(kāi)UART0中斷
EA=1 ;
//開(kāi)全局中斷

}
//-----------------------------------------------------------
// 發(fā)送字符串
//-----------------------------------------------------------
void sendstr(unsigned char*tmp)
{
while(*tmp)
{
Uart0_Transmit(*tmp++);
}
}



關(guān)鍵詞: C8051F330串口UART

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>