📄 text165.lst
字号:
C51 COMPILER V6.12 TEXT165 06/02/2004 16:47:24 PAGE 1
C51 COMPILER V6.12, COMPILATION OF MODULE TEXT165
OBJECT MODULE PLACED IN .\Text165.obj
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE ..\水位器\Text165.c DEBUG OBJECTEXTEND PRINT(.\Text165.lst) OBJECT(.\Text16
-5.obj)
stmt level source
1 #include <AT89X52.H>
2 #include <stdio.h>
3 #define uchar unsigned char
4 #define uint unsigned int//--------------定义函数-----------------------
5 uchar sj(void);
6 void delay(uint x);
7 //---------------定义管脚----------------------
8 sbit CLK=P3^0;
9 sbit IO=P3^1;
10 sbit CS=P3^7;
11 sbit PART1=P3^2;
12 sbit PART2=P3^3;
13 sbit PART3=P3^4;
14 sbit PART4=P3^5;
15 sfr SC=0X90; //定义P1口
16 //---------------定义全局变量数据---------------
17 uchar A,Bb;//,C,D,E,F,G,H; 定义8个全局变量
18 //-----------------数据表格定义-------------
19 uchar lcd1[16]={0X28,0XED,0X34,0XA4,0XE1,0XA2,0X22,0XEC,0X20,0XA0,
20 0XFF,0XFE,0XF7,0XBF,0X61,0X3B };
21 //显示0--F
22 uchar lcd2[10]={0X08,0XCD,0X14,0X84,0XC1,0X82,0X02,0XCC,0X00,0X80};
23 //小数点数据表0.--9.
24 uchar lcd3[8]={0XFE,0XFD,0XFB,0XF7,0XEF,0XDF,0XBF,0X7F };
25 //数据采集表
26
27 //-----------------采集的数据函数-----------
28 uchar sj(void) //采集数据
29 {
30 1 uchar a,ch=0;
31 1 CS=1;CS=0;CS=1;
32 1 //for(;IO==1;)
33 1 for(a=0;a<8;a++){
34 2 CLK=1;CLK=0;
35 2 ch=(ch<<1)|IO;
36 2 }
37 1 return(ch); //返回值即转换的数据
38 1 }
39 //---------------判断管脚------------
40 uchar pd(void)
41 {uchar a;
42 1 // x=sj(); //采集数据放到变量A里
43 1 switch(A){
44 2 case 0xfe: a=1; break; //1
45 2 case 0xfc: a=2; break; //2
46 2 case 0xf8: a=3; break; //3
47 2 case 0xf0: a=4; break; //4
48 2 case 0xe0: a=5; break; //5
49 2 case 0xc0: a=6; break; //6
50 2 case 0x80: a=7; break; //7
51 2 case 0x00: a=8; break; //8
52 2 default: a=0; break; //0
53 2 }
54 1 return(a);
C51 COMPILER V6.12 TEXT165 06/02/2004 16:47:24 PAGE 2
55 1 }
56 //---------------延时----------------
57 void delay(uint x)
58 {
59 1 uint a;
60 1 for(a=0;a<x;a++);
61 1 }
62 //-----------处理采集数据------------
63 uint clsj(void) //处理采集数据函数
64 {
65 1 uchar aa;
66 1 uint bb;
67 1 aa=sj(); //采集数据放到变量A里
68 1 A=pd(); //处理采集来的管脚
69 1 //第一个165数据放到全局变量A里等待下一步处理
70 1 aa=sj(); //采集数据放到变量A里
71 1 Bb=pd(); //处理采集来的管脚
72 1 //第二个165数据放到全局变量B里等待下一步处理
73 1 //以后增加这里就可以扩展165采集数据了
74 1 bb=A+B;
75 1 return(bb); //返回处理后的数据最大9999
76 1 }
77 //-----------显示函数-------------
78 void xs(void)
79 {uint a,b;
80 1 a=b=clsj(); //165采集处理后数据和放到变量A里
81 1 a=a/1000; //求千位
82 1 SC=lcd2[a]; //送数据
83 1 PART1=1; //打开显示
84 1 delay(126); //刷新显示延时时间
85 1 PART1=0; //关闭显示
86 1
87 1 //a=clsj(); //165采集处理后数据和放到变量A里
88 1 a=b;
89 1 a=a/100; //求千位
90 1 SC=lcd1[a]; //送数据
91 1 PART2=1; //打开显示
92 1 delay(126); //刷新显示延时时间
93 1 PART2=0; //关闭显示
94 1
95 1 //a=clsj(); //165采集处理后数据和放到变量A里
96 1 a=b;
97 1 a=a/10; //求千位
98 1 SC=lcd1[a]; //送数据
99 1 PART3=1; //打开显示
100 1 delay(126); //刷新显示延时时间
101 1 PART3=0; //关闭显示
102 1
103 1 //a=clsj(); //165采集处理后数据和放到变量A里
104 1 a=b;
105 1 a=a%10; //求千位
106 1 SC=lcd1[a]; //送数据
107 1 PART4=1; //打开显示
108 1 delay(126); //刷新显示延时时间
109 1 PART4=0; //关闭显示
110 1 }
111 void main(void)
112 {
113 1 do{
114 2 xs();
115 2 }while(1);
116 1 }
C51 COMPILER V6.12 TEXT165 06/02/2004 16:47:24 PAGE 3
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 284 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 36 2
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 + -