⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sys_init.c

📁 基于c8051f020 ucos移植,己成功运行,在别人基础上做改进
💻 C
字号:
/**************************************
*                                     *                       
*									  *	
* inital system                       *
* auther: chen kaihua Sine Inc        *
**************************************/
#include "..\uc_os_II\includes.h"

/*****************************
* inital uart0 for printf and puts 
******************************/
void SerialInitial()
{
	      /* set TI to 1, set TR1 to 1 */
	SCON0 = 0x52;/* SM0 SM1 =1 SM2 REN TB8 RB8 TI RI */
	TMOD = 0x20;/* GATE=0 C/T-=0 M1 M0=2    GATE C/T- M1 M0 */
	TH1 = 0xE6;	/* TH1=E6 4800bit/s when at 24MHz,     TH1=F3,9600bit/s,24MHz */
	PCON = 0x80;  /* UART0 bode rate double(function 1--3) */
	TCON = 0x40;  /* 0100 0000  TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT */
}

void InterruptInitial()
{
	/* set timer. 50ms, THTL = 3caf when cpu at 12MHz */
	TMOD |= 0x01;       /*  T0 is 16conter */
	TH0 = 0x70;         /* tick = 50Hz   T = 0.02s */
	TL0 = 0x00;
	/* TR0 is set in OSStart()  Switch of T0 */
	ET0 = 1;
}

void F020Config(void)
{
    int i;
    WDTCN = 0x07;	// Watchdog Timer Control Register
    WDTCN = 0xDE;   // Disable WDT
    WDTCN = 0xAD;	

   	OSCICN    = 0x05;               /* internal oscillator  2MHz   */

    for (i=0; i < 256; i++) ;           // XTLVLD blanking interval (>1ms)

    CKCON  =    0xF8;                   /* All timer use system clock= crystal */
	XBR0      = 0x04;
    XBR2      = 0x44;

	P0MDOUT = 0x05; // Output configuration for P0 
    P1MDOUT = 0x00; // Output configuration for P1 
    P2MDOUT = 0x00; // Output configuration for P2 
    P3MDOUT = 0x00; // Output configuration for P3 
    P74OUT = 0x00;  // Output configuration for P4-7

    P1MDIN = 0xFF;  // Input configuration for P1
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -