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

📄 10.3.lst

📁 《单片机C语言编程与实例》的代码
💻 LST
字号:
C51 COMPILER V6.20c  10_3                                                                  09/02/2001 15:03:44 PAGE 1   


C51 COMPILER V6.20c, COMPILATION OF MODULE 10_3
OBJECT MODULE PLACED IN 10.3.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 10.3.c DEBUG OBJECTEXTEND

stmt level    source

   1          #include<absacc.h>						//绝对地址访问函数
   2          #include<math.h>						//各种不同类型的数学函数
   3          #include<reg51.h>
   4          #define uchar unsigned char
   5          
   6          sbit P1_0=P1^0;
   7          sbit P1_1=P1^1;
   8          sbit P1_2=P1^2;
   9          sbit P1_3=P1^3;
  10          sbit P1_4=P1^4;
  11          sbit P1_5=P1^5;
  12          sbit P1_6=P1^6;
  13          sbit P1_7=P1^7;
  14          
  15          /*MAX525完成两路DAC模拟电压输出,待转换的12位二进制数据分别存放在变量dacdac1,dacdac2中*/
  16          void dac(unsigned long dacdata1,dacdata2)
  17          {
  18   1        uchar a=0;
  19   1        unsigned long xdata dacdatrfer=0;
  20   1        P1_6=0;
  21   1        P1=P1&0xdf;					//片选CS端置低电平
  22   1      for(a=0;a<4;a++)
  23   1      {
  24   2      P1_6=0;
  25   2      P1=P1&0xef;
  26   2      dacdatrfer=dacdata1;
  27   2      dacdatrfer=((dacdatrfer>>(3-a))&0x01)<<3;
  28   2      P1=P1|dacdatrfer;
  29   2      P1_6=1;
  30   2      }
  31   1      P1_6=0;
  32   1      for(a=0;a<12;a++)
  33   1      {
  34   2          P1_6=0;
  35   2      P1=P1&0xef;
  36   2      dacdatrfer=dacdata2;
  37   2      dacdatrfer=((dacdatrfer>>(11-a))&0x01)<<3;
  38   2      P1=P1|dacdatrfer;
  39   2      P1_6=1;
  40   2      }
  41   1      P1_6=0;
  42   1      P1=P1|0x20;
  43   1      }
  44          
  45          /*MAX1247的A/D转换,其中P1_1为片选端,P1_0为时钟输入端,P1_2为数据输入端,P1_3为数据输出*/
  46          unsigned int j,i;
  47          void adc()
  48          {
  49   1        uchar adcadres;
  50   1        uchar adcadrestrfer;
  51   1        uchar strdata;
  52   1        uchar ldata[12];
  53   1        P1_1=0;
  54   1        P1_0=0;
  55   1        adcadres=0x9e;				//送控制命令字节
C51 COMPILER V6.20c  10_3                                                                  09/02/2001 15:03:44 PAGE 2   

  56   1        for(i=0;i<8;i++)
  57   1      {
  58   2      adcadrestrfer=adcadres;
  59   2      adcadrestrfer=(adcadrestrfer>>(7-i))&0x01;
  60   2      P1_3= adcadrestrfer;				//右移一次,送到P1_2口
  61   2      P1_0=0;					//此处为送时钟信号
  62   2      for(j=0;j<2;j++);				//空操作,延时
  63   2      P1_0=1;
  64   2      for(j=0;j<2;j++);				//空操作,延时
  65   2      P1_0=0;					//时钟信号周期等于执行4条指令的时间
  66   2      }
  67   1      P1_1=0;
  68   1      for(j=0;j<2;j++);			    	//空操作,延时
  69   1      P1_1=0;
  70   1      strdata=0;
  71   1      P1_0=1;
  72   1      for(j=0;j<12;j++)
  73   1      {
  74   2          P1_0=0;
  75   2          P1_0=1;
  76   2          strdata=P1_2;				//读出12位串行数据
  77   2          strdata= strdata<<(11-j);
  78   2          ldata[j]=ldata[j]|strdata;
  79   2         }
  80   1      strdata=ldata[j];
  81   1      for(j=0;j<4;j++)
  82   1      {
  83   2      P1_0=0;
  84   2      P1_0=1;
  85   2      }
  86   1      P1_1=1;
  87   1      }


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