📄 hello.lst
字号:
C51 COMPILER V8.05a HELLO 05/24/2009 11:27:09 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE HELLO
OBJECT MODULE PLACED IN hello.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\C51.EXE hello.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /***********************************************
2
3 用ADC0809采用查寻法测电压
4
5 ***********************************************/
6
7 #include <time_interrupt.h>
8
9
10 void main()
11 {
12 1 while(1)
13 1 {
14 2 TimeInitial();
15 2 ADC0809();//用ADC0809采样电压
16 2 display();// 显示ADC0809采样的电压
17 2 keyboard_fun(); //从按键获取与PWM相比较的电压值
18 2 compare();//比较 voltage 与 PWM_voltage的值
19 2
20 2 }
21 1
22 1 }
23
24
25 // ADC0809 使用程序
26 void ADC0809()
27 {
28 1 ADC0809_ALE = 0;
29 1 ADC0809_OE=0;
30 1 ADC0809_START = 0 ;
31 1 ADC0809_EOC = 1 ;
32 1
33 1 ADC0809_ADDRESS_A = ~ADC0809_ADDRESS_A ;
34 1 ADC0809_ALE = 1;
35 1 ADC0809_ALE = 0 ;
36 1 ADC0809_START = 1 ;
37 1 ADC0809_START = 0 ;
38 1 delay(100); //等待AD转换结束,此延时搞死老子
39 1 while(!ADC0809_EOC); // ADC0809_EOC 为0,即没有转换束,不停循环
40 1
41 1 ADC0809_OE = 1;
42 1 if(ADC0809_ADDRESS_A == 0)
43 1 {
44 2 voltage = P1; //从ADC0809获取的电压放在变量 voltage 上
45 2 voltage=voltage*19.607843;
46 2 }
47 1 else
48 1 {
49 2 current = P1;
50 2 current=current*19.607843;
51 2 }
52 1 ADC0809_OE = 0;
53 1 display();
54 1 }
55
C51 COMPILER V8.05a HELLO 05/24/2009 11:27:09 PAGE 2
56
57 //显示电压大小程序
58 void display()
59 {
60 1
61 1 LEDcom1=table2[voltage/1000];
62 1 LEDcom2=table[voltage/100%10];
63 1 LEDcom3=table[voltage/10%10];
64 1 LEDcom4=table[voltage%10];
65 1
66 1
67 1 LEDcom5=table2[current/1000];
68 1 LEDcom6=table[current/100%10];
69 1 LEDcom7=table[current/10%10];
70 1 LEDcom8=table[current%10];
71 1 }
72
73
74 //从按键获取与PWM相比较的电压值
75 void keyboard_fun()
76 {
77 1 if(keyboard==0xfe) //电压增加1
78 1 {
79 2 delay(100);
80 2 if(keyboard==0xfe) //消抖
81 2 {
82 3 while(keyboard==0xfe);//按键释放,再运行以下程序
83 3 PWM_voltage++;
84 3 }
85 2
86 2 }
87 1 if(keyboard==0xfd) //电压增加1
88 1 {
89 2 delay(100);
90 2 if(keyboard==0xfd) //消抖
91 2 {
92 3 while(keyboard==0xfd);//按键释放,再运行以下程序
93 3 PWM_voltage--;
94 3 }
95 2 }
96 1 if(PWM_voltage<25||PWM_voltage>36)
97 1 {
98 2 PWM_voltage=30;
99 2 }
100 1 }
101
102
103 //比较 voltage 与 PWM_voltage的值
104 void compare()
105 {
106 1
107 1 }
108
109
110 //延时子程序
111 //时间 = t*10 us
112 void delay(unsigned int t)
113 {
114 1 unsigned int i,j;
115 1 for(i = 0;i<t;i++)
116 1 for(j = 0;j<10;j++);
117 1 }
C51 COMPILER V8.05a HELLO 05/24/2009 11:27:09 PAGE 3
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 571 ----
CONSTANT SIZE = 20 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 9 ----
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 + -