|
8*8點(diǎn)陣移動(dòng)仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png (17.78 KB, 下載次數(shù): 67)
下載附件
2017-8-2 23:14 上傳
0.png (14.42 KB, 下載次數(shù): 40)
下載附件
2017-8-2 23:05 上傳
0.png (44.43 KB, 下載次數(shù): 52)
下載附件
2017-8-2 23:05 上傳
單片機(jī)源程序如下:
- /************************************************************
- 名稱: 四個(gè)8*8點(diǎn)陣移動(dòng)實(shí)驗(yàn)
- ************************************************************/
- #include<reg52.h>
- #define uchar unsigned char
- #define uint unsigned int
- uchar i,j,k,a,b;
- char kk;
- uchar code tabwe[]={ //0~9的字模(每個(gè)數(shù)字高8點(diǎn),寬5點(diǎn),下面一點(diǎn)為高位,一個(gè)數(shù)字用5個(gè)字節(jié)表示)
- 0x7E, 0x91, 0x89, 0x85, 0x7E,//0
- 0x00, 0x82, 0xFF, 0x80, 0x00,//1
- 0x86, 0xC1, 0xA1, 0x91, 0x8E,//2
- 0x41, 0x89, 0x8D, 0x8B, 0x71,//3
- 0x38, 0x24, 0x22, 0xFF, 0x20,//4
- 0x4F, 0x89, 0x89, 0x89, 0x71,//5
- 0x7E, 0x89, 0x89, 0x89, 0x72,//6
- 0x01, 0x01, 0xF9, 0x05, 0x03,//7
- 0x76, 0x89, 0x89, 0x89, 0x76,//8
- 0x4E, 0x91, 0x91, 0x91, 0x7E, //9
- 0//空位
- };
- uchar table[]={ //顯存8*4=32個(gè)字節(jié),一個(gè)字節(jié)8位,四個(gè)8*8點(diǎn)陣的分辨率就是32*8
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0
- };
- void delay(uint ms) //延時(shí)500us
- {
- uchar a,b;
- while(ms--)
- {
- for(b=71;b>0;b--)
- for(a=2;a>0;a--);
- }
- }
- void xh1(kk)//左移子程序
- {
- for(k=0;k<32;k++)
- {
- a=kk+k-32;
- if(a>50||a<0){a=50;}
- table[k]=tabwe[a];
- }
- }
- void xh2(kk)//右移子程序
- {
- for(k=0;k<32;k++)
- {
- a=50-kk+k;
- if(a>50||a<0){a=50;}
- table[k]=tabwe[a];
- }
- }
- void xh3(kk)//向下移進(jìn),向上移出
- {
- for(k=0;k<32;k++)
- {
- table[k]=(tabwe[k]>>kk);
- }
- }
- void xh4(kk)//向上移進(jìn),向下移出
- {
- for(k=0;k<32;k++)
- {
- table[k]=(tabwe[k]<<kk);
- }
- }
- void dsplay()
- {
- for(j=0;j<5;j++) //j是每幅圖象顯示的次數(shù),j越小移動(dòng)得越快;j越大移動(dòng)得越慢。
- {
- for(i=0;i<16;i++)//一幅圖象32個(gè)字節(jié),因?yàn)榉諴1和P2口同時(shí)顯示,所以只要16次。
- {
- P0=i;
- P1=table[i];
- P2=table[i+16];
- delay(2);
- }
- }
- }
- void main()
- {
- while (1)
- {
- for(kk=0;kk<82;kk++)//左移(從32位空屏,到0-9進(jìn)入,再到全部移出共要32+50次)
- {
- dsplay();
- xh1(kk);
- }
- for(kk=0;kk<82;kk++)//右移(從32位空屏,到9-0進(jìn)入,再到全部移出共要32+50次)
- {
- dsplay();
- xh2(kk);
- }
- for(kk=8;kk>=0;kk--)//向下移進(jìn)
- {
- dsplay();
- xh3(kk);
- }
- for(kk=0;kk<8;kk++)//向下移出
- {
- dsplay();
- xh4(kk);
- ……………………
- …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
88點(diǎn)陣上下左右移動(dòng).rar
(19.34 KB, 下載次數(shù): 116)
2017-8-2 20:58 上傳
點(diǎn)擊文件名下載附件
點(diǎn)陣移動(dòng) 下載積分: 黑幣 -5
|
|