新手為學習大佬們的知識發帖賺積分
8X8點陣屏滾動顯示仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png (12.37 KB, 下載次數: 102)
下載附件
2018-10-2 16:39 上傳
單片機源程序如下(帶詳細注釋):
- #include<reg51.h>
- #include<intrins.h>
- unsigned char ldis[16] = {0xFF,0xF3,0xE1,0xC1,0x83,0xC1,0xE1,0xF3};//圖片點陣,陽碼(0亮)、按列取字模、低位在前
- unsigned char hdis[8] = {0x66,0xFF,0xFF,0xFF,0xFF,0x7E,0x3C,0x18};//{0x00,0x6c,0xfe,0xfe,0x7c,0x38,0x10,0x00};//圖片點陣,陰碼(1亮)、按行取字模、低位在前
- void delay(unsigned char i) // 延時函數
- {
- unsigned char j,k;
- for(j=i;j>0;j--)
- for(k=110;k>0;k--);
- }
- void main() //主函數
- {
- unsigned char i,j,k,temp;
- for (i = 8; i < 16; i++) //補8列不顯示的列編碼
- ldis[i]=0xff;
- //for (i = 8; i < 16; i++) //補8行不顯示的行編碼
- //hdis[i]=0x00;
- while(1)
- {
- /* //按列掃描,左右滾動
- for(j=0;j<17;j++) //9幀,要循環顯示就有17幀
- {
- for(k=0;k<50;k++)//重復顯示一幀數據50次
- { temp=1;
- for (i = 0; i < 8; i++)
- {
- P3 = temp;//列選
- P2 = ldis[(i+j)%16];//圖片點陣列編碼,要循環顯示ldis[(i+j)%16];
- temp=temp<<1;
- delay(2);
- }
- }
- }*/
-
- //按行掃描,上下滾動
- for(j=0;j<8;j++) //9幀,要循環顯示就有17幀
- {
- for(k=0;k<50;k++)//重復顯示一幀數據50次
- { temp=0xfe;
- for (i = 0; i < 8; i++)
- {
- P2 = temp;//行選
- P3 = hdis[(i+j)%8];//圖片點陣行編碼,要循環顯示hdis[(i+j)%16];
- temp=_crol_(temp,1);
- delay(2);
- }
- }
- }
- }
- }
復制代碼
所有資料51hei提供下載:
8X8點陣屏滾動顯示.zip
(20.05 KB, 下載次數: 267)
2018-10-2 15:35 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|