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

📄 196kxc.cod

📁 mcs51,2051,x86系列MCU
💻 COD
📖 第 1 页 / 共 5 页
字号:
$$ifn$ int_mask1.0
 command = getcommand_slp()  /*  receive command from master  */
$$end$
 while(1);
}
##80C196NT ICU#
##80C196NQ ICU#
##80C196KT ICU#
##80C196KQ ICU#
##80C196KR ICU#
##80C196JR ICU#
##80C196JT ICU#
##80C196JQ ICU#
$$ifp$ 80C196KT || 80C196KQ || 80C196KR || 80C196JR || 80C196JQ || 80C196JT
#pragma model(KR)
$$end$
$$ifp$ 80C196NT || 80C196NQ
#pragma model(NT)
$$end$
#include <80c196kr.h>
#define   EPAX_INTERRUPT           0x00
#define   EXTINT_INTERRUPT         0x06
#define   EPA4_INT                 0x8000
#define   EPA5_INT                 0x4000
#define   EPA6_INT                 0x2000
#define   EPA7_INT                 0x1000
#define   EPA8_INT                 0x0800
#define   EPA9_INT                 0x0400
#define   EPA0_OVR                 0x0200
#define   EPA1_OVR                 0x0100
#define   EPA2_OVR                 0x0080
#define   EPA3_OVR                 0x0040
#define   EPA4_OVR                 0x0020
#define   EPA5_OVR                 0x0010
#define   EPA6_OVR                 0x0008
#define   EPA7_OVR                 0x0004
#define   EPA8_OVR                 0x0002
#define   EPA9_OVR                 0x0001
#define   COMP_CH0                 0x08
#define   COMP_CH1                 0x04
#define   TIMER1_OVR               0x02
#define   TIMER2_OVR               0x01
#define   EPAX_EPA4_INT            0x14
#define   EPAX_EPA5_INT            0x13
#define   EPAX_EPA6_INT            0x12
#define   EPAX_EPA7_INT            0x11
#define   EPAX_EPA8_INT            0x10
#define   EPAX_EPA9_INT            0x0F
#define   EPAX_EPA0_OVR            0x0E
#define   EPAX_EPA1_OVR            0x0D
#define   EPAX_EPA2_OVR            0x0C
#define   EPAX_EPA3_OVR            0x0B
#define   EPAX_EPA4_OVR            0x0A
#define   EPAX_EPA5_OVR            0x09
#define   EPAX_EPA6_OVR            0x08
#define   EPAX_EPA7_OVR            0x07
#define   EPAX_EPA8_OVR            0x06
#define   EPAX_EPA9_OVR            0x05
#define   EPAX_COMP_CH0            0x04
#define   EPAX_COMP_CH1            0x03
#define   EPAX_TIMER1_OVR          0x02
#define   EPAX_TIMER2_OVR          0x01

