📄 guiyihua2.lst
字号:
C51 COMPILER V8.02 GUIYIHUA2 04/13/2009 20:28:41 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE GUIYIHUA2
OBJECT MODULE PLACED IN guiyihua2.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\C51.EXE guiyihua2.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg52.h>
2 #define uchar unsigned char
3 #define uint unsigned int
4
5 sbit Addr0 = P2^0; //8通道选择位
6 sbit Addr1 = P2^1;
7 sbit Addr2 = P2^2;
8 sbit OE = P2^3; //转换数据输出位
9 //sbit CLK = P2^4;
10 sbit ST = P2^5; //开始位,地址锁存位
11 sbit EOC = P2^6; //转换结束位
12
13 uchar code DispTab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,
14 0x82,0xF8,0x80,0x90}; //段码0-9
15 uchar DispBuf[4]; //显示缓存区
16 sfr LedPort=0x80; //P0口接段码
17 sfr DataPort = 0xB0;
18
19 sbit LED0=P1^0; //数码管控制位
20 sbit LED1=P1^1;
21 sbit LED2=P1^2;
22 sbit LED3=P1^3;
23
24 uint Data,count,Getdata;
25
26 void Delay(uchar i) //延时
27 {
28 1 for(;i>0;i--)
29 1 {
30 2 uchar j=244;
31 2 while(--j);
32 2 }
33 1 }
34
35
36
37 void Display() //显示子程序
38 {
39 1 P1 = 0xff; //关所有的位选
40 1 LedPort = DispBuf[1]&0x7f; //动态扫态
41 1 LED1 = 0;
42 1 Delay(1);
43 1 LED1 = 1;
44 1
45 1 LedPort = DispBuf[2];
46 1 LED2 = 0;
47 1 Delay(1);
48 1 LED2 = 1;
49 1
50 1 LedPort = DispBuf[3];
51 1 LED3 = 0;
52 1 Delay(1);
53 1 LED3 = 1;
54 1 }
55
C51 COMPILER V8.02 GUIYIHUA2 04/13/2009 20:28:41 PAGE 2
56
57 void main()
58 {
59 1 TMOD=0x01; //利用定时器,定时1S转换一次数据
60 1 TH0=(65536-50000)/256; //对定时器0,赋初值
61 1 TL0=(65536-50000)%256;
62 1 TR0=1;
63 1 ET0=1;
64 1 EA=1;
65 1
66 1
67 1
68 1 while(1)
69 1 {
70 2 Addr0 = 0; //选通ADC0809的IN0
71 2 Addr1 = 0;
72 2 Addr2 = 0;
73 2
74 2 OE = 0;
75 2 ST = 0;
76 2 ST = 1; // 初始化ADC0809
77 2 Delay(1);
78 2 ST = 0; // 开始转换数据
79 2 Delay(1);
80 2 while(!EOC); //等待ADC0809转换数完成
81 2 OE = 1; //送出转换得的数据
82 2 Getdata = DataPort; //将转换得的数据赋值给Getdata
83 2 OE = 0;
84 2 ST = 1;
85 2 Data=Getdata*49/25; //将ADC0809送来的数据,转化作对应的电压值
86 2 // Data = Getdata;
87 2 Display();
88 2
89 2 }
90 1 }
91
92 void Timer0() interrupt 1
93 {
94 1
95 1 TH0 = (65536-50000)/256; //再次赋值
96 1 TL0 = (65536-50000)%256;
97 1
98 1 count++;
99 1 if(count==20)
100 1 {
101 2 count = 0;
102 2 DispBuf[1]=DispTab[Data/100];
103 2 DispBuf[2]=DispTab[(Data%100)/10];
104 2 DispBuf[3]=DispTab[(Data%100)%10];
105 2
106 2 }
107 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 302 ----
CONSTANT SIZE = 10 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 10 1
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
C51 COMPILER V8.02 GUIYIHUA2 04/13/2009 20:28:41 PAGE 3
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -