📄 2543.lst
字号:
C51 COMPILER V8.02 2543 07/29/2007 22:05:19 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE 2543
OBJECT MODULE PLACED IN 2543.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 2543.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /**************************************
2 TLC2543驱动程序
3 *************************************/
4 #include <AT89X52.H>
5 unsigned int read,invlevel;
6 float vlevel;
7 unsigned char seg7code[16]=
8 // 0 1 2 3 4 5 6 7 8 9 A b C d E F
9 {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71};
10
11 /**************************************
12 2543控制引脚宏定义
13 *************************************/
14 sbit CLOCK=P2^0; /*2543时钟*/
15 sbit D_IN=P2^1 ; /*2543输入*/
16 sbit D_OUT=P2^2; /*2543输出*/
17 sbit _CS=P2^3 ; /*2543片选*/
18
19 /**************************************
20 名称:delay
21 功能:延时模块
22 输入参数:n要延时的周期数
23 输出参数:无
24 *************************************/
25 void delay(unsigned char n)
26 {
27 1 unsigned char i;
28 1 for(i=0;i<n;i++)
29 1 {
30 2 ;
31 2 }
32 1 }
33
34 void Led(unsigned int invlevel)
35 {
36 1 P2=P2&0xef;
37 1 P0=(seg7code[invlevel/1000])|0x80; //输出个位数和小数点
38 1 delay(100);
39 1 P2=P2|0xf0;
40 1 P2=P2&0xdf;
41 1 P0=seg7code[invlevel%1000/100]; //输出小数点后第一位
42 1 delay(100);
43 1 P2=P2|0xf0;
44 1 P2=P2&0xbf;
45 1 P0=seg7code[invlevel%100/10]; //输出小数点后第二位
46 1 delay(100);
47 1 P2=P2|0xf0;
48 1 P2=P2&0x7f;
49 1 P0=seg7code[invlevel%10]; //输出小数点后第三位
50 1 delay(100);
51 1 P2=P2|0xf0;
52 1 }
53
54 /**************************************
55 名称:read2543
C51 COMPILER V8.02 2543 07/29/2007 22:05:19 PAGE 2
56 功能:TLC2543驱动模块
57 输入参数:port通道号
58 输出参数:ad转换值
59 *************************************/
60 unsigned int read2543(unsigned char port)
61 {
62 1 unsigned int ad=0,i;
63 1 CLOCK=0;
64 1 _CS=0;
65 1 port<<=4;
66 1 for(i=0;i<12;i++)
67 1 {
68 2 if(D_OUT) ad|=0x01;
69 2 D_IN=(bit)(port&0x80);
70 2 CLOCK=1;
71 2 delay(3);
72 2 CLOCK=0;
73 2 delay(3);
74 2 port<<=1;
75 2 ad<<=1;
76 2 }
77 1 _CS=1;
78 1 ad>>=1;
79 1 return(ad);
80 1 }
81
82 void Datapro(unsigned int adv) ////////////TLC2543数据处理函数
83 {
84 1 unsigned int vhigh,vmid,vlow;
85 1 vhigh=(adv&0x0f00);
86 1 vhigh=(vhigh>>8);
87 1 vmid=(adv&0x00f0);
88 1 vmid=(vmid>>4);
89 1 vlow=(adv&0x000f);
90 1 vlevel=(vhigh*5000.0/4096*256+vmid*5000.0/4096*16+vlow*5000.0/4096);
91 1 }
92
93 /**************************************
94 名称:main
95 功能:主函数
96 输入参数:无
97 输出参数:无
98 *************************************///////////
99 void main()
100 {
101 1 while(1)
102 1 {
103 2 read=read2543(0x00);
104 2 Datapro(read);
105 2 invlevel=(int)vlevel;
106 2 Led(invlevel);
107 2 }
108 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 445 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 24 6
IDATA SIZE = ---- ----
C51 COMPILER V8.02 2543 07/29/2007 22:05:19 PAGE 3
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 + -