void init_special_interrupts(void)
{
$$if$ int_mask.0
 int_mask |= EPAX_INTERRUPT;
$$end$
$$if$ int_mask.1-7
/*   Enabling of the other direct Interrupts should be generated 
     using the peripheral editor.  The following can be used for 
     template. 
      
 int_mask |= 0x$$INT_MASK$;
*/
$$end$
$$if$   int_mask1.6
 setbit(int_mask1, EXTINT_INTERRUPT);
$$end$
$$if$ int_mask1.0-5
/*   Enabling of the other direct Interrupts should be generated 
     using the peripheral editor.  The following can be used for 
     template. 
      
 int_mask1 |= 0x$$INT_MASK1$;
*/
$$end$
$$if$ EPA_MASK
 epa_mask = /* enabled interrupts  */
     $$if$ EPA_MASK.0
                   EPA9_OVR |
     $$end$
     $$if$ EPA_MASK.1
                   EPA8_OVR |
     $$end$
     $$if$ EPA_MASK.2
                   EPA7_OVR |
     $$end$
     $$if$ EPA_MASK.3
                   EPA6_OVR |
     $$end$
     $$if$ EPA_MASK.4
                   EPA5_OVR |
     $$end$
     $$if$ EPA_MASK.5
                   EPA4_OVR |
     $$end$
     $$if$ EPA_MASK.6
                   EPA3_OVR |
     $$end$
     $$if$ EPA_MASK.7
                   EPA2_OVR |
     $$end$
     $$if$ EPA_MASK.8
                   EPA1_OVR |
     $$end$
     $$if$ EPA_MASK.9
                   EPA0_OVR |
     $$end$
     $$if$ EPA_MASK.10
                   EPA9_INT |
     $$end$
     $$if$ EPA_MASK.11
                   EPA8_INT |
     $$end$
     $$if$ EPA_MASK.12
                   EPA7_INT |
     $$end$
     $$if$ EPA_MASK.13
                   EPA6_INT |
     $$end$
     $$if$ EPA_MASK.14
                   EPA5_INT |
     $$end$
     $$if$ EPA_MASK.15
                   EPA4_INT |
     $$end$
                   0;    /*  Needed to end the conditional code */
$$end$
$$if$ EPA_MASK1
 epa_mask1 = /* Unmask to enabled interrupts  */
     $$if$ EPA_MASK1.3
                   COMP_CH0 |
     $$end$
     $$if$ EPA_MASK1.2
                   COMP_CH1 |
     $$end$
     $$if$ EPA_MASK1.1
                   TIMER1_OVR |
     $$end$
     $$if$ EPA_MASK1.0
                   TIMER2_OVR |
     $$end$
                   0;    /*  Needed to end the conditional code */
$$end$
}
$$if$ int_mask.0
#pragma interrupt(epax_isr = EPAX_INTERRUPT)
void epax_isr(void)
{
 unsigned int time_value;
 unsigned int more_interrupts;

 more_interrupts = 1;
 while(more_interrupts)
     {
     switch(epaipv)
          {
          case  0:
          more_interrupts = 0;
          break;
      case   EPAX_EPA4_INT:
     /*   Insert code for this event here   */

          $$ifn$ EPA4_CON.6
          time_value = epa4_time;   /* must read to prevent overrun */
          $$end$
          $$if$ EPA4_CON.6 &! EPA4_CON.0 && EPA4_CON.3
          epa4_time += 0x$$TIMER_OFFSET4$;
          $$end$
          $$if$ EPA4_CON.6 &! EPA4_CON.3
     /*  Since not re-enabled, no more events will occur unless
          epa_control and epa_time are re-written.  */
          $$end$
          break;
      case   EPAX_EPA5_INT:
     /*   Insert code for this event here   */

          $$ifn$ EPA5_CON.6
          time_value = epa5_time;   /* must read to prevent overrun */
          $$end$
          $$if$ EPA5_CON.6 &! EPA5_CON.0 && EPA5_CON.3
          epa5_time += 0x$$TIMER_OFFSET5$;
          $$end$
          $$if$ EPA5_CON.6 &! EPA5_CON.3
     /*  Since not re-enabled, no more events will occur unless
          epa_control and epa_time are re-written.  */
          $$end$
          break;
      case   EPAX_EPA6_INT:
     /*   Insert code for this event here   */

          $$ifn$ EPA6_CON.6
          time_value = epa6_time;   /* must read to prevent overrun */
          $$end$
          $$if$ EPA6_CON.6 &! EPA6_CON.0 && EPA6_CON.3
          epa6_time += 0x$$TIMER_OFFSET6$;
          $$end$
          $$if$ EPA6_CON.6 &! EPA6_CON.3
     /*  Since not re-enabled, no more events will occur unless
          epa_control and epa_time are re-written.  */
          $$end$
          break;
      case   EPAX_EPA7_INT:
     /*   Insert code for this event here   */

          $$ifn$ EPA7_CON.6
          time_value = epa7_time;   /* must read to prevent overrun */
          $$end$
          $$if$ EPA7_CON.6 &! EPA7_CON.0 && EPA7_CON.3
          epa7_time += 0x$$TIMER_OFFSET7$;
          $$end$
          $$if$ EPA7_CON.6 &! EPA7_CON.3
     /*  Since not re-enabled, no more events will occur unless
          epa_control and epa_time are re-written.  */
          $$end$
          break;
      case   EPAX_EPA8_INT:
     /*   Insert code for this event here   */

          $$ifn$ EPA8_CON.6
          time_value = epa8_time;   /* must read to prevent overrun */
          $$end$
          $$if$ EPA8_CON.6 &! EPA8_CON.0 && EPA8_CON.3
          epa8_time += 0x$$TIMER_OFFSET8$;
          $$end$
          $$if$ EPA8_CON.6 &! EPA8_CON.3
     /*  Since not re-enabled, no more events will occur unless
          epa_control and epa_time are re-written.  */
          $$end$
          break;
      case   EPAX_EPA9_INT:
     /*   Insert code for this event here   */

          $$ifn$ EPA9_CON.6
          time_value = epa9_time;   /* must read to prevent overrun */
          $$end$
          $$if$ EPA9_CON.6 &! EPA9_CON.0 && EPA9_CON.3
          epa9_time += 0x$$TIMER_OFFSET9$;
          $$end$
          $$if$ EPA9_CON.6 &! EPA9_CON.3
     /*  Since not re-enabled, no more events will occur unless
          epa_control and epa_time are re-written.  */
          $$end$
          break;
      case   EPAX_EPA0_OVR:
     /*   Insert code for this event here   */
          break;
      case   EPAX_EPA1_OVR:
     /*   Insert code for this event here   */
          break;
      case   EPAX_EPA2_OVR:
     /*   Insert code for this event here   */
          break;
      case   EPAX_EPA3_OVR:
     /*   Insert code for this event here   */
          break;
      case   EPAX_EPA4_OVR:
     /*   Insert code for this event here   */
          break;
      case   EPAX_EPA5_OVR:
     /*   Insert code for this event here   */
          break;
      case   EPAX_EPA6_OVR:
     /*   Insert code for this event here   */
          break;
      case   EPAX_EPA7_OVR:
     /*   Insert code for this event here   */
          break;
      case   EPAX_EPA8_OVR:
     /*   Insert code for this event here   */
          break;
      case   EPAX_EPA9_OVR:
     /*   Insert code for this event here   */
          break;
      case   EPAX_COMP_CH0:
     /*   Insert code for this event here   */
          break;
      case   EPAX_COMP_CH1:
     /*   Insert code for this event here   */
          break;
      case   EPAX_TIMER1_OVR:
     /*   Insert code for this event here   */
          break;
      case   EPAX_TIMER2_OVR:
     /*   Insert code for this event here   */
          break;
          default:
          break;
          }
     }
}
$$end$
$$if$ INT_MASK.1

