?? usbuart0.c
字號:
//使用F350,串口為P0.4,P0.5;
//-----------------------------------------------------------------------------
// 所包含的頭文件
//------------------------------------------------------------------------
#include <c8051f350.h>
#include <stdio.h>
//-----------------------------------------------------------------------------
// 常量定義
//-----------------------------------------------------------------------------
#define SYSCLK 24500000 // 系統工作頻率
#define BAUDRATE 9600 // 串口工作波特率
//-----------------------------------------------------------------------------
// F35x’定時器2的16位SFR
//-----------------------------------------------------------------------------
sfr16 TMR2RL = 0xca;
sfr16 TMR2 = 0xcc;
//-----------------------------------------------------------------------------
// 功能函數
//-----------------------------------------------------------------------------
void SYSCLK_Init (void);
void PORT_Init (void);
void UART0_Init (void);
void UART0_ISR (void);
bit ReceiveBit;
unsigned char temp;
/*延時程序*/
void delay(unsigned int m)
{
unsigned int n;
n=0;
while(n<m)
{n++;}
return;
}
//-----------------------------------------------------------------------------
// 主程序
//-----------------------------------------------------------------------------
void main (void) {
unsigned char i;
PCA0MD &= ~0x40; // 禁止看門狗
ReceiveBit=0;
PORT_Init(); // 初始化端口I/O
SYSCLK_Init (); // 初始化系統時鐘
UART0_Init(); // 串口初始化
EA=1;
ES0=1;
while(1)
{
while(ReceiveBit==1)
{
ES0=0;
EA=0;
ReceiveBit=0;
delay(60000);
delay(60000);
delay(60000);
SBUF0=temp;
while(TI0==0);
TI0=0;
delay(60000);
delay(60000);
delay(60000);
ES0=1;
EA=1;
}
}
}
//-----------------------------------------------------------------------------
// 端口初始化
//-----------------------------------------------------------------------------
//
// Configure the Crossbar and GPIO ports.
//
// P0.4 - UART TX
// P0.5 - UART RX
void PORT_Init (void)
{
P0SKIP |= 0x01;
P0MDIN |= 0x01; // 配置P0.0為模擬出入
P0MDOUT |= 0x10; // 使能 UTX 為推挽輸出
P1MDOUT |= 0x08; // 使能 LED 為推挽輸出
XBR0 = 0x01; // 使能 UART on P0.4(TX) and P0.5
XBR1 = 0x40;
}
//-----------------------------------------------------------------------------
// 系統時鐘初始化
//-----------------------------------------------------------------------------
void SYSCLK_Init (void)
{
OSCICN |= 0x03; // 配置內部振蕩器的的最大頻率
RSTSRC = 0x04; // 使能始終丟失檢測寄存器
}
//-----------------------------------------------------------------------------
// 串口初始化
//-----------------------------------------------------------------------------
void UART0_Init (void)
{
SCON0 = 0x10;
CKCON = 0x80;
TMOD = 0x20;
TH1=0X96;
TR1 = 1;
}
//-----------------------------------------------------------------------------
// 時鐘2中斷
//-----------------------------------------------------------------------------
void UART0_ISR (void) interrupt 4
{if(!TI0)
{
RI0=0;
temp=SBUF0;
ReceiveBit=1;
}
TI0=0;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -