本程序通過時間定時器產生中斷,每10ms刷新一次字符,每2S更新一個漢字。
單片機源程序如下:
- #include<reg51.h>
- #define uchar unsigned char
- #define unit unsigned int
- sbit DS=P2^0; //595第14腳 串行數據輸入端
- sbit SH_CP=P2^1; //595第11腳 移位脈沖
- sbit ST_CP=P2^2; //595第12腳 并出脈沖
- sbit EN_154=P2^3;
- unsigned int i;
- unsigned char code tab[][32]=
- {
- {0xDF,0xDB,0xDB,0xDB,0x01,0xDC,0xDD,0xDF,0xDF,0x00,0xDF,0xDD,0xD3,0x5F,0xDF,0xFF,
- 0xFF,0xF7,0xB7,0x7B,0x80,0xFD,0xBE,0xBF,0xDF,0xEC,0xF3,0xEB,0xDD,0xBE,0x07,0xFF},
- {0x7F,0x9B,0xD3,0xCB,0xDB,0xDB,0x13,0xCD,0xDD,0xDD,0xCD,0xD1,0xDC,0x5D,0x9F,0xFF,
- 0xFF,0xBE,0xDE,0x6E,0x76,0x78,0xB2,0xAA,0xDA,0xDA,0xAA,0xB2,0x7E,0x7F,0x7F,0xFF},
- {0xFD,0x1D,0xDD,0xDD,0xC1,0x7F,0x7F,0x00,0x7F,0x5F,0x6F,0x77,0x79,0x7F,0x7F,0xFF,
- 0xFF,0xBC,0x7D,0xBD,0xC1,0xFF,0xFF,0x00,0xBF,0xDE,0xF9,0xF7,0xEF,0xDF,0xBF,0xFF},
- {0xF7,0x77,0x77,0x00,0x77,0x57,0xEF,0x17,0xD8,0xDB,0x1B,0xCB,0xD3,0x1F,0xFF,0xFF,
- 0xF7,0xF7,0xF7,0x00,0xF7,0xF7,0xFF,0xC0,0xBD,0xBD,0xBC,0xBD,0xBD,0xBC,0x8F,0xFF}
- };
- void delay_ms(unsigned int ms)
- {
- unsigned int j;
- while(ms--);
- for(j=0;j<10;j++);
- }
- void WriteByte(unsigned char dat)
- {
- unsigned int k;
- for(k=0;k<8;k++) //按照低位到高位的順序傳遞數據
- {
- dat=dat>>1; //數據右移,低位先出
- DS=CY;
- SH_CP=0;
- SH_CP=1;
- SH_CP=0;
- }
- }
-
- void main()
- {
- EA=1; //使能總中斷
- TMOD=0x01; //設置T0為模式1
- TH0=0xFC; //為T0賦初值,12M晶振下,定時1ms
- TL0=0x18;
- ET0=1; //使能T0中斷
- TR0=1; //啟動T0
- while(1);
- }
- //定時器0中斷服務函數
- void InterruptTimer0() interrupt 1
- {
- static unsigned int i=0; //動態掃描的索引
- static unsigned int index=0; //文字更新索引,等于要顯示的字數
- static unsigned int tmr=0; //2s軟件定時器
-
- //重新加載初值。本程序定時時間的想法是:每1ms刷新一次字符,每2S更新一個漢字
- TH0 = 0x0FC;
- TL0 = 0x18;
- if(i<16)
- {
- EN_154=1;
- WriteByte(tab[index][i]);
- WriteByte(tab[index][i+16]);
- ST_CP=0;
- ST_CP=1;
- delay_ms(1);
- ST_CP=0;
- P1=i;
- EN_154=0;
- i++;
- }
- else
- {
- i=0;
- }
- tmr++; //下面代碼完成2s改變一個文字
- if(tmr>=2000)
- {
- tmr=0;
- index++;
- if(index>3)
- {
- index=0;
- }
- }
- }
復制代碼
所有資料51hei提供下載:
16X16點陣輪換顯示多個漢字程序.rar
(203.21 KB, 下載次數: 22)
2019-8-14 15:07 上傳
點擊文件名下載附件
16X16點陣輪換顯示多個漢字程序 下載積分: 黑幣 -5
|