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

📄 da.lst

📁 89c2051 D/A数字转模拟 单片机程序
💻 LST
字号:
C51 COMPILER V6.23a  DA                                                                    01/05/2004 11:11:46 PAGE 1   


C51 COMPILER V6.23a, COMPILATION OF MODULE DA
OBJECT MODULE PLACED IN da.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE da.c ROM(SMALL) BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /************************************************/
   2          
   3          /************************************************/
   4          #include <REG52.H>
   5          #include <stdio.h>
   6          
   7          #ifdef MONITOR51                         /* Debugging with Monitor-51 needs   */
              char code reserve [3] _at_ 0x23;         /* space for serial interrupt if     */
              #endif                                   /* Stop Exection with Serial Intr.   */
  10                                                   /* is enabled                        */
  11          const char Ledbuf[18]=/*digit convert table*//* 共阴*/
  12                  { 0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F,           
  13                  /* 0     1     2     3     4     5     6     7     8     9 */
  14                   0x77, 0x7C, 0x39, 0x500E, 0x79, 0x71, 0x00, 0x40 };
  15                  /* a    b     c     d     e     f           - */
  16          
  17          sbit SERIALIN=P0^0;
  18          sbit CLOCK=P0^2;
  19          sbit LATCH=P0^1;
  20          sbit P10=P1^0;
  21          sbit P11=P1^1;
  22          sbit P12=P1^2;
  23          sbit P15=P1^5;
  24          sbit P16=P1^6;
  25          sbit P17=P1^7;
  26          sbit P33=P3^3;
  27          sbit P32=P3^2;
  28          sbit din=P3^0;
  29          sbit clk=P3^1;
  30          unsigned int kl=0,kh=0;
  31          unsigned int Hout;
  32          
  33          unsigned int da;
  34          
  35          
  36          void Delay(unsigned int DelayTime)
  37                  {
  38   1              if (DelayTime == 0)return;
  39   1                      while(DelayTime != 0)
  40   1                              {DelayTime--; }
  41   1              }
  42          
  43          void display(ledtim)
  44                          char ledtim[4];
  45          {unsigned char i,j,temp;
  46   1                 for (i=0; i<4; i++) {
  47   2            temp=ledtim[i];
  48   2            for (j=0;j<8;j++){
  49   3               temp=temp<<1; SERIALIN=CY; CLOCK=1; CLOCK=0;
  50   3                      }
  51   2              }LATCH=0; LATCH=1;      
  52   1      }
  53          
  54          void computer(unsigned int dt)
  55          {       char cledtim[4];
C51 COMPILER V6.23a  DA                                                                    01/05/2004 11:11:46 PAGE 2   

  56   1                      int dth,dtm;
  57   1                       cledtim[3]=Ledbuf[dt/1000];
  58   1                       dth=dt%1000;
  59   1                       cledtim[2]=Ledbuf[dth/100];
  60   1                       cledtim[2]|=0x80;
  61   1                       dtm=dth%100;
  62   1                       cledtim[1]=Ledbuf[dtm/10];
  63   1                       cledtim[0]=Ledbuf[dtm%10];
  64   1                       display(cledtim);
  65   1      }
  66          
  67          
  68          
  69          void main()
  70                  {       CLOCK=0; 
  71   1                      LATCH=1;
  72   1                      P1=0x00;
  73   1                      P33=0;
  74   1                      clk=0;
  75   1                      din=0;
  76   1      for(;;)
  77   1                      {               unsigned int i;
  78   2                       unsigned int temp;     
  79   2      
  80   2                      computer(Hout);
  81   2      
  82   2      if(P10==1){Delay(1000);if(P10==1){Hout++;}}
  83   2      if(P11==1){Delay(1000);if(P11==1){Hout--;}}
  84   2                       P33=1;
  85   2                       da=Hout;
  86   2                       temp=da;
  87   2                       P33=0;
  88   2                       for(i=0;i<16;i++)
  89   2                       {
  90   3                        clk=1;
  91   3                        temp=temp&0x8000;
  92   3                        if (temp==0x8000)
  93   3                              {din=1;}
  94   3                          else{din=0;}
  95   3                              P15=1;
  96   3                      temp=da;
  97   3              temp=temp<<1;
  98   3                      clk=0;
  99   3                      da=temp;
 100   3                              }P15=0;  Delay(500);
 101   2              }
 102   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    323    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     26      11
   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 + -