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

📄 ram.lst

📁 基于单片机AT89S52系统的一些测试程序
💻 LST
字号:
C51 COMPILER V7.06   RAM                                                                   01/02/2008 09:20:02 PAGE 1   


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

stmt level    source

   1          #include <reg52.h>
   2          #include <stdio.h>
   3          #include <absacc.h>
   4          
   5          #define RAM(ADDR) XBYTE[ADDR]
   6          
   7          typedef unsigned int uint;
   8          typedef unsigned char uchar;
   9          
  10          sbit CS=P1^4;
  11          sbit CLK=P1^7;
  12          sbit DIO=P1^6;
  13          sbit KEY=P3^2;
  14          
  15          uchar half_hign;
  16          uchar half_low;
  17          
  18          bdata uchar com_data;
  19          sbit mos_bit=com_data^7;
  20          sbit low_bit=com_data^0;
  21          
  22          void delay_50us()
  23          {   
  24   1              uchar i;
  25   1              for (i=0; i<6; i++){;}
  26   1      }
  27          
  28          void delay_8us()
  29          {
  30   1              uchar i;
  31   1              for (i=0; i<1; i++){;}
  32   1      }
  33          void delay_50ms()
  34          {
  35   1              uchar i,j;
  36   1              for(j=0;j<50;j++)
  37   1                      for(i=0;i<125;i++){;}
  38   1      }
  39          void send(uchar sebuf)
  40          {
  41   1              uchar i;
  42   1              com_data=sebuf;
  43   1              CLK=0;
  44   1              CS=0;
  45   1              delay_50us();
  46   1              for(i=0;i<8;i++)
  47   1              {
  48   2                      delay_8us();
  49   2                      DIO=mos_bit;
  50   2                      CLK=1;
  51   2                      delay_8us();
  52   2                      com_data=com_data<<1;
  53   2                      CLK=0;
  54   2              }
  55   1              DIO=0;
C51 COMPILER V7.06   RAM                                                                   01/02/2008 09:20:02 PAGE 2   

  56   1      }
  57          uchar receive(void)
  58          {
  59   1              uchar i,rebuf;
  60   1              CLK=1;
  61   1              delay_50us();
  62   1              for(i=0;i<8;i++)
  63   1              {
  64   2                      com_data=com_data<<1;
  65   2                      low_bit=DIO;
  66   2                      CLK=1;
  67   2                      delay_8us();
  68   2                      CLK=0;
  69   2                      delay_8us();
  70   2              }
  71   1              rebuf=com_data;
  72   1              DIO =1;
  73   1              CS=1;
  74   1              return rebuf;
  75   1      }
  76          void reset(void)
  77          {
  78   1              DIO=1;
  79   1              delay_50ms();
  80   1              send(0xa4);
  81   1              CS=1;
  82   1      }
  83          /*  7289显示程序                  */ 
  84          /*  addr为显示位置 范围0~7                */
  85          /*  dat为现实内容                 */
  86          void display(uchar addr,uchar dat)
  87          {
  88   1              if(addr<0 || addr >7)
  89   1                      return;
  90   1              send(0xc8 + addr);
  91   1              delay_50us();
  92   1              send(dat);
  93   1              CS=1;
  94   1      }
  95          /*  发送双字节命令                              */
  96          void sendcommand(uchar addr,uchar dat)
  97          {
  98   1              send(addr);
  99   1              delay_50us();
 100   1              send(dat);
 101   1              CS=1;
 102   1      }
 103          void main()
 104          { 
 105   1              uchar dat;
 106   1              uint i;
 107   1              reset();
 108   1              for(i=0x0000;i<0x8000;i++)
 109   1              {
 110   2                      /*  对32KRAM的每一个字节进行测试  */
 111   2                      /*  先写入0xaa,然后看能否读出来  */
 112   2                      RAM(i + 0x8000) = 0xaa;
 113   2                      dat = RAM(i + 0x8000);
 114   2                      if(dat != 0xaa)
 115   2                              break;
 116   2                      /*  再写入0x55,然后看能否读出来  */
 117   2                      RAM(i + 0x8000) = 0x55;
C51 COMPILER V7.06   RAM                                                                   01/02/2008 09:20:02 PAGE 3   

 118   2                      dat = RAM(i + 0x8000);
 119   2                      if(dat != 0x55)
 120   2                              break;
 121   2              }
 122   1              if(i == 0x8000)  /* 没有问题则显示 P */
 123   1                      sendcommand(0x80,0x0e);
 124   1              else                     /* 有问题则显示 E   */
 125   1                      sendcommand(0x80,0x0b);
 126   1      
 127   1              while(1);
 128   1      }
 129          


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