📄 16x16led点阵显示.lst
字号:
C51 COMPILER V8.01 16X16LED点阵显蔩 07/14/2008 16:13:26 PAGE 1
C51 COMPILER V8.01, COMPILATION OF MODULE 16X16LED点阵显蔩
OBJECT MODULE PLACED IN 16X16LED点阵显示.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 16X16LED点阵显示.C BROWSE DEBUG OBJECTEXTEND
line level source
1 /**********创键者:杨江波 ************************************************************/
2 /**********修改 :义崇文 EMAIL:YICHONGWEN@163.COM. QQ:664196922, 849963715 *************/
3 #include <reg51.h>
4 #define BLKN 2
5 sbit G = 0x97;
6 sbit RCLK = 0x96;
7 sbit SCLR = 0x95;
8 void delay(unsigned int);
9 unsigned char data dispram[32];
10
11
12 void main(void)
13 {
14 1
15 1 unsigned char code Bmp[ ][32]={
16 1
17 1 {
18 1 0x06,0x40,0x38,0x50,0x08,0x48,0x08,0x48,0x08,0x40,0xFF,0xFE,0x08,0x40,0x08,0x48,
19 1 0x0E,0x28,0x38,0x30,0xC8,0x20,0x08,0x50,0x09,0x92,0x08,0x0A,0x28,0x06,0x10,0x02,
20 1
21 1
22 1
23 1 // 0x60,0x02,0x1C,0x0A,0x10,0x12,0x10,0x12,0x10,0x02,0xFF,0x7F,0x10,0x02,0x10,0x12,
24 1 //0x70,0x14,0x1C,0x0C,0x13,0x04,0x10,0x0A,0x90,0x49,0x10,0x50,0x14,0x60,0x08,0x40
25 1 //0XF9,0XBF,0XC7,0XAF,0XF7,0XBF,0XF7,0XBF,0XF7,0XBF,0X00,0X01,0XF7,0XBF,0XF7,0XB7,
26 1 //0XF1,0XD7,0XC7,0XCF,0X37,0XDF,0XF7,0XAF,0XF6,0X6D,0XF7,0XF5,0XD7,0XF9,0XEF,0XFD
27 1 },
28 1
29 1 { 0x00,0x00,0xE0,0x00,0x1E,0x00,0x10,0x3E,0x10,0x22,0xFE,0x22,0x10,0x22,0x18,0x22,
30 1 0x38,0x22,0x54,0x22,0xD4,0x22,0x52,0x22,0x11,0x3E,0x10,0x22,0x10,0x00,0x10,0x00
31 1
32 1 //0XFF,0X07,0XC0,0X6F,0XED,0XEF,0XF6,0XDF,0XC0,0X01,0XDD,0XFD,0XBD,0XFF,0XC0,0X03,
33 1 //0XFB,0XFF,0XF8,0X0F,0XF3,0XDF,0XF4,0XBF,0XEF,0X3F,0X9C,0XCF,0X73,0XF1,0XCF,0XFB
34 1 },
35 1
36 1 {
37 1 0XF7,0XDF,0XF9,0XCF,0XFB,0XBF,0XC0,0X07,0XDE,0XF7,0XC0,0X07,0XDE,0XF7,0XDE,0XF7,
38 1 0XC0,0X07,0XDE,0XF7,0XFE,0XFF,0X00,0X01,0XFE,0XFF,0XFE,0XFF,0XFE,0XFF,0XFE,0XFF
39 1 },
40 1
41 1 {
42 1 0XFF,0XBF,0XEF,0XBF,0XEF,0XBF,0XEF,0XBB,0XE0,0X01,0XEF,0XFF,0XEF,0XFF,0XEF,0XFF,
43 1 0XE0,0X0F,0XEF,0XEF,0XEF,0XEF,0XEF,0XEF,0XDF,0xEF,0XDF,0XEF,0XBF,0XEF,0X7F,0XEF
44 1 },
45 1
46 1 {
47 1 0XEF,0XFF,0XEF,0X07,0XEF,0X77,0X01,0X77,0XEF,0X77,0XEF,0X77,0XC7,0X77,0XCB,0X77,
48 1 0XAB,0X77,0XAF,0X77,0X6E,0XF7,0XEE,0XF5,0XED,0XF5,0XED,0XF5,0XEB,0XF9,0XEF,0XFF
49 1 },
50 1
51 1 {
52 1 0XF8,0X3F,0XE7,0XCF,0XDF,0XF7,0XBF,0XFB,0XB3,0X9B,0X73,0X9D,0X7F,0XFD,0X7F,0XFD,
53 1 0X6F,0XED,0X67,0XCD,0XB3,0X9B,0XB8,0X3B,0XDF,0XF7,0XEF,0XCF,0XF8,0X3F,0XFF,0XFF
54 1 }
55 1
C51 COMPILER V8.01 16X16LED点阵显蔩 07/14/2008 16:13:26 PAGE 2
56 1 };
57 1
58 1 register unsigned char i,j,k,l;
59 1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
60 1
-
-
-
-
-
-
-
-
-
-
61 1 SCON = 0X00; //设定串行口为8位同步移位寄存
62 1 TMOD = 0X01; //设定定时器0为16位计数模
63 1 TR0 = 1; //启动定时0
64 1 P1 = 0X3F;
65 1 IE = 0X82; //允许定时器0中断
66 1 EA=1; //开中断
67 1 while(1)
68 1 {
69 2 delay(2000);
70 2 for(i=0;i<32;i++)
71 2 {
72 3 dispram[i] = Bmp[5][i];
73 3 if(i%2)delay(1000);
74 3 }
75 2
76 2
77 2 //使汉从下到上一行一行的上移显示
78 2 delay(300);
79 2 for(i=0;i<6;i++) //使定义的汉字一个一个轮流显示
80 2 {
81 3 for(j=0;j<16;j++) //使汉从下到上一行一行的上移显示
82 3 {
83 4 for(k=0;k<15;k++)
84 4 {
85 5 dispram[k*BLKN] = dispram[(k+1)*BLKN];
86 5 dispram[k*BLKN+1] = dispram[(k+1)*BLKN+1];
87 5 }
88 4 dispram[30] = Bmp[i][j*BLKN];
89 4 dispram[31] = Bmp[i][j*BLKN+1];
90 4 delay(1000);
C51 COMPILER V8.01 16X16LED点阵显蔩 07/14/2008 16:13:26 PAGE 3
91 4 }
92 3 }
93 2
94 2
95 2
96 2 //使定义的汉字一列一列的左移显示
97 2 delay(300);
98 2 for(i=0;i<6;i++) //使定义的汉字一个一个轮流显示
99 2 {
100 3 for(j=0;j<2;j++)
101 3 for(k=1;k<9;k++)
102 3 {
103 4 for(l=0;l<16;l++)
104 4 {
105 5 dispram[l*BLKN]=dispram[l*BLKN]<<1|dispram[l*BLKN+1]>>7;
106 5 dispram[l*BLKN+1]=dispram[l*BLKN+1]<<1|Bmp[i][l*BLKN+j]>>(8-k);
107 5 }
108 4 delay(1000);
109 4 }
110 3 }
111 2
112 2
113 2
114 2 //使屏幕全部点亮
115 2
116 2 delay(3000);
117 2 for(i=0;i<32;i++)
118 2 {
119 3 dispram[i]=0x00;
120 3 if(i%2)delay(1000);
121 3 }
122 2 }
123 1 }
124
125
126
127 void delay(unsigned int dt)
128 {
129 1 register unsigned char bt;
130 1 for(; dt;dt--)
131 1 for(bt=0;bt<55;bt++);
132 1 }
133
134
135 void leddisplay(void)interrupt 1 using 1
136 {
137 1 register unsigned char i,j=BLKN;
138 1 TH0=0xF8;
139 1 TL0=0x20; //设定刷新频率为50HZ
140 1 i=P1; //i=0x3f
141 1 i=++i&0x0f;
142 1 do{
143 2 j--;
144 2 SBUF=dispram[i*BLKN+j];
145 2 while(!TI);TI=0;
146 2 }while(j);
147 1 G=1;
148 1 P1&=0XF0;
149 1 RCLK=1;
150 1 P1|=i;
151 1 RCLK=0;
152 1 G=0;
C51 COMPILER V8.01 16X16LED点阵显蔩 07/14/2008 16:13:26 PAGE 4
153 1 }
154
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 476 ----
CONSTANT SIZE = 192 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 32 3
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 + -