📄 c.lst
字号:
C51 COMPILER V8.08 C 05/17/2009 10:26:32 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.2采集外部电压值进行模数转换,通过P1口显示其二进制值,并通过串口发送
2 #include<REG51.H>
3 sfr P1ASF=0x9D;//P1口模拟功能控制寄存器
4 sfr ADC_CONTR=0xBC;//模数转换控制特殊功能寄存器
5 sfr ADC_RES=0xBD;//模数转换结果高8位寄存器
6 sbit led_mcu_start=0xB7;//定义P3.7为工作指示灯
7 void delay(int x)//延时函数,根据参数x的大小来决定延时的长短
8 {
9 1 while(x--)
10 1 ;
11 1 }
12 void init_rs232()//初始化串口,使用18.432MHz的晶振,波特率为1200bps
13 {
14 1 TMOD=0x20;
15 1 SCON=0x50;
16 1 TH1=216;
17 1 TL1=216;
18 1 TR1=1;
19 1 }
20 void send_byte(unsigned char x)//串口发送一个字节,内容为参数x
21 {
22 1 ES=0;//禁止串口中断
23 1 TI=0;
24 1 SBUF=x;
25 1 while(!TI)
26 1 ;
27 1 TI=0;
28 1 }
29 void adc_power_on()//打开模数转换开关
30 {
31 1 ADC_CONTR=ADC_CONTR|0x80;
32 1 delay(20);
33 1 }
34 void set_P12_asf()//设置P1.2为模数转换通道
35 {
36 1 P1ASF=P1ASF|0x04;
37 1 }
38 void set_P12_normal_IO()//设置P1.2为普通I/O口
39 {
40 1 P1ASF=P1ASF&0xFB;
41 1 }
42 void set_adc_channel_2()//模数转换从通道2(P1.2)进行
43 {
44 1 ADC_CONTR=0xE2;
45 1 }
46 void send_ad_result()//发送模数转换结果
47 {
48 1 send_byte(ADC_RES);
49 1 }
50 void get_ad_result()//开始模数转换
51 {
52 1 ADC_CONTR=ADC_CONTR|0x08;//启动模数转换
53 1 delay(20);//启动模数转换后,等待4个机器周期方可正确读取ADC_CONTR的值
54 1 while(!(ADC_CONTR|0x10))//等待转换完成
55 1 ;
C51 COMPILER V8.08 C 05/17/2009 10:26:32 PAGE 2
56 1 ADC_CONTR=ADC_CONTR&0xE7;//完成标志位清零,停止模数转换
57 1 }
58 void main()
59 {
60 1 unsigned char i;
61 1 led_mcu_start=0;//打开工作指示灯
62 1 init_rs232();//初始化串口
63 1 adc_power_on();//打开模数转换开关
64 1 set_adc_channel_2();//模数转换从通道2(P1.2)进行
65 1 while(1)
66 1 {
67 2 set_P12_asf();//设置P1.2为模数转换通道
68 2 get_ad_result();//开始模数转换
69 2 send_ad_result();//发送模数转换结果
70 2 set_P12_normal_IO();//设置P1.2为普通I/O口
71 2 P1=~ADC_RES;//模数转换结果取反,通过P1口的发光数码管显示
72 2 for(i=0;i<8;i++)
73 2 delay(65535);//延长一段时间
74 2 }
75 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 128 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
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 + -