📄 10to.c
字号:
#pragma sfr
#pragma DI
#pragma EI
#pragma NOP
//#pragma interrupt INTTM010 isr_INTTM000
#pragma interrupt INTTM80 isr_INTTM80
//#pragma interrupt INTTMH1 isr_INTTMH1
#pragma section @@CNST OPT AT 80H
const char OPTION=0x94;
typedef unsigned char uchar;
typedef unsigned int uint;
//==PORT DEFINE==
#define SEND1_P P4.1
#define SEND2_P P4.2
#define SEND3_P P4.3
#define SEND4_P P4.4
#define SEND5_P P4.5
#define SEND6_P P4.6
#define SEND7_P P4.7
#define SEND8_P P13.0
#define SEND9_P P2.3
#define SEND10_P P2.2
#define RECEIVE1_P P4.0
#define RECEIVE2_P P3.0
#define RECEIVE3_P P3.1
#define RECEIVE4_P P3.2
#define RECEIVE5_P P3.3
#define RECEIVE6_P P12.2//X2
#define RECEIVE7_P P12.1//X1
#define RECEIVE8_P P12.3
#define RECEIVE9_P P0.0
#define RECEIVE10_P P0.1
#define GREENLED_P P0.2
#define REDLED_P P0.3
#define NC1 P2.1
#define NC2 P2.0
#define NC3 P12.0
#define NC4 P3.4//RESET
//==PORT MODE DEFINE==
#define SEND1_PM PM4.1
#define SEND2_PM PM4.2
#define SEND3_PM PM4.3
#define SEND4_PM PM4.4
#define SEND5_PM PM4.5
#define SEND6_PM PM4.6
#define SEND7_PM PM4.7
#define SEND8_PM PM13.0
#define SEND9_PM PM2.3
#define SEND10_PM PM2.2
#define RECEIVE1_PM PM4.0
#define RECEIVE2_PM PM3.0
#define RECEIVE3_PM PM3.1
#define RECEIVE4_PM PM3.2
#define RECEIVE5_PM PM3.3
#define RECEIVE6_PM PM12.2
#define RECEIVE7_PM PM12.1
#define RECEIVE8_PM PM12.3
#define RECEIVE9_PM PM0.0
#define RECEIVE10_PM PM0.1
#define GREENLED_PM PM0.2
#define REDLED_PM PM0.3
static uchar a=0;
/****************************************************************
declare Function
****************************************************************/
void init_MPU ();
void init_port ();
void init_variables ();
/****************************************************************
PROGRAM
****************************************************************/
/****************************************************************
Module: init_CPU
Function: Initialization of CPU
****************************************************************/
void init_MPU ()
{
WDTM = 0x70;
PCC = 0x00;
PPCC = 0x00;
LSRCM = 0x01;
OSTS = 0x00;
IF0 = 0x00;
IF1 = 0x00;
MK0 = 0xFF;
MK1 = 0xFF;
}
/****************************************************************
Module: init_port (void)
Function: Initialization of port
****************************************************************/
void init_port ()
{
SEND1_PM = 0;
SEND2_PM = 0;
SEND3_PM = 0;
SEND4_PM = 0;
SEND5_PM = 0;
SEND6_PM = 0;
SEND7_PM = 0;
//SEND8_PM = 0;
SEND9_PM = 0;
SEND10_PM = 0;
RECEIVE1_PM = 1;
RECEIVE2_PM = 1;
RECEIVE3_PM = 1;
RECEIVE4_PM = 1;
RECEIVE5_PM = 1;
RECEIVE6_PM = 1;
RECEIVE7_PM = 1;
RECEIVE8_PM = 1;
RECEIVE9_PM = 1;
RECEIVE10_PM = 1;
GREENLED_PM = 0;
REDLED_PM = 0;
}
/****************************************************************
Module: init_variables (void)
Function: Initialization of variables
****************************************************************/
void init_variables ()
{
GREENLED_P = 1;
REDLED_P = 1;
SEND1_P = 0;
SEND2_P = 0;
SEND3_P = 0;
SEND4_P = 0;
SEND5_P = 0;
SEND6_P = 0;
SEND7_P = 0;
SEND8_P = 0;
SEND9_P = 0;
SEND10_P = 0;
}
/*******************************************************
Module: startSendCheckWave_TM000 ()
Function:
*******************************************************/
/*void startSendCheckWave_TM000 ()
{
CRC00 = 0x00; //set CR000 as compare
TOC00 = 0x03;
CR000 = 3999; //1KHz
PRM00 = 0x00; //8MHz
TMC00 = 0x0C;
}*/
/*******************************************************
Module: init_TM80 ()
Function:
*******************************************************/
void init_TM80 ()
{
TCE80 = 0; //disable timer80
TMC80 = 0x00; //set input clock to fxp / 2^6 125Khz @ 8MHz
CR80 =48; //set interval time
TCE80 = 1; //start timer80
TMIF80 = 0; //clear interrupt request flag
TMMK80=0; //enable timer80 interrupt
}
/*******************************************************
Module: init_TMH1 ()
Function:
*******************************************************/
/*
void init_TMH1 ()
{
TMHMD1 = 0x10;
CMP01 = 199;
TMIFH1 = 0;
TMMKH1 = 0;
TMHE1 = 1;
}
8?
/*****************************************************************
ISR: isr_INTTMH1 ()
Function: Interrupt service routine of Timer H1
******************************************************************/
__interrupt void isr_INTTM80()
{
if (a>12)
a=0;
switch(a)
{ case 0 : {SEND1_P=1;SEND2_P=1;SEND3_P=1;SEND4_P=1;SEND5_P=1;SEND6_P=1;SEND7_P=1;SEND8_P=1;SEND9_P=1;SEND10_P=1; break;}
case 1 : {SEND1_P=0; break;}
case 2 : {SEND2_P=0; break;}
case 3 : {SEND3_P=0; break;}
case 4: {SEND4_P=0; break;}
case 5: {SEND5_P=0; break;}
case 6: {SEND6_P=0; break;}
case 7: {SEND7_P=0; break;}
case 8: {SEND8_P=0; break;}
case 9: {SEND9_P=0; break;}
case 10 : {SEND10_P=0; break;}
case 11 : {SEND1_P=1;SEND2_P=1;SEND3_P=1;SEND4_P=1;SEND5_P=1;SEND6_P=1;SEND7_P=1;SEND8_P=1;SEND9_P=1;SEND10_P=1; break;}
case 12 : {SEND1_P=0;SEND2_P=0;SEND3_P=0;SEND4_P=0;SEND5_P=0;SEND6_P=0;SEND7_P=0;SEND8_P=0;SEND9_P=0;SEND10_P=0; break;}
default : break;
}
a++;
// SEND1_P = ~SEND1_P;
}
/*****************************************************************
Module: main()
Function:
******************************************************************/
/*void main(void)
{
DI ();
WDTE = 0XAC;
init_MPU ();
init_port ();
init_variables ();
init_TM80 ();
EI ();
while(1)
{
NOP();
//SEND1_P=~SEND1_P;
// delay();
}
}
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -