📄 ad convert.lst
字号:
C51 COMPILER V8.08 AD_CONVERT 07/25/2000 10:45:41 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE AD_CONVERT
OBJECT MODULE PLACED IN ad convert.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ad convert.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<regx51.h>
2 #define TIMER0_COUNT 0xDC11
3 #define adc_in P0
4 sbit rs=P3^5;
5 sbit rw=P3^4;
6 sbit en=P3^3;
7 sbit adc_rd=P2^0;
8 sbit adc_wr=P2^1;
9 static unsigned timer0_tick;
10 const char int2char[]="0123456789";
11 void delay(void)
12 {
13 1 unsigned int i,j;
14 1 for(i=0;i<3;i++)
15 1 for(j=0;j<255;j++);
16 1 }
17
18 void write_command(unsigned command)
19 {
20 1 rw=0;
21 1 rs=0;
22 1 en=1;
23 1 P1=command;
24 1 en=0;
25 1 rs=1;
26 1 rw=1;
27 1 delay();
28 1 }
29
30 void write_data(unsigned lcddata)
31 {
32 1 rw=0;
33 1 rs=1;
34 1 en=1;
35 1 P1=lcddata;
36 1 en=0;
37 1 rs=0;
38 1 rw=1;
39 1 delay();
40 1 }
41
42 void set_lcd(void)
43 {
44 1 write_command(56);
45 1 write_command(12);
46 1 write_command(6);
47 1 }
48
49 void clear_lcd(void)
50 {
51 1 write_command(1);
52 1 write_command(2);
53 1 }
54
55 void display_string(char *p)
C51 COMPILER V8.08 AD_CONVERT 07/25/2000 10:45:41 PAGE 2
56 {
57 1 while(*p)
58 1 {
59 2 write_data(*p);
60 2 p++;
61 2 }
62 1 }
63
64 void gotoxy(unsigned x,unsigned y)
65 {
66 1 if(x==1)
67 1 write_command(128+y);
68 1 else
69 1 write_command(192+y);
70 1 }
71
72 void display_number(unsigned char number)
73 {
74 1 unsigned char x,y,i=2;
75 1 int z;
76 1 z=(int) number;
77 1 z=z<<1;
78 1 x=z/10;
79 1 y=z-x*10;
80 1 gotoxy(2,3);
81 1 write_data(int2char[y]);
82 1 z=x;
83 1 x=z/10;
84 1 y=z-x*10;
85 1 gotoxy(2,2);
86 1 write_data(int2char[y]);
87 1 gotoxy(2,1);
88 1 display_string(".");
89 1 z=x;
90 1 x=z/10;
91 1 y=z-x*10;
92 1 gotoxy(2,0);
93 1 write_data(int2char[y]);
94 1 gotoxy(2,4);
95 1 display_string("Volt");
96 1 }
97
98 static void timer0_isr(void) interrupt 1 using 1
99 {
100 1 TR0=0;
101 1 TL0=(TIMER0_COUNT & 0X00FF);
102 1 TH0=(TIMER0_COUNT >> 8);
103 1 TR0=1;
104 1 timer0_tick++;
105 1 if(timer0_tick==200){
106 2 adc_wr=0;
107 2 timer0_tick=0;
108 2 adc_wr=1;
109 2 }
110 1 }
111
112 static void int0_isr(void) interrupt 0 using 0
113 {
114 1 unsigned char voltage;
115 1 adc_in=0xff;
116 1 adc_rd=0;
117 1 voltage=adc_in;
C51 COMPILER V8.08 AD_CONVERT 07/25/2000 10:45:41 PAGE 3
118 1 voltage=voltage<<1;
119 1 adc_rd=1;
120 1 gotoxy(2,0);
121 1 display_number(voltage);
122 1 }
123
124 static void timer0_initialize(void)
125 {
126 1 EA=0;
127 1 timer0_tick=0;
128 1 TR0=0;
129 1 TMOD &=0xf0;
130 1 TMOD |=0x01;
131 1 TL0=( TIMER0_COUNT & 0x00FF);
132 1 TH0=( TIMER0_COUNT >> 8);
133 1 PT0=0;
134 1 ET0=1;
135 1 TR0=1;
136 1 EA=1;
137 1 }
138
139 void main(void){
140 1 set_lcd();
141 1 clear_lcd();
142 1 display_string("Input voltage:");
143 1 timer0_initialize();
144 1 IT0=1;
145 1 EX0=1;
146 1 while(1);
147 1 }
148
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 436 ----
CONSTANT SIZE = 22 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 13 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 + -