main.c

来自「STC51系列的源码」· C语言 代码 · 共 94 行

C
94
字号
/********************************************************************************/
/* filename : MAIN.c                                                            */
/* created  : xillinx                                                           */
/* descript : 系统的C函数入口                                                   */
/********************************************************************************/
#include "../CPU/CPU.h"
#include "../CFG/CFG.h"
#include "../PCC/PCC.h"
#include "../UART/UART.h"
#include "../LED/LED.h"
#include "../SEG7/SEG7.h"
#include "../HC595/HC595.h"
#include "../ADC0832/ADC0832.h"

unsigned int  system_timer =0x00;    //* 这是系统需要的定时器变量
unsigned char ADC0832_mflag=0x0;

/********************************************************************************/
/* funname : MAIN_adc0832_hook()                                                */
/* created : xillinx                                                            */
/* time    : 2008-08-06                                                         */
/* descript: ADC0832启动转换HOOK函数                                            */
/********************************************************************************/
void MAIN_adc0832_hook(void)
{   ADC0832_mflag=0x1;
}


/********************************************************************************/
/* funname : MAIN_pcc_adc0832()                                                 */
/* created : xillinx                                                            */
/* time    : 2008-08-06                                                         */
/* descript: ADC0832调试输出                                                    */
/********************************************************************************/
void MAIN_pcc_adc0832(void)
{   unsigned char mdata;
    if(ADC0832_mflag==0x0)
    {   return;
    }
    ADC0832_mflag=0x0;
    mdata=(int)ADC_read_channel(0x0);
    PCC_send_mdata('A',&mdata,0x1);
    return;
}

/********************************************************************************/
/* fun_name : MAIN_interrupt_hook_process()                                     */
/* version  : v1.00                                                             */
/* created  : xillinx                                                           */
/* descript : 定时器钩子函数的处理,如果需要使用这些函数,需要重新挂接,如果不需要 */
/*  不需要做任何事情                                                            */
/********************************************************************************/
void MAIN_interrupt_hook_process (void)
{   CPU_001_tick_process = CPU_interrupt_proc_null; //* 定时器钩子函数的缺省处理,如果需要使用这些函数,需要重新挂接
    CPU_002_tick_process = CPU_interrupt_proc_null;
    CPU_004_tick_process = CPU_interrupt_proc_null;
    CPU_008_tick_process = CPU_interrupt_proc_null;
    CPU_010_tick_process = CPU_interrupt_proc_null;
    CPU_020_tick_process = CPU_interrupt_proc_null;
    CPU_040_tick_process = CPU_interrupt_proc_null;
    CPU_080_tick_process = CPU_interrupt_proc_null;
    CPU_100_tick_process = CPU_interrupt_proc_null;
    CPU_200_tick_process = CPU_interrupt_proc_null; //* 2x 512MS=1024MS
    CPU_400_tick_process = CPU_interrupt_proc_null; //* 2x1024MS=2048MS
    CPU_extern_0_process = CPU_interrupt_proc_null;
    CPU_extern_1_process = CPU_interrupt_proc_null;
    CPU_timer_02_process = CPU_interrupt_proc_null;
                                                    //* 重新挂接HOOK函数
    CPU_001_tick_process = HC595_refresh;           //* 2MS
    CPU_080_tick_process = LED_refresh;             //* 128x2=256MS
    CPU_100_tick_process = MAIN_adc0832_hook;       //* 512MS钟启动一次转换
}

/********************************************************************************/
/* function : main()                                                            */
/* recension: xillinx                                                           */
/* descript : 主函数入口                                                        */
/********************************************************************************/
void main (void)
{   unsigned int delax=0x8000;
    while(delax--)
    {   ;
    }
    UART_buffer_initilize();
    MAIN_interrupt_hook_process();      //* CPU的挂接函数处理
    CPU_source_initialize();            //* 控制CPU的资源
    SEG7_clear_screen();
    SEG7_printf_ascii("568912.567");    //* 测试七段数码管
    while(1) 
    {   MAIN_pcc_adc0832();
    }
}

⌨️ 快捷键说明

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