新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 單片機控制點陣矩形收縮閃爍源程序

單片機控制點陣矩形收縮閃爍源程序

作者: 時間:2016-12-02 來源:網(wǎng)絡(luò) 收藏
本程序所用的原理圖下載:點這里,單片機芯片使用的stc89c52;找到點陣部分的原理圖即可.這是一整個單片機開發(fā)板的電路圖其他的忽略

以下是程序源碼:
/**
*功能:矩形收縮閃爍
*作者:徐冉
*日期:2013-06-26-22:13
*備注:程序調(diào)試成功
**/
/********AT89C52-RC MCU****************/
/*************51hei開發(fā)板**************/
#include
typedef unsigned int uint;
typedef unsigned char uchar;
sbit din = P2^0;
sbit cs = P2^1;
sbit clk = P2^2;
uchar code dis[][8] ={
{0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0xFF},
{0x00,0x7E,0x42,0x42,0x42,0x42,0x7E,0x00},
{0x00,0x00,0x3C,0x24,0x24,0x3C,0x00,0x00},
{0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00}
};
//延時xms
void delay(uint xms)
{
uint x, y;
for(x = xms; x > 0; x--)
for(y = 110; y > 0; y--);
}
//寫一個字節(jié)
void write_byte(uchar date)
{
uchar i, temp;
temp = date;
cs = 0; //選通MAX7219
for(i = 0; i < 8; i++)
{
clk = 0;
din = temp & 0x80;
temp <<= 1;
clk = 1; //時鐘上升沿脈沖
}
}
//寫MAX7219
void write_max7219(uchar address, uchar date)
{
cs = 0;//選通MAX7219
write_byte(address);
write_byte(date);
cs = 1;
}
//MAX7219初始化
void max7219_init()
{
write_max7219(0x0c, 0x01);
write_max7219(0x09, 0x00);
write_max7219(0x0a, 0x05);
write_max7219(0x0b, 0x07);
write_max7219(0x0f, 0x00);
}
//主程序
void main(void)
{
uchar i, j;
delay(50);//稍作延時
max7219_init();
while(1)
{
for(i = 0; i < 4; i++)
{
for(j = 0; j < 8; j++)
{
write_max7219(j+1, dis[i][j]);//寫入MAX7219數(shù)據(jù)
}
delay(100); //延時100ms
}
}
}


評論


技術(shù)專區(qū)

關(guān)閉