📄 main.c
字号:
/******************************************************************************
* Main.C
******************************************************************************/
#include <REG_MPC82G516.h>
#include "Delay.h"
#include <Ap_tw2835.h>
//uart define
#define BAUDRATE B_19200//B_230400
#define B_2400 0
#define B_4800 1
#define B_9600 2
#define B_19200 3
#define B_38400 4
#define B_57600 5
#define B_115200 6
#define B_230400 7
void Init_Uart(void);
void Transbuffclr(void);
void TranSmitNow(void);
void Receivebuffclr(void);
void ReceiveNow(void);
void R_FUN_WORK(void);
void IRQ_CHECK(void);
#define LED_Y P12 //Yellow
#define LED_G P13 //Green
#define LED_R P14 //Red
#define LED_O P15 //Orange
void LED_blinking(void);
void LED_Y_on(void);
void LED_Y_off(void);
void LED_G_on(void);
void LED_G_off(void);
void LED_R_on(void);
void LED_R_off(void);
void LED_O_on(void);
void LED_O_off(void);
void test_SFR(void);
void reset_SFR(void);
void init_timer0(void);
void Init_Uart_12(void);
void InitComms(void);
extern void MotionSelectAreaFlash(void);
//global variables
//unsigned char data G_array1[16] _at_ 0x60; //in 'data' space
//unsigned char idata G_array2[16] _at_ 0x80; //in 'idata' space
//unsigned char xdata G_array3[512] _at_ 0x0000; //in 'xdata' space, use on-chip XRAM
//unsigned char xdata G_array4[512] _at_ 0x0000; //in 'xdata' space, use external RAM
//unsigned char G_var1;
//unsigned int G_var2;
///ram define
unsigned char S_TMOD=0;
unsigned char Transmitbuff[32] ={'F','U','C','K',0x0d,0x0a};
unsigned char Receiveff[32] =0;
unsigned char TranSwitch = 0;
unsigned char Rec_timout = 0;
unsigned char Rec_over = 0;
unsigned char RecCNT=0;
unsigned char RecFUNWK=0;
unsigned char TimCnt_500ms = 0;
BOOL MotionSettingMode = FALSE;
extern BOOL IndexPartToggle;
extern BOOL Flg_MotionStart;
/******************************************************************************/
unsigned char sec32ms=0;
//unsigned char UP32ms=0;
void main(void)
{
test_SFR();
reset_SFR();
// X_var1=0x00;
// X_var2=0x00;
// for(i=0;i<16;i++){
// G_array1[i]=0x00;
// }
// for(i=0;i<16;i++){
// G_array2[i]=0x00;
// }
// AUXR&=0xFD; //clear AUXR.1 for on-chip XRAM
// for(j=0;j<512;j++){
// G_array3[j]=0x00;
// }
// AUXR|=0x02; //set AUXR.1 for ext. RAM
// for(j=0;j<512;j++){
// G_array4[j]=0x00;
// }
// Init_Uart_12();
init_timer0();
InitComms();
// TH1=0xf4; //Set UART to operate at buad rate 9600
// TL1=0xf4;
// TR1 =1; //Start Timer1
TMOD = S_TMOD;
main_111();
delay_ms(200);
delay_ms(200);
delay_ms(200);
delay_ms(200);
delay_ms(200);
Ap_channel_select(2);
while(1);
while(1)
{
TMOD = S_TMOD;
PCON |= 0x01;
//LED_blinking();
//delay_ms(10);
/*
if(UP32ms == 1)
{
if(sec32ms)
{
sec32ms=0;
LED_Y_on();
}
else
{
sec32ms=1;
LED_Y_off();
}
UP32ms = 0;
}
*/
TranSmitNow();
ReceiveNow();
R_FUN_WORK();
MotionSelectAreaFlash();
IRQ_CHECK();
}
}
//-----------------------------------------------------------------------------
void LED_blinking(void)
{
unsigned char i;
for(i=0;i<3;i++){
LED_Y_on();
LED_G_on();
LED_R_on();
LED_O_on();
delay_ms(200);
LED_Y_off();
LED_G_off();
LED_R_off();
LED_O_off();
delay_ms(200);
}
}
//-----------------------------------------------------------------------------
void LED_Y_on(void)
{
LED_Y=0;
}
void LED_Y_off()
{
LED_Y=1;
}
void LED_G_on()
{
LED_G=0;
}
void LED_G_off()
{
LED_G=1;
}
void LED_R_on()
{
LED_R=0;
}
void LED_R_off()
{
LED_R=1;
}
void LED_O_on()
{
LED_O=0;
}
void LED_O_off()
{
LED_O=1;
}
//-----------------------------------------------------------------------------
void test_SFR(void)
{
char tmp;
// System
ACC = 0x5A;
B = 0xA5;
DPL = 0x34;
DPH = 0x12;
PSW = 0xAA;
tmp=SP;
SP=0x8C;
SP=tmp;
// Interrupt
IE = 0x3B;
AUXIE = 0x36;
XICON = 0xC0;
IP = 0x17;
IPH = 0x63;
AUXIP = 0x2A;
AUXIPH = 0x19;
// I/O Port
P0 = 0x50;
P1 = 0x51;
P2 = 0x52;
P3 = 0x53;
P4 = 0x54;
P0M0 = 0x02;
P0M1 = 0x01;
P1M0 = 0x12;
P1M1 = 0x11;
P2M0 = 0x22;
P2M1 = 0x21;
P3M0 = 0x32;
P3M1 = 0x31;
P4M0 = 0x42;
P4M1 = 0x41;
// Timer
TCON = 0xA3;
TMOD = 0x8F;
T2CON = 0x4B;
T2MOD = 0x01;
RCAP2L = 0xF7;
RCAP2H = 0xF6;
TL0 = 0xC1;
TH0 = 0xC0;
TL1 = 0xD3;
TH1 = 0xD2;
TL2 = 0xE5;
TH2 = 0xE4;
// Serial Port
SCON = 0x7E;
SBUF = 0x95;
SADDR = 0x30;
SADEN = 0x52;
S2CON = 0x81;
S2BRT = 0x37;
S2BUF = 0xB9;
// ADC
ADCTL = 0x64;
ADCH = 0x91;
ADCL = 0x92;
// Keypad Interrupt
KBCON = 0x02;
KBPATN = 0xB1;
KBMASK = 0xB2;
// SPI
SPSTAT = 0x80;
SPCTL = 0x31;
SPDAT = 0x32;
// PCA
CCON = 0x95;
CMOD = 0x06;
CL = 0xC2;
CH = 0xC1;
CCAPM0 = 0x20;
CCAPM1 = 0x21;
CCAPM2 = 0x22;
CCAPM3 = 0x23;
CCAPM4 = 0x24;
CCAPM5 = 0x25;
CCAP0L = 0x02;
CCAP0H = 0x01;
CCAP1L = 0x14;
CCAP1H = 0x13;
CCAP2L = 0x26;
CCAP2H = 0x25;
CCAP3L = 0x38;
CCAP3H = 0x37;
CCAP4L = 0x4A;
CCAP4H = 0x49;
CCAP5L = 0x5C;
CCAP5H = 0x5B;
PCAPWM0= 0x01;
PCAPWM1= 0x02;
PCAPWM2= 0x03;
PCAPWM3= 0x01;
PCAPWM4= 0x02;
PCAPWM5= 0x03;
// Others
PCON = 0xC8;
AUXR = 0x42;
AUXR1 = 0x39;
AUXR2 = 0x64;
WDTCR = 0x04;
STRETCH= 0x15;
EVRCR = 0x00;
PCON2 = 0x02;
PCON2 = 0x04;
PCON2 = 0x00;
// ISP
IFD = 0xD2;
IFADRH = 0xD3;
IFADRL = 0xD4;
IFMT = 0xD5;
SCMD = 0xD6;
ISPCR = 0x43;
}
//-----------------------------------------------------------------------------
void reset_SFR(void)
{
// System
ACC = 0x00;
B = 0x00;
DPH = 0x00;
DPL = 0x00;
PSW = 0x00;
// Interrupt
IE = 0x00;
AUXIE = 0x00;
XICON = 0x00;
IP = 0x00;
IPH = 0x00;
AUXIP = 0x00;
AUXIPH = 0x00;
// I/O Port
P0 = 0xFF;
P1 = 0xFF;
P2 = 0xFF;
P3 = 0xFF;
P4 = 0xFF;
P0M1 = 0x00;
P0M0 = 0x00;
P1M1 = 0x00;
P1M0 = 0x00;
P2M1 = 0x00;
P2M0 = 0x00;
P3M1 = 0x00;
P3M0 = 0x00;
P4M1 = 0x00;
P4M0 = 0x00;
// Timer
TCON = 0x00;
TMOD = 0x00;
T2CON = 0x00;
T2MOD = 0x00;
RCAP2L = 0x00;
RCAP2H = 0x00;
TH0 = 0x00;
TL0 = 0x00;
TH1 = 0x00;
TL1 = 0x00;
TH2 = 0x00;
TL2 = 0x00;
// Serial Port
SCON = 0x00;
SBUF = 0x00;
SADDR = 0x00;
SADEN = 0x00;
S2CON = 0x00;
S2BRT = 0x00;
S2BUF = 0x00;
// ADC
ADCTL = 0x00;
ADCH = 0x00;
ADCL = 0x00;
// Keypad Interrupt
KBCON = 0x00;
KBPATN = 0x00;
KBMASK = 0x00;
// SPI
SPSTAT = 0x00;
SPCTL = 0x00;
SPDAT = 0x00;
// PCA
CCON = 0x00;
CMOD = 0x00;
CL = 0x00;
CH = 0x00;
CCAPM0 = 0x00;
CCAPM1 = 0x00;
CCAPM2 = 0x00;
CCAPM3 = 0x00;
CCAPM4 = 0x00;
CCAPM5 = 0x00;
CCAP0L = 0x00;
CCAP0H = 0x00;
CCAP1L = 0x00;
CCAP1H = 0x00;
CCAP2L = 0x00;
CCAP2H = 0x00;
CCAP3L = 0x00;
CCAP3H = 0x00;
CCAP4L = 0x00;
CCAP4H = 0x00;
CCAP5L = 0x00;
CCAP5H = 0x00;
PCAPWM0= 0x00;
PCAPWM1= 0x00;
PCAPWM2= 0x00;
PCAPWM3= 0x00;
PCAPWM4= 0x00;
PCAPWM5= 0x00;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -