📄 adc0809.lst
字号:
C51 COMPILER V8.08 ADC0809 12/26/2008 21:53:34 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE ADC0809
OBJECT MODULE PLACED IN ADC0809.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE ADC0809.C BROWSE DEBUG OBJECTEXTEND
line level source
*** WARNING C500 IN LINE 1 OF ADC0809.C: LICENSE ERROR (R208: RENEW LICENSE ID CODE (LIC))
1 #include <reg52.h>
2 #include <ctype.h>
3 #include <string.h>
4 #include <stdlib.h>
5 #include <stdio.h>
6 #include <math.h>
7 #include <absacc.h>
8
9 #define uchar unsigned char
10 #define uint unsigned int
11 #define ulong unsigned long
12
13 sbit sm1623_dout=P1^0;
14 sbit sm1623_din=P1^1;
15 sbit sm1623_clk=P1^2;
16 sbit sm1623_stb=P1^3;
17 sbit P3_5=P3^5;
18
19 #define cs_0809 XBYTE[0XF000]
20
21 void delaym(uchar delaym_temp);//短延时
22 void disp(uchar dis);
23 void display();
24
25 uchar i;
26 uchar code_dis[6];
27
28 main(void)
29 {
30 1 code_dis[0]=11;
31 1 code_dis[1]=12;
32 1 code_dis[2]=13;
33 1 code_dis[3]=0;
34 1 code_dis[4]=0;
35 1 code_dis[5]=0;
36 1 display();//显示Ad-000
37 1 start: cs_0809=0;//启动A/D转换
38 1 delaym(5);
39 1 while(P3_5==1);
40 1 i=cs_0809;//读数据
41 1 code_dis[5]=i%10;
42 1 i=i/10;
43 1 code_dis[4]=i%10;
44 1 i=i/10;
45 1 code_dis[3]=i%10;
46 1 display();//将A/D转换的结果送显示
47 1 goto start;
48 1 }
49
50 void delaym(uchar delaym_temp)//延时子程序
51 {
52 1 uchar data i;
53 1 for(i=0;i<delaym_temp;i++);
54 1 }
C51 COMPILER V8.08 ADC0809 12/26/2008 21:53:34 PAGE 2
55
56 void disp(uchar dis)//送显示命令子程序
57 {
58 1 uchar dis_i,dis_temp;
59 1 dis_temp=0x01;
60 1 for(dis_i=0;dis_i<8;dis_i++)
61 1 {
62 2 sm1623_clk=0;
63 2 delaym(1);
64 2 if((dis&dis_temp)==0){sm1623_din=0;}
65 2 else{sm1623_din=1;}
66 2 sm1623_clk=1;//上升沿输入数据
67 2 delaym(1);
68 2 dis_temp=dis_temp<<1;
69 2 }
70 1 }
71
72 void display()//显示子程序
73 {
74 1 uchar code_dis_d[6];
75 1 uchar i;
76 1 for(i=0;i<6;i++)//计算显示码
77 1 {
78 2 switch(code_dis[i])
79 2 {
80 3 case 1:
81 3 code_dis_d[i]=0x06;
82 3 break;
83 3 case 2:
84 3 code_dis_d[i]=0x5b;
85 3 break;
86 3 case 3:
87 3 code_dis_d[i]=0x4f;
88 3 break;
89 3 case 4:
90 3 code_dis_d[i]=0x66;
91 3 break;
92 3 case 5:
93 3 code_dis_d[i]=0x6d;
94 3 break;
95 3 case 6:
96 3 code_dis_d[i]=0x7d;
97 3 break;
98 3 case 7:
99 3 code_dis_d[i]=0x07;
100 3 break;
101 3 case 8:
102 3 code_dis_d[i]=0x7f;
103 3 break;
104 3 case 9:
105 3 code_dis_d[i]=0x6f;
106 3 break;
107 3 case 10://显示黑
108 3 code_dis_d[i]=0x00;
109 3 break;
110 3 case 11://显示A
111 3 code_dis_d[i]=0x77;
112 3 break;
113 3 case 12://显示d
114 3 code_dis_d[i]=0x5e;
115 3 break;
116 3 case 13://显示-
C51 COMPILER V8.08 ADC0809 12/26/2008 21:53:34 PAGE 3
117 3 code_dis_d[i]=0x40;
118 3 break;
119 3 case 14://显示8.
120 3 code_dis_d[i]=0xff;
121 3 break;
122 3 default://显示0
123 3 code_dis_d[i]=0x3f;
124 3 break;
125 3 }
126 2 }
127 1 sm1623_stb=0;
128 1 disp(0x02);//显示模式6位12段
129 1 sm1623_stb=1;
130 1 delaym(1);
131 1 sm1623_stb=0;
132 1 disp(0x40);//设置数据
133 1 sm1623_stb=1;
134 1 delaym(1);
135 1 sm1623_stb=0;
136 1 disp(0xc0);//设置地址
137 1 disp(code_dis_d[0]);//1
138 1 disp(0x00);
139 1 disp(code_dis_d[1]);//2
140 1 disp(0x00);
141 1 disp(code_dis_d[2]);//3
142 1 disp(0x00);
143 1 disp(code_dis_d[3]);//4
144 1 disp(0x00);
145 1 disp(code_dis_d[4]);//5
146 1 disp(0x00);
147 1 disp(code_dis_d[5]);//6
148 1 disp(0x00);
149 1 sm1623_stb=1;
150 1 delaym(1);
151 1 sm1623_stb=0;
152 1 disp(0x8a);//控制显示
153 1 sm1623_stb=1;
154 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 405 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 7 6
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -