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

📄 main.c

📁 单片机开发列程
💻 C
字号:
/****************************************Copyright (c)**************************************************
**                               广州周立功单片机发展有限公司
**                                 http://www.zlgmcu.com
**--------------文件信息--------------------------------------------------------------------------------
**文   件   名: Main.c
**创   建   人: 牛利峰
**最后修改日期: 2007年9月29日
**描        述: RAMTRON_DEMO板的演示程序,仅供参考
                程序开始先测试各个存储器模块,然后进入死循环,LED和按键的功能在Timer2
                中断中实现,按下某一键后,从UART0打印出相关信息,同时LED的闪烁方式发生变化
**--------------历史版本信息----------------------------------------------------------------------------
** 创建人: 牛利峰
** 版  本: 1.0
** 日 期: 2007年9月19日
** 描 述: 原始版本
********************************************************************************************************/

#include "Config.h"
/********************************************************************************************************
**函数名称:SysInit
**函数功能:根据需要初始化相关的外设,可通过"Config.h"中的宏定义控制
**输    入:无
**输    出:无
**全局变量:
**调用模块:
**作    者:牛利峰
**日    期:2007年9月29日
********************************************************************************************************/

//********************************************************************************************************/
//由于变量较多,用户使用紧凑模式或大模式编译即可
//另外,若I2C部分在使用中出现问题,可降低C51的优化程度
//********************************************************************************************************/
void SysInit(void)
{
    SysClockInit();                 //系统时钟设置
	//FRAMInit();                   //开放FRAM
    //---------------------------------------------------
    //各种外设的初始化操作
    //---------------------------------------------------
    #ifdef I2CTEST    
        I2CMasterInit();            //I2C主方式初始化
    #endif
    
    #ifdef UART0TEST
        UART0Config();              //配置串口0
    #endif
        
    #ifdef UART1TEST
        UART1Config();              //配置串口1       
    #endif
    
    #ifdef FM25L04TEST
        SPIInit();                  //SPI初始化
    #endif
    
    #ifdef FM18L08TEST
        MemInit();                  //内存初始化
    #endif
    
    #ifdef IOTEST
        IOInit();                   //端口设置
    #endif
    
    #ifdef T2INIT
        T2Init();                   //初始化定时器2
    #endif
    //---------------------------------------------------
}

/********************************************************************************************************
**函数名称:BoardTest
**函数功能:母板上的功能模块测试
**输    入:
**输    出:
********************************************************************************************************/
void BoardTest(void)
{
    //---------------------------------------------------
    //四个LED闪烁,延时
    //---------------------------------------------------
    #ifdef LEDTEST
        LEDON();
    #endif

    //---------------------------------------------------
    //测试开始,打印相关信息
    //---------------------------------------------------
    UART0_Printf("\n\n >>****************************** Test Begin ******************************<< \n");

    //---------------------------------------------------
    //UART1测试,向串口1打印信息
    //---------------------------------------------------
    #ifdef UART1TEST
        UART1Test();
    #endif

    //---------------------------------------------------
    //外部并行存储器FM18L08访问测试,每次读写256个字节
    //每次读写256字节数据,32K共需读写128次,每完成一次
    //输出一个点
    //---------------------------------------------------
    #ifdef FM18L08TEST
        FM18L08Test();
    #endif

    //---------------------------------------------------
    //SPI接口器件25L04读写测试
    //先产生512个随机数,然后将其写入FM25L04,再读回来
    //与写入的比较
    //---------------------------------------------------
    #ifdef FM25L04TEST
        FM25L04Test();
    #endif
    
    //---------------------------------------------------
    //I2C接口器件24CL04读写测试
    //先产生512个随机数,然后将其写入FM25L04,再读回来
    //与写入的比较
    //---------------------------------------------------
    #ifdef FM24CL04TEST
        FM24CL04Test();
    #endif

    //---------------------------------------------------
    //I2C接口器件FM3104的内部存储器读写测试
    //---------------------------------------------------
    #ifdef FM3104MEMTEST
        FM3104MemTest();
    #endif
    //---------------------------------------------------
    //测试完成,打印相关信息
    //---------------------------------------------------
    UART0_Printf("\n >>****************************** Test Over *******************************<< \n\n");
}
 
//***************************************************************************************
//系统主函数
//***************************************************************************************
void main (void) 
{    
    SysInit();          //系统初始化,必不可少
    BoardTest();        //测试外围器件

    #ifdef INTTEST
        INTInit();      //初始化中断,注意:需要等到测试完成才能开中断
    #endif

    while(1)
	{;}                 //LED和按键的处理都放在Timer2的定时中断里
} 
 

⌨️ 快捷键说明

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