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

📄 reg932_isp.lst

📁 上学时做的一个51单片机按键显示程序
💻 LST
字号:
C51 COMPILER V7.07   REG932_ISP                                                            11/19/2005 17:01:25 PAGE 1   


C51 COMPILER V7.07, COMPILATION OF MODULE REG932_ISP
OBJECT MODULE PLACED IN REG932_ISP.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE REG932_ISP.C BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include "include/REG932_ISP.H" 
   2          #define uchar unsigned char                     //宏
   3          #define uint  unsigned  int
   4          
   5          void  (*Excute_ISP)();                          //定义ISP函数指针 
   6          void  ISP_932(void);                            //932-ISP引导程序
   7          void  DSP_ISP(void);                            //932-ISP引导动画
   8          void  wait750ms_ISP(void);                      //750ms延时程序
   9          void  CLS_ISP(void);                            //清空显示
  10          void  display_ISP(uchar k_ISP);                 //第1/2行显示程序
  11          void  send_byte_ISP(uchar buf_ISP,r_ISP);       //串行1/2发送1字节
  12          void  CLRWDTEXP_ISP(void);                      //喂狗程序
  13          
  14          sbit PIN_ISP =P2^7;                             //ISP跳线设置引脚
  15          sbit clk1_ISP=P1^6;                             //模拟串行I/O引脚
  16          sbit dat1_ISP=P1^7;
  17          sbit clk2_ISP=P2^6;
  18          sbit dat2_ISP=P2^7;
  19          uchar DIS_ISP[8];                               //显示缓冲区
  20           
  21          //===================================================================
  22          void ISP_932(void)                              //932-ISP引导程序
  23          {  uchar i_ISP;
  24   1         P1M1=0x00; 
  25   1         P1M2=0x00;                                   //设置P1口为准双向
  26   1         P2M1=0x00; 
  27   1         P2M2=0x00;                                   //设置P2口为准双向 
  28   1         Excute_ISP=0x1E00;                           //ISP代码指针为0x1F00 
  29   1         CLRWDTEXP_ISP();
  30   1         CLS_ISP();                                   //清空显示
  31   1         if(PIN_ISP==0)                               //跳线设置为ISP方式?
  32   1            {for(i_ISP=0;i_ISP<250;i_ISP++) ;         //短延时
  33   2             if(PIN_ISP==0)                           //跳线设置为ISP方式?
  34   2                {
  35   3                 DSP_ISP();                           //932-ISP引导动画
  36   3                 Excute_ISP();                        //调用ISP程序
  37   3                 }                    
  38   2             } 
  39   1       }
  40          //--------------------------------------------------------------------
  41          void  DSP_ISP(void)                             //932-ISP引导动画
  42          {  //uchar j_ISP;
  43   1         CLRWDTEXP_ISP();
  44   1         DIS_ISP[0]=0x14;     
  45   1         DIS_ISP[1]=0x67;
  46   1         DIS_ISP[2]=0xF1;
  47   1         DIS_ISP[3]=0x00;
  48   1         DIS_ISP[4]=0x00;
  49   1         DIS_ISP[5]=0x00;
  50   1         DIS_ISP[6]=0x14;     
  51   1         DIS_ISP[7]=0xF4;
  52   1         SS=1;
  53   1         SPICLK=1;
  54   1         display_ISP(1);                              //显示字符ISP   IN
  55   1         wait750ms_ISP();                             //保持
C51 COMPILER V7.07   REG932_ISP                                                            11/19/2005 17:01:25 PAGE 2   

  56   1           DIS_ISP[3]=0x02;
  57   1           display_ISP(1);                            //显示字符ISP-  IN
  58   1           wait750ms_ISP();                           //保持
  59   1             DIS_ISP[4]=0x40;
  60   1             display_ISP(1);                          //显示字符ISP-- IN
  61   1             wait750ms_ISP();                         //保持
  62   1               DIS_ISP[5]=0x02;
  63   1               display_ISP(1);                        //显示字符ISP---IN
  64   1               wait750ms_ISP();                       //保持
  65   1       }
  66          //--------------------------------------------------------------------
  67          void wait750ms_ISP(void)                        //750ms延时程序
  68          { uchar i_ISP,j_ISP; 
  69   1        for(i_ISP=0;i_ISP<255;i_ISP++)        
  70   1           {for(j_ISP=0;j_ISP<255;j_ISP++)
  71   2               {CLRWDTEXP_ISP();}
  72   2            }
  73   1       }
  74          //--------------------------------------------------------------------
  75          void CLRWDTEXP_ISP(void)                        //喂狗程序
  76          { bit eacopy;
  77   1         eacopy=EA;
  78   1         EA=0;
  79   1         WFEED1=0xA5;
  80   1         WFEED2=0x5A;
  81   1         EA=eacopy;
  82   1       }
  83          //--------------------------------------------------------------------
  84          void  CLS_ISP(void)                             //清空显示
  85          { uchar i_ISP;
  86   1        for(i_ISP=0;i_ISP<8;i_ISP++)                  
  87   1             {DIS_ISP[i_ISP]=0;}
  88   1              SS=1;
  89   1              SPICLK=1;
  90   1              display_ISP(1);                         
  91   1              display_ISP(2); 
  92   1              display_ISP(1);                         
  93   1              display_ISP(2);         
  94   1       }
  95          //--------------------------------------------------------------------
  96          void  display_ISP(uchar k_ISP)                  //第1/2行显示程序
  97          {uchar i_ISP;
  98   1       CLRWDTEXP_ISP();
  99   1       for(i_ISP=0;i_ISP<8;i_ISP++)                   //送给8个LED显示
 100   1         {send_byte_ISP(~DIS_ISP[i_ISP],k_ISP);}
 101   1       }
 102          //--------------------------------------------------------------------
 103          void  send_byte_ISP(uchar buf_ISP,r_ISP)        //向模拟串口发送一字节
 104          {
 105   1       uchar i_ISP,j_ISP;
 106   1       if(r_ISP==1)
 107   1         { for(i_ISP=0;i_ISP<8;i_ISP++)               //移位8次输出buf_ISP
 108   2             {
 109   3                      if(buf_ISP&0x01==0x01)          //d.0位为1?
 110   3                      {dat1_ISP=1;}                   //dat1输出1
 111   3                      else
 112   3                      {dat1_ISP=0;}                   //dat1输出0
 113   3                      clk1_ISP=1;                     //发移位脉冲
 114   3                      for(j_ISP=0;j_ISP<5;j_ISP++) ;  //短延时
 115   3                      clk1_ISP=0;                     //撤消移位脉冲
 116   3                      buf_ISP=buf_ISP>>1;             //字型码逐位移出
 117   3              }
C51 COMPILER V7.07   REG932_ISP                                                            11/19/2005 17:01:25 PAGE 3   

 118   2          }
 119   1       if(r_ISP==2)
 120   1         { for(i_ISP=0;i_ISP<8;i_ISP++)               //移位8次输出buf_ISP
 121   2             {
 122   3                      if(buf_ISP&0x01==0x01)          //d.0位为1?
 123   3                      {dat2_ISP=1;}                   //dat2输出1
 124   3                      else
 125   3                      {dat2_ISP=0;}                   //dat2输出0
 126   3                      clk2_ISP=1;                     //发移位脉冲
 127   3                      for(j_ISP=0;j_ISP<5;j_ISP++) ;  //短延时
 128   3                      clk2_ISP=0;                     //撤消移位脉冲
 129   3                      buf_ISP=buf_ISP>>1;             //字型码逐位移出
 130   3              }
 131   2          }
 132   1       }
 133          //--------------------------------------------------------------------


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    292    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     11       4
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       1
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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