📄 main.lst
字号:
C51 COMPILER V8.02 MAIN 06/27/2007 17:35:18 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg52.h>
2 #include <absacc.h>
3
4 #define uint unsigned int
5 #define SEG1 XBYTE[0xffec]
6 #define SEG2 XBYTE[0xffed]
7 #define SEG3 XBYTE[0xffee]
8 #define SEG4 XBYTE[0xffef]
9 #define SUM 50 //多次测量求平均值次数
10 #define VREF 4999//放大1000倍
11
12 code unsigned char ledmap[]= //共阴LED数码管译码表
13 {
14 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,//0-9不带小数点
15 0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10 //0-9带小数点
16 };
17
18 //接口定义
19 sbit CS = P1^5;
20 sbit DA = P1^6;
21 sbit CK = P1^7;
22
23 //读取ADC结果函数
24 unsigned int get_data(void)
25 {
26 1 unsigned char i;
27 1 unsigned int temp = 0;
28 1 CS = 0; //开启控制电路,使能DA和CK IO引脚;
29 1 for(i=0;i<10;i++) //采集10次 ,即10bit
30 1 {
31 2 CK = 0;
32 2 temp <<= 1;
33 2 if(DA) temp++;
34 2 CK = 1;
35 2 }
36 1 CS = 1;
37 1 return(temp);
38 1 }
39
40 void delay(unsigned char i) //延时子程序
41 {
42 1 while(--i);
43 1 }
44
45
46 main()
47 {
48 1 unsigned long int temp;
49 1 unsigned char i;
50 1 CS = 1; //禁止I/O CLOCK
51 1 i = SUM;
52 1 temp = 0;
53 1 while(1)
54 1 {
55 2 temp += get_data();
C51 COMPILER V8.02 MAIN 06/27/2007 17:35:18 PAGE 2
56 2 i--;
57 2 if(i==0)
58 2 {
59 3 temp = temp / SUM;
60 3 temp = temp * VREF;
61 3 temp = temp / 1023;
62 3 SEG1 = ledmap[temp/1000%10 + 10];//+10表示该位带小数点
63 3 SEG2 = ledmap[temp/100%10];
64 3 SEG3 = ledmap[temp/10%10];
65 3 SEG4 = ledmap[temp%10];
66 3
67 3 i = SUM;
68 3 temp = 0;
69 3 }
70 2 delay(10); //不使用延时,测量程序延时为28us
71 2 }
72 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 312 ----
CONSTANT SIZE = 20 ----
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 + -