📄 1543.lst
字号:
C51 COMPILER V7.01 1543 08/06/2007 14:38:53 PAGE 1
C51 COMPILER V7.01, COMPILATION OF MODULE 1543
OBJECT MODULE PLACED IN 1543.OBJ
COMPILER INVOKED BY: D:\keil安装包\安装处\C51\BIN\C51.EXE 1543.C BROWSE DEBUG OBJECTEXTEND
stmt level source
1 extern void inttilcs(void);
2 extern void WriteLcdData(unsigned char a);
3
4 #include<reg51.h>
5 #include<intrins.h>
6
7 sbit CLOCK=P1^0;
8 sbit AD_IN=P1^1;
9 sbit D_OUT=P1^2;
10 sbit CS =P1^3;
11 //sbit EOC =P3^2;
12
13 /*--------------------------------------------------------
14 调用方式:uint read1543(uchar port) 晶振是11.0592MHz
15 函数说明:read1543()返回10位AD芯片TLC1543的port通道采样值。
16 ---------------------------------------------------------*/
17 unsigned int read1543(unsigned char port) //从TLC1543读取采样值,形参port是采样的通道号
18 {
19 1 unsigned int ad;
20 1 unsigned char i;
21 1 unsigned char al=0,ah=0;
22 1 CLOCK=0;
23 1 CS=0;
24 1 port<<=4; //先高位后低位
25 1 for (i=0;i<4;i++) //把通道号打入1543
26 1 {
27 2 AD_IN=(bit)(port&0x80);
28 2 CLOCK=1;
29 2 CLOCK=0;
30 2 port<<=1;
31 2 }
32 1
33 1 for (i=0;i<6;i++) //填充6个CLOCK
34 1 {
35 2 CLOCK=1;
36 2 CLOCK=0;
37 2 }
38 1 CS=1;
39 1 //等待AD转换,可加延时等待
40 1
41 1 CS=0;
42 1
43 1 for (i=0;i<2;i++) //取D9,D8
44 1 {
45 2 D_OUT=1;
46 2 CLOCK=1;
47 2 ah<<=1;
48 2 if (D_OUT) ah|=0x01;
49 2 CLOCK=0;
50 2 }
51 1
52 1 for (i=0;i<8;i++) //取D7--D0
53 1 {
54 2 D_OUT=1;
55 2 CLOCK=1;
C51 COMPILER V7.01 1543 08/06/2007 14:38:53 PAGE 2
56 2 al<<=1;
57 2 if (D_OUT) al|=0x01;
58 2 CLOCK=0;
59 2 }
60 1
61 1 CS=1;
62 1 ad=(unsigned int)ah;
63 1 ad<<=8;
64 1 ad|=(unsigned int)al; //得到AD值
65 1 return (ad);
66 1 }
67
68 //===========================
69 void main()
70 {
71 1 unsigned char DASC[10]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x339};
72 1 unsigned char fenwei[3];
73 1 unsigned char i,j;
74 1 float daicedianyazhi;
75 1 unsigned int ADzhi;
76 1 inttilcs();
77 1 for(j=0;j<2;j++)
78 1 {
79 2
80 2 ADzhi=read1543(0);
81 2 }
82 1 daicedianyazhi=(ADzhi*2.5)/1024;
83 1 ADzhi=daicedianyazhi*100;
84 1 fenwei[2]=ADzhi/100;
85 1 ADzhi=ADzhi%100;
86 1 fenwei[1]=ADzhi/10;
87 1 fenwei[0]=ADzhi%10;
88 1 for(i=0;i<5;i++)
89 1 {
90 2 switch(i)
91 2 {
92 3 case 0:WriteLcdData(DASC[fenwei[2]]);break;
93 3 case 1:WriteLcdData(0x2e);break;//.
94 3 case 2:WriteLcdData(DASC[fenwei[1]]);break;
95 3 case 3:WriteLcdData(DASC[fenwei[0]]);break;
96 3 case 4:WriteLcdData(0x56);break;//v
97 3 }
98 2 }
99 1 while(1);
100 1 }
101
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 310 ----
CONSTANT SIZE = 10 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 20
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 + -