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

📄 从机.lst

📁 SPI模拟通信从机,用于双机进行通行
💻 LST
字号:
C51 COMPILER V8.05a   从籣                                                                 04/29/2009 14:33:20 PAGE 1   


C51 COMPILER V8.05a, COMPILATION OF MODULE 从籣
OBJECT MODULE PLACED IN 从机.OBJ
COMPILER INVOKED BY: D:\新建文件夹\keil\C51\BIN\C51.EXE 从机.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include<reg51.h>
   2          #include<intrins.h>
   3          #define uchar unsigned char
   4          #define uint  unsigned char
   5          uchar shou;
   6          
   7          sbit mi=P1^0;     //从机接收主机发送接口
   8          sbit mo=P1^1;     //从机发送主机接收接口
   9          sbit sclk=P1^2;   //主从机时钟同步时钟信号
  10          sbit ss=P1^3;     //从机选择控制位
  11          
  12          
  13          
  14          /**********简单的延时函数***************/
  15          void delay(uchar z)
  16          {
  17   1              uchar a;
  18   1              for(;z>0;z--)
  19   1                      for(a=5;a>0;a--);
  20   1      
  21   1      }
  22          
  23          /**********从机接收数据并发送数据函数************/
  24          void shoufa(uchar date)
  25          {
  26   1      
  27   1              uchar a,b;
  28   1              while(ss==0)    //检测是否有数据的传输
  29   1              {
  30   2              /*确认主机要发送数据后进行接收****/
  31   2              while(sclk==1);  //检测同步时钟信号
  32   2                                                        //确定时钟信号置低
  33   2              for(a=0;a<8;a++)
  34   2              {
  35   3                       while(sclk==0) //时钟置低,准备发数据
  36   3                      {               
  37   4      
  38   4                              delay(0);   //等待数据的稳定
  39   4                              b=mi;
  40   4                              P2=b;
  41   4                              if(b==1)
  42   4                                      shou|=0x01;
  43   4                              while(sclk==0); //数据接收完成一位之后等待发送数据
  44   4                      }  
  45   3                              
  46   3                        if(a<7)
  47   3                              {  
  48   4                                shou<<=1;
  49   4                              }
  50   3                              
  51   3                      while(sclk==1)
  52   3                      {               
  53   4                              date<<=1;
  54   4                              mo=CY;     //输出数据的高位
  55   4                              while(sclk==1);
C51 COMPILER V8.05a   从籣                                                                 04/29/2009 14:33:20 PAGE 2   

  56   4                      }               
  57   3              }       
  58   2              }
  59   1      }
  60          /***********主程序**************/
  61          void main()
  62          {
  63   1      
  64   1              P1=0xff;
  65   1              while(1)
  66   1              {
  67   2                      shoufa(0xff);
  68   2                      P3=shou;
  69   2              }
  70   1              
  71   1      }


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