📄 led.lst
字号:
C51 COMPILER V8.08 LED 03/17/2009 23:41:45 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE LED
NO OBJECT MODULE REQUESTED
COMPILER INVOKED BY: c:\Keil\C51\BIN\C51.EXE led.c DEBUG OBJECTEXTEND PREPRINT SRC(.\led.SRC)
line level source
1
2 #include<reg52.h>
3 #include<math.h>
4
5 #define uchar unsigned char
6 uchar code tmp[]=
7 {
8 /*-- 文字: 电 --*/
9 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
10 0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xC0,0x07,0xDE,0xF7,0xDE,0xF7,0xC0,0x07,0xDE,0xF7,
11 0xDE,0xF7,0xDE,0xF7,0xC0,0x07,0xDE,0xF7,0xFE,0xFD,0xFE,0xFD,0xFF,0x01,0xFF,0xFF,
12
13 /*-- 文字: 子 --*/
14 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
15 0xFF,0xFF,0xC0,0x0F,0xFF,0xDF,0xFF,0xBF,0xFF,0x7F,0xFE,0xFF,0xFE,0xFF,0xFE,0xFB,
16 0x00,0x01,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFA,0xFF,0xFD,0xFF,
17
18 /*-- 文字: 科 --*/
19 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
20 0xF9,0xF7,0x87,0x77,0xF7,0xB7,0xF7,0xB7,0x01,0xF7,0xE7,0x77,0xE3,0xB7,0xD5,0xB7,
21 0xD7,0xF1,0xB7,0x87,0x74,0x77,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,
22
23 /*-- 文字: 大 --*/
24 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
25 0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0x00,0x01,0xFE,0xFF,0xFD,0x7F,
26 0xFD,0x7F,0xFD,0xBF,0xFB,0xBF,0xFB,0xDF,0xF7,0xEF,0xEF,0xE7,0xDF,0xF1,0xBF,0xFB,
27 /*-- 文字: 欢 --*/
28 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
29 0xFF,0x7F,0xFF,0x7F,0x03,0x7F,0xFA,0x01,0x7A,0xFB,0xB5,0xB7,0xD7,0xBF,0xEF,0xBF,
30 0xE7,0xBF,0xE7,0x9F,0xDB,0x5F,0xDB,0x6F,0xBE,0xE7,0x79,0xF1,0xC7,0xFB,0xFF,0xFF,
31
32 /*-- 文字: 迎 --*/
33 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
34 0xBF,0xFF,0xDE,0x7F,0xC9,0x83,0xDB,0xBB,0xFB,0xBB,0xFB,0xBB,0x1B,0xBB,0xDB,0xBB,
35 0xDA,0xBB,0xD9,0xAB,0xDB,0xB7,0xDF,0xBF,0xDF,0xBF,0xAF,0xFF,0x70,0x01,0xFF,0xFF,
36
37 /*-- 文字: 你 --*/
38 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
39 0xF6,0xFF,0xF6,0x7F,0xEE,0xFB,0xEC,0x01,0xDD,0xFB,0xCB,0xB7,0x97,0xBF,0x5D,0xAF,
40 0xDC,0xB7,0xDD,0xB7,0xDB,0xBB,0xDB,0xB9,0xD7,0xBB,0xDE,0xBF,0xDF,0x7F,0xFF,0xFF ,
41
42 /*-- 文字: 噢 --*/
43 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
44 0xFF,0x7F,0xFE,0xFF,0x08,0x03,0x69,0xB3,0x6A,0xAB,0x68,0x03,0x6B,0x1B,0x6A,0xAB,
45 0x69,0xAB,0x0B,0xBB,0x60,0x01,0xFF,0x5F,0xFE,0xEF,0xFD,0xF7,0xFB,0xF9,0xF7,0xFB
46
47 };
48
49
50 uchar bdata buff[8];
51 sbit SHCLK = P3^7;
52 sbit STCLK= P3^6;
53 sbit SERIN = P3^5;
54 sbit EN154 = P2^7;
55
C51 COMPILER V8.08 LED 03/17/2009 23:41:45 PAGE 2
56 void display(uchar line);
57 void trans(void);
58 void delay(void);
59
60 void main(void)
61 {
62 1 trans();
63 1 }
64
65 void trans(void)
66 {
67 1 uchar data line2,line;
68 1 unsigned int data m1,m2,j;
69 1 unsigned int data size = sizeof(tmp) - 31;
70 1 unsigned int data i = 1;
71 1 unsigned int k = 0;
72 1 signed char num ;
73 1 //数据宽度的大小很重要,这里i的宽度就可能影响程序的执行
74 1
75 1 while ( k++ < sizeof(tmp))
76 1 {
77 2 for(line = 0; line < 16; ++line )
78 2 { num = i/8;
79 3 line2 = 2 * line;
80 3 if(num < 8)
81 3 buff[num] = ((tmp[line2]>> ((num + 1) * 8 - i)) | buff[num]) ;
82 3 for(--num,j=0; num >= 0 ; --num,++j)
83 3 {
84 4 if (num >= 8) { j = (num - 7); num =7; }
85 4 m1 = (j/2)*30 + j;
86 4 m2 = ((j+1) / 2) * 30 +(j+1);
87 4 if(m2 > size ) m2 -= sizeof(tmp) ;
88 4 if(m1 > size ) m1 -= sizeof(tmp) ;
89 4 buff[num] = (tmp[line2+m1] << (i-(num+j)*8-8) | tmp[line2+m2]>>((num+j)*8-i+16));
90 4 }
91 3 display(16-line);
92 3 for(num = 8; num != 0; --num) buff[num-1] = 0xff;
93 3 }
94 2 if(i > (sizeof(tmp) + 63)) i = 0x40;
95 2 ++i;
96 2 }
97 1
98 1 }
99
100
101 void display(uchar line)
102 {
103 1 uchar i = 8;
104 1 uchar j = 0;
105 1 EN154 = 1;
106 1 STCLK = 0;
107 1
108 1 for(i = 8; i!=0; --i)
109 1 {
110 2 ACC = buff[i-1];
111 2 #pragma asm
112 2 MOV R1,#8
113 2 PUSHONE:
114 2 CLR P3.7
115 2 RLC A
116 2 MOV P3.5, C
117 2 SETB P3.7
C51 COMPILER V8.08 LED 03/17/2009 23:41:45 PAGE 3
118 2 DJNZ R1,PUSHONE
119 2 #pragma endasm
120 2 }
121 1
122 1 STCLK = 1;
123 1
124 1 P2 = (16-line) * 8 ;
125 1 }
126
127
128
129
130
131
132 /*
133 void display(uchar line)
134 {
135 uchar i = 8;
136 EN154 = 1;
137 STCLK = 0;
138 B = line;
139 ACC = buff;
140 do{
141 ACC = buff[i-1];
142
143 #pragma asm
144 MOV R1,#8
145 PUSHONE:
146 CLR P3.7
147 RLC A
148 MOV P3.5, C
149 SETB P3.7
150 DJNZ R1,PUSHONE
151 #pragma endasm
152 --i;
153 }while(i != 0) ;
154
155 #pragma asm
156 SETB P3.6
157 MOV A,#16
158 CLR C
159 SUBB A,B
160 RLC A
161 RLC A
162 RLC A
163 MOV P2,A
164 #pragma endasm
165 } */
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 440 ----
CONSTANT SIZE = 256 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 8 14
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 + -