📄 tzqno.lst
字号:
C51 COMPILER V6.12 TZQNO 05/16/2008 15:18:18 PAGE 1
C51 COMPILER V6.12, COMPILATION OF MODULE TZQNO
OBJECT MODULE PLACED IN .\tzqno.OBJ
COMPILER INVOKED BY: e:\Keil\C51\BIN\C51.EXE .\tzqno.c DEBUG OBJECTEXTEND
stmt level source
1 #include <stdio.h>
2 #include <reg52.h>
3 #include <math.h>
4 #include <absacc.h>
5 #include <string.h> //头文件
6 #define uchar unsigned char
7 /*lcd函数声明*/
8 PR1();
9 PR11();
10 PR12();
11 void ST01(void);
12 void ST2(void);
13 void ST3(void);
14 INT_1();
15 CLEAR();
16 void DRAW(unsigned int);
17 W_DOT();
18 void DELAY(uchar);
19 NOP();
20 //ad函数声明
21 void DELAY1(uchar x);
22 uchar readadc(void);
23 void adcck(void);
24 uchar adc(void);
25 void collect(void);
26 tongxun();
27
28 void display();
29
30 /* lcd 地址定义 */
31 sbit cd=P1^7; //定义C/D
32 sbit wr=P3^6; //定义wr
33 sbit rd=P3^7; //定义rd
34 sbit yjcs=P2^7; //定义lcd 的cs
35
36 /* ad 地址定义 */
37 sbit adcd0=P3^2;
38 sbit adccs=P2^6;
39 sbit adcclk=P1^6;
40 sbit ramcs=P2^5;
41
42 /* 常数定义 */
43 #define para1 0x10; //显示宽度16个
44
45 /*宏定义*/
46 uchar bei_data=6; //ad参数缩小倍数
47 uchar lcd_step=3; //读ram时的读数间隔
48 uchar average=123;//采集数据的中间点
49 /*标志位*/
50 char flag,flag1;
51 /*参数声明*/
52 uchar q=0;
53 unsigned int m;
54 bit a;
55 long int ram_wr=0;
C51 COMPILER V6.12 TZQNO 05/16/2008 15:18:18 PAGE 2
56 unsigned int O_X,O_Y, com,dat1,dat2,adc_sum;//com为液晶屏的指令代码,dat2显示文本垂直位置
57 uchar code_1,wave_count=0,adc_t,lb_date,adc_date,keyvalue;
58 uchar xdata RAM[5120]_at_ 0xc400; //外部存储器,注意必须为0XCxxx,跟P2口有关
59 unsigned int timecount;
60
61
62
63
64 void DELAY(unsigned char x)
65
66 {
67 1
68 1 unsigned char i;
69 1
70 1 for(i=0;i<x;i++); //延时,脉冲一位持续的时间
71 1
72 1 }
73
74 unsigned char adc(void) //把模拟电压值转换成8位二进制数并返回
75
76 { unsigned char i,ch;
77 1
78 1 ch=0;
79 1
80 1 adccs=0;
81 1
82 1 adcd0=0;//片选,DO为高阻态
83 1
84 1 DELAY(10);
85 1
86 1 adcclk=0; DELAY(2);
87 1
88 1 adcclk=1; DELAY(2); //第一个脉冲,起始位
89 1
90 1 adcclk=0; DELAY(2);
91 1
92 1 adcclk=1; DELAY(2); //第二个脉冲,DI=1表示双通道单极性输入
93 1
94 1 adcclk=0; DELAY(2);
95 1
96 1 adcclk=1; DELAY(2); //第三个脉冲,DI=1表示选择通道1(CH2)
97 1
98 1 adcd0=1;//DI转为高阻态,DO脱离高阻态为输出数据作准备
99 1
100 1 adcclk=1; DELAY(2);
101 1
102 1 adcclk=0; DELAY(2);//经实验,这里加一个脉冲AD便能正确读出数据,
103 1
104 1 //不加的话读出的数据少一位(最低位d0读不出)
105 1
106 1 for (i=0; i<8; i++)
107 1
108 1 { adcclk=1; DELAY(2);
109 2
110 2 adcclk=0; DELAY(2);
111 2
112 2 ch=(ch<<1)|adcd0;//在每个脉冲的下降沿DO输出一位数据,最终ch为8位二进制数
113 2
114 2 }
115 1 adccs=1;//取消片选,一个转换周期结束
116 1
117 1 return(ch);//把转换结果返回
C51 COMPILER V6.12 TZQNO 05/16/2008 15:18:18 PAGE 3
118 1
119 1 }
120 main()
121 { unsigned int n;
122 1 ramcs=0;
123 1 for(n=0;n<5120;n++)
124 1 { RAM[n]=0; }
125 1 for(n=0;n<5120;n++)
126 1 { RAM[n]=adc(); }
127 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 131 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 32 ----
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -