51單片機(jī)控制的16乘16的點(diǎn)陣漢字滾動(dòng)仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.jpg (147.36 KB, 下載次數(shù): 37)
下載附件
2018-1-10 23:31 上傳
采用4個(gè)74hc138芯片驅(qū)動(dòng)
0.png (15.74 KB, 下載次數(shù): 34)
下載附件
2018-1-10 23:31 上傳
單片機(jī)源程序如下:
- #include <reg52.h>
- #define int8 unsigned char
- #define int16 unsigned int
- #define int32 unsigned long
- int8 flag;
- int8 n;
- int8 code table[][32]={
- {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},/* " " */
- {0x04,0x28,0x08,0x24,0x32,0x22,0xC2,0x21,0xC2,0x26,0x34,0x38,0x04,0x04,0x08,0x18,0x30,0xF0,0xC0,0x17,0x60,0x10,0x18,0x10,0x0C,0x14,0x06,0x18,0x04,0x10,0x00,0x00},/*"歡",0*/
- {0x02,0x02,0x04,0x82,0xF8,0x73,0x04,0x20,0x02,0x00,0xE2,0x3F,0x42,0x20,0x82,0x40,0x02,0x40,0xFA,0x3F,0x02,0x20,0x42,0x20,0x22,0x20,0xC2,0x3F,0x02,0x00,0x00,0x00},/*"迎",1*/
- {0x00,0x01,0x04,0x02,0x1C,0x0C,0xC0,0x3F,0x1C,0xC0,0x02,0x09,0x02,0x16,0x92,0x60,0x4A,0x20,0x82,0x2F,0x02,0x20,0x0E,0x24,0x00,0x22,0x90,0x31,0x0C,0x20,0x00,0x00},/*"您",2*/
- {0x44,0x10,0x44,0x14,0x88,0x54,0x88,0x54,0xD0,0x5F,0x30,0x50,0x60,0x50,0xFE,0x7F,0x40,0x50,0x20,0x90,0xB0,0x9F,0x98,0x92,0x8C,0x94,0x88,0x34,0x80,0x11,0x00,0x00},/*"乘",3*/
- {0x82,0x00,0x02,0x01,0x22,0x06,0x22,0x38,0x22,0x04,0x22,0x03,0x22,0x00,0xFE,0xFF,0xA2,0x00,0x22,0x01,0x22,0x02,0x22,0x3C,0x22,0x02,0x02,0x01,0x02,0x00,0x00,0x00},/*"坐",4*/
- …………
- …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
- {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(void);
- int16 offset;
- void main(void)
- {
- int8 i;
- int8 *p;
- flag=0x10;
- n=0;
- TMOD=0x01;
- TH0=0xb1;
- TL0=0xe0;
- ET0=1;
- EA=1;
- TR0=1;
- p=&table[0][0];
- while (1)
- {
- for (i=0;i<8;i++) //顯示左半邊屏幕
- {
- P0=*(p+offset+2*i);
- P2=i|0x08; //P2.4=0,P2.3=1 選中U2, 輸出掃描碼給U6
- delay();
- P0=*(p+offset+2*i+1);
- P2=i|0x10; //P2.4=1,P2.3=0 選中U3, 輸出掃描碼給U7
- delay();
- }
- for (i=8;i<16;i++) //顯示右半邊屏幕
- {
- P0=*(p+offset+2*i);
- P2=(i-8)|0x20; //P2.5=1 P2.4=0, P2.3=0 選中U4,輸出掃描碼U8
- delay();
- P0=*(p+offset+2*i+1);
- P2=(i-8)|0x40; //P2.6=1 P2.5=0, P2.4=0 選中U5,輸出掃描碼U9
- delay();
- }
- }
- }
- void delay(void)
- {
- int16 i;
- for (i=0;i<50;i++)
- ;
- }
- void timer0() interrupt 1 using 3
- {
- TF0=0;
- TH0=0xb1;
- TL0=0xe0;
- if (n<10)
- {
- n++;
- }
- else
- {
- offset+=2;
- if (offset>1100)
- offset=0;
- n=0;
- }
- }
復(fù)制代碼
所有資料51hei提供下載:
16×16點(diǎn)陣(滾動(dòng)顯示).rar
(71.62 KB, 下載次數(shù): 92)
2018-1-10 14:47 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|