發下采用8*8LED動態顯示文字演示單片機程序 大家可以參考下.
0.png (57.68 KB, 下載次數: 58)
下載附件
2017-4-27 22:00 上傳
單片機源程序:
- /*********************************************************************/
- //
- // 采用8*8LED動態顯示文字演示程序
- /*********************************************************************/
- //使用AT89C52單片機,12MHZ晶振,P0口輸出一行數據,P2口作行掃描,用共陽LED管
- //P1口接三個按鍵,用于逐字顯示、向上滾動顯示文字、暫停備用。
- //
- #include "reg51.h"
- #define char unsigned char
- #define int unsigned int
- //
- char key,keytmp;
- char code distab[]=
- {
- /********電子設計8*8字模********************/
- 0x10,0xFE,0x92,0x92,0xFE,0x92,0x10,0x10,
- 0xFE,0x10,0x10,0xFE,0x10,0x10,0x10,0xFE,
- 0x00,0x6C,0x92,0x82,0x44,0x28,0x10,0x00,
- 0x00,0x78,0x04,0x04,0x04,0x04,0x04,0x78,
- 0x00,0x6C,0x92,0x82,0x44,0x28,0x10,0x00,
- };
- //
- char code scan_con[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; // 列掃描控制字
- //
- //
- //**********按鍵掃描函數***********//
- void keyscan()
- {
- key=(~P1)&0x0f; //讀入鍵值
- if(key!=0) //
- {
- while(((~P1)&0x0f)!=0); //等待按鍵釋放
- keytmp=key; // 鍵值存放
- }
- }
- //
- //
- //********1毫秒延時程序************//
- delay1ms(int t)
- {
- int i,j;
- for(i=0;i<t;i++)
- for(j=0;j<30;j++)
- keyscan();
- }
- //
- //
- /***********功能程序**********/
- /***********逐字顯示**********/
- fun0()
- {
- int m,n,h;
- for(h=0;h<40;h=h+8)
- {for(n=0;n<100;n++)
- {for(m=0;m<8;m++)
- {P0=distab[m+h];P2=scan_con[m];delay1ms(1);}
- }
- }
- }
- //
- /***********向上滾動顯示**********/
- fun1()
- {
- int m,n,h;
- for(h=0;h<40;h++) //控制顯示字數(32/8=4個)
- {for(n=0;n<30;n++) //控制幀移動速度
- {for(m=0;m<8;m++) //顯示1幀掃描(分8行,每行亮1毫秒)
- {P0=distab[m+h];P2=scan_con[m];delay1ms(1);}
- }
- }
- }
- //
- //
- //*********主程序**********//
- main()
- {
- keytmp=1; //上電自動演示功能0)
- while(1)
- {
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
下載:
bb.zip
(26.16 KB, 下載次數: 14)
2017-4-27 21:15 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|