?? 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函數(shù)聲明*/
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函數(shù)聲明
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 /* 常數(shù)定義 */
43 #define para1 0x10; //顯示寬度16個
44
45 /*宏定義*/
46 uchar bei_data=6; //ad參數(shù)縮小倍數(shù)
47 uchar lcd_step=3; //讀ram時(shí)的讀數(shù)間隔
48 uchar average=123;//采集數(shù)據(jù)的中間點(diǎn)
49 /*標(biāo)志位*/
50 char flag,flag1;
51 /*參數(shù)聲明*/
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口有關(guān)
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++); //延時(shí),脈沖一位持續(xù)的時(shí)間
71 1
72 1 }
73
74 unsigned char adc(void) //把模擬電壓值轉(zhuǎn)換成8位二進(jìn)制數(shù)并返回
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為高阻態(tài)
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轉(zhuǎn)為高阻態(tài),DO脫離高阻態(tài)為輸出數(shù)據(jù)作準(zhǔn)備
99 1
100 1 adcclk=1; DELAY(2);
101 1
102 1 adcclk=0; DELAY(2);//經(jīng)實(shí)驗(yàn),這里加一個脈沖AD便能正確讀出數(shù)據(jù),
103 1
104 1 //不加的話讀出的數(shù)據(jù)少一位(最低位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輸出一位數(shù)據(jù),最終ch為8位二進(jìn)制數(shù)
113 2
114 2 }
115 1 adccs=1;//取消片選,一個轉(zhuǎn)換周期結(jié)束
116 1
117 1 return(ch);//把轉(zhuǎn)換結(jié)果返回
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)
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -