📄 lz-led-tm1809l.lst
字号:
C51 COMPILER V9.00 LZ_LED_TM1809L 10/18/2011 10:05:22 PAGE 1
C51 COMPILER V9.00, COMPILATION OF MODULE LZ_LED_TM1809L
OBJECT MODULE PLACED IN LZ-LED-TM1809L.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE LZ-LED-TM1809L.C BROWSE DEBUG OBJECTEXTEND
line level source
1 //========================================================================//
2 //-----------MCU型号为STC15F104E(程序下载时输入内置30MHz振荡)-----------//
3 // 程序功能:向TM1809低速模式发送3个像素点数据并检测交流过零信号以实现 //
4 // 七彩同步渐变循环。 ISP程序下载:P3.0(RXD) P3.1(TXD) //
5 // 交流过零检测输入:P3.2(采用外部0中断) 数据输出:P3.3 //
-
6 // 编 写 人:陆 周 编写时间:2011-07-28于深圳宝安区 版本号:A-01 //
7 //========================================================================//
8
9 #include<reg52.h> //MCU资源头文件
10 #include<intrins.h> //移位函数
11 #define nop _nop_();
12 #define uchar unsigned char //宏替换,方便书写
13 #define uint unsigned int //宏替换,方便书写
14
15 sbit DIO=P3^3; //数据输出引脚声明
16
17 uchar bdata LED_DAT; //可位操作的数据发送暂存变量声明
18 sbit bit0=LED_DAT^0; //被发送的数据各位定义
19 sbit bit1=LED_DAT^1;
20 sbit bit2=LED_DAT^2;
21 sbit bit3=LED_DAT^3;
22 sbit bit4=LED_DAT^4;
23 sbit bit5=LED_DAT^5;
24 sbit bit6=LED_DAT^6;
25 sbit bit7=LED_DAT^7;
26
27
28 uint j; //时间控制全局变量声明
29 uchar RR,GG,BB; //RGB灰度值全局变量声明
30
31 void h_dat0(); //数码BIT0
32 void h_dat1(); //数码BIT1
33 void fs_rgbdat(); //发送RGB灰度数据
34
35 void red_jl(); //红色渐亮
36 void red_jm(); //红色渐灭
37 void green_jl(); //绿色渐亮
38 void green_jm(); //绿色渐灭
39 void blue_jl(); //蓝色渐亮
40 void blue_jm(); //蓝色渐灭
41 void white_jl(); //白色渐亮
42 void white_jm(); //白色渐灭
43 void delay_1ms(uint z); //延时函数声明
44 //*****************************主程序开始*****************************//
45 void main()
46 {
47 1 while(1)
48 1 {
49 2 RR=0; GG=0; BB=0;
50 2 fs_rgbdat(); //发送RGB灰度数据
51 2 DIO=0; //数据IO口置0
52 2 delay_1ms(50); //延时100毫秒等待所有MCU复位
53 2
54 2 red_jl(); //红色渐亮
C51 COMPILER V9.00 LZ_LED_TM1809L 10/18/2011 10:05:22 PAGE 2
55 2 red_jm(); //红色渐灭
56 2 green_jl(); //绿色渐亮
57 2 green_jm(); //绿色渐灭
58 2 blue_jl(); //蓝色渐亮
59 2 blue_jm(); //蓝色渐灭
60 2 white_jl(); //白色渐亮
61 2 white_jm(); //白色渐灭
62 2 }
63 1
64 1 }
65 //*****************************主程序结束*****************************//
66
67
68
69
70 //*****************************子程序开始*****************************//
71 //=======================红色渐亮=======================//
72 void red_jl()
73 {
74 1 uint i;
75 1 RR=0; GG=0; BB=0;
76 1 for(i=0; i<256; i++) //白色渐灭
77 1 {
78 2 fs_rgbdat(); //发送RGB灰度数据
79 2 DIO=0; //数据IO口置0
80 2 delay_1ms(5);
81 2 RR++;
82 2 }
83 1 RR=255; GG=0; BB=0;
84 1 }
85
86 //=======================红色渐灭=======================//
87 void red_jm()
88 {
89 1 uint i;
90 1 RR=255; GG=0; BB=0;
91 1 for(i=0; i<256; i++) //白色渐灭
92 1 {
93 2 fs_rgbdat(); //发送RGB灰度数据
94 2 DIO=0; //数据IO口置0
95 2 delay_1ms(5);
96 2 RR--;
97 2 }
98 1 RR=0; GG=0; BB=0;
99 1 }
100 //=======================绿色渐亮=======================//
101 void green_jl()
102 {
103 1 uint i;
104 1 RR=0; GG=0; BB=0;
105 1 for(i=0; i<256; i++) //白色渐灭
106 1 {
107 2 fs_rgbdat(); //发送RGB灰度数据
108 2 DIO=0; //数据IO口置0
109 2 delay_1ms(5);
110 2 GG++;
111 2 }
112 1 RR=0; GG=255; BB=0;
113 1 }
114
115 //=======================绿色渐灭=======================//
116 void green_jm()
C51 COMPILER V9.00 LZ_LED_TM1809L 10/18/2011 10:05:22 PAGE 3
117 {
118 1 uint i;
119 1 RR=0; GG=255; BB=0;
120 1 for(i=0; i<256; i++) //白色渐灭
121 1 {
122 2 fs_rgbdat(); //发送RGB灰度数据
123 2 DIO=0; //数据IO口置0
124 2 delay_1ms(5);
125 2 GG--;
126 2 }
127 1 RR=0; GG=0; BB=0;
128 1 }
129 //=======================蓝色渐亮=======================//
130 void blue_jl()
131 {
132 1 uint i;
133 1 RR=0; GG=0; BB=0;
134 1 for(i=0; i<256; i++) //白色渐灭
135 1 {
136 2 fs_rgbdat(); //发送RGB灰度数据
137 2 DIO=0; //数据IO口置0
138 2 delay_1ms(5);
139 2 BB++;
140 2 }
141 1 RR=0; GG=0; BB=255;
142 1 }
143 //=======================蓝色渐灭=======================//
144 void blue_jm()
145 {
146 1 uint i;
147 1 RR=0; GG=0; BB=255;
148 1 for(i=0; i<256; i++) //白色渐灭
149 1 {
150 2 fs_rgbdat(); //发送RGB灰度数据
151 2 DIO=0; //数据IO口置0
152 2 delay_1ms(5);
153 2 BB--;
154 2 }
155 1 RR=0; GG=0; BB=0;
156 1 }
157 //=======================白色渐亮=======================//
158 void white_jl()
159 {
160 1 uint i;
161 1 RR=0; GG=0; BB=0;
162 1 for(i=0; i<256; i++) //白色渐灭
163 1 {
164 2 fs_rgbdat(); //发送RGB灰度数据
165 2 DIO=0; //数据IO口置0
166 2 delay_1ms(5);
167 2 RR++;
168 2 GG++;
169 2 BB++;
170 2 }
171 1 RR=255; GG=255; BB=255;
172 1 }
173 //=======================白色渐灭=======================//
174 void white_jm()
175 {
176 1 uint i;
177 1 RR=255; GG=255; BB=255;
178 1 for(i=0; i<256; i++) //白色渐灭
C51 COMPILER V9.00 LZ_LED_TM1809L 10/18/2011 10:05:22 PAGE 4
179 1 {
180 2 fs_rgbdat(); //发送RGB灰度数据
181 2 DIO=0; //数据IO口置0
182 2 delay_1ms(5);
183 2 RR--;
184 2 GG--;
185 2 BB--;
186 2 }
187 1 RR=0; GG=0; BB=0;
188 1 }
189
190 //=============低速模式数码BIT0(高电平时间:600ns 低电平时间:1940ns 周期T=2.54US)=============//
191 void h_dat0()
192 {
193 1 DIO=1;
194 1 nop; nop; nop; nop; nop;
195 1 nop; nop; nop;
196 1 DIO=0;
197 1 nop; nop; nop; nop; nop;
198 1 nop; nop; nop; nop; nop;
199 1 nop; nop; nop; nop; nop;
200 1 nop; nop; nop; nop; nop;
201 1 nop; nop; nop; nop; nop;
202 1 nop; nop;
203 1 }
204 //=============低速模式数码BIT1(高电平时间:1840ns 低电平时间:700ns 周期T=2.54US)=============//
205 void h_dat1()
206 {
207 1 DIO=1;
208 1 nop; nop; nop; nop; nop;
209 1 nop; nop; nop; nop; nop;
210 1 nop; nop; nop; nop; nop;
211 1 nop; nop; nop; nop; nop;
212 1 nop; nop; nop; nop; nop;
213 1 nop; nop; nop; nop; nop;
214 1 nop; nop; nop; nop; nop;
215 1 DIO=0;
216 1 }
217
218 //===================发送RGB灰度数据===================//
219 void fs_rgbdat() //发送RGB灰度数据
220 {
221 1 uint k;
222 1 for(k=0; k<1024; k++) //发送1024个像素点的数据 (灯的封装与PCB封装不一致,须按RBG的顺序发送数据!!!
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -