📄 zlg7289.lst
字号:
C51 COMPILER V7.06 ZLG7289 08/08/2007 14:57:50 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE ZLG7289
OBJECT MODULE PLACED IN zlg7289.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE zlg7289.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include<reg52.h>
2 #include<intrins.h>
3
4
5 sbit dio=P0^2;
6 sbit clk=P0^1;
7 sbit CS_7289=P0^0;
8
9 sbit EOC = P2^7;
10 sbit TLC2543_CLK = P2^6;
11 sbit TLC2543_DIN = P2^5;
12 sbit TLC2543_DO = P2^4;
13 sbit TLC2543_CS = P2^3;
14
15
16 unsigned char DisBuffer[8];
17
18
19 void delay(unsigned int i)
20 {
21 1 while(i--);
22 1 }
23
24
25 // 其中 port 为通道: 通道0:port = 0x01 通道1:port = 0x02 通道2:port = 0x04 ...
26 unsigned int read2543(unsigned char port)
27 {
28 1 unsigned int i;
29 1 unsigned int ad_value=0;
30 1
31 1 TLC2543_CLK=0;
32 1 TLC2543_CS=0;
33 1 EOC=1;
34 1 port<<=4;
35 1 for(i=0;i<12;i++)
36 1 {
37 2 if(TLC2543_DO) ad_value|=0x01;
38 2 TLC2543_DIN=(bit)(port&0x80);
39 2 TLC2543_CLK=1;
40 2 _nop_();
41 2 _nop_();
42 2 _nop_();
43 2 TLC2543_CLK=0;
44 2 _nop_();
45 2 _nop_();
46 2 _nop_();
47 2 port=port<<1;
48 2 ad_value=ad_value<<1;
49 2 }
50 1
51 1 TLC2543_CS=1;
52 1 ad_value=ad_value>>1;
53 1 return ad_value;
54 1 }
55
C51 COMPILER V7.06 ZLG7289 08/08/2007 14:57:50 PAGE 2
56
57 //发送8位数据
58 void SendByte(unsigned char dat)
59 {
60 1 unsigned char i;
61 1 //CS_7289=0;
62 1
63 1 for(i=0;i<8;i++)
64 1 {
65 2
66 2 if(dat&0x80)
67 2 {
68 3 dio=1;
69 3 }else
70 2 {
71 3 dio=0;
72 3 }
73 2 clk=1;
74 2 delay(3);
75 2 clk=0;
76 2 dat<<=1;
77 2 }
78 1 dio=0;
79 1 //CS_7289=1;
80 1 }
81 //发送纯命令
82 void SendCom(unsigned char com)
83 {
84 1 CS_7289=0;
85 1 delay(1);
86 1 SendByte(com);
87 1 CS_7289=0;
88 1 }
89 //发送带数据的命令
90 void SendComData(unsigned char com,unsigned char dat)
91 {
92 1 CS_7289=0;
93 1 delay(1);
94 1 SendByte(com);
95 1 SendByte(dat);
96 1 CS_7289=1;
97 1 }
98 unsigned char ReadKey(void)
99 {
100 1 unsigned char i;
101 1 unsigned char key;
102 1 CS_7289=0;
103 1 SendByte(0x15);
104 1 for(i=0;i<8;i++)
105 1 {
106 2 key<<=1;
107 2 clk=0;
108 2 delay(1);
109 2 clk=1;
110 2 delay(1);
111 2 key |= dio;
112 2 }
113 1 return key;
114 1 }
115 //led数码管位置,dat显示数据
116 void ZLG7289Dis(unsigned char led,unsigned char dat)
117 {
C51 COMPILER V7.06 ZLG7289 08/08/2007 14:57:50 PAGE 3
118 1
119 1 SendComData(0x87-led,dat);
120 1 }
121 //消隐
122 void ZLG7289DisOFF(unsigned char led)
123 {
124 1 //SendComData(0x98,0x80>>led); //方式0
125 1 SendComData(0xcf,0x80>>led); //方式1
126 1 }
127 //点亮数码管的小数点
128 void ZLG7289DP(unsigned char led)
129 {
130 1 SendComData(0xe0,0x3f-led*8);
131 1 }
132 //小数点关闭
133 void ZLG7289DP_OFF(unsigned char led)
134 {
135 1 SendComData(0xc0,0x3f-led*8);
136 1 }
137 //数码管闪烁
138 void ZLG7289Flash(unsigned char led)
139 {
140 1 SendComData(0x88,0x80>>led);
141 1 }
142 void ZLG7289Reset(void)
143 {
144 1 SendCom(0xa4);
145 1 }
146 void ZLG7289MOVL(void)
147 {
148 1 SendCom(0xa1);
149 1 }
150
151 void ZLGDIS(void)
152 {
153 1 unsigned char i;
154 1
155 1 //ZLG7289Reset();
156 1 for(i=0;i<8;i++)
157 1 {
158 2 if(DisBuffer[i]>=0 &&DisBuffer[i]<=9)
159 2 {
160 3 ZLG7289Dis(i,DisBuffer[i]);
161 3 }else if(DisBuffer[i]>=10 && DisBuffer[i]<=19)
162 2 {
163 3 ZLG7289Dis(i,DisBuffer[i]-10);
164 3 ZLG7289DP(i); //小数
165 3 } else ZLG7289DisOFF(i);
166 2 }
167 1
168 1 }
169 main()
170 {
171 1 unsigned int i;
172 1 unsigned int va;
173 1 delay(1000);
174 1 ZLG7289Reset();
175 1 DisBuffer[0]=22;
176 1 DisBuffer[1]=22;
177 1 DisBuffer[2]=22;
178 1 DisBuffer[3]=22;
179 1 DisBuffer[4]=22;
C51 COMPILER V7.06 ZLG7289 08/08/2007 14:57:50 PAGE 4
180 1 DisBuffer[5]=22;
181 1 DisBuffer[6]=50;
182 1 DisBuffer[7]=40;
183 1
184 1 while(1)
185 1 {
186 2 for(i=0;i<30000;i++);
187 2 va=read2543(0x0d);
188 2 va*=1.2;
189 2 DisBuffer[1]=(va/1000)%10;
190 2 DisBuffer[2]=(va/100)%10;
191 2 DisBuffer[3]=(va/10)%10;
192 2 DisBuffer[4]=va%10;
193 2 ZLGDIS();
194 2 ZLG7289Dis(0,0);
195 2
196 2
197 2 }
198 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 506 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 8 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 + -