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

📄 pcacp.lst

📁 c8051f340型单片机的键盘按键程序
💻 LST
字号:
C51 COMPILER V7.50   PCACP                                                                 10/23/2006 13:15:47 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE PCACP
OBJECT MODULE PLACED IN pcacp.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE pcacp.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /******************************************************************
   2          本程序为PCA捕捉例程,判断4个(S1-S4)按键是否按下然后触发中断对LED灯
   3          D2\D3取反同时也完成按键扫描的过程
   4          ******************************************************************/
   5          #include <c8051f340.h> 
   6                  
   7          #define uchar unsigned char
   8          #define uint unsigned int
   9          
  10          void port_init (void);                    //端口初始化
  11          void pca_init (void);                     //PCA初始化
  12          
  13          sbit led0= P2^6;                                  //定义灯输出脚
  14          sbit led1= P2^4;                  //定义灯输出脚
  15          void delay(uint d)
  16          {
  17   1       uint i;
  18   1       for(i=0;i<d;i++);
  19   1       }
  20          /******************************************************************
  21          主程序
  22          ******************************************************************/
  23          void main (void) {
  24   1         
  25   1         PCA0MD &= ~0x40;               //关闭看门狗定时器 
  26   1         OSCICN |= 0x03;                //内部12M晶振
  27   1         port_init ();                              //端口初始化
  28   1         pca_init ();                               //PCA初始化       
  29   1         EA = 1;
  30   1         while(1){ 
  31   2          }  
  32   1      }
  33          /******************************************************************
  34          端口初始化程序
  35          ******************************************************************/
  36          void port_init (void)
  37          {
  38   1         P0SKIP    = 0xFF;
  39   1         P1SKIP    = 0xFF;                      //跳过前面I/O端口
  40   1         XBR1      = 0x44;              // 使能交叉开关,CEX0,连到P2.2
  41   1         P2MDOUT  |= 0x50;              // 使能P2.6,P2.4为推挽输出
  42   1      }
  43          /******************************************************************
  44          PCA初始化程序
  45          ******************************************************************/
  46          void pca_init (void)
  47          {
  48   1              EIE1 = 0x10;                      //允许PCA0中断                
  49   1              PCA0CPM0 = 0x11;                          //模块0负沿捕捉使能与配匹使能
  50   1              PCA0CPM1 = 0x11;                          //模块1负沿捕捉使能与配匹使能
  51   1              PCA0CPM2 = 0x11;                          //模块2负沿捕捉使能与配匹使能
  52   1              PCA0CPM3 = 0x11;                          //模块3负沿捕捉使能与配匹使能
  53   1      }
  54          
  55          /******************************************************************
C51 COMPILER V7.50   PCACP                                                                 10/23/2006 13:15:47 PAGE 2   

  56          PCA中断程序
  57          ******************************************************************/
  58          
  59          void PCA_ISR (void) interrupt 11
  60          {
  61   1          if(CCF0==1)
  62   1                { 
  63   2                delay(50000);
  64   2                delay(50000);
  65   2                delay(20000);
  66   2                delay(20000);
  67   2                while(CCF0==0);
  68   2                 led0=~led0;
  69   2              CCF0 = 0;                           //清捕捉中断标志
  70   2                 
  71   2                 }
  72   1              if(CCF1==1)
  73   1                {delay(50000);
  74   2                 delay(50000);
  75   2                 delay(20000);
  76   2                 delay(20000);
  77   2                while(CCF1==0);
  78   2                  led0=~led0;
  79   2              CCF1 = 0;                           //清捕捉中断标志
  80   2                 }
  81   1              if(CCF2==1)
  82   1                { delay(50000);
  83   2                  delay(50000);
  84   2                      delay(20000);
  85   2                      delay(20000);
  86   2                       while(CCF2==0);
  87   2                  led1=~led1;
  88   2              CCF2 = 0;                           //清捕捉中断标志
  89   2                 }
  90   1              if(CCF3==1)
  91   1                { delay(50000);
  92   2                  delay(50000);
  93   2                      delay(20000);
  94   2                      delay(20000);
  95   2                       while(CCF3==0);
  96   2                  led1=~led1;
  97   2              CCF3 = 0;                           //清捕捉中断标志
  98   2                 } 
  99   1      
 100   1      
 101   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    160    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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