久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

玩轉LED點陣之三:16X64單紅點陣上移

作者:佚名   來源:本站原創   點擊數:  更新時間:2013年06月09日   【字體:
//單片機:STC12C5A60S2
//晶振:22.1184M
//顯示屏:HUB08接口16X64單紅點陣
//顯示方式:左移和上移
//作者:振甬電子
//QQ: 1766135164
//網址:www.zg4o1577.cn

//時間:2013-05-13
#include<reg52.h>
#include"zimo.h"
#define uchar  unsigned char
#define uint   unsigned int
#define SPEED 5 //定義速度與數字成反比 數字小,速度快
#define SPEED2 80
#define LIGHT  10  //定義亮度:取值范圍0--10
#define hang   3   //需要顯示的行數+1空白行
#define NUMBER  11     //定義要移動顯示總16X16漢字個數,計算方法:NUMBER=漢字顯示個數+4個空格
#define NUMBER2  4
uchar word=0,col=0,col1=0,disrow=0,move=0;//wor為要顯字變量,col為位移變量,col1為字節偏移量,disrow為行變量
uchar BUFF__UP[17];     //顯示緩沖 上下緩沖字節數取值=[2*板點陣寬度/8]+1比較保險,即兩倍板的點陣字節數.
uchar BUFF__UP0[12];    //顯示緩沖
sbit R1=P0^4;//紅色數據1
sbit R2=P3^3;//紅色數據2
sbit G1=P3^4;//綠色數據1
sbit G2=P3^5;//綠色數據
sbit CLK=P0^7;//595時鐘
sbit STB=P0^6;//595鎖存
sbit OE =P0^5;//74HC138使能:低有效
//根據列指針由雙字節合并為單字節的子程序模塊
uchar Combine_2byte(uchar h1,uchar h2)  // 和點陣的取模方式有關,低位在前,高位在后,但是實際顯示,高位在前,低位在后
{
 uchar T_date,tempcol;
 tempcol=col1;
 T_date=(h1>>tempcol)|(h2<<(8-tempcol));
 return T_date;
}      
//分別裝屏點陣數據
void Load_one_line(void)     //多加4個16X16漢字的緩沖
{
 BUFF__UP[0]=Table[word][disrow*2+0];//裝載上半屏一線點陣數據
 BUFF__UP[1]=Table[word][disrow*2+1];
 BUFF__UP[2]=Table[word+1][disrow*2+0];
 BUFF__UP[3]=Table[word+1][disrow*2+1];
 BUFF__UP[4]=Table[word+2][disrow*2+0];
 BUFF__UP[5]=Table[word+2][disrow*2+1];
 BUFF__UP[6]=Table[word+3][disrow*2+0];
 BUFF__UP[7]=Table[word+3][disrow*2+1];
 BUFF__UP[8]=Table[word+4][disrow*2+0];
 BUFF__UP[9]=Table[word+4][disrow*2+1];
 BUFF__UP[10]=Table[word+5][disrow*2+0];
 BUFF__UP[11]=Table[word+5][disrow*2+1];
 BUFF__UP[12]=Table[word+6][disrow*2+0];
 BUFF__UP[13]=Table[word+6][disrow*2+1];
 BUFF__UP[14]=Table[word+7][disrow*2+0];
 BUFF__UP[15]=Table[word+7][disrow*2+1];
}
//發送屏一線點陣數據
void Send_one_line(void)
{
 char s;
 uchar temp,i,inc;
 if(col<8)            inc=0;
 if(8<=col&&col<16)   inc=1;
 for(s=0+inc;s<=8+inc;s++)
 {
  temp=Combine_2byte(BUFF__UP[s],BUFF__UP[s+1]);
  for(i=0;i<8;i++)
  {
   R1=~(temp>>i)&0x01;   //取出低高位
   R2=0xff;               //不顯示
   G1=0xff;
   G2=0xff;  
   CLK=0;
   CLK=1;                 //移位時鐘
  }
 }
}
//左移函數
void LEFT_MOVE()
{
  uchar i;
  for(col=0;col<16;col++)//循環16次,點亮并移動一個漢字,步進是一位
 {
  col1=col%8;//一個字節移動位數
  for(i=0;i<SPEED;i++)//漢字在屏幕上的停留時間(即移動速度快慢)
  {
   for(disrow=0;disrow<16;disrow++)//掃描16行   
   {
    Load_one_line();//裝載一行點陣數據 
    Send_one_line();//發送一行點陣數據
    OE=1;                     
    STB=1;        // 輸出鎖存          
    STB=0;                
    P0=disrow;    // 行掃描 
    OE=0;
     }
  }
 }
 word=word+1;// 一個漢字移動后,指向下一個漢字
 if(word>=NUMBER)
 {
  word=0;//移動完NUMBER個漢字后重新開始
 }   
}
 
//分別裝載上、下半屏點陣數據
void Load_one_line_up()
{
    BUFF__UP0[0]=Table2[0*hang][disrow*2+0+move*2];//裝載上半屏一線點陣數據
 BUFF__UP0[1]=Table2[0*hang][disrow*2+1+move*2];
 BUFF__UP0[2]=Table2[1*hang][disrow*2+0+move*2];
 BUFF__UP0[3]=Table2[1*hang][disrow*2+1+move*2];
 BUFF__UP0[4]=Table2[2*hang][disrow*2+0+move*2];
 BUFF__UP0[5]=Table2[2*hang][disrow*2+1+move*2];
 BUFF__UP0[6]=Table2[3*hang][disrow*2+0+move*2];
 BUFF__UP0[7]=Table2[3*hang][disrow*2+1+move*2];
}

//74HC595串行數據輸入
void Send_one_line_up()
{
 uchar i,j;
 uchar DataR1,DataR2,DataG1,DataG2;
 for(j=0;j<8;j++)
 {
  DataR1=~BUFF__UP0[j];
  DataG1=0xff;
     DataR2=0xff;
  DataG2=0xff;
  for(i=0;i<8;i++)
  {
   R1=DataR1 & 0x01;
   G1=DataG1 & 0x01;
   R2=DataR2 & 0x01;
   G2=DataG2 & 0x01;
   CLK = 0;
   CLK = 1;
   DataR1 >>= 1;
   DataG1 >>= 1;
   DataR2 >>= 1;
   DataG2 >>= 1;
  }
 }
}
//上移函數
void UP_MOVE()
{
 int sp;
 for(move=0;move<16*(hang-1);move++)
 {
  for(sp=0;sp<SPEED2;sp++)
  {
   for(disrow=0;disrow<16;disrow++)
   {
       Load_one_line_up();//裝載數據
    Send_one_line_up();//發送數據
    OE=1;
    STB=0;
    STB=1;//輸出鎖存
    P0=disrow;//8位行選 
    OE=0;
   }
  }
 } 
}

//主函數入口
void main(void)
{
 R1=0;//數據初始化
 R2=0;
 G1=0;
 G2=0;
 while(1)
 {
   // LEFT_MOVE(); //左移
    UP_MOVE();   //上移
 }
}

zimo.h
unsigned char code Table[][32]=
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //空白
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*************下面修改需要顯示的點陣字體**********************/
0x08,0x00,
0xC8,0x7F,
0x48,0x00,
0x7F,0x00,
0x48,0x3F,
0x68,0x00,
0xD8,0x7F,
0x48,0x03,
0x4C,0x25,
0x4B,0x65,
0x48,0x19,
0x48,0x11,
0x28,0x11,
0x28,0x65,
0x1A,0x23,
0x04,0x01,/*"振",0*/
0xFC,0x1F,
0x00,0x0C,
0x60,0x03,
0x80,0x00,
0xFC,0x1F,
0x84,0x10,
0x84,0x10,
0xFC,0x1F,
0x84,0x10,
0x84,0x10,
0xFC,0x1F,
0x84,0x10,
0x84,0x10,
0x84,0x10,
0x84,0x14,
0x04,0x08,/*"甬",1*/
0x80,0x00,
0x80,0x00,
0x80,0x00,
0xFC,0x1F,
0x84,0x10,
0x84,0x10,
0xFC,0x1F,
0x84,0x10,
0x84,0x10,
0x84,0x10,
0xFC,0x1F,
0x84,0x10,
0x80,0x40,
0x80,0x40,
0x00,0x7F,
0x00,0x00,/*"電",2*/
0x00,0x00,
0xFC,0x0F,
0x00,0x04,
0x00,0x02,
0x00,0x01,
0x80,0x00,
0x80,0x00,
0x80,0x20,
0xFF,0x7F,
0x80,0x00,
0x80,0x00,
0x80,0x00,
0x80,0x00,
0x80,0x00,
0xA0,0x00,
0x40,0x00,/*"子",3*/
0x00,0x01,
0x00,0x01,
0x3F,0x01,
0xA0,0x7F,
0xA1,0x20,
0x52,0x12,
0x14,0x02,
0x08,0x02,
0x18,0x02,
0x18,0x06,
0x24,0x05,
0x24,0x09,
0x82,0x18,
0x61,0x70,
0x1C,0x20,
0x00,0x00,/*"歡",4*/
0x02,0x00,
0x84,0x01,
0x6C,0x3E,
0x24,0x22,
0x20,0x22,
0x20,0x22,
0x27,0x22,
0x24,0x22,
0xA4,0x22,
0x64,0x2A,
0x24,0x12,
0x04,0x02,
0x04,0x02,
0x0A,0x00,
0xF1,0x7F,
0x00,0x00,/*"迎",5*/
0x90,0x00,
0x90,0x01,
0x88,0x20,
0xC8,0x7F,
0x44,0x20,
0x2C,0x12,
0x16,0x02,
0x45,0x0A,
0xC4,0x12,
0x44,0x12,
0x24,0x22,
0x24,0x62,
0x14,0x22,
0x84,0x02,
0x04,0x01,
0x00,0x00,/*"你",6*/
/*************上面修改需要顯示的點陣字體**********************/

