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

📄 main.c

📁 西安明朗公司开发板ML-F020ICB的全部测试代码
💻 C
字号:
/************************************************************************************
*  Copyright (c), 2004-2007,西安铭朗电子科技有限责任公司
*            All rights reserved.
*
* Http:  www.mlarm.com
* Email: mlarm@mlarm.com
*
* File name: main.c
* Project  : ML-F020ICB
* Processor: C8051F020
* Compiler : Keil C51 Compiler
* 
* Author:  李林利
* Version: 1.20
* Date:    2007.6.1
* Email:   GavinLi@126.com
* 
* Description: 本文件是主程序模块,完成系统初始化及程序主循环;
*
* Others: none;
*
* Function List:
*	1. void Send_Data(long value)			
*   2. void Sys_Init(void)
*   3. void main (void)
*
* History:
*   1. Author:       李林利  
*	   Version: 	 1.10
*	   Date:         2007.3.12
*      Modification: none
*
*   2. Author:       李林利
*	   Version: 	 1.00
*      Date:         2004.11.24
*      Modification: 建立文件
*
*************************************************************************************/


/************************************************************************************/
// 引用外部头文件
#include  "..\config\C8051f020.h"
#include  "..\config\Const.h"

#include  "..\driver\uart.h"
#include  "..\driver\system.h"
#include  "..\driver\delay.h"
#include  "..\driver\other.h"
#include  "main.h"
#include  "IO_Example.h"
#include  "IOG_Example.h"
#include  "XRAM_Example.h"
#include  "EXBUS_Example.h"
#include  "Tmp_Example.h"
#include  "Key_Example.h"
#include  "AD_Example.h"
#include  "DAC_Example.h"
//#include  "LCDB_Example.h"
#include  "LCDA_Example.h"
#include  "RTC_Example.h"
#include  "Printer_Example.h"

/************************************************************************************/

/************************************************************************************
// 常量及全局变量定义
*************************************************************************************/
#define  CMD_IO 		'A'
#define  CMD_IOG 		'B'
#define  CMD_KEY		'C'
#define  CMD_IFLASH		'D'
#define  CMD_FLASH		'E'
#define  CMD_EEPROM		'F'
#define  CMD_RTC		'G'
#define  CMD_DAC		'H'
#define  CMD_AD			'I'
#define  CMD_LCDA		'J'
#define  CMD_LCDB		'K'
#define  CMD_TMP		'L'
#define  CMD_RS485		'M'
#define  CMD_GB2312		'N'
#define  CMD_EXBUS		'O'
#define  CMD_XRAM		'P'
#define  CMD_PRINTER	'Q'

unsigned long code X10[10] ={1,10,100,1000,10000,100000,1000000,10000000,100000000,1000000000};

/***********************************************************************************
* Function: Send_Data;
*
* Description: 发送数据;
*              
* Input:  none;
*
* Return: none;
*
* Note:   none;
************************************************************************************/
void Send_Data(long value)
{
	char i,id;
	bool flag;	
	unsigned char j,data_buf[20];
	
	id = 0;

	if (value<0)
	{
		data_buf[id++] = '-';
		value = ~value + 1;
	}
	
	flag = TRUE;
	for (i=9; i>=0; i--)
	{
		if (flag)
		{
			if ((value/X10[i])>0)
			{
				flag = FALSE;
				data_buf[id++] = 0x30+(unsigned char)(value/X10[i]);
			}				
		}
		else
				data_buf[id++] = 0x30+(unsigned char)(value%X10[i+1]/X10[i]);
	}
	
	if (flag)
		data_buf[id++] = 0x30;

	Uart0_SendBlock(data_buf,id,&j);
}

/***********************************************************************************
* Function: Sys_Init;
*
* Description: 系统初始化;
*              
* Input:  none;
*
* Return: none;
*
* Note:   none;
************************************************************************************/
void Sys_Init(void)
{
	Wachdog_Disable();	// 关闭看门狗 

   	Sysclk_Init(); 	// 系统时钟初始化,使用外部22.1184MHz晶振作为时钟源
	SysPort_Init();

	Uart0_Init(0,115200);	//Uart0 初始化函数,波特率是115200,使用定时器1作为时钟,允许发送和接收中断
	Uart1_Init(0,115200);	//Uart1 初始化函数,波特率是115200,使用定时器1作为时钟,允许发送和接收中断
	
	ENABLE_INTERRUPTS;		// enable global interrupts	
}

/***********************************************************************************
* Function: main;
*
* Description: 主程序模块,完成系统初始化及程序主循环;
*              
* Input:  none;
*
* Return: none;
*
* Note:   none;
************************************************************************************/
void main (void) 
{
	unsigned char cmd;
	
    Sys_Init();	
	
	LED_Display(TRUE);
	ALARM_Ctrl(TRUE);
	Delay_ms(200);
	LED_Display(FALSE);
	ALARM_Ctrl(FALSE);

    ENABLE_INTERRUPTS;
	while (1) 
	{           
		LED_Display(TRUE);
		//ALARM_Ctrl(TRUE);
		Delay_ms(100);
		//ALARM_DIS;
		LED_Display(FALSE);
		//ALARM_Ctrl(FALSE);
		Delay_ms(100);
		EWachdog_Clear();

		
/*
		cmd = 0;
		if (Uart0_GetCharsRxBuf()>0)
		{
			Uart0_RecvChar(&cmd);
            rx0_len++;
			if(cmd=='@')
			{	tx0_len = 0;
				rx0_len = 0;
			}
			else if (Uart0_GetCharsTxBuf()>0)
			{
			    Uart0_SendChar(cmd);
				tx0_len++;
			}
		}

		
		if (Uart1_GetCharsRxBuf()>0)
		{
			Uart1_RecvChar(&cmd);
			Uart1_SendChar(cmd);
		}
*/

        cmd = 0;
		if (Uart0_GetCharsRxBuf()>0)
		{
			Uart0_RecvChar(&cmd);
            if (Uart0_GetCharsTxBuf()>0)
			    Uart0_SendChar(cmd);			
		}
		
		switch (cmd)
        {
	         case CMD_IO:
            	  IO_Proc();
		  	 break;

    	     case CMD_IOG:
             	  IOG_Proc();
			 break;

         	 case CMD_KEY:
			 	Key_Proc();
             break;
			
			 case CMD_IFLASH:
			 	IFlash_Proc();
             break;

			 case CMD_FLASH:
			 	 Flash_Proc();
             break;

			 case CMD_EEPROM:
			 	EEPROM_Proc();
             break;

			 case CMD_RTC:
			 	RTC_Proc();
             break;

			 case CMD_DAC:
			 	DAC_Proc();
             break;
			 case CMD_AD:
			 	 AD_Proc();
             break;

			 case CMD_LCDA:
			 	LCDA_Proc();
             break;

			 case CMD_LCDB:
			 	LCDB_Proc();
             break;

			 case CMD_TMP:
			 	TMP_Proc();
			 break;

			 case CMD_RS485:
			 	//RS485_Proc();
			 break;

			 case CMD_EXBUS:
			 	EXBUS_Proc();
			 break;

			 case CMD_GB2312:
			 	//GB2312_Proc();
			 break;

			 case CMD_XRAM:
			 	XRAM_Proc();
			 break;
			 
             case CMD_PRINTER:
			 	Printer_Proc();
			 break;
         	 default:
             break;
      	}
	}
}

/***********************************************************************************/
// 文件结束
/***********************************************************************************/

⌨️ 快捷键说明

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