您的位置 首页 芯闻

单片机操控点阵LED一秒改写显现I心形U

本程序所用的原理图下载:点这里,单片机芯片使用的stc89c52;找到点阵部分的原理图即可这是一整个单片机开发板的电路图其他的忽略下面是程

本程序所用的原理图下载:点这里,单片机芯片运用的stc89c52;找到点阵部分的原理图即可.这是一整个单片机开发板的电路图其他的疏忽

下面是程序源码:
/******点阵LED改写显现I LVOE U**************/
/**
*功用:点阵LED一秒改写显现I 心形 U(I LOVE YOU)
*作者:徐冉
*日期:2013-06-14-22:44
*补白:程序已调试成功
**/
/*************AT89C52-RC MCU*******************/
/**************51hei开发板********************/
#include
typedef unsigned int uint;
typedef unsigned char uchar;
sbit din = P2^0;
sbit cs = P2^1;
sbit clk = P2^2;
uchar code table[5][8] = {
{0x00,0x3C,0x18,0x18,0x18,0x18,0x3C,0x00}, //I
{0x00,0x66,0xFF,0xFF,0xFF,0x7E,0x3C,0x18}, //心
{0x00,0x66,0x66,0x66,0x66,0x7E,0x3C,0x00}, //U
};
uchar i, j;
uint counter;
//写字节
void write_byte(uchar date)
{
uchar i;
cs = 0;
for(i = 0; i < 8; i++)
{
clk = 0;
din = date & 0x80;
date <<= 1;
clk = 1;
}
}
//写MAX7219
void write_max7219(uchar add, uchar date)
{
cs = 0;
write_byte(add);
write_byte(date);
cs = 1;
}
//MAX7219初始化
void max7219_init()
{
write_max7219(0x0c, 0x01);//正常形式
write_max7219(0x09, 0x00);//译码形式
write_max7219(0x0a, 0x08);//亮度操控
write_max7219(0x0b, 0x07);//扫描形式
write_max7219(0x0f, 0x00);//显现检测
}
//守时器T0初始化
void timer0_init()
{
TMOD = 0x01;
TH0 = 0x94; //守时30ms
TL0 = 0x00;
TR0 = 1;
EA = 1;
ET0 = 1;
}
//主程序
void main(void)
{
max7219_init();
timer0_init();
while(1)
{
if(i >= 8)
{
i = 0;
}
if(counter == 40)
{
counter = 0;
j++;
if(j >= 3)
{
j = 0;
}
}
write_max7219(i+1, table[j][i]);
}
}
//中止服务程序
void timer0_int() interrupt 1
{
TH0 = 0x94;
TL0 = 0x00;
i++;
counter++;
}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/news/xinwen/253980.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部