129 lines
3.5 KiB
C
129 lines
3.5 KiB
C
|
|
#include "config.h"
|
|||
|
|
#include "gpio.h"
|
|||
|
|
#include "UART.h"
|
|||
|
|
#include "string.h"
|
|||
|
|
#include "UART_Set.h"
|
|||
|
|
#include "pwm_control.h"
|
|||
|
|
#include "Start_Init.h"
|
|||
|
|
#include "key.h"
|
|||
|
|
#include "WDT.h"
|
|||
|
|
/************* <09><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> **************
|
|||
|
|
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̻<EFBFBD><EFBFBD><EFBFBD>STC8H8K64UΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>оƬ<EFBFBD><EFBFBD>ʵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>8<EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>д<EFBFBD><EFBFBD><EFBFBD>ԣ<EFBFBD>STC8G<EFBFBD><EFBFBD>STC8Hϵ<EFBFBD><EFBFBD>оƬ<EFBFBD><EFBFBD>ͨ<EFBFBD>òο<EFBFBD>.
|
|||
|
|
|
|||
|
|
˫<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ˫<EFBFBD><EFBFBD><EFBFBD>жϷ<EFBFBD>ʽ<EFBFBD>շ<EFBFBD>ͨѶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
ͨ<EFBFBD><EFBFBD>PC<EFBFBD><EFBFBD>MCU<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, MCU<EFBFBD>յ<EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڰ<EFBFBD><EFBFBD>յ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, Ĭ<EFBFBD>ϲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʣ<EFBFBD>115200,N,8,1.
|
|||
|
|
|
|||
|
|
ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> UART.h ͷ<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> UART1~UART4 <EFBFBD><EFBFBD><EFBFBD>壬<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬͨ<EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD>š<EFBFBD>
|
|||
|
|
|
|||
|
|
<EFBFBD>ö<EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD>1Tģʽ(<EFBFBD><EFBFBD><EFBFBD>ǵͲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>12T)<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ɱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>Ƶ<EFBFBD>ʣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߾<EFBFBD><EFBFBD>ȡ<EFBFBD>
|
|||
|
|
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ, ѡ<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD> 22.1184MHz (<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>"config.h"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>).
|
|||
|
|
|
|||
|
|
|
|||
|
|
/******************* IO<49><4F><EFBFBD>ú<EFBFBD><C3BA><EFBFBD> *******************/
|
|||
|
|
|
|||
|
|
|
|||
|
|
void GPIO1_config(void)
|
|||
|
|
{
|
|||
|
|
GPIO_InitTypeDef GPIO_InitStructure; //<2F>ṹ<EFBFBD><E1B9B9><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
GPIO_InitStructure.Pin = GPIO_Pin_0 | GPIO_Pin_1; //ָ<><D6B8>Ҫ<EFBFBD><D2AA>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>IO, GPIO_Pin_0 ~ GPIO_Pin_7
|
|||
|
|
GPIO_InitStructure.Mode = GPIO_PullUp; //ָ<><D6B8>IO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ,GPIO_PullUp,GPIO_HighZ,GPIO_OUT_OD,GPIO_OUT_PP
|
|||
|
|
GPIO_Inilize(GPIO_P3,&GPIO_InitStructure); //<2F><>ʼ<EFBFBD><CABC>
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/*************** <20><><EFBFBD>ڳ<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *****************/
|
|||
|
|
void UART1_config(void)
|
|||
|
|
{
|
|||
|
|
COMx_InitDefine COMx_InitStructure; //<2F>ṹ<EFBFBD><E1B9B9><EFBFBD><EFBFBD>
|
|||
|
|
COMx_InitStructure.UART_Mode = UART_8bit_BRTx; //ģʽ, UART_ShiftRight,UART_8bit_BRTx,UART_9bit,UART_9bit_BRTx
|
|||
|
|
COMx_InitStructure.UART_BRT_Use = BRT_Timer1; //ʹ<>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD>, BRT_Timer1, BRT_Timer2 (ע<><D7A2>: <20><><EFBFBD><EFBFBD>2<EFBFBD>̶<EFBFBD>ʹ<EFBFBD><CAB9>BRT_Timer2)
|
|||
|
|
COMx_InitStructure.UART_BaudRate = 115200; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, һ<><D2BB> 110 ~ 115200
|
|||
|
|
COMx_InitStructure.UART_RxEnable = ENABLE; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, ENABLE<4C><45>DISABLE
|
|||
|
|
COMx_InitStructure.BaudRateDouble = DISABLE; //<2F><><EFBFBD><EFBFBD><EFBFBD>ʼӱ<CABC>, ENABLE<4C><45>DISABLE
|
|||
|
|
COMx_InitStructure.UART_Interrupt = ENABLE; //<2F>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>, ENABLE<4C><45>DISABLE
|
|||
|
|
COMx_InitStructure.UART_Priority = Priority_0; //ָ<><D6B8><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ȼ<EFBFBD>(<28>͵<EFBFBD><CDB5><EFBFBD>) Priority_0,Priority_1,Priority_2,Priority_3
|
|||
|
|
COMx_InitStructure.UART_P_SW = UART1_SW_P30_P31; //<2F>л<EFBFBD><D0BB>˿<EFBFBD>, UART1_SW_P30_P31,UART1_SW_P36_P37,UART1_SW_P16_P17,UART1_SW_P43_P44
|
|||
|
|
UART_Configuration(UART1, &COMx_InitStructure); //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1 UART1,UART2,UART3,UART4
|
|||
|
|
|
|||
|
|
//PrintString1("STC8H8K64U UART1 Test Programme!\r\n"); //UART1<54><31><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/********************WDT INT<4E><54><EFBFBD><EFBFBD> ********************/
|
|||
|
|
void WDT_config(void)
|
|||
|
|
{
|
|||
|
|
WDT_InitTypeDef WDT_InitStructure; //<2F>ṹ<EFBFBD><E1B9B9><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
WDT_InitStructure.WDT_Enable = ENABLE; //<2F>ж<EFBFBD>ʹ<EFBFBD><CAB9> ENABLE<4C><45>DISABLE
|
|||
|
|
WDT_InitStructure.WDT_IDLE_Mode = WDT_IDLE_STOP; //IDLEģʽ<C4A3>Ƿ<EFBFBD>ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD> WDT_IDLE_STOP,WDT_IDLE_RUN
|
|||
|
|
WDT_InitStructure.WDT_PS = WDT_SCALE_32; //<2F><><EFBFBD>Ź<EFBFBD><C5B9><EFBFBD>ʱ<EFBFBD><CAB1>ʱ<EFBFBD>ӷ<EFBFBD>Ƶϵ<C6B5><CFB5> WDT_SCALE_2,WDT_SCALE_4,WDT_SCALE_8,WDT_SCALE_16,WDT_SCALE_32,WDT_SCALE_64,WDT_SCALE_128,WDT_SCALE_256
|
|||
|
|
WDT_Inilize(&WDT_InitStructure); //<2F><>ʼ<EFBFBD><CABC>
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
u8 count_flag=0;
|
|||
|
|
void main(void)
|
|||
|
|
{
|
|||
|
|
GPIO_config();
|
|||
|
|
UART3_config();
|
|||
|
|
Start_Init();
|
|||
|
|
pwm_config();
|
|||
|
|
Timer2_Init_1ms();
|
|||
|
|
Key_Init();
|
|||
|
|
GPIO1_config();
|
|||
|
|
UART1_config();
|
|||
|
|
WDT_config(); //<2F><><EFBFBD>Ź<EFBFBD><C5B9><EFBFBD>629ms<6D><73>λ
|
|||
|
|
|
|||
|
|
PCON &= ~POF; //<2F><><EFBFBD><EFBFBD>LVD<56>жϱ<D0B6>־λ
|
|||
|
|
RSTCFG = 0x41; //LVD:2.4V<EFBFBD><EFBFBD>ѹ<EFBFBD><EFBFBD>λ
|
|||
|
|
EA = 1;
|
|||
|
|
|
|||
|
|
if(debug)
|
|||
|
|
{
|
|||
|
|
PrintString1("MCU Start");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
while (1)
|
|||
|
|
{
|
|||
|
|
WDT_Clear(); //<2F>幷
|
|||
|
|
count_flag++;
|
|||
|
|
|
|||
|
|
//Ϊ<>˱<EFBFBD>֤ij<D6A4><C4B3>ѹ2.2V<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
if(count_flag==1)
|
|||
|
|
{
|
|||
|
|
P10=1;
|
|||
|
|
}
|
|||
|
|
if(count_flag==8)
|
|||
|
|
{
|
|||
|
|
P10=0;
|
|||
|
|
}
|
|||
|
|
if(count_flag==10)
|
|||
|
|
{
|
|||
|
|
count_flag=0;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
Usart_judge_Data();
|
|||
|
|
|
|||
|
|
Usart_Deal_Data();
|
|||
|
|
|
|||
|
|
deal_command1();
|
|||
|
|
|
|||
|
|
deal_command2();
|
|||
|
|
|
|||
|
|
// checkpwm();
|
|||
|
|
|
|||
|
|
show_light();
|
|||
|
|
|
|||
|
|
Usart_answer();
|
|||
|
|
|
|||
|
|
Key_ScanTask();
|
|||
|
|
|
|||
|
|
KEY_TEST();
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|