📄 tlc2543.lst
字号:
C51 COMPILER V7.06 TLC2543 08/15/2008 16:35:13 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE TLC2543
OBJECT MODULE PLACED IN tlc2543.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE tlc2543.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include <reg51.h>
2 #include <intrins.h>
3 #define uchar unsigned char
4 #define uint unsigned int
5 uchar a[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,
6 0x6f};//共阴极段码
7 uchar b[4];//存放4位要显示的数
8
9 sbit CLOCK=P2^7; /*2543时钟*/
10 sbit D_IN=P2^6; /*2543输入*/
11 sbit D_OUT=P2^4; /*2543输出*/
12 sbit _CS=P2^5; /*2543片选*/
13
14
15 void mdelay(uint z)//1ms延时子程序
16 {
17 1 uint x,y;
18 1 for(x=z;x>0;x--)
19 1 for(y=110;y>0;y--);
20 1 }
21
22 void delay(uchar n)
23 {
24 1 uchar i;
25 1 for(i=0;i<n;i++)
26 1 {
27 2 _nop_();
28 2 }
29 1 }
30 /**************************************
31 名称:read2543
32 功能:TLC2543驱动模块
33 输入参数:port通道号
34 输出参数:ad转换值
35 *************************************/
36
37 uint read2543(uchar port)
38 {
39 1 uint ad=0,i;
40 1 CLOCK=0;
41 1 _CS=0;
42 1 port<<=4;//通道号左移4位
43 1 for(i=0;i<12;i++)//没有设置控制字,默认输出数据为12位,高位先送出,输出数据的格式为2进制
44 1 {
45 2 if(D_OUT) ad|=0x01;//转换后的值高位先送出
46 2 D_IN=(bit)(port&0x80);//通道值高位先送出
47 2 CLOCK=1;
48 2 delay(3);
49 2 CLOCK=0;
50 2 delay(3);
51 2 port<<=1;
52 2 ad<<=1;
53 2 }
54 1 _CS=1;
55 1 ad>>=1;//循环中多左移了一位
C51 COMPILER V7.06 TLC2543 08/15/2008 16:35:13 PAGE 2
56 1 return ad;
57 1 }
58
59
60 void show(void)//数码管显示子程序
61 {
62 1 uint i;
63 1 uchar c=0x01;
64 1 for(i=0;i<4;i++)
65 1 {
66 2 P1=(c<<i);
67 2 P3=b[i];
68 2 if(i==2)//显示小数点
69 2 P3=P3|0x80;
70 2 mdelay(1);
71 2 }
72 1 }
73 void main(void)
74 {
75 1 uint ad=0;
76 1 while(1)
77 1 {
78 2 ad=read2543(0);
79 2 ad=ad*1.0/4096*500;//注意这一步不能写成 ad=ad*500/4096
80 2 b[0]=a[ad%10];//个位
81 2 b[1]=a[ad%100/10];//十位
82 2 b[2]=a[ad/100];//百位
83 2 b[3]=a[ad/1000];//最高位始终为0
84 2 show();
85 2
86 2
87 2 }
88 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 316 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 20 4
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 + -