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

📄 ad convert.lst

📁 使用proteus进行的AD转换仿真
💻 LST
字号:
C51 COMPILER V8.08   AD_CONVERT                                                            07/25/2000 10:45:41 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE AD_CONVERT
OBJECT MODULE PLACED IN ad convert.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ad convert.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include<regx51.h>
   2          #define TIMER0_COUNT 0xDC11
   3          #define adc_in P0
   4          sbit rs=P3^5;
   5          sbit rw=P3^4;
   6          sbit en=P3^3;
   7          sbit adc_rd=P2^0;
   8          sbit adc_wr=P2^1;
   9          static unsigned timer0_tick;
  10          const char int2char[]="0123456789";
  11          void delay(void)
  12          {
  13   1        unsigned int i,j;
  14   1        for(i=0;i<3;i++)
  15   1        for(j=0;j<255;j++);
  16   1      }
  17          
  18          void write_command(unsigned command)
  19          {
  20   1        rw=0;
  21   1        rs=0;
  22   1        en=1;
  23   1        P1=command;
  24   1        en=0;
  25   1        rs=1;
  26   1        rw=1;
  27   1        delay();
  28   1      }
  29          
  30          void write_data(unsigned lcddata)
  31          {
  32   1        rw=0;
  33   1        rs=1;
  34   1        en=1;
  35   1        P1=lcddata;
  36   1        en=0;
  37   1        rs=0;
  38   1        rw=1;
  39   1        delay();
  40   1      }
  41          
  42          void set_lcd(void)
  43          {
  44   1        write_command(56);
  45   1        write_command(12);
  46   1        write_command(6);
  47   1      }
  48          
  49          void clear_lcd(void)
  50          {
  51   1        write_command(1);
  52   1        write_command(2);
  53   1      }
  54          
  55          void display_string(char *p)
C51 COMPILER V8.08   AD_CONVERT                                                            07/25/2000 10:45:41 PAGE 2   

  56          {
  57   1        while(*p)
  58   1        {
  59   2           write_data(*p);
  60   2               p++;
  61   2        }
  62   1      }
  63          
  64          void gotoxy(unsigned x,unsigned y)
  65          {
  66   1        if(x==1)
  67   1           write_command(128+y);
  68   1        else
  69   1           write_command(192+y);
  70   1      }
  71          
  72          void display_number(unsigned char number)
  73          {
  74   1        unsigned char x,y,i=2;
  75   1        int z;
  76   1        z=(int) number;
  77   1        z=z<<1;
  78   1        x=z/10;
  79   1        y=z-x*10;
  80   1        gotoxy(2,3);
  81   1        write_data(int2char[y]);
  82   1        z=x;
  83   1        x=z/10;
  84   1        y=z-x*10;
  85   1        gotoxy(2,2);
  86   1        write_data(int2char[y]);
  87   1        gotoxy(2,1);
  88   1        display_string(".");
  89   1        z=x;
  90   1        x=z/10;
  91   1        y=z-x*10;
  92   1        gotoxy(2,0);
  93   1        write_data(int2char[y]);
  94   1        gotoxy(2,4);
  95   1        display_string("Volt");
  96   1      }
  97          
  98          static void timer0_isr(void) interrupt 1 using 1
  99          {
 100   1        TR0=0;
 101   1        TL0=(TIMER0_COUNT & 0X00FF);
 102   1        TH0=(TIMER0_COUNT >> 8);
 103   1        TR0=1;
 104   1        timer0_tick++;
 105   1        if(timer0_tick==200){
 106   2           adc_wr=0;
 107   2               timer0_tick=0;
 108   2               adc_wr=1;
 109   2              }
 110   1      }
 111          
 112          static void int0_isr(void) interrupt 0 using 0
 113          {
 114   1        unsigned char voltage;
 115   1        adc_in=0xff;
 116   1        adc_rd=0;
 117   1        voltage=adc_in;
C51 COMPILER V8.08   AD_CONVERT                                                            07/25/2000 10:45:41 PAGE 3   

 118   1        voltage=voltage<<1;
 119   1        adc_rd=1;
 120   1        gotoxy(2,0);
 121   1        display_number(voltage);
 122   1      }
 123          
 124          static void timer0_initialize(void)
 125          {
 126   1        EA=0;
 127   1        timer0_tick=0;
 128   1        TR0=0;
 129   1        TMOD &=0xf0;
 130   1        TMOD |=0x01;
 131   1        TL0=( TIMER0_COUNT & 0x00FF);
 132   1        TH0=( TIMER0_COUNT >> 8);
 133   1        PT0=0;
 134   1        ET0=1;
 135   1        TR0=1;
 136   1        EA=1;
 137   1      }
 138          
 139          void main(void){
 140   1        set_lcd();
 141   1        clear_lcd();
 142   1        display_string("Input voltage:");
 143   1        timer0_initialize();
 144   1        IT0=1;
 145   1        EX0=1;
 146   1        while(1);
 147   1      }
 148          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    436    ----
   CONSTANT SIZE    =     22    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     13       2
   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 + -