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

📄 c.lst

📁 本程序使用STC12C5AXXS2系列单片机
💻 LST
字号:
C51 COMPILER V8.08   C                                                                     05/16/2009 20:38:59 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE C
OBJECT MODULE PLACED IN C.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE C.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          //本程序演示在P1.3输出0~5V的电压
   2          #include<REG51.H>
   3          sfr AUXR=0x8E;//辅助寄存器
   4          sfr BRT=0x9C;//独立波特率发生器
   5          sfr CCON=0xD8;
   6          sfr CMOD=0xD9;//PCA模式寄存器
   7          sfr CL=0xE9;
   8          sfr CH=0xF9;
   9          sfr CCAP0L=0xEA;
  10          sfr CCAP0H=0xFA;
  11          sfr CCAPM0=0xDA;//比较/捕获模块寄存器
  12          sfr CCAPM1=0xDB;
  13          sbit CR=0xDE;
  14          void init_pwm()
  15          {
  16   1              CMOD=0x04;//脉宽调制输入时钟为定时器0的溢出率
  17   1              CH=0x00;
  18   1              CL=0x00;
  19   1              CCAP0L=0xCC;//占空比为C0/100=10%
  20   1              CCAP0H=0xCC;
  21   1              CCAPM0=0x42;//8位脉宽调制,无中断
  22   1              AUXR=AUXR|0x80;//定时器0以1T方式工作
  23   1              TMOD=0x02;//定时器0以方式2工作
  24   1              TH0=240;//输出矩形波频率=晶振频率/256/(256-240)
  25   1              TL0=240;
  26   1              TR0=1;//定时器0开始工作
  27   1              CR=1;//CCP0开始工作
  28   1      }
  29          void init_rs232()
  30          {
  31   1              AUXR=AUXR|0x01;//串口1使用独立波特率发生器
  32   1              SCON=0x50;//串口以方式1工作
  33   1              BRT=230;//波特率=晶振频率/12/32/(256-BRT)
  34   1              ES=0;//禁止串口中断
  35   1              AUXR=AUXR|0x10;//BRT开始工作
  36   1      }
  37          void send_byte(unsigned char x)//发送一个字节
  38          {
  39   1              TI=0;
  40   1              SBUF=x;
  41   1              while(!TI)
  42   1                      ;
  43   1              TI=0;
  44   1      }
  45          void main()
  46          {
  47   1              unsigned int vc;//以整数表示的电压值
  48   1              float vf;//以浮点表示的电压值
  49   1              init_pwm();//初始化脉宽调制
  50   1              init_rs232();//初始化串口
  51   1              while(1)
  52   1              {
  53   2                      while(!RI)//等待串口接收字节
  54   2                              ;
  55   2                      CCAP0H=0xFF-SBUF;//CCAP0H的值越大,占空比越小
C51 COMPILER V8.08   C                                                                     05/16/2009 20:38:59 PAGE 2   

  56   2                      RI=0;
  57   2                      vf=1.0*(0xFF-CCAP0H)/0xFF*5;//根据占空比,换算出电压值
  58   2                      vc=100*vf;//扩大100倍,转换为整数
  59   2                      send_byte(0x30+vc/100);//通过串口发送变量vc,格式为“X.XXV ”
  60   2                      send_byte('.');
  61   2                      send_byte(0x30+vc%100/10);
  62   2                      send_byte(0x30+vc%10);
  63   2                      send_byte('V');
  64   2                      send_byte(' ');
  65   2              }
  66   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    219    ----
   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 + -