專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

單片機(jī)控制點(diǎn)陣矩形收縮閃爍源程序

作者:寒竹子   來(lái)源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2014年03月21日   【字體:

本程序所用的原理圖下載: 點(diǎn)這里 ,單片機(jī)芯片使用的stc89c52;找到點(diǎn)陣部分的原理圖即可.這是一整個(gè)單片機(jī)開(kāi)發(fā)板的電路圖其他的忽略

以下是程序源碼:
/**
*功能:矩形收縮閃爍
*作者:徐冉
*日期:2013-06-26-22:13
*備注:程序調(diào)試成功
**/
/********AT89C52-RC MCU****************/
/*************51hei開(kāi)發(fā)板**************/
#include <reg52.h>
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}
       };
//延時(shí)xms           
void delay(uint xms)
{
 uint x, y;
 for(x = xms; x > 0; x--)
  for(y = 110; y > 0; y--);
}
//寫(xiě)一個(gè)字節(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; //時(shí)鐘上升沿脈沖
 }
}
//寫(xiě)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);//稍作延時(shí)
 max7219_init();
 while(1)
 {
  for(i = 0; i < 4; i++)
  {
   for(j = 0; j < 8; j++)
   {
    write_max7219(j+1, dis[i][j]);//寫(xiě)入MAX7219數(shù)據(jù)
   }
   delay(100); //延時(shí)100ms
  }
 }
}
 

關(guān)閉窗口

相關(guān)文章