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

16×16點陣滾動顯示漢字c51程序

作者:佚名   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2008年10月26日   【字體:


給大家共享一個51單片機驅(qū)動的16×16點陣滾動顯示漢字的程序,是公車上用的。
 

下載源代碼

#include < reg52.h>

#define int8 unsigned char
#define int16 unsigned int
#define int32 unsigned long

int8 flag;
int8 n;
int8 code table[][32]={

歡迎您乘坐廣州三汽公司公共汽車大學(xué)城2線開往大學(xué)城請您坐好扶穩(wěn)
具體的字碼省略,請點此處下載本列16×16點陣漢字滾動顯示源代碼
                      };

void delay(void);
int16 offset;

void main(void)
{
    int8 i;
    int8 *p;
    flag=0x10;
    n=0;
    TMOD=0x01;
    TH0=0xb1;
    TL0=0xe0;
    ET0=1;
    EA=1;
    TR0=1;

    p=&table[0][0];

    while (1)
    {
        for (i=0;i<8;i++)    //顯示左半邊屏幕
        {
            P0=*(p+offset+2*i);
            P2=i|0x08;    //P2.4=0,P2.3=1 選中U2, 輸出掃描碼給U6
            delay();

            P0=*(p+offset+2*i+1);
              P2=i|0x10;   //P2.4=1,P2.3=0 選中U3, 輸出掃描碼給U7
            delay();
        }
        for (i=8;i<16;i++)     //顯示右半邊屏幕
        {
            P0=*(p+offset+2*i);
             P2=(i-8)|0x20;   //P2.5=1 P2.4=0, P2.3=0 選中U4,輸出掃描碼U8
            delay();

            P0=*(p+offset+2*i+1);
             P2=(i-8)|0x40;   //P2.6=1 P2.5=0, P2.4=0 選中U5,輸出掃描碼U9
            delay();
        }
    }
}


void delay(void)
{
    int16 i;
    for (i=0;i<50;i++)
        ;
}


void timer0() interrupt 1 using 3
{
    TF0=0;
    TH0=0xb1;
    TL0=0xe0;
    if (n<10)
    {
    n++;
    }
    else
    {
    offset+=2;
    if (offset>1100)
            offset=0;
        n=0;
    }
}

關(guān)閉窗口