查看文章 |
如何在LED旋转屏上滚动显示汉字
2007-06-08 00:56
在我的旋转LED时钟中从新编写了一个滚动显示汉字的演示程序,因学51编程的时间不久,而且又是一时兴起所编,程序也许有不尽合理的地方。 C51源程序:
#include <reg51.h>
sbit gate11=P3^0;
sbit gate12=P3^1; #define unit unsigned int
#define uchar unsigned char uchar code GB_16[] =
{ 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, 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, 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, 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, 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, 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, 0x00,0x00,0x34,0x40,0xC4,0x38,0x04,0x0F, //"欢"
0xC4,0x07,0xFC,0x3C,0x3E,0x98,0x24,0x60, 0x18,0x30,0x0E,0x1C,0xEF,0x0F,0xCA,0x07, 0x48,0x1C,0x38,0x70,0x1C,0xE0,0x08,0x40, 0x00,0x00,0x40,0x40,0x46,0xE0,0xDC,0x3F, //"迎"
0xE8,0x1F,0x40,0x32,0xFE,0x67,0xFC,0xC3, 0x06,0xC2,0x03,0xC1,0xFD,0xFF,0xFC,0xDF, 0x04,0xC2,0xFC,0xC7,0xFE,0xC3,0x04,0x40, 0x00,0x00,0x00,0x80,0x80,0x80,0x82,0x40, //"光"
0xBC,0x60,0x98,0x38,0x80,0x1F,0xFF,0x07, 0xFE,0x00,0x80,0x7F,0xE0,0xFF,0xB8,0xC0, 0x9E,0xC0,0xC4,0xC0,0x80,0xF0,0x00,0x40, 0x00,0x00,0xF8,0x0F,0xF0,0x07,0x00,0x00, //"临"
0xFF,0xFF,0xFE,0x7F,0x80,0x00,0x60,0xFF, 0x38,0x7E,0x1E,0x42,0x3F,0x7E,0x6A,0x7E, 0x68,0x42,0xC8,0xFE,0x4C,0x7F,0x08,0x02, 0x00,0x00,0x04,0x00,0x04,0x00,0x44,0x70, //"艺"
0x44,0xF8,0x5F,0xCC,0x5F,0xC6,0x44,0xC2, 0x44,0xC1,0xC4,0xC1,0xFF,0xC0,0x5F,0xC0, 0x04,0xC0,0x04,0xC0,0x06,0xF8,0x04,0x60, 0x00,0x00,0x44,0x22,0x4C,0x1A,0x7C,0x4E, //"新"
0xD7,0xFF,0xE6,0x7F,0x7C,0x0E,0x5C,0x9A, 0x44,0x60,0xFE,0x3F,0xFC,0x1F,0x46,0x00, 0xC2,0xFF,0xC3,0xFF,0x62,0x00,0x40,0x00, 0x00,0x00,0x00,0x40,0x04,0x40,0x04,0x40, //"工"
0x04,0x40,0x04,0x40,0x04,0x40,0xFC,0x7F, 0xFC,0x7F,0x04,0x40,0x04,0x40,0x04,0x40, 0x06,0x40,0x04,0x60,0x00,0x40,0x00,0x00, 0x00,0x00,0x80,0x00,0x60,0x00,0xF8,0xFF, //"作"
0xEF,0x7F,0x06,0x00,0x40,0x00,0x30,0x00, 0x1C,0x00,0xFF,0xFF,0xFA,0xFF,0x48,0x04, 0x48,0x04,0x68,0x04,0x4C,0x06,0x08,0x04, 0x00,0x00,0x08,0x00,0x1C,0x80,0x0E,0x81, //"室"
0x94,0x8B,0xD4,0x89,0x75,0x89,0x37,0xFF, 0x16,0xFF,0x34,0x89,0xD4,0x89,0x94,0x8B, 0x1C,0x81,0x0E,0xC0,0x04,0x80,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,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,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,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,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,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,0x00,0x00 }; unit disp1,disp2,key1,key2;
unit a,w,ii,jj,kk; void Delay(unit ms)
{ while(--ms); } void display_HZ(void) { gate11=key1;gate12=key2; for(ii=0;ii<5;ii++){ for(jj=0;jj<16;jj++){ P2=~GB_16[jj*2+ii*32+kk*2];P1=~GB_16[1+jj*2+ii*32+kk*2]; Delay(120); P1=0xff;P2=0xff; } P1=0xff;P2=0xff; } } void intersvr0(void) interrupt 0 { key1=!key1; key2=!key2; w=1; if(kk<240) kk++; else kk=0; } void main(void) { EA=1;IT0=1;EX0=1; key1=0;key2=1; for(;;){ w=0; Delay(40); if(w==1) display_HZ(); } } |
最近读者:


littledeerxiaolu@yahoo.com.cn