/*   Enabling of the other direct Interrupts should be generated 
     using the peripheral editor.  The following can be used for 
     template. 
#pragma interrupt(epa3_isr_template = 1)
void epa3_isr_template(void)
{
 ******** user code *******
}
*/
$$end$
$$if$ INT_MASK.2

/*   Enabling of the other direct Interrupts should be generated 
     using the peripheral editor.  The following can be used for 
     template. 
#pragma interrupt(epa2_isr_template = 2)
void epa2_isr_template(void)
{
 ******** user code *******
}
*/
$$end$
$$if$ INT_MASK.3

/*   Enabling of the other direct Interrupts should be generated 
     using the peripheral editor.  The following can be used for 
     template. 
#pragma interrupt(epa1_isr_template = 3)
void epa1_isr_template(void)
{
 ******** user code *******
}
*/
$$end$
$$if$ INT_MASK.4

/*   Enabling of the other direct Interrupts should be generated 
     using the peripheral editor.  The following can be used for 
     template. 
#pragma interrupt(epa0_isr_template = 4)
void epa0_isr_template(void)
{
 ******** user code *******
}
*/
$$end$
$$if$ INT_MASK.5

/*   Enabling of the other direct Interrupts should be generated 
     using the peripheral editor.  The following can be used for 
     template. 
#pragma interrupt(ATOD_isr_template = 5)
void ATOD_isr_template(void)
{
 ******** user code *******
}
*/
$$end$
$$if$ INT_MASK.6

/*   Enabling of the other direct Interrupts should be generated 
     using the peripheral editor.  The following can be used for 
     template. 
#pragma interrupt(OBE_isr_template = 6)
void OBE_isr_template(void)
{
 ******** user code *******
}
*/
$$end$
$$if$ INT_MASK.7

/*   Enabling of the other direct Interrupts should be generated 
     using the peripheral editor.  The following can be used for 
     template. 
#pragma interrupt(IBF_isr_template = 7)
void IBF_isr_template(void)
{
 ******** user code *******
}
*/
$$end$
$$if$ INT_MASK1.0

/*   Enabling of the other direct Interrupts should be generated 
     using the peripheral editor.  The following can be used for 
     template. 
#pragma interrupt(CBF_isr_template = 24)
void CBF_isr_template(void)
{
 ******** user code *******
}
*/
$$end$
$$if$ INT_MASK1.1

/*   Enabling of the other direct Interrupts should be generated 
     using the peripheral editor.  The following can be used for 
     template. 
#pragma interrupt(SSIO0_isr_template = 25)
void SSIO0_isr_template(void)
{
 ******** user code *******
}
*/
$$end$
$$if$ INT_MASK1.2

/*   Enabling of the other direct Interrupts should be generated 
     using the peripheral editor.  The following can be used for 
     template. 
#pragma interrupt(SSIO1_isr_template = 26)
void SSIO1_isr_template(void)
{
 ******** user code *******
}
*/
$$end$
$$if$ INT_MASK1.3

/*   Enabling of the other direct Interrupts should be generated 
     using the peripheral editor.  The following can be used for 
     template. 
#pragma interrupt(TI_isr_template = 27)
void TI_isr_template(void)
{
 ******** user code *******
}
*/
$$end$
$$if$ INT_MASK1.4

/*   Enabling of the other direct Interrupts should be generated 
     using the peripheral editor.  The following can be used for 
     template. 
#pragma interrupt(RI_isr_template = 28)
void RI_isr_template(void)
{
 ******** user code *******
}
*/
$$end$
$$if$ INT_MASK1.6
/*
#pragma interrupt(EXTINT_isr_template = 30)
void EXTINT_isr_template(void)
{
 ******** user code *******
}
*/
$$end$

/*   The 

⌨️ 快捷键说明

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