/*********為了消除BUB,多加32個空字符***************/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //空白
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/**************************************************/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //空白
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};

unsigned char code Table2[][32]=
{
/*******不同行的第一個漢字***********/
0x08,0x00,
0xC8,0x7F,
0x48,0x00,
0x7F,0x00,
0x48,0x3F,
0x68,0x00,
0xD8,0x7F,
0x48,0x03,
0x4C,0x25,
0x4B,0x65,
0x48,0x19,
0x48,0x11,
0x28,0x11,
0x28,0x65,
0x1A,0x23,
0x04,0x01,/*"振",0*/
0x00,0x01,
0x00,0x01,
0x3F,0x01,
0xA0,0x7F,
0xA1,0x20,
0x52,0x12,
0x14,0x02,
0x08,0x02,
0x18,0x02,
0x18,0x06,
0x24,0x05,
0x24,0x09,
0x82,0x18,
0x61,0x70,
0x1C,0x20,
0x00,0x00,/*"歡",4*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*******不同行的第二個漢字***********/
0xFC,0x1F,
0x00,0x0C,
0x60,0x03,
0x80,0x00,
0xFC,0x1F,
0x84,0x10,
0x84,0x10,
0xFC,0x1F,
0x84,0x10,
0x84,0x10,
0xFC,0x1F,
0x84,0x10,
0x84,0x10,
0x84,0x10,
0x84,0x14,
0x04,0x08,/*"甬",1*/
0x02,0x00,
0x84,0x01,
0x6C,0x3E,
0x24,0x22,
0x20,0x22,
0x20,0x22,
0x27,0x22,
0x24,0x22,
0xA4,0x22,
0x64,0x2A,
0x24,0x12,
0x04,0x02,
0x04,0x02,
0x0A,0x00,
0xF1,0x7F,
0x00,0x00,/*"迎",5*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*******不同行的第三個漢字***********/
0x80,0x00,
0x80,0x00,
0x80,0x00,
0xFC,0x1F,
0x84,0x10,
0x84,0x10,
0xFC,0x1F,
0x84,0x10,
0x84,0x10,
0x84,0x10,
0xFC,0x1F,
0x84,0x10,
0x80,0x40,
0x80,0x40,
0x00,0x7F,
0x00,0x00,/*"電",2*/
0x90,0x00,
0x90,0x01,
0x88,0x20,
0xC8,0x7F,
0x44,0x20,
0x2C,0x12,
0x16,0x02,
0x45,0x0A,
0xC4,0x12,
0x44,0x12,
0x24,0x22,
0x24,0x62,
0x14,0x22,
0x84,0x02,
0x04,0x01,
0x00,0x00,/*"你",6*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

/*******不同行的第四個漢字***********/
0x00,0x00,
0xFC,0x0F,
0x00,0x04,
0x00,0x02,
0x00,0x01,
0x80,0x00,
0x80,0x00,
0x80,0x20,
0xFF,0x7F,
0x80,0x00,
0x80,0x00,
0x80,0x00,
0x80,0x00,
0x80,0x00,
0xA0,0x00,
0x40,0x00,/*"子",3*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 
};







關閉窗口

相關文章

主站蜘蛛池模板: 视频一区二区在线观看 | 欧美一级片在线观看 | 久久久久久久综合 | 亚洲电影一区二区三区 | 欧美日韩久久久久 | 国产欧美一区二区三区在线看蜜臀 | 国产区第一页 | 精品久久久久一区二区国产 | 华丽的挑战在线观看 | 精品久久久一区二区 | 男女爱爱福利视频 | 国产成人免费视频 | 久久成人av电影 | 欧美一区二区三区在线 | 久久在线 | 欧美精品久久久久久久久老牛影院 | 欧美中文字幕 | 一级片免费视频 | 国产日韩欧美一区 | 日本免费在线看 | 日本中出视频 | 亚洲成人黄色 | 午夜日韩 | 欧洲一级毛片 | 欧美国产日韩在线观看 | av电影手机在线看 | 免费国产视频 | 欧美一级二级视频 | 久久一区二区精品 | 一区二区不卡视频 | 国产欧美日韩一区二区三区 | 真人一级毛片 | 逼逼网| 精品免费国产一区二区三区四区 | 中文字幕av在线播放 | 午夜成人免费视频 | 国产精品久久久久久久一区二区 | 午夜成人免费视频 | 99re99| 成人精品一区二区三区中文字幕 | 夜色www国产精品资源站 |