ad549.lst

来自「单片机开发板源程序 适合初学者 第五部分 报警产生器」· LST 代码 · 共 150 行

LST
150
字号
C51 COMPILER V7.06   AD549                                                                 09/13/2007 02:56:56 PAGE 1   


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

stmt level    source

   1          /*实验名称:按加减键实现内部加减 0.01
   2            功能:数码显示0.20---2.00
   3            作者:http://www.mcuprog.com
   4                  05-02-01
   5          */
   6          #include <reg51.h>
   7          //LCD的口线
   8          sbit E=P2^2;
   9          sbit RW=P2^1;
  10          sbit RS=P2^0;
  11          //AD(TLC549)引脚
  12          sbit AD_CS=P3^7;
  13          sbit AD_CK=P3^5;
  14          sbit AD_OUT=P3^6;
  15          //8字LED的连接方法
  16          //P0.7  P.06    P0.5    P0.4    P0.3    P0.2    P0.1    P0.0
  17          // H      G      F       E       D       C       B       A
  18          
  19          unsigned char code ledcode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,  
  20                                        0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}; //数码管段码表
  21          unsigned char adbl,ledbai,ledshi,ledge,keytime;
  22          unsigned char bdata myflag;
  23          sbit keybit = myflag^0;
  24          
  25          void time0(void);
  26          void read_549(void);
  27          void Delay(unsigned int t);
  28          void SendCommandByte(unsigned char ch);
  29          void SendDataByte(unsigned char ch);
  30          void InitLcd(void);
  31          void dispdpbl(void);
  32          
  33          void main(void)
  34          {
  35   1              InitLcd();
  36   1              myflag=0x00;
  37   1              keytime=4;              //20MS扫一次按键
  38   1              SendCommandByte(0x80);
  39   1              Delay(2);
  40   1              SendDataByte('A');
  41   1              SendDataByte('D');
  42   1              SendDataByte('C');
  43   1              SendDataByte(':');
  44   1              TH0=0xee;               //定时5MS
  45   1              TL0=0x00;
  46   1              TMOD=0x01;
  47   1              TR0=1;
  48   1              IE=0x82;
  49   1              while(1)
  50   1              {}      
  51   1      }       
  52          
  53          void time0(void) interrupt 1
  54          {
  55   1              TH0=0xee;
C51 COMPILER V7.06   AD549                                                                 09/13/2007 02:56:56 PAGE 2   

  56   1              TL0=0x00;
  57   1              read_549();
  58   1              ledbai=(adbl/100)|0x30;
  59   1              ledshi=((adbl%100)/10)|0x30;
  60   1              ledge=(adbl%10)|0x30;
  61   1              dispdpbl();
  62   1      }  
  63          
  64          void read_549(void)
  65          {
  66   1              unsigned char i;
  67   1              AD_CS=0;
  68   1              adbl=0x00;
  69   1              for(i=0;i<8;i++)
  70   1              {
  71   2                      AD_CK=1;
  72   2                      adbl=adbl<<1;
  73   2                      if(AD_OUT==1) adbl++;
  74   2                      AD_CK=0;
  75   2              }
  76   1              AD_CS=1;
  77   1      }
  78          
  79          void Delay(unsigned int t)   // delay 40us
  80          {
  81   1       for(;t!=0;t--) ;
  82   1      }
  83          //=============================================
  84          void SendCommandByte(unsigned char ch)
  85          {
  86   1         RS=0;
  87   1         RW=0;
  88   1         P0=ch;
  89   1         E=1;
  90   1          Delay(1);
  91   1         E=0;
  92   1         Delay(100);  //delay 40us
  93   1      }
  94          //-------------------------------------------------------
  95          void SendDataByte(unsigned char ch)
  96          {  RS=1;
  97   1         RW=0;
  98   1         P0=ch;
  99   1         E=1;
 100   1             Delay(1);
 101   1         E=0;
 102   1         Delay(100); //delay 40us
 103   1      }
 104          //-------------------------------------------------
 105          void InitLcd(void)
 106          {SendCommandByte(0x30);
 107   1       SendCommandByte(0x30);
 108   1       SendCommandByte(0x30);
 109   1       SendCommandByte(0x38); //设置工作方式
 110   1       SendCommandByte(0x0c); //显示状态设置
 111   1       SendCommandByte(0x01); //清屏
 112   1       SendCommandByte(0x06); //输入方式设置
 113   1      }
 114          
 115          void dispdpbl(void)
 116          {
 117   1              SendCommandByte(0x85);
C51 COMPILER V7.06   AD549                                                                 09/13/2007 02:56:56 PAGE 3   

 118   1              SendDataByte(ledbai);
 119   1              SendDataByte(ledshi);
 120   1              SendDataByte(ledge);
 121   1              
 122   1      }


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


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

⌨️ 快捷键说明

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