C8051F020實例
0.png (4.54 KB, 下載次數: 57)
下載附件
2019-3-11 23:01 上傳
單片機源程序如下:
-
- /********************************************************************************************************************************************
- /*** C8051F120開發板實驗: 5. 串口通訊實驗
- /***
- /*** 說明: 本實驗采用UART0輸出數據到PC機 實驗時將跳線帽接至+3V 復位一次,單片機發送256個數據 波特率為115200
- /*** 推薦使用本店EC5進行下載和調試
- /*** 開發環境: C8051F120最小系統板、EC5調試器、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; // 寄存器頁配置
- 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);
- }
復制代碼
所有資料51hei提供下載:
C8051F120例程.rar
(59.57 KB, 下載次數: 34)
2019-3-11 14:01 上傳
點擊文件名下載附件
C8051F020 下載積分: 黑幣 -5
|