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

📄 acc1-2-1.lst

📁 信号的采样与保持
💻 LST
字号:
C51 COMPILER V7.09   ACC1_2_1                                                              07/11/2005 11:26:37 PAGE 1   


C51 COMPILER V7.09, COMPILATION OF MODULE ACC1_2_1
OBJECT MODULE PLACED IN acc1-2-1.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE acc1-2-1.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*****************************************
   2          文件名:ACC1-2-1.C
   3          功能描述:定时100ms采样,采样结果直接送D/A输出
   4          *****************************************/
   5          #include <reg51.h>
   6          #include <absacc.h>
   7          
   8          /*****************************************
   9          宏定义
  10          *****************************************/
  11          #define uchar unsigned char
  12          #define uint  unsigned int
  13          #define ADC_7 XBYTE[0x7ff0]                     //定义模数转换IO地址
  14          #define DAC_1 XBYTE[0x7ff2]                     //定义D/A第一路的IO地
  15          
  16          /*****************************************
  17          全局变量定义
  18          *****************************************/
  19          sbit  str = P1^7;
  20          uchar data ad[10];                                      //声明变量,用于存储转换结果
  21          uint  data time;                                        //声明变量,用于定时
  22          uchar data t0_h,t0_l;                           //用于存储定时器0的初值
  23          uchar TK;                                                       //声明采样周期变量
  24          uchar TC;                                                       //TK的变量
  25          
  26          /*****************************************
  27          主函数
  28          *****************************************/
  29          void main(void)
  30          { 
  31   1      
  32   1              TMOD = 0x01;
  33   1              time = 10;                                                      //定时1ms
  34   1              t0_h  = (65536-500*time)/256;           //计算定时器0初值
  35   1              t0_l  = (65536-500*time)%256;
  36   1              t0_l = t0_l+20;                                         //修正因初值重装而引起的定时误差
  37   1              TH0  = t0_h;
  38   1              TL0  = t0_l;
  39   1              IT1  = 1;                                                       //边沿触发中断
  40   1              EX1  = 1;                                                       //开外部中断1
  41   1              ET0  = 1;                                                       //开定时中断0
  42   1              TR0  = 1;                                                       //启动定时器
  43   1      
  44   1              TK   = 10;                                                      //采样周期=TK×10ms
  45   1              TC   = 1;
  46   1              DAC_1= 0x80;                                            //D/A清零
  47   1      
  48   1              EA       = 1;                                                   //开总中断
  49   1              while(1);
  50   1      }
  51          
  52          /**********************************************
  53          函数名:INT1
  54          功能  :1号外部中断服务程序 
  55          参数  :无*  
C51 COMPILER V7.09   ACC1_2_1                                                              07/11/2005 11:26:37 PAGE 2   

  56          返回值:无 * 
  57          ***********************************************/
  58          void int1() interrupt 2 using 2
  59          {       uchar i;
  60   1      
  61   1              TC--;                                                           //判采样周期到否
  62   1        if(TC==0)
  63   1         {
  64   2               i = ADC_7;                                                     //读取A/D转换结果
  65   2               DAC_1 =i;                                                      //送D/A输出
  66   2               TC = TK;                                                       //采样周期变量恢复
  67   2              }
  68   1      }
  69          
  70          /**********************************************
  71          函数名:Timer0
  72          功能  :定时器0中断服务程序
  73          参数  :无   
  74          返回值:无  
  75          ***********************************************/
  76          void Timer0() interrupt 1  using 1
  77          {
  78   1              str = !str;                                                     //产生A/D启动信号
  79   1              TH0 = t0_h;                                                     //重新装入初值
  80   1              TL0 = t0_l;
  81   1      }
  82          


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