
51单片机TM1803
5星
- 浏览量: 0
- 大小:None
- 文件类型:RAR
简介:
简介:本项目基于51单片机实现对TM1803芯片的控制,涵盖LED灯串显示技术,适用于灯光秀、装饰照明等场景,展示数字电路与编程技巧。
*************************************
*单片机:STC15W408AS
*三基色:TM1803
*晶 振:11.0592
*作 者:yj
**************************************
#include stc15w.h
#include intrins.h
#define uchar unsigned char
#define uint unsigned int
sbit DIN= P3^2; // 数据控制器线
#define RGB_count 1 // 级联的TM1803个数
// 发送0码
void DIN_bit_0()
{
uchar i;
DIN = 1;
for(i = 1;i > 0;i--);
_nop_();
DIN = 0;
}
// 发送1码
void DIN_bit_1()
{
uchar i;
DIN=1;
for(i=3;i>0;i--);
_nop_();
DIN=0;
}
// 复位函数
void reset()
{
uint i;
DIN = 0;
for(i = 275 ;i > 0 ;i --);
}
// 发送一个8位数据
void send_dat(uchar dat)
{
uchar i;
for (i=8;i>0;i--)
{
if(dat&0x80)
DIN_bit_1();
else
DIN_bit_0();
dat <<= 1;
}
}
// 延时函数
void delay(uchar t)
{
unsigned long j;
while(t--)
{
for(j=0;j<1000;j++);
}
}
// 主程序
void main()
{
uchar i,n;
P3M1&=~0x04; // 设置P3.2位推挽输出(强上拉)
P3M0|= 0x04;
while(1)
{
// B渐亮
for(i=0;i<128 ;i++)
{
for(n = RGB_count;n>0;n--)
{
send_dat(0);
send_dat(0);
send_dat(i);
}
reset();
delay(5);
}
// B渐灭
for (i=128;i > 0 ; i--)
{
for(n = RGB_count;n>0;n--)
{
send_dat(0);
send_dat(0);
send_dat(i);
}
reset();
delay(5);
}
// G渐亮
for (i=0;i<128 ; i++)
{
for(n = RGB_count; n> 0;n--)
{
send_dat(0);
send_dat(i);
send_dat(0);
}
reset();
delay(5);
}
// G渐灭
for (i=128;i > 0 ; i--)
{
for(n = RGB_count;n>0;n--)
{
send_dat(0);
send_dat(i);
send_dat(0);
}
reset();
delay(5);
}
// R渐亮
for (i=0;i<128 ; i++)
{
for(n = RGB_count; n> 0;n--)
{
send_dat(i);
send_dat(0);
send_dat(0);
}
reset();
delay(5);
}
// R渐灭
for (i=128;i > 0 ; i--)
{
for(n = RGB_count;n>0;n--)
{
send_dat(i);
send_dat(0);
send_dat(0);
}
reset();
delay(5);
}
}
}
全部评论 (0)


