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

📄 main.lst

📁 stc15单片机测试程序V1.0版
💻 LST
字号:
C51 COMPILER V9.01   MAIN                                                                  07/28/2012 10:12:00 PAGE 1   


C51 COMPILER V9.01, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /***********************************************************
   2          实验名称:ad
   3          程序说明:本程序测试了ad
   4          实验平台:stc15单片机开发板v1.0版
   5          日期:2012-05-27
   6          QQ:     259902530
   7          www.stcstudy.com    61mcu.taobao.com  版权所有 
   8          ***********************************************************/
   9          /*----------------------------------------
  10               本测试程序使用了串口1进行AD数值输出。
  11                   如果需要更换测试的通道,请改变ch的值。
  12                   可采用STC下载软件自带串口调试助手观察
  13          -----------------------------------------*/
  14          
  15          #include "STC15F2K.h"
  16          #include "UART.H"
  17          #include <intrins.h>
  18          
  19          
  20          
  21          uint GetADC;
  22          
  23          #define     URMD    0           //0:使用定时器2作为波特率发生器
  24                                          //1:使用定时器1的模式0(16位自动重载模式)作为波特率发生器
  25                                          //2:使用定时器1的模式2(8位自动重载模式)作为波特率发生器
  26          
  27          
  28          #define ADC_POWER   0x80            //ADC电源控制位
  29          #define ADC_FLAG    0x10            //ADC完成标志
  30          #define ADC_START   0x08            //ADC起始控制位
  31          #define ADC_SPEEDLL 0x00            //540个时钟
  32          #define ADC_SPEEDL  0x20            //360个时钟
  33          #define ADC_SPEEDH  0x40            //180个时钟
  34          #define ADC_SPEEDHH 0x60            //90个时钟
  35          
  36          void UAS(uint Data,uchar *p);
  37          void Delay(uint n);
  38          void InitADC();
  39          
  40          uchar ch = 3;                        //ADC通道号
  41          
  42          void main()
  43          {
  44   1         
  45   1              uchar tmp[]="0123456789";
  46   1              uchar out[5]="0000";
  47   1              P2=0x01;
  48   1          InitADC();                      //初始化ADC
  49   1          IE = 0xa0;                      //使能ADC中断
  50   1                                          //开始AD转换
  51   1              InitUART();                     //初始化串口
  52   1          SendString("All OK now!!!\r\n\r\n")    ;
  53   1          while (1)
  54   1              {
  55   2                 SendString("The ADC Num is:  ");
C51 COMPILER V9.01   MAIN                                                                  07/28/2012 10:12:00 PAGE 2   

  56   2                 SendData(tmp[ch]);
  57   2                 SendString("    -  ") ;
  58   2                 UAS(GetADC,out);
  59   2                 SendString(out);
  60   2                 SendString("\r\n\r\n");
  61   2                 Delay(150);
  62   2                 ch++;
  63   2                 if(ch>5) ch=3;
  64   2              }
  65   1      }
  66          
  67          /*----------------------------
  68          ADC中断服务程序
  69          ----------------------------*/
  70          void adc_isr() interrupt 5 using 1
  71          {
  72   1          ADC_CONTR &= !ADC_FLAG;         //清除ADC中断标志
  73   1              GetADC=(ADC_RES<<2)| (ADC_RESL&0xFC);
  74   1      
  75   1          ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ADC_START | ch;
  76   1      }
  77          
  78          /*----------------------------
  79          初始化ADC
  80          ----------------------------*/
  81          void InitADC()
  82          {
  83   1          P1ASF = 0xff;                   //设置P1口为AD口
  84   1          ADC_RES = 0;                    //清除结果寄存器
  85   1          ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ADC_START | ch;
  86   1          Delay(2);                       //ADC上电并延时
  87   1      }
  88          
  89          
  90          
  91          void Delay(uint n)
  92          {
  93   1          uint x;
  94   1      
  95   1          while (n--)
  96   1          {
  97   2              x = 5000;
  98   2              while (x--);
  99   2          }
 100   1      }
 101          
 102          void UAS(uint Data,uchar *p)
 103          {
 104   1        uchar a[]="0123456789";
 105   1        *p=a[Data/1000];
 106   1        *(p+1)=a[Data%1000/100];
 107   1        *(p+2)=a[Data%100/10];
 108   1        *(p+3)=a[Data%10];
 109   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    395    ----
   CONSTANT SIZE    =     76    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      3      32
C51 COMPILER V9.01   MAIN                                                                  07/28/2012 10:12:00 PAGE 3   

   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 + -