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

📄 max532.lst

📁 单片机接口技术实用子程序配套源代码
💻 LST
字号:
C51 COMPILER V7.06   MAX532                                                                05/10/2005 17:28:30 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE MAX532
OBJECT MODULE PLACED IN MAX532.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil20\C51\BIN\C51.EXE MAX532.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          //-----------------------函数声明--------------------------------------------------------
   2          #include "reg51.h"
   3          #include "intrins.h"
   4          //-----------------------管脚声明--------------------------------------------------------
   5          sbit CS_max532=P1^0;
   6          sbit CLK_max532=P1^1;
   7          sbit DI_max532=P1^2;
   8          sbit DO_max532=P1^3;
   9          sbit LDAC=P1^4;      //异步加载DAC输入,作为同步信号 
  10          //--------------------------------------------------------------------------------------------------
  11          // 函数名称: delay
  12          // 入口参数: N
  13          // 函数功能:延时子程序,实现(16*N+24)us的延时 
  14          // 系统采用11.0592MHz的时钟时,延时满足要求,其它情况需要改动
  15          //--------------------------------------------------------------------------------------------------
  16            void delay(unsigned  int N)  
  17            {
  18   1        int i; 
  19   1        for(i=0;i<N;i++);
  20   1        }
  21          //--------------------------------------------------------------------------------------------------
  22          // 函数名称: SEND_1
  23          // 函数功能: 送1位数据"1"
  24          //--------------------------------------------------------------------------------------------------
  25          void SEND_1(void)
  26                { 
  27   1                DI_max532=1; 
  28   1            CLK_max532=1; 
  29   1            _nop_(); 
  30   1            CLK_max532=0;
  31   1            _nop_();
  32   1            }
  33          //--------------------------------------------------------------------------------------------------
  34          // 函数名称: SEND_0
  35          // 函数功能: 送1位数据"0"
  36          //--------------------------------------------------------------------------------------------------
  37          void SEND_0(void)
  38                  { 
  39   1               DI_max532=0; 
  40   1               CLK_max532=1;
  41   1               _nop_();
  42   1               CLK_max532=0;
  43   1               _nop_();
  44   1               }
  45          //--------------------------------------------------------------------------------------------------
  46          // 函数名称: SEND_BYTE
  47          // 入口参数: dd,待发送的数据
  48          // 函数功能: 送1BYTE数据
  49          //--------------------------------------------------------------------------------------------------
  50          void SEND_BYTE(unsigned char dd)
  51               { 
  52   1            unsigned char i; 
  53   1            for (i=0;i<8;i++) 
  54   1                {
  55   2                        if (dd>=0x80) SEND_1(); 
C51 COMPILER V7.06   MAX532                                                                05/10/2005 17:28:30 PAGE 2   

  56   2                        else SEND_0();
  57   2                        dd=dd<<1; 
  58   2                        }
  59   1               }
  60          //--------------------------------------------------------------------------------------------------
  61          // 函数名称: SEND_4bit
  62          // 入口参数: dd,待发送的数据
  63          // 函数功能: 送1BYTE数据
  64          //--------------------------------------------------------------------------------------------------
  65          void SEND_4bit(unsigned char dd)
  66               { 
  67   1            unsigned char i; 
  68   1                dd=dd<<4; 
  69   1            for (i=0;i<4;i++) 
  70   1                {
  71   2                        if (dd>=0x80) SEND_1(); 
  72   2                        else SEND_0();
  73   2                        dd=dd<<1; 
  74   2                        }
  75   1               }
  76          //--------------------------------------------------------------------------------------------------
  77          // 函数名称: B_only
  78          // 入口参数: Bdata_H,Bdata_L 12位数据
  79          // 函数功能: B通道单独转换,A通道输出任意数
  80          //--------------------------------------------------------------------------------------------------
  81          void B_only(unsigned char Bdata_H,unsigned char Bdata_L) //B通道数据发送 
  82          { 
  83   1      //Bdata_H为DA通道B数据高4位 
  84   1      //Bdata_L为DA通道B数据低8位 
  85   1      LDAC=1; 
  86   1      SEND_4bit(Bdata_H);
  87   1      SEND_BYTE(Bdata_L);
  88   1      LDAC=0;
  89   1      }  
  90          //--------------------------------------------------------------------------------------------------
  91          // 函数名称: A_only
  92          // 入口参数: Adata_H,Adata_L 12位数据
  93          // 函数功能: B通道输出零,A通道单独转换
  94          //--------------------------------------------------------------------------------------------------
  95          void A_only(unsigned char Adata_H,unsigned char Adata_L) //B通道数据发送 
  96          { 
  97   1      //Adata_H为DA通道B数据高4位 
  98   1      //Adata_L为DA通道B数据低8位  
  99   1      LDAC=1; 
 100   1      SEND_4bit(0);
 101   1      SEND_BYTE(0);         //高12位写零
 102   1      SEND_4bit(Adata_H);
 103   1      SEND_BYTE(Adata_L);
 104   1      LDAC=0; 
 105   1      }  
 106          //--------------------------------------------------------------------------------------------------
 107          // 函数名称: A_only
 108          // 入口参数: Bdata_H,Bdata_L 12位数据
 109          //            Adata_H,Adata_L 12位数据
 110          // 函数功能: A\B通道同时转换
 111          //--------------------------------------------------------------------------------------------------
 112          void AB_both(unsigned char Bdata_H,unsigned char Bdata_L,
 113                       unsigned char Adata_H,unsigned char Adata_L) //B通道数据发送 
 114          { 
 115   1      //Bdata_H为DA通道B数据高4位 
 116   1      //Bdata_L为DA通道B数据低8位  
 117   1      //Adata_H为DA通道B数据高4位 
C51 COMPILER V7.06   MAX532                                                                05/10/2005 17:28:30 PAGE 3   

 118   1      //Adata_L为DA通道B数据低8位  
 119   1      LDAC=1; 
 120   1      SEND_4bit(Bdata_H);
 121   1      SEND_BYTE(Bdata_L); //写高12位
 122   1      SEND_4bit(Adata_H);
 123   1      SEND_BYTE(Adata_L); //写低12位
 124   1      LDAC=0; 
 125   1      }  
 126          
 127          


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