天天看點

點陣16x16ttf_單片機16x16點陣廣告牌設計(含仿真+源碼+論文+原理圖)

#include

#include

#define uchar unsigned char

#define uint unsigned int

#define data1 P0

#define data2 P2

sbit s1=P3^6;

sbit s2=P3^7;

bit fangxiang;

uint alt=0,net=0,sl=128;

bit mode;

uchar code tab[]={

//

0x20,0x08,0x24,0x10,0x22,0x60,0x21,0x80,0x26,0x41,0x39,0x32,0x02,0x04,0x0C,0x18,

0xF0,0x60,0x13,0x80,0x10,0x60,0x10,0x18,0x14,0x04,0x18,0x02,0x00,0x01,0x00,0x00,

0x02,0x00,0x02,0x02,0x42,0x04,0x33,0xF8,0x00,0x04,0x00,0x02,0x3F,0xF2,0x20,0x22,

0x40,0x42,0x00,0x02,0x3F,0xFE,0x20,0x42,0x20,0x22,0x3F,0xC2,0x00,0x02,0x00,0x00,

0x00,0x80,0x01,0x00,0x06,0x00,0x1F,0xFF,0xE0,0x00,0x02,0x08,0x04,0x30,0x18,0xC0,

0xF0,0x02,0x10,0x01,0x13,0xFE,0x10,0x00,0x10,0x80,0x14,0x60,0x18,0x18,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

};

void delay(uint z)           //延時子函數

{

uchar x;

for(;z>0;z--)

for(x=110;x>0;x--);

}

void xianshi()                        //顯示

{

uchar aa,i;

for(i=0;i<16;i++)

{

P1=i; //列掃描

data1=tab[net+aa]; //取出上8行資料輸出

aa++;

data2=tab[net+aa]; //取出下8行資料輸出

aa++;

delay(5);        //延時

data1=0;  //清屏

data2=0;  //清屏

P1=0x00;  //消除餘輝

if(aa>30) aa=0;  //字模位址

}

}

void main()         //主函數

{

ET1=1;         //使能定時器0

EA=1;         //開啟總中斷

TR1=1;        //開始計數

while(1)         //無限循環

{

xianshi();  //顯示

if(s1==0)   //檢測按鍵

{

delay(30);  //延時消抖

TR1=~TR1;          //按下暫停  ,暫按繼續

while(!s1)xianshi();

delay(30);

}

if(s2==0)        //檢測按鍵

{

delay(30);                        //延時消抖

fangxiang=~fangxiang;  //方向取反

while(!s2)xianshi();

delay(30);

}

}

}

void timer1() interrupt 3

{

alt++;

if(alt==10)                   //到一定的時間加以實作左移

{

alt=0;

if(fangxiang==0)         //如果是正向 正向移動

{

net=net+2;

if(net>sl)  //字移動數量

net=0;

}

else                           //否則反向移動

{

net=net-2;

if(net<2)

net=sl;          //字移動數量…………

…………限于本文篇幅 餘下代碼請從51黑下載下傳附件…………