標(biāo)題:
C8051F020串口通訊 IO口測(cè)試 流水燈閃爍燈等實(shí)例程序
[打印本頁(yè)]
作者:
helin_hbqy
時(shí)間:
2019-3-11 14:02
標(biāo)題:
C8051F020串口通訊 IO口測(cè)試 流水燈閃爍燈等實(shí)例程序
C8051F020實(shí)例
0.png
(4.54 KB, 下載次數(shù): 57)
下載附件
2019-3-11 23:01 上傳
單片機(jī)源程序如下:
/********************************************************************************************************************************************
/*** C8051F120開發(fā)板實(shí)驗(yàn): 5. 串口通訊實(shí)驗(yàn)
/***
/*** 說(shuō)明: 本實(shí)驗(yàn)采用UART0輸出數(shù)據(jù)到PC機(jī) 實(shí)驗(yàn)時(shí)將跳線帽接至+3V 復(fù)位一次,單片機(jī)發(fā)送256個(gè)數(shù)據(jù) 波特率為115200
/*** 推薦使用本店EC5進(jìn)行下載和調(diào)試
/*** 開發(fā)環(huán)境: C8051F120最小系統(tǒng)板、EC5調(diào)試器、Keil uVision2
*********************************************************************************************************************************************/
#include <c8051f120.h>
#define uchar unsigned char
#define uint unsigned int
#define SYSCLK 100000000UL // SYSCLK frequency in Hz
#define BAUDRATE 115200 // Baud rate of UART in bps
sfr16 RCAP2 = 0xCA; /* TIMER 2 CAPTURE REGISTER - LOW BYTE */
sfr16 TMR2 = 0xCC; /* TIMER 2 - LOW BYTE */
void SYSCLK_Init();
void PORT_Init();
void UART0_Init();
void SYSCLK_Init()
{
uint i = 0;
SFRPAGE = CONFIG_PAGE;
OSCXCN = 0x67;
for (i = 0; i < 3000; i++); // Wait 1ms for initialization
while ((OSCXCN & 0x80) == 0);
PLL0CN = 0x04;
CCH0CN &= ~0x20;
SFRPAGE = LEGACY_PAGE;
FLSCL = 0xB0;
SFRPAGE = CONFIG_PAGE;
CCH0CN |= 0x20;
PLL0CN |= 0x01;
PLL0DIV = 0x01;
PLL0FLT = 0x01;
PLL0MUL = 0x04; // 4倍倍頻 -> 100MHz
for (i = 0; i < 15; i++); // Wait 5us for initialization
PLL0CN |= 0x02;
while ((PLL0CN & 0x10) == 0);
CLKSEL = 0x02;
}
void PORT_Init()
{
SFRPAGE = CONFIG_PAGE; // 寄存器頁(yè)配置
XBR0 = 0x04; // RART0: EN
XBR2 = 0x40; // 全局弱上拉使能
P0MDOUT = 0xFF;
}
void UART0_Init()
{
uchar SFRPAGE_SAVE = SFRPAGE;
SFRPAGE = UART0_PAGE;
SCON0 = 0x50; // SCON0: mode 1, 8-bit UART, enable RX
SSTA0 = 0x15;
SFRPAGE = TMR2_PAGE;
TMR2CN = 0x00;
TMR2CF = 0x08;
RCAP2 = -((uint)(SYSCLK / BAUDRATE) >> 4);
TMR2 = RCAP2;
TR2 = 1;
EA = 1;
SFRPAGE = SFRPAGE_SAVE;
}
void main()
{
uchar SFRPAGE_SAVE;
uint i;
WDTCN=0XDE;
WDTCN=0XAD;
SYSCLK_Init();
PORT_Init();
UART0_Init();
for(i=0;i<256;i++)
{
SFRPAGE = UART0_PAGE;
SBUF0=i;
while(!TI0);
TI0=0;
SFRPAGE = SFRPAGE_SAVE;
}
while(1);
}
復(fù)制代碼
所有資料51hei提供下載:
C8051F120例程.rar
(59.57 KB, 下載次數(shù): 34)
2019-3-11 14:01 上傳
點(diǎn)擊文件名下載附件
C8051F020
下載積分: 黑幣 -5
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1