📄 pointled.lst
字号:
C51 COMPILER V8.08 POINTLED 07/31/2008 16:43:00 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE POINTLED
OBJECT MODULE PLACED IN PointLED.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\C51.EXE PointLED.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /*--------------------------------------------------
2 工程名字:LEDPoint
3 工程功能:16×64 LED点阵显示
4 作者:小琅
5 时间:2008-7-29 11:39
6 ---------------------------------------------------*/
7 #include "myinclude.h"
8
9 #define WordNum 4 //点阵字个数
10 #define LedNum 4 //点阵个数
11
12 //汉字点阵图
13 code uint16 ShowData[WordNum][16]={
14 {0x1020,0x1024,0x93FE,0x5420,
15 0x19FC,0xFC20,0x13FE,0x1004,
16 0x39FE,0x3504,0x51FC,0x9104,
17 0x11FC,0x1104,0x1104,0x110C}, //精
18
19 {0x0100,0x0108,0x3FFC,0x2108,
20 0x2108,0x2108,0x3FF8,0x2108,
21 0x0100,0x0100,0x1200,0x5104,
22 0x5112,0x9012,0x0FF0,0x0000}, //忠
23
24 {0x1008,0x11FC,0x1108,0x1108,
25 0xFD28,0x1110,0x1500,0x19F8,
26 0x3108,0xD190,0x1150,0x1120,
27 0x1150,0x118E,0x5104,0x2100}, //报
28
29 {0x0004,0x7FFE,0x4024,0x5FF4,
30 0x4104,0x4104,0x4144,0x4FE4,
31 0x4104,0x4144,0x4124,0x4104,
32 0x5FF4,0x4004,0x7FFC,0x4004} //国
33 };
34
35 #define TranCon P1
36 sbit MR = P3^6;
37 sbit clock = P3^7;
38
39 #define KeepTime 4 //动态显示保持时间
40
41 uint8 MODE = 0; //点阵显示模式
42 uint8 State = 0; //动态显示时的状态记录
43 uint8 MoveState = 0; //流动显示的状态记录
44
45 void Init();
46 void SerSend(uint8 senddata);
47 void Delay(uint8 count);
48 void DisplayAll();
49 void MODE0();
50 void MODE1();
51
52 /*---------------------------------------------------
53 函数功能:主函数
54 ----------------------------------------------------*/
55 void main()
C51 COMPILER V8.08 POINTLED 07/31/2008 16:43:00 PAGE 2
56 {
57 1 Init(); //初始化
58 1 while(1)
59 1 {
60 2 switch(MODE)
61 2 {
62 3 case 0:
63 3 DisplayAll();
64 3 break;
65 3 case 1:
66 3 MODE0();
67 3 break;
68 3 case 2:
69 3 MODE1();
70 3 break;
71 3 default:
72 3 break;
73 3 }
74 2 }
75 1 }
76
77 /*----------------------------------------
78 **函数功能:初始化
79 **输入:无
80 **输出:无
81 -----------------------------------------*/
82 void Init()
83 {
84 1 TMOD = 0x11; //定时器1和0,工作方式都为1
85 1 TCON = 0x01; //外中断0,下降沿触发
86 1 TH0 = 0x3C; //50毫秒定时,初始化时钟值
87 1 TL0 = 0xB0;
88 1 TH1 = 0x3C;
89 1 TL1 = 0xB0;
90 1 IE |= 0x8B; //开总中断,定时器0 1中断,外0中断
91 1
92 1 if(MODE == 1) //根据不同的模式开不同的时钟
93 1 {
94 2 TR0 = 1;
95 2 }
96 1 else if(MODE == 2)
97 1 {
98 2 TR1 = 1;
99 2 }
100 1 }
101
102 /*--------------------------------------------
103 **函数功能:用查询方式从串口发送一个8位数据
104 **输入: senddata:要发送的数据
105 **输出:无
106 --------------------------------------------*/
107 #pragma disable
108 void SerSend(uint8 senddata)
109 {
110 1 TI=0;
111 1 SBUF = senddata;
112 1 while(TI=0);
*** WARNING C276 IN LINE 112 OF POINTLED.C: constant in condition expression
113 1 TI=0;
114 1 }
115
116 /*--------------------------------------------
C51 COMPILER V8.08 POINTLED 07/31/2008 16:43:00 PAGE 3
117 **函数功能:点阵四字静态显示
118 **输入:无
119 **输出:无
120 --------------------------------------------*/
121 void DisplayAll()
122 {
123 1 uint8 i,j;
124 1 for(i=0; i<16; i++)
125 1 {
126 2 MR = 0; //清除端口数据
127 2 clock = 0;
128 2 _nop_();
129 2 clock = 1;
130 2 MR = 1;
131 2
132 2 TranCon = i; //片选信号
133 2 for(j=0; j<4; j++) //发送数据
134 2 {
135 3 SerSend((uint8)(ShowData[j][i]>>8));
136 3 SerSend((uint8)ShowData[j][i]);
137 3 }
138 2
139 2 clock=0; //锁存
140 2 nop3;
141 2 nop3;
142 2 clock=1;
143 2
144 2 Delay(1);
145 2 }
146 1 }
147
148 /*--------------------------------------------
149 **函数功能:点阵显示模式1:文字从上向下动态显示
150 --------------------------------------------*/
151 #pragma disable
152 void MODE0()
153 {
154 1 uint8 i,j;
155 1 for(i=0; i<=State; i++)
156 1 {
157 2 MR = 0; //清除端口数据
158 2 clock = 0;
159 2 _nop_();
160 2 clock = 1;
161 2 MR = 1;
162 2
163 2 TranCon = i; //片选信号
164 2 for(j=0; j<4; j++)
165 2 {
166 3 SerSend((uint8)(ShowData[j][15-State+i]>>8));
167 3 SerSend((uint8)ShowData[j][15-State+i]);
168 3 }
169 2 clock=0;
170 2 nop3;
171 2 nop3;
172 2 clock=1;
173 2 Delay(1);
174 2 }
175 1 if(State == 15) //稳定后暂停
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -