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

📄 ex08-5.lst

📁 本文件好似一系列的仿真
💻 LST
字号:
C51 COMPILER V8.08   EX08_5                                                                03/14/2009 14:03:24 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE EX08_5
NO OBJECT MODULE REQUESTED
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ex08-5.c BROWSE DEBUG OBJECTEXTEND OBJECT(.\新建文件夹\ex08-5.obj)

line level    source

*** WARNING C500 IN LINE 1 OF EX08-5.C: INCORRECT LICENSE ID CODE (LIC) IN 'TOOLS.INI'
   1          #include<reg51.h>
   2          #define uchar unsigned char
   3          #define _NOP() _nop()
   4          sbit sda=P3^1;
   5          sbit scl=P3^0;
   6          uchar j;
   7          void delay()
   8          { ;; }
   9          void start()  //开始信号            //当scl为高时,SDA有个负跳变
  10          {       
  11   1              sda=1;
  12   1              delay();
  13   1              scl=1;
  14   1              delay();
  15   1              
  16   1              sda=0;
  17   1              delay();
  18   1      }
  19          
  20          void stop()   //停止             SCL为高时,SDA有个正跳变
  21          {
  22   1              sda=0;
  23   1              delay();
  24   1              scl=1;
  25   1              delay();
  26   1              sda=1;
  27   1              delay();
  28   1      }
  29          
  30          void respons()  //应答  信号
  31          {
  32   1              uchar i;
  33   1              scl=1;
  34   1              delay();
  35   1              while((sda==1)&&(i<250))i++;//超过时间或者sda为1则没有受到应答信号
  36   1              scl=0;            //时钟拉低 第9个时钟结束
  37   1              delay();
  38   1      }
  39          
  40          void init()               //总线初始化
  41          {
  42   1              sda=1;
  43   1              delay();
  44   1              scl=1;
  45   1              delay();
  46   1      } 
  47          
  48          void write_byte(uchar date)                      //写数据        一位一位的写进去
  49          {
  50   1              uchar i,temp;            //写8次,定义一个中间变量
  51   1              temp=date;
  52   1      
  53   1              for(i=0;i<8;i++)
  54   1              {
C51 COMPILER V8.08   EX08_5                                                                03/14/2009 14:03:24 PAGE 2   

  55   2                  scl=0;
  56   2                      temp=temp<<1;      //左移一位
  57   2                                                 //数据可变
  58   2                  delay();
  59   2                      sda=CY;         //最高位移入CY中并赋值给SDA,CY为PWM中的最高一位          
  60   2                      delay();
  61   2                      scl=1;      //高电平器件数据要稳定
  62   2                      delay();
  63   2              
  64   2                }
  65   1              scl=0;
  66   1              delay();
  67   1              sda=1;                                           //释放总线      ,以便读取应答信号
  68   1              delay();
  69   1      }
  70          
  71          /*void delay3( uchar z )
  72          {
  73                  uchar x,y;
  74                  for(x=z;x>0;x--)
  75                          for(y=110;y>0;y--);
  76          }          */
  77          
  78          
  79          
  80          void delay1(uchar x)
  81          {
  82   1              uchar a,b;
  83   1              for(a=x;a>0;a--)
  84   1               for(b=100;b>0;b--);
  85   1      }       
  86          
  87          void write_add(uchar date)
  88          {
  89   1              start();
  90   1              write_byte(0x58);         //写入器件的地址      01011 00 0 前四位固定   最后一个0表示要写
  91   1              respons();
  92   1              write_byte(0x00);        //器件内部的地址       命令字节
  93   1              respons();
  94   1              write_byte(date);        //写入数据
  95   1              respons();
  96   1              stop();
  97   1      }
  98          
  99          
 100          void main()
 101          {
 102   1        
 103   1         
 104   1              init(); 
 105   1              j=0;  
 106   1      
 107   1              while(1)
 108   1      
 109   1               {
 110   2                
 111   2                write_add(j);
 112   2                delay1(1);  //必须留=一定时间         通过延时时间可以控制波形的折度
 113   2                 j++;
 114   2               }
 115   1      }
 116          
C51 COMPILER V8.08   EX08_5                                                                03/14/2009 14:03:24 PAGE 3   

 117          
 118          


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


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

⌨️ 快捷键说明

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