📄 text1.lst
字号:
C51 COMPILER V8.02 TEXT1 07/09/2010 17:50:06 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE TEXT1
OBJECT MODULE PLACED IN .\Text1.obj
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE ..\..\Text1.c BROWSE DEBUG OBJECTEXTEND PRINT(.\Text1.lst) OBJECT(.\Text1.o
-bj)
line level source
1 //------------------------------------------------------------
2 // ADC0809模数转换
3 //ADC0809采样通道3输入的模拟量,转换后结果显示在数码管上
4 #include <reg51.h>
5 #define uchar unsigned char
6 #define uint unsigned int
7
8 uchar code LEDData[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
9 //ADC0809引脚定义
10 sbit OE=P1^0;
11 sbit EOC=P1^1;
12 sbit ST=P1^2;
13 sbit CLK=P1^3;
14 //延时
15 void Delayms(uint ms)
16 {
17 1 uchar i;
18 1 while(ms--)for(i=0;i<120;i++);
19 1 }
20 //显示转换结果
21 void Display_Result(uchar d)
22 {
23 1 P2=0xf7;
24 1 P0=LEDData[d%10];
25 1 Delayms(5);
26 1 P2=0xfd;
27 1 P0=LEDData[d%100/10];
28 1 Delayms(5);
29 1 P2=0xfd;
30 1 P0=LEDData[d/100];
31 1 Delayms(5);
32 1 }
33 // 主程序
34 void main()
35 {
36 1 TMOD=0x02;
37 1 TH0=0x14;
38 1 TL0=0x00;
39 1 IE=0x82;
40 1 TR0=1;
41 1 P1=0x3f;//选择ADC0809通道3(0111)
42 1 //高4位设通道地址为0111
43 1 while(1)
44 1 {
45 2 ST=0;ST=1;ST=0;//启动转换
46 2 while(EOC==0); //等待转换结果
47 2 OE=1; //允许输出
48 2 Display_Result(P3); //显示A/D转换结果
49 2 OE=0; //关闭输出
50 2 }
51 1 }
52 //T0定时器中断给ADC0809提供时钟信号
53 void Timer0_INT() interrupt 1
54 {
C51 COMPILER V8.02 TEXT1 07/09/2010 17:50:06 PAGE 2
55 1 CLK=!CLK; //ADC0809时钟信号
56 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 122 ----
CONSTANT SIZE = 10 ----
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 + -