閱讀253 返回首頁    go 阿裏雲 go 技術社區[雲棲]


雙色點陣顯示0——F

/*-----------------------------------------------
  名稱:雙色點陣
  內容:鎖存器輸入公共端信號,紅綠信號分別是P0口、P2口控製,鎖存輸入端由P0口控製,鎖存端接P3.7,由J6跳帽控製
例如:
   dofly_WeiMa:00000001  0x01 dofly_DuanMa:11111111   0xff    // 心形圖像 
                00000010   0x02    10010011   0x93
     00000100  0x04    01101101 0x6d
00001000  0x08    01111101   0x7d
00010000  0x10    10111011 0xbb
00100000  0x20    11010111 0xd7
01000000  0x40    11101111 0xef
10000000  0x80    11111111 0xff
------------------------------------------------*/
#include<reg52.h> //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義
#define uchar unsigned char
#define uint  unsigned int
static unsigned int count,i,j,x;
 
sbit LE=P3^7;//定義鎖存使能端口 




unsigned char code dofly_WeiMa[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
// 輸出到公共端
unsigned char code dofly_DuanMa[19][8]={  
                                     {0xff,0x93,0x6d,0x7d,0xbb,0xd7,0xef,0xff},  //心形圖像,低電平有效
  {0xE7,0xDB,0xDB,0xDB,0xDB,0xDB,0xDB,0xE7},  //0
  {0xEF,0xE7,0xEF,0xEF,0xEF,0xEF,0xC7,0xFF},  //1                                         //1
  {0xE7,0xDB,0xDF,0xEF,0xF7,0xFB,0xC3,0xFF},  //2
  {0xE7,0xDB,0xDF,0xE7,0xDF,0xDB,0xE7,0xFF},  //3
  {0xEF,0xE7,0xEB,0xED,0x81,0xEF,0xEF,0xEF},  //4
  {0xC3,0xFB,0xFB,0xE3,0xDF,0xDF,0xE3,0xFF},  //5
  {0xE7,0xDB,0xFB,0xE3,0xDB,0xDB,0xDB,0xE7},  //6    
  {0xC3,0xDB,0xDF,0xEF,0xF7,0xF7,0xF7,0xFF},  //7                                         //1
  {0xE7,0xDB,0xDB,0xE7,0xDB,0xDB,0xE7,0xFF},  //8
  {0xE7,0xDB,0xDB,0xC7,0xDF,0xDB,0xE7,0xFF},  //9
  {0xE7,0xDB,0xBD,0xBD,0x81,0xBD,0xBD,0xBD},  //A
  {0xE3,0xDB,0xDB,0xE3,0xDB,0xDB,0xDB,0xE3},  //B
  {0xC3,0xBD,0xFD,0xFD,0xFD,0xFD,0xBD,0xC3},  //C
  {0xE1,0xDD,0xBD,0xBD,0xBD,0xBD,0xDD,0xE1},  //D                                         //1
  {0x81,0xFD,0xFD,0x81,0x81,0xFD,0xFD,0x81},  //E
  {0x81,0xFD,0xFD,0x81,0x81,0xFD,0xFD,0xFD},  //F
  {0xC3,0xBD,0x5A,0x24,0x7E,0x5A,0xA5,0xC3},  //笑臉
  {0xFF,0x99,0x00,0x00,0x00,0x81,0xC3,0xE7},  //紅心
 };


/*------------------------------------------------
                    函數聲明
------------------------------------------------*/
void Delay(unsigned int i)//延時函數
{
 while(i--);
}


/*------------------------------------------------
                    主函數
------------------------------------------------*/
main()

  
 while(1)
      {
   
   
for(x=0;x<19;x++) //顯示0————紅心,一共19行
{  
for(j=0;j<50;j++) //用於決定綠色圖像顯示的時長
    for(i=0;i<8;i++)
  {
  P0=dofly_WeiMa[i]; //公共端信號,高電平有效,掃描行
     LE=1;                 //鎖存
     LE=0;
  P0=0xff;
  P0=dofly_DuanMa[x][i];//紅顏色控製端信號,顯示這一行的數據
  Delay(300);               //掃描間隙延時,時間太長會閃爍,太短會造成重影
 }
 
  
        for(j=0;j<50;j++)        //用於決定綠色圖像顯示的時長   
   for(i=0;i<8;i++)
 {
  P0=dofly_WeiMa[i]; //公共端信號,高電平有效 ,掃描行
       LE=1;                 //鎖存
       LE=0;
  P0=0xff;            //紅色端置1,防止點亮紅
       P2=dofly_DuanMa[x][i]; //綠顏色控製端信號 ,顯示這一行的數據
  Delay(300);               //掃描間隙延時,時間太長會閃爍,太短會造成重影
  P2=0xff; 
   
      }

 
    }
   
    }
}


 

最後更新:2017-04-03 18:51:45

  上一篇:go 不變和隻讀的區別
  下一篇:go 2013編程之美全國挑戰賽資格賽之傳話遊戲