📄 c.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 + -