- //帮忙修改点阵条屏16*16程序,此为静态显示程序范例,功能:key2 key3 key4 key5,其中任意两个为ON,锁定切换显示四个字.
- //key2 key3 key4 key5都为off按key1切换显示四个字。
- //现要求改成从右往左滚动显示字条,字条滚动播完一遍后,静止显示任意四个字5秒(可定义),接着播放。
- //key2 key3 key4 key5,其中任意两个为ON,锁定显示一条滚动字条。都为off时,按key1切换显示滚动字条内容。
- //字条任意,但关键地方要做好说明,方便后续修改字体内容·滚动速度
- #include<reg51.h>
- #define ROW_address P2
- sbit R1=P1^0;
- sbit G1=P1^1;
- sbit SK=P1^2;
- sbit LT=P1^3;
- sbit EN=P1^4;
- sbit key1=P0^6;
- sbit key2=P0^0;
- sbit key3=P0^1;
- sbit key4=P0^2;
- sbit key5=P0^3;
- void debouncer(void);
- unsigned char code GB_16[] = // 数据表
- {
- 0x08,0x10,0x3F,0xF8,0x08,0x80,0x04,0x40,0x06,0x18,0x24,0x48,0x0C,0x80,0x04,0x40,
- 0x04,0x20,0x24,0x48,0x09,0x00,0x04,0x40,0xFF,0xFE,0x3F,0xF8,0x13,0xFE,0x04,0x44,
- 0x00,0x00,0x01,0x00,0x12,0x80,0x44,0x46,0x3E,0x08,0x7F,0xFC,0x34,0x88,0x24,0x4C,
- 0x22,0x48,0x02,0x00,0x50,0xFC,0x24,0x48,0x3E,0x48,0x1F,0xF0,0x90,0x80,0x14,0x50,
- 0x22,0x48,0x10,0x10,0x10,0x80,0x1C,0x50,0x22,0x48,0x1F,0xF0,0x10,0x84,0x14,0x60,
- 0x3E,0x48,0x10,0x10,0x10,0xFE,0x04,0x40,0x22,0x48,0x1F,0xF0,0x10,0x80,0x04,0x40,
- 0x22,0x48,0x10,0x10,0x10,0x80,0x04,0x44,0x2A,0x08,0x1F,0xF0,0x10,0x80,0xFF,0xFE,
- 0x24,0x28,0x10,0x10,0x10,0x80,0x00,0x00,0x00,0x10,0xFF,0xFE,0x10,0x80,0x00,0x00, //one 前置作业
- 0x08,0x10,0x3F,0xF8,0x40,0x02,0x00,0x20,0x06,0x18,0x24,0x48,0x27,0xC2,0x40,0x28,
- 0x04,0x20,0x24,0x48,0x24,0x42,0x20,0x24,0xFF,0xFE,0x3F,0xF8,0x84,0x52,0x30,0x24,
- 0x00,0x00,0x01,0x00,0x45,0x52,0x27,0xFE,0x3E,0x08,0x7F,0xFC,0x55,0x52,0x00,0x20,
- 0x22,0x48,0x02,0x00,0x15,0x52,0xE0,0x20,0x3E,0x48,0x1F,0xF0,0x25,0x52,0x27,0xE0,
- 0x22,0x48,0x10,0x10,0x25,0x52,0x21,0x20,0x22,0x48,0x1F,0xF0,0x25,0x52,0x21,0x10,
- 0x3E,0x48,0x10,0x10,0xC5,0x52,0x21,0x10,0x22,0x48,0x1F,0xF0,0x41,0x02,0x21,0x0A,
- 0x22,0x48,0x10,0x10,0x42,0x82,0x29,0xCA,0x2A,0x08,0x1F,0xF0,0x42,0x42,0x36,0x06,
- 0x24,0x28,0x10,0x10,0x44,0x4A,0x20,0x02,0x00,0x10,0xFF,0xFE,0x48,0x04,0x00,0x00, //two 无载跑合
- 0x00,0x7C,0x10,0x40,0x40,0x02,0x00,0x20,0x3F,0x80,0x10,0x20,0x27,0xC2,0x40,0x28,
- 0x02,0x20,0x23,0xFE,0x24,0x42,0x20,0x24,0x04,0x20,0x20,0x40,0x84,0x52,0x30,0x24,
- 0x08,0x40,0x44,0x40,0x45,0x52,0x27,0xFE,0x1F,0x80,0xF8,0x88,0x55,0x52,0x00,0x20,
- 0x03,0x20,0x09,0x04,0x15,0x52,0xE0,0x20,0x0C,0x10,0x13,0xFE,0x25,0x52,0x27,0xE0,
- 0x3F,0xF8,0x20,0x94,0x25,0x52,0x21,0x20,0x10,0x8C,0x7C,0x90,0x25,0x52,0x21,0x10,
- 0x04,0xA0,0x00,0x90,0xC5,0x52,0x21,0x10,0x08,0x90,0x00,0x90,0x41,0x02,0x21,0x0A,
- 0x10,0x88,0x1D,0x12,0x42,0x82,0x29,0xCA,0x20,0x84,0xE1,0x12,0x42,0x42,0x36,0x06,
- 0x42,0x84,0x02,0x0E,0x44,0x4A,0x20,0x02,0x01,0x00,0x04,0x00,0x48,0x04,0x00,0x00, //three
- 0x00,0x00,0x08,0x00,0x10,0x40,0x00,0x00,0x00,0x00,0x0F,0xFC,0x10,0x40,0x00,0x00,
- 0x00,0x00,0x10,0x00,0x10,0xA0,0x00,0x00,0x00,0x00,0x2F,0xF8,0xFD,0x10,0x00,0x00,
- 0x00,0x00,0x48,0x08,0x12,0x0E,0x00,0x00,0x00,0x00,0x0F,0xF8,0x38,0x00,0x00,0x00,
- 0x00,0x00,0x08,0x08,0x35,0xF8,0x00,0x00,0x00,0x00,0x0F,0xF8,0x50,0x00,0x00,0x00,
- 0x00,0x00,0x04,0x00,0x50,0x88,0x00,0x00,0x00,0x00,0x07,0xF8,0x92,0x4C,0x00,0x00,
- 0x00,0x00,0x0C,0x10,0x11,0x48,0x00,0x00,0x00,0x00,0x12,0x60,0x11,0x50,0x00,0x00,
- 0x00,0x00,0x21,0x80,0x10,0x20,0x00,0x00,0x00,0x00,0x06,0x60,0x17,0xFE,0x00,0x00,
- 0x00,0x00,0x18,0x1E,0x10,0x00,0x00,0x00,0x00,0x00,0x60,0x04,0x00,0x00,0x00,0x00, //four
- 0x00,0x00,0x00,0x00,0x10,0x40,0x00,0x00,0x00,0x00,0x0F,0xF0,0x10,0x40,0x00,0x00,
- 0x00,0x00,0x08,0x10,0x10,0xA0,0x00,0x00,0x00,0x00,0x08,0x10,0xFD,0x10,0x00,0x00,
- 0x00,0x00,0x08,0x10,0x12,0x0E,0x00,0x00,0x00,0x00,0x0F,0xF0,0x38,0x00,0x00,0x00,
- 0x00,0x00,0x08,0x10,0x35,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x50,0x00,0x00,0x00,
- 0x00,0x00,0x7E,0xFC,0x50,0x88,0x00,0x00,0x00,0x00,0x42,0x84,0x92,0x4C,0x00,0x00,
- 0x00,0x00,0x42,0x84,0x11,0x48,0x00,0x00,0x00,0x00,0x42,0x84,0x11,0x50,0x00,0x00,
- 0x00,0x00,0x42,0x84,0x10,0x20,0x00,0x00,0x00,0x00,0x7E,0xFC,0x17,0xFE,0x00,0x00,
- 0x00,0x00,0x42,0x84,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //five
- 0x00,0x10,0x40,0x0C,0x00,0x01,0x00,0x00,0x00,0x18,0x40,0x06,0x00,0x00,0x80,0x00,
- 0x00,0x13,0xFC,0x02,0x00,0x3F,0xFE,0x00,0x00,0x28,0x40,0x01,0x00,0x21,0x00,0x00,
- 0x00,0x4C,0x40,0x03,0x00,0x21,0x00,0x00,0x00,0x88,0x40,0x02,0x80,0x3F,0xFC,0x00,
- 0x00,0x17,0xFE,0x02,0x80,0x22,0x40,0x00,0x00,0x10,0x10,0x04,0x40,0x24,0x40,0x00,
- 0x00,0x30,0x10,0x04,0x20,0x2F,0xFC,0x00,0x00,0x57,0xFE,0x08,0x20,0x24,0x40,0x00,
- 0x00,0x10,0x10,0x08,0x10,0x20,0x40,0x00,0x00,0x11,0x10,0x10,0x08,0x3F,0xFE,0x00,
- 0x00,0x11,0x10,0x20,0x0E,0x20,0x40,0x00,0x00,0x10,0x10,0x40,0x04,0x40,0x40,0x00,
- 0x00,0x10,0x50,0x80,0x00,0x40,0x40,0x00,0x00,0x10,0x20,0x00,0x00,0x80,0x40,0x00, //six
- 0x00,0x00,0x10,0x40,0x00,0x40,0x00,0x00,0x00,0x00,0x10,0x60,0x7B,0xFC,0x00,0x00,
- 0x00,0x00,0x10,0x40,0x49,0x08,0x00,0x00,0x00,0x00,0x10,0x40,0x50,0x90,0x00,0x00,
- 0x00,0x00,0xFE,0xFE,0x57,0xFE,0x00,0x00,0x00,0x00,0x10,0x88,0x60,0x00,0x00,0x00,
- 0x00,0x00,0x10,0x88,0x53,0xF8,0x00,0x00,0x00,0x00,0x7D,0x88,0x4A,0x08,0x00,0x00,
- 0x00,0x00,0x46,0x50,0x4B,0xF8,0x00,0x00,0x00,0x00,0x44,0x50,0x6A,0x08,0x00,0x00,
- 0x00,0x00,0x44,0x20,0x53,0xF8,0x00,0x00,0x00,0x00,0x44,0x20,0x40,0x40,0x00,0x00,
- 0x00,0x00,0x7C,0x50,0x4F,0xFE,0x00,0x00,0x00,0x00,0x41,0x8E,0x40,0x40,0x00,0x00,
- 0x00,0x00,0x06,0x04,0x40,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x40,0x00,0x00, //seven
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x40,0x40,0x00,0x00,0x00,
- 0x00,0x00,0x08,0x40,0x27,0xFE,0x00,0x00,0x00,0x00,0x48,0xA0,0x30,0x20,0x00,0x00,
- 0x00,0x00,0x48,0x90,0x20,0x20,0x00,0x00,0x00,0x00,0x49,0x0E,0x00,0x20,0x00,0x00,
- 0x00,0x00,0x4B,0xF0,0xE2,0x20,0x00,0x00,0x00,0x00,0x7C,0x00,0x22,0x20,0x00,0x00,
- 0x00,0x00,0x04,0x84,0x22,0x3C,0x00,0x00,0x00,0x00,0x06,0x44,0x22,0x20,0x00,0x00,
- 0x00,0x00,0x35,0x48,0x22,0x20,0x00,0x00,0x00,0x00,0xC5,0x48,0x22,0x20,0x00,0x00,
- 0x00,0x00,0x04,0x10,0x2A,0x20,0x00,0x00,0x00,0x00,0x17,0xFE,0x32,0x20,0x00,0x00,
- 0x00,0x00,0x08,0x00,0x2F,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //eight
- 0x00,0x00,0x04,0x40,0x00,0x80,0x01,0x00,0x3F,0xFC,0x04,0x50,0x7C,0xC0,0x02,0x80,
- 0x01,0x00,0x3F,0x48,0x44,0x80,0x04,0x40,0x01,0x00,0x04,0x40,0x44,0xFC,0x08,0x20,
- 0x01,0x00,0xFF,0xFE,0x45,0x04,0x10,0x18,0x01,0x00,0x08,0x40,0x7D,0xF4,0x20,0x2E,
- 0x7F,0xFE,0x7F,0x44,0x52,0x94,0xDF,0xF4,0x01,0x80,0x10,0x44,0x10,0x94,0x00,0x00,
- 0x02,0x80,0x24,0x28,0x5E,0x94,0x00,0x00,0x02,0x80,0x7F,0x28,0x50,0xF4,0x1F,0xF0,
- 0x04,0x80,0x04,0x30,0x50,0x94,0x10,0x10,0x08,0x80,0x07,0x30,0x50,0x88,0x10,0x10,
- 0x10,0x82,0x7C,0x52,0x50,0x82,0x10,0x10,0x20,0x82,0x04,0x8A,0x5E,0x82,0x1F,0xF0,
- 0xC0,0x7E,0x05,0x04,0xE0,0x7E,0x10,0x10,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00, //nine
- 0x20,0x00,0x04,0x40,0x00,0x80,0x01,0x00,0x21,0xFC,0x04,0x50,0x7C,0xC0,0x02,0x80,
- 0xFE,0x08,0x3F,0x48,0x44,0x80,0x04,0x40,0x20,0x10,0x04,0x40,0x44,0xFC,0x08,0x20,
- 0x50,0x20,0xFF,0xFE,0x45,0x04,0x10,0x18,0x50,0x50,0x08,0x40,0x7D,0xF4,0x20,0x2E,
- 0x90,0x8C,0x7F,0x44,0x52,0x94,0xDF,0xF4,0xFD,0x04,0x10,0x44,0x10,0x94,0x00,0x00,
- 0x13,0xFE,0x24,0x28,0x5E,0x94,0x00,0x00,0x10,0x20,0x7F,0x28,0x50,0xF4,0x1F,0xF0,
- 0x1C,0x20,0x04,0x30,0x50,0x94,0x10,0x10,0xF0,0x20,0x07,0x30,0x50,0x88,0x10,0x10,
- 0x10,0x20,0x7C,0x52,0x50,0x82,0x10,0x10,0x10,0x20,0x04,0x8A,0x5E,0x82,0x1F,0xF0,
- 0x17,0xFE,0x05,0x04,0xE0,0x7E,0x10,0x10,0x10,0x00,0x04,0x00,0x00,0x00,0x00,0x00, //ten
- 0x41,0x10,0x04,0x40,0x00,0x80,0x01,0x00,0x21,0x10,0x04,0x50,0x7C,0xC0,0x02,0x80,
- 0x2F,0xFE,0x3F,0x48,0x44,0x80,0x04,0x40,0x01,0x10,0x04,0x40,0x44,0xFC,0x08,0x20,
- 0x80,0x00,0xFF,0xFE,0x45,0x04,0x10,0x18,0x57,0xFE,0x08,0x40,0x7D,0xF4,0x20,0x2E,
- 0x51,0x20,0x7F,0x44,0x52,0x94,0xDF,0xF4,0x17,0xFC,0x10,0x44,0x10,0x94,0x00,0x00,
- 0x25,0x24,0x24,0x28,0x5E,0x94,0x00,0x00,0x25,0x24,0x7F,0x28,0x50,0xF4,0x1F,0xF0,
- 0x25,0xB4,0x04,0x30,0x50,0x94,0x10,0x10,0xC6,0x4C,0x07,0x30,0x50,0x88,0x10,0x10,
- 0x44,0x84,0x7C,0x52,0x50,0x82,0x10,0x10,0x44,0x04,0x04,0x8A,0x5E,0x82,0x1F,0xF0,
- 0x44,0x14,0x05,0x04,0xE0,0x7E,0x10,0x10,0x44,0x08,0x04,0x00,0x00,0x00,0x00,0x00, //eleven
- 0x01,0x00,0x10,0x40,0x40,0x02,0x00,0x20,0x01,0x00,0x18,0x50,0x27,0xC2,0x40,0x28,
- 0x7F,0xFC,0x10,0x4C,0x24,0x42,0x20,0x24,0x02,0x00,0x20,0x48,0x84,0x52,0x30,0x24,
- 0x1F,0xF0,0x23,0xFC,0x45,0x52,0x27,0xFE,0x10,0x10,0x48,0x40,0x55,0x52,0x00,0x20,
- 0x10,0x10,0xF8,0x40,0x15,0x52,0xE0,0x20,0x1F,0xF0,0x13,0xFE,0x25,0x52,0x27,0xE0,
- 0x10,0x10,0x20,0x40,0x25,0x52,0x21,0x20,0x1F,0xF0,0x7C,0x48,0x25,0x52,0x21,0x10,
- 0x10,0x10,0x00,0x30,0xC5,0x52,0x21,0x10,0x1F,0xF0,0x00,0x22,0x41,0x02,0x21,0x0A,
- 0x10,0x10,0x1C,0xD2,0x42,0x82,0x29,0xCA,0x10,0x10,0xE3,0x0A,0x42,0x42,0x36,0x06,
- 0xFF,0xFE,0x00,0x06,0x44,0x4A,0x20,0x02,0x00,0x00,0x00,0x02,0x48,0x04,0x00,0x00, //twelve
- 0x00,0x00,0x01,0x00,0x40,0x02,0x00,0x20,0x3F,0xFE,0x01,0x00,0x27,0xC2,0x40,0x28,
- 0x20,0x00,0x01,0x00,0x24,0x42,0x20,0x24,0x20,0x80,0x01,0x00,0x84,0x52,0x30,0x24,
- 0x20,0x80,0x7F,0xFC,0x45,0x52,0x27,0xFE,0x20,0x88,0x01,0x04,0x55,0x52,0x00,0x20,
- 0x2F,0xFC,0x01,0x04,0x15,0x52,0xE0,0x20,0x20,0x80,0x01,0x04,0x25,0x52,0x27,0xE0,
- 0x20,0xA0,0x01,0x04,0x25,0x52,0x21,0x20,0x20,0x90,0x02,0x04,0x25,0x52,0x21,0x10,
- 0x20,0x98,0x02,0x04,0xC5,0x52,0x21,0x10,0x40,0x90,0x04,0x04,0x41,0x02,0x21,0x0A,
- 0x40,0x80,0x04,0x04,0x42,0x82,0x29,0xCA,0xBF,0xFE,0x08,0x04,0x42,0x42,0x36,0x06,
- 0x00,0x00,0x10,0x28,0x44,0x4A,0x20,0x02,0x00,0x00,0x20,0x10,0x48,0x04,0x00,0x00, //thirteen
- 0x00,0x00,0x10,0x40,0x40,0x02,0x00,0x00,0x00,0x00,0x18,0x40,0x27,0xC2,0x00,0x00,
- 0x00,0x00,0x13,0xFC,0x24,0x42,0x00,0x00,0x00,0x00,0x28,0x40,0x84,0x52,0x00,0x00,
- 0x00,0x00,0x4C,0x40,0x45,0x52,0x00,0x00,0x00,0x00,0x88,0x40,0x55,0x52,0x00,0x00,
- 0x00,0x00,0x17,0xFE,0x15,0x52,0x00,0x00,0x00,0x00,0x10,0x10,0x25,0x52,0x00,0x00,
- 0x00,0x00,0x30,0x10,0x25,0x52,0x00,0x00,0x00,0x00,0x57,0xFE,0x25,0x52,0x00,0x00,
- 0x00,0x00,0x10,0x10,0xC5,0x52,0x00,0x00,0x00,0x00,0x11,0x10,0x41,0x02,0x00,0x00,
- 0x00,0x00,0x11,0x10,0x42,0x82,0x00,0x00,0x00,0x00,0x10,0x10,0x42,0x42,0x00,0x00,
- 0x00,0x00,0x10,0x50,0x44,0x4A,0x00,0x00,0x00,0x00,0x10,0x20,0x48,0x04,0x00,0x00, //fourteen
- };
- unsigned int x=0;
- unsigned long cnt=0;
- unsigned int Row=0;
- unsigned int m=0;
- void delay(unsigned int i)
- {
- unsigned int j,k;
- for(i;i>0;i--)
- for(j=10;j>0;j--)
- for(k=200;k>0;k--);
- }
- void display(unsigned int C_num)
- {
- unsigned char k,n,num;
- for(k=0;k<2*C_num;k++)
- {
- num=GB_16[8*Row+k+128*x];
- for(n=0;n<8;n++)
- {
- SK=0;
- R1=~num&0x80;
- G1=~num&0x80;
- SK=1;
- num<<=1;
- }
- }
- EN=1;
- LT=1;
- LT=0;
- ROW_address=Row;
- EN=0;
- }
- /************interrupt T0****************/
- void time0() interrupt 1
- {
- TH0=0x1ff;
- TL0=0x00;
- Row++;
- if(Row==16)
- Row=0;
- display(4);
- cnt++;
- }
- /***********init ************************/
- void init()
- {
- TMOD=0x01;
- TH0=0x1ff;
- TL0=0x00;
- ET0=1;
- TR0=1;
- EA=1;
- }
- void main(void)
- {
- init();
- key1=1;
- key2=1;
- key3=1;
- key4=1;
- while(1)
- {
- // if(key1==0 && key2==1 && key3==1 && key4==1 && key5==1)
- if(key1==0)
- {
- while(!key1);
- x++;
- if(x>=8)
- x=0;
- }
- else if(key2==0 && key3==0)
- {
- x=8;
- }
- else if(key2==0 && key4==0)
- {
- x=9;
- }
- else if(key2==0 && key5==0)
- {
- x=10;
- }
- else if(key3==0 && key4==0)
- {
- x=11;
- }
- else if(key3==0 && key5==0)
- {
- x=12;
- }
- else if(key4==0 && key5==0)
- {
- x=13;
- }
- }
- }
复制代码
|