📄 tongbuxianshi.lst
字号:
C51 COMPILER V6.12 TONGBUXIANSHI 04/28/2008 09:19:00 PAGE 1
C51 COMPILER V6.12, COMPILATION OF MODULE TONGBUXIANSHI
OBJECT MODULE PLACED IN .\tongbuxianshi.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE .\tongbuxianshi.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include "reg52.h"
2 #include "intrins.h"
3 #define uchar unsigned char
4 #include <absacc.h>
5
6 sbit Clk=P1^5; //定义时钟端
7 sbit RCK=P1^2; //定义控制端
8 sbit E=P1^3;
9 sbit SRCK=P1^1;
10 sbit SER=P1^0;
11
12 sbit Dat=P1^4; //定义串行数据输入端
13 sbit RDSG=0xD8^0;
14 sbit RDQB=0xD8^1;
15 sbit PRE=0xD8^2;
16 sbit CLR=0xD8^3;
17
18 unsigned char a[4];
19 unsigned char c,d,e,f;
20 unsigned char *p,*q;
21 uchar code DispTab[]={0x3F,0x03,0x6D,0x67,0x53,0x76,0x7E,0x23,0x7F,
22 0x73,0x00};//定义定形码表
23
24
25 void SendData(unsigned char SendDat) //传送一个字节的数据数据
26 { unsigned char i;
27 1 for(i=0;i<8;i++)
28 1 { if((SendDat&0x80)==0)
29 2 SER=0;
30 2 else
31 2 SER=1;
32 2 _nop_();
33 2 SRCK=0;
34 2 _nop_();
35 2 SRCK=1;
36 2 SendDat=SendDat<<1;
37 2 }
38 1 }
39
40
41
42 void Disp()
43 { uchar c;
44 1 uchar i;
45 1 RCK=0; //关闭存储寄存器的输入
46 1 for(i=0;i<3;i++)
47 1 {
48 2 unsigned char g;
49 2 c=a[i];
50 2 g=DispTab[c];
51 2 if(i==2)
52 2 {if(((e&0x80)==0x80)&&((e&0x40)==0))
53 3
54 3 g=DispTab[c]|0x80;
55 3 }
C51 COMPILER V6.12 TONGBUXIANSHI 04/28/2008 09:19:00 PAGE 2
56 2 if(i==1)
57 2 {if(((e&0x40)==0x40)&&((e&0x80)==0))
58 3
59 3 g=DispTab[c]|0x80;
60 3 }
61 2
62 2 SendData(g); //送出字形码数据
63 2 }
64 1 SendData(a[3]);
65 1 RCK=1; //开启存储寄存器的输入
66 1 }
67
68
69
70
71 void main()
72 {for(;;)
73 1 { RDSG=0; //锁存个十位数据 //锁存百千位数据
74 2 RDQB=1;
75 2 *p=XBYTE[0x9000];
76 2 c=*p;
77 2 d=c&0x0F;
78 2 switch(d)
79 2 { case 0x00 : a[0]=0;break;
80 3 case 0x01 : a[0]=1;break;
81 3 case 0x02 : a[0]=2;break;
82 3 case 0x03 : a[0]=3;break;
83 3 case 0x04 : a[0]=4;break;
84 3 case 0x05 : a[0]=5;break;
85 3 case 0x06 : a[0]=6;break;
86 3 case 0x07 : a[0]=7;break;
87 3 case 0x08 : a[0]=8;break;
88 3 case 0x09 : a[0]=9;
89 3 }
90 2 c=c&0xF0;
91 2 switch(c)
92 2 { case 0x00 : a[1]=0;break;
93 3 case 0x10 : a[1]=1;break;
94 3 case 0x20 : a[1]=2;break;
95 3 case 0x30 : a[1]=3;break;
96 3 case 0x40 : a[1]=4;break;
97 3 case 0x50 : a[1]=5;break;
98 3 case 0x60 : a[1]=6;break;
99 3 case 0x70 : a[1]=7;break;
100 3 case 0x80 : a[1]=8;break;
101 3 case 0x90 : a[1]=9;
102 3 }
103 2 RDSG=1;
104 2 RDQB=0;
105 2 *q=XBYTE[0x9001];
106 2 e=*q;
107 2 f=e&0x0F;
108 2 switch(f)
109 2 { case 0x00 : a[2]=0;break;
110 3 case 0x01 : a[2]=1;break;
111 3 case 0x02 : a[2]=2;break;
112 3 case 0x03 : a[2]=3;break;
113 3 case 0x04 : a[2]=4;break;
114 3 case 0x05 : a[2]=5;break;
115 3 case 0x06 : a[2]=6;break;
116 3 case 0x07 : a[2]=7;break;
117 3 case 0x08 : a[2]=8;break;
C51 COMPILER V6.12 TONGBUXIANSHI 04/28/2008 09:19:00 PAGE 3
118 3 case 0x09 : a[2]=9;
119 3 }
120 2 f=e&0x30;
121 2 switch(f)
122 2 { case 0x00 : a[3]=0x3F;break;
123 3 case 0x10 : a[3]=0x03;break;
124 3 case 0x20 : a[3]=0x40;break;
125 3 case 0x30 : a[3]=0x43;
126 3
127 3 }
128 2 E=0;
129 2 Disp();
130 2
131 2 }
132 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 475 ----
CONSTANT SIZE = 11 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 14 1
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 + -