📄 ad转换.lst
字号:
C51 COMPILER V8.08 AD转换 06/07/2008 16:51:07 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE AD转换
OBJECT MODULE PLACED IN AD转换.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE AD转换.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "reg51.h"
2 #include "intrins.h"
3 #include "absacc.h"
4 #define ADC_ch XBYTE[0x7ff8]
5 #define uchar unsigned char
6 #define uint unsigned int
7
8 sbit ADC_busy= P3^2;
9 idata unsigned char Rec_data=0xde;
10 code unsigned char display[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
11 unsigned char count[4]={0,0,0,0};
12 char str1[]=" Voltage meter";
13 uchar str2[16]="Vol: D:";
14 sbit RS=P3^0;
15 sbit RW=P3^1;
16 sbit EN=P3^3;
17
18 void delayl();//LCD驱动函数
19 void delays();
20 void writecota(uchar c);
21 void shotchar(uchar pos,uchar c);
22 void showstring(uchar line,char *ptr);
23 void initlcd();
24
25 /*void REC(void)interrupt 0
26 {
27 Rec_data= ADC_ch; //存放结果
28 } */
29 void START(void)
30 {
31 1 ADC_ch = 0; /*启动A/D转换*/
32 1 _nop_(); /*插入空操作等待EOC信号变低*/
33 1 _nop_();
34 1 _nop_();
35 1 _nop_();
36 1 _nop_();
37 1 _nop_();
38 1 _nop_();
39 1 _nop_();
40 1 _nop_();
41 1 while(ADC_busy ==1); /*查询转换状态*/
42 1 Rec_data= ADC_ch;
43 1 }
44 void Process(void)
45 {
46 1 float temp;
47 1 unsigned int Data_temp;
48 1 temp=(Rec_data*5.0/255.0);
49 1 temp*=1000;
50 1 Data_temp=(int)temp;
51 1 count[0]=Data_temp/1000;
52 1 count[1]=Data_temp%1000/100;
53 1 count[2]=Data_temp%1000%100/10;
54 1 count[3]=Data_temp%10;
55 1
C51 COMPILER V8.08 AD转换 06/07/2008 16:51:07 PAGE 2
56 1 str2[4]=count[0]|0x30;
57 1 str2[5]='.';
58 1 str2[6]=count[1]|0x30;
59 1 str2[7]=count[2]|0x30;
60 1 str2[8]=count[3]|0x30;
61 1 str2[9]='V';
62 1 str2[15]='H';
63 1 if((Rec_data/16)<=9&&(Rec_data/16)>=0)str2[13]=(Rec_data/16)|0x30;
64 1 else str2[13]=(Rec_data/16)+0x37;
65 1 if((Rec_data%16)<=9&&(Rec_data%16)>=0)str2[14]=(Rec_data%16)|0x30;
66 1 else str2[14]=(Rec_data%16)+0x37;
67 1 }
68 void delay(uchar x)
69 {
70 1 while(x--)
71 1 {
72 2 delays();
73 2 }
74 1 }
75 void delays()
76 {
77 1 uchar i;
78 1 for(i=0;i<250;i++)
79 1 {;}
80 1 }
81 void writecom(uchar c)
82 {
83 1 delayl();
84 1 EN=0;
85 1 RS=0;
86 1 RW=0;
87 1 _nop_();
88 1 _nop_();
89 1 P1=c;
90 1 EN=1;
91 1 _nop_();
92 1 EN=0;
93 1 }
94 //*************************
95 void writedata(uchar c)
96 {
97 1 delayl();
98 1 EN=0;
99 1 RS=1;
100 1 RW=0;
101 1 _nop_();
102 1 _nop_();
103 1 P1=c;
104 1 EN=1;
105 1 _nop_();
106 1 EN=0;
107 1 RS=1;
108 1 }
109 //*****************
110 void showchar(uchar pos,uchar c)
111 { uchar p;
112 1 if(pos>=0x10)
113 1 p=pos+0xb0;
114 1 else
115 1 p=pos+0x80;
116 1 writecom(p);
117 1 writedata(c);
C51 COMPILER V8.08 AD转换 06/07/2008 16:51:07 PAGE 3
118 1 }
119 //****************************
120 void showstring(uchar line,char *ptr)
121 { uchar l,i;
122 1 l=line<<4;
123 1 for(i=0;i<16;i++)
124 1 {showchar(l++,*(ptr+i));}
125 1 }
126 //***************************
127 void initlcd()
128 {
129 1 delayl();
130 1 writecom(0x38);
131 1 writecom(0x38);
132 1 writecom(0x06);
133 1 writecom(0x0c);
134 1 writecom(0x01);
135 1 writecom(0x80);
136 1 }
137 void delayl()
138 { uchar j;
139 1 for(j=0;j<100;j++)
140 1 {;}
141 1 }
142 //**************************
143 void main(void)
144 { uchar i;
145 1 i='A';
146 1 EX0=1;
147 1 IT0=1;
148 1 EA=1;
149 1 initlcd();
150 1 delays();
151 1 showstring(0,str1);
152 1 showstring(1,str2);
153 1 while(1)
154 1 {
155 2 START();
156 2 Process();
157 2 showstring(1,str2);
158 2 delay(3);
159 2 }
160 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 503 ----
CONSTANT SIZE = 10 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 36 15
IDATA SIZE = 1 ----
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 + -