📄 电压表.lst
字号:
C51 COMPILER V8.05a 电压表 07/30/2008 09:28:15 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE 电压表
OBJECT MODULE PLACED IN 电压表.OBJ
COMPILER INVOKED BY: D:\keil\C51\BIN\C51.EXE 电压表.c DEBUG OBJECTEXTEND
line level source
1 #include<reg52.h> //52系列单片机定义文件
2 #include<intrins.h> //调用_nop_();延时函数用
3 #define uchar unsigned char //无符号字符
4 #define uint unsigned int //无符号整数
5 sbit ALE=P2^3;
6 sbit START=P2^4;
7 sbit OE=P2^5;
8 sbit EOC=P3^7;
9 sbit DOT=P1^7;
10 sbit AO=P2^6;
11 sbit BO=P2^7;
12 sbit CO=P3^5;
13 sbit DO=P3^6;
14 uchar code xs_7[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};
15 uchar code saomiao[4]={0xfe,0xfd,0xfb,0xf7};
16 uchar data ad_data[8]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
17 uint data dis[5]={0x00,0x00,0x00,0x00,0x00};
18 //
19 //
20 /**************1ms延时子函数*************/
21 delay1ms(uint t)
22 {
23 1 uint i,j;
24 1 for(i=0;i<t;i++)
25 1 for(j=0;j<120;j++);
26 1 }
27 //
28 //
29 /***********显示扫描子函数************/
30 scan()
31 {
32 1 uchar k,n;
33 1 int h;
34 1 dis[3]=0x00;
35 1 for(n=0;n<8;n++)
36 1 {
37 2 dis[2]=ad_data[n]/51;
38 2 dis[4]=ad_data[n]%51;
39 2 dis[4]=dis[4]*10;
40 2 dis[1]=dis[4]/51;
41 2 dis[4]=dis[4]%51;
42 2 dis[4]=dis[4]*10;
43 2 dis[0]=dis[4]/51;
44 2 for(h=0;h<255;h++)
45 2 {
46 3 for(k=0;k<4;k++)
47 3 {
48 4 P1=xs_7[dis[k]];
49 4 if(k==2) {DOT=1;}
50 4 P3=saomiao[k];delay1ms(1);P3=0xff;
51 4 }
52 3 }
53 2 dis[3]++;
54 2 }
55 1 }
C51 COMPILER V8.05a 电压表 07/30/2008 09:28:15 PAGE 2
56 /*************通道选择********************/
57 tongdao(uchar m)
58 {
59 1 uchar k;
60 1 int h;
61 1 dis[3]=m; //通道
62 1 dis[2]=ad_data[m]/51; //通道数据
63 1 dis[4]=ad_data[m]%51;
64 1 dis[4]=dis[4]*10;
65 1 dis[1]=dis[4]/51;
66 1 dis[4]=dis[4]%51;
67 1 dis[4]=dis[4]*10;
68 1 dis[0]=dis[4]/51;
69 1 if(dis[2]>3&&dis[1]>5)
70 1 {
71 2 AO=1;
72 2 BO=1;
73 2 }
74 1 for(h=0;h<255;h++)
75 1 {
76 2 for(k=0;k<4;k++)
77 2 {
78 3 P1=xs_7[dis[k]];
79 3 if(k==2)
80 3 {
81 4 DOT=1;
82 4 }
83 3 P3=saomiao[k];
84 3 delay1ms(1);
85 3 P3=0xff;
86 3 }
87 2 }
88 1 }
89
90
91 /***********0809AD转换子函数*************/
92 test()
93 {
94 1 uchar m;
95 1 uchar s=0x00;
96 1 P2=s;
97 1 for(m=0;m<8;m++)
98 1 {
99 2 ALE=1;
100 2 _nop_();
101 2 _nop_();
102 2 ALE=0;
103 2 START=1;
104 2 _nop_();
105 2 _nop_();
106 2 START=0;
107 2 _nop_();
108 2 _nop_();
109 2 _nop_();
110 2 _nop_();
111 2 while(EOC==0);
112 2 OE=1;
113 2 ad_data[m]=P0;
114 2 OE=0;
115 2 s++;
116 2 P2=s;
117 2 }
C51 COMPILER V8.05a 电压表 07/30/2008 09:28:15 PAGE 3
118 1 P2=0x00;
119 1 }
120
121 /***********主函数***********/
122 main()
123 {
124 1 uchar i,j,n;
125 1 int t=0;
126 1 j=0;n=0;
127 1 P0=0xff;
128 1 P2=0x00;
129 1 P1=0xff;
130 1 P3=0xff;
131 1 for(;;)
132 1 {
133 2 test();
134 2 if(j==0)
135 2 {
136 3 i=DO; /*p3^6*/
137 3 if(i==0)
138 3 {
139 4 tongdao(n);
140 4 n++;
141 4 }
142 3 if(n>7)
143 3 n=0;
144 3 tongdao(n);
145 3 }
146 2 else
147 2 scan();
148 2
149 2 }
150 1
151 1
152 1 }
153
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 496 ----
CONSTANT SIZE = 15 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 18 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 + -