16*96點(diǎn)陣仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png (26.09 KB, 下載次數(shù): 46)
下載附件
2018-12-22 23:23 上傳
222.jpg (782.12 KB, 下載次數(shù): 48)
下載附件
2018-12-22 20:51 上傳
單片機(jī)源碼如下:
- /********************* 希望那些還在論壇苦惱的朋友們能看到這款16*16漢字顯示案例 ************************/
- #include<reg52.h>
- #define uchar unsigned char
- #define uint unsigned int
- #define ulong unsigned long
- #define CTRL_PORT P2
- #define DATA_PORT P0
- #define ADDR_PORT P1
- uchar code *p;
- uchar code zifu[12][32]={
-
- {0x00,0x01,0x00,0x01,0x3F,0x01,0xA0,0x7F,0xA1,0x20,0x52,0x12,0x14,0x02,0x08,0x02,
- 0x18,0x02,0x18,0x06,0x24,0x05,0x24,0x09,0x82,0x18,0x61,0x70,0x1C,0x20,0x00,0x00},
-
- {0x02,0x00,0x84,0x01,0x6C,0x3E,0x24,0x22,0x20,0x22,0x20,0x22,0x27,0x22,0x24,0x22,
- 0xA4,0x22,0x64,0x2A,0x24,0x12,0x04,0x02,0x04,0x02,0x0A,0x00,0xF1,0x7F,0x00,0x00},
-
- {0x80,0x00,0x80,0x00,0xFC,0x3F,0x80,0x00,0x90,0x0C,0xA0,0x04,0xC0,0x02,0xFE,0x7F,
- 0x80,0x01,0xC0,0x02,0xA0,0x04,0x90,0x18,0x8C,0x70,0x83,0x20,0x80,0x00,0x80,0x00},
-
- {0x60,0x02,0x1C,0x0A,0x10,0x12,0x10,0x12,0x10,0x02,0xFF,0x7F,0x10,0x02,0x10,0x12,
- 0x70,0x14,0x1C,0x0C,0x13,0x04,0x10,0x0A,0x90,0x49,0x10,0x50,0x14,0x60,0x08,0x40},
-
- {0x40,0x00,0x80,0x00,0xFE,0x7F,0x02,0x40,0x21,0x22,0x10,0x04,0x08,0x08,0x04,0x10,
- 0xF8,0x0F,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0xFE,0x3F,0x00,0x00},
-
- {0x04,0x00,0xC8,0x3F,0x08,0x20,0x02,0x20,0xE2,0x27,0x22,0x24,0x22,0x24,0xE2,0x27,
- 0x22,0x24,0x22,0x24,0xE2,0x27,0x02,0x20,0x02,0x20,0x02,0x20,0x02,0x28,0x02,0x10}
- };
- uchar select_hc138[][4]=
- {
- {0x20,0x21,0x22,0x23},
- {0x24,0x25,0x26,0x27},
-
- {0x10,0x11,0x12,0x13},
- {0x14,0x15,0x16,0x17},
- {0x18,0x19,0x1a,0x1b},
- {0x1c,0x1d,0x1e,0x1f}
- };
- void delay(void)
- {
- uchar i;
- for(i=0;i<20;i++);
- }
- void plany(void)
- {
- uchar i,j,k;
- for(k=0;k<6;k++)
- {
- for(j=0;j<1;j++)
- {
- for(i=0;i<8;i++)
- {
- CTRL_PORT=select_hc138[k][0];
- DATA_PORT=zifu[k][2*i];
-
- ADDR_PORT=i;
- delay();
-
- CTRL_PORT=select_hc138[k][1];
- DATA_PORT=zifu[k][2*i+1];
-
- ADDR_PORT=i;
- delay();
- }
- for(i=8;i<16;i++)
- {
- CTRL_PORT=select_hc138[k][2];
- DATA_PORT=zifu[k][2*i];
-
- ADDR_PORT=i-8;
- delay();
-
- CTRL_PORT=select_hc138[k][3];
- DATA_PORT=zifu[k][2*i+1];
-
- ADDR_PORT=i-8;
- delay();
- }
- }
- }
- }
- void PORT_init()//可放main中,初始化分開(kāi)放main看起來(lái)簡(jiǎn)節(jié)一些
- {
- TMOD=0x01;
- TH0=0xb1;
- TL0=0xe0;
- ET0=1;
- EA=1;
- }
- void main()
- {
- PORT_init();
- while(1)
- {
- p=zifu;
- plany();//此處加一定的延時(shí),讓P=另外一個(gè)定義數(shù)組,就能達(dá)到換內(nèi)容的效果
- }
- }
- void timer0() interrupt 1 using 3
- {
- TF0=0;
- TH0=0xb1;
- TL0=0xe0;
- }
復(fù)制代碼
附上原碼,仿真,取字工具
51知識(shí)點(diǎn)16vs16點(diǎn)陣基本操作.rar
(342.7 KB, 下載次數(shù): 104)
2018-12-22 20:56 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|