📄 tlc2543.lst
字号:
C51 COMPILER V8.02 TLC2543 01/12/2009 13:14:55 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE TLC2543
OBJECT MODULE PLACED IN tlc2543.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE tlc2543.c LARGE BROWSE DEBUG OBJECTEXTEND
line level source
1 #include"reg54.h"
2 #include"intrins.h"
3 #include"absacc.h"
4
5 //#define ((conver_ad_dat/4096)*5012) TLC2543_DATA
6
7 sbit tlc2543_eoc=P3^7;
8 sbit tlc2543_clk=P1^7;
9 sbit tlc2543_add=P1^4;
10 sbit tlc2543_dat=P1^5;
11 sbit tlc2543_cs0=P1^6;
12
13 sfr out_data=0x80;
14 sbit disp_bit0=P2^4;
15 sbit disp_bit1=P2^5;
16 sbit disp_bit2=P2^6;
17 sbit disp_bit3=P2^7;
18
19 unsigned char data disp_code[11]={0xc0,0xf9,0xa4,0xb0, // 0, 1, 2, 3
20 0x99,0x92,0x82,0xf8,0x80,0x90, 0xff};// 4, 5, 6, 7, 8, 9, off
21 unsigned int tlc2543_ad_conversion(unsigned char data channels_number);//AD转换函数
22 void delay_1ms(unsigned char ms);
23
24 void iniltion()
25 {
26 1 TMOD&=0X0f;
27 1 TMOD|=0X20;
28 1 TH1=0Xfd;
29 1 TL1=0Xfd;
30 1 TR1=0;
31 1 SCON=0X50;
32 1 TR1=1;
33 1 }
34 void main()
35 {unsigned char data disp_thousand,disp_hundred,disp_decade,disp_entry;
36 1 unsigned int data conver_ad_dat;
37 1 unsigned long data conver_ad_data;
38 1
39 1 iniltion();
40 1 for(;;)
41 1 {
42 2 conver_ad_dat=tlc2543_ad_conversion(0x00);
43 2 conver_ad_data=conver_ad_dat;
44 2 conver_ad_data<<=12;
45 2 conver_ad_data+=0x393544;
46 2 conver_ad_dat=conver_ad_data/4096;
47 2 disp_thousand=conver_ad_dat/1000;
48 2 disp_hundred=conver_ad_dat%1000/100;
49 2 disp_decade=conver_ad_dat%1000%100/10;
50 2 disp_entry=conver_ad_dat%1000%100%10;
51 2
52 2 out_data=(disp_code[disp_thousand])&0x7f;
53 2 disp_bit0=0;
54 2 delay_1ms(5);
55 2 out_data=0xff;
C51 COMPILER V8.02 TLC2543 01/12/2009 13:14:55 PAGE 2
56 2 disp_bit0=1;
57 2 out_data=disp_code[disp_hundred];
58 2 disp_bit1=0;
59 2 delay_1ms(5);
60 2 out_data=0xff;
61 2 disp_bit1=1;
62 2 out_data=disp_code[disp_decade];
63 2 disp_bit2=0;
64 2 delay_1ms(5);
65 2 out_data=0xff;
66 2 disp_bit2=1;
67 2 out_data=disp_code[disp_entry];
68 2 disp_bit3=0;
69 2 delay_1ms(5);
70 2 out_data=0xff;
71 2 disp_bit3=1;
72 2 }
73 1 }
74 /*
75 unsigned int tlc2543_ad_conversion(unsigned char channels_number)
76 {
77 unsigned char data i,temp;
78 unsigned int conver_dat=0x0000;
79 channels_number<<=4;
80 tlc2543_clk=0;
81 tlc2543_cs0=1;
82 tlc2543_cs0=0;
83 temp=channels_number;
84 for(i=0;i<12;i++)
85 {conver_dat<<=1;
86 tlc2543_add=(bit)(temp&0x80);
87 conver_dat|=tlc2543_dat;
88 tlc2543_clk=1;
89 _nop_();
90 _nop_();
91 _nop_();
92 tlc2543_clk=0;
93 _nop_();
94 _nop_();
95 _nop_();
96 temp<<=1;
97 }
98 tlc2543_cs0=1;
99 return(conver_dat&0x0fff);
100 }*/
101
102 unsigned int tlc2543_ad_conversion(unsigned char data channels_number)
103 {
104 1 unsigned char data i,temp;
105 1 unsigned int conver_dat=0x0000;
106 1 channels_number<<=4;
107 1 tlc2543_cs0=1;
108 1 tlc2543_clk=0;
109 1 tlc2543_cs0=0;
110 1 temp=channels_number;
111 1 for(i=0;i<12;i++)
112 1 {
113 2 conver_dat<<=1;
114 2 conver_dat|=tlc2543_dat;
115 2 tlc2543_add=(bit)(temp&0x80);
116 2 tlc2543_clk=1;
117 2 _nop_();
C51 COMPILER V8.02 TLC2543 01/12/2009 13:14:55 PAGE 3
118 2 tlc2543_clk=0;
119 2 temp<<=1;
120 2 }
121 1 tlc2543_cs0=1;
122 1 return(conver_dat&0x0fff);
123 1 }
124
125 void delay_1ms(unsigned char ms)
126 {
127 1 unsigned char i;
128 1 while(ms--)
129 1 for(i=0;i<120;i++);
130 1 }
131
132
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 352 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 11 12
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 + -