- #include "STC12C5A60S2.h"
- #include "intrins.h"
- #define u8 unsigned char
- #define u16 unsigned int
- #define u32 unsigned long
- #define T1ms 0xFC18 //12Mhz@1ms 12T定时器初值
- #define X P1 //点阵屏X扫描
- #define XM0 P1M0
- #define XM1 P1M1
- #define Y P2 //点阵屏Y扫描
- #define YM0 P2M0
- #define YM1 P2M1
- /*
- X.0~X.7=P1.0~P1.7
- Y.0~Y.7=P2.0~P2.7
- LED点阵屏硬件连接:
- X.0=Pin13 X.1=Pin3 X.2=Pin4 X.3=Pin10
- X.4=Pin6 X.5=Pin11 X.6=Pin15 X.7=Pin16
- Y.0=Pin9 Y.1=Pin14 Y.2=Pin8 Y.3=Pin12
- Y.4=Pin1 Y.5=Pin7 Y.6=Pin2 Y.7=Pin5
- */
- void InitTimer0(){
- TMOD = 0x01;
- TH0 = T1ms >> 8;
- TL0 = T1ms;
- EA = 1;
- ET0 = 1;
- TR0 = 1;
- }
- u8 code word[1024]={ //8*8点阵字库数据 (共128种字符)
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x33,0x33,0xCC,0xCC,0x33,0x33,0xCC,0xCC,
- 0x00,0x08,0x0C,0xFE,0xFE,0x0C,0x08,0x00,
- 0x00,0x18,0x3C,0x7E,0x18,0x18,0x18,0x18,
- 0x40,0x68,0x7C,0x5E,0x49,0x49,0x22,0x00,
- 0x00,0x10,0x78,0x78,0x08,0x78,0x7C,0x04,
- 0x00,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
- 0x03,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,
- 0x18,0x18,0x18,0x1F,0x1F,0x00,0x00,0x00,
- 0x33,0x99,0xCC,0x66,0x33,0x99,0xCC,0x66,
- 0x66,0xCC,0x99,0x33,0x66,0xCC,0x99,0x33,
- 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,
- 0x30,0x30,0xC0,0xC0,0x30,0x30,0xC0,0xC0,
- 0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,
- 0x00,0x00,0x00,0xFF,0xFF,0x18,0x18,0x18,
- 0x18,0x18,0x18,0xFF,0xFF,0x18,0x18,0x18,
- 0x00,0x00,0x00,0x1F,0x1F,0x18,0x18,0x18,
- 0x18,0x18,0x18,0xF8,0xF8,0x00,0x00,0x00,
- 0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,
- 0x00,0x00,0x00,0xF8,0xF8,0x18,0x18,0x18,
- 0x18,0x18,0x18,0x1F,0x1F,0x18,0x18,0x18,
- 0x18,0x18,0x18,0xF8,0xF8,0x18,0x18,0x18,
- 0x18,0x18,0x18,0xFF,0xFF,0x00,0x00,0x00,
- 0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,
- 0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,
- 0xF0,0xF0,0xF0,0xF0,0x00,0x00,0x00,0x00,
- 0x33,0x33,0xCC,0xCC,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x0F,0x0F,0x0F,0x0F,
- 0x00,0x00,0x00,0x00,0xF0,0xF0,0xF0,0xF0,
- 0x0F,0x0F,0x0F,0x0F,0x00,0x00,0x00,0x00,
- 0x0F,0x0F,0x0F,0x0F,0xF0,0xF0,0xF0,0xF0,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x4F,0x4F,0x00,0x00,0x00,
- 0x00,0x07,0x07,0x00,0x00,0x07,0x07,0x00,
- 0x14,0x7F,0x7F,0x14,0x14,0x7F,0x7F,0x14,
- 0x00,0x24,0x2E,0x6B,0x6B,0x3A,0x12,0x00,
- 0x00,0x62,0x32,0x18,0x0C,0x66,0x62,0x00,
- 0x00,0x32,0x7F,0x4D,0x4D,0x77,0x72,0x50,
- 0x00,0x00,0x00,0x04,0x06,0x03,0x01,0x00,
- 0x00,0x00,0x1C,0x3E,0x63,0x41,0x00,0x00,
- 0x00,0x00,0x41,0x63,0x3E,0x1C,0x00,0x00,
- 0x08,0x2A,0x3E,0x1C,0x1C,0x3E,0x2A,0x08,
- 0x00,0x08,0x08,0x3E,0x3E,0x08,0x08,0x00,
- 0x00,0x00,0x80,0xE0,0x60,0x00,0x00,0x00,
- 0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x00,
- 0x00,0x00,0x00,0x60,0x60,0x00,0x00,0x00,
- 0x00,0x40,0x60,0x30,0x18,0x0C,0x06,0x02,
- 0x00,0x3E,0x7F,0x49,0x45,0x7F,0x3E,0x00,
- 0x00,0x40,0x44,0x7F,0x7F,0x40,0x40,0x00,
- 0x00,0x62,0x73,0x51,0x49,0x4F,0x46,0x00,
- 0x00,0x22,0x63,0x49,0x49,0x7F,0x36,0x00,
- 0x00,0x18,0x18,0x14,0x16,0x7F,0x7F,0x10,
- 0x00,0x27,0x67,0x45,0x45,0x7D,0x39,0x00,
- 0x00,0x3E,0x7F,0x49,0x49,0x7B,0x32,0x00,
- 0x00,0x03,0x03,0x79,0x7D,0x07,0x03,0x00,
- 0x00,0x36,0x7F,0x49,0x49,0x7F,0x36,0x00,
- 0x00,0x26,0x6F,0x49,0x49,0x7F,0x3E,0x00,
- 0x00,0x00,0x00,0x24,0x24,0x00,0x00,0x00,
- 0x00,0x00,0x80,0xE4,0x64,0x00,0x00,0x00,
- 0x00,0x08,0x1C,0x36,0x63,0x41,0x41,0x00,
- 0x00,0x14,0x14,0x14,0x14,0x14,0x14,0x00,
- 0x00,0x41,0x41,0x63,0x36,0x1C,0x08,0x00,
- 0x00,0x02,0x03,0x51,0x59,0x0F,0x06,0x00,
- 0x00,0x3E,0x7F,0x41,0x4D,0x4F,0x2E,0x00,
- 0x00,0x7C,0x7E,0x0B,0x0B,0x7E,0x7C,0x00,
- 0x00,0x7F,0x7F,0x49,0x49,0x7F,0x36,0x00,
- 0x00,0x3E,0x7F,0x41,0x41,0x63,0x22,0x00,
- 0x00,0x7F,0x7F,0x41,0x63,0x3E,0x1C,0x00,
- 0x00,0x7F,0x7F,0x49,0x49,0x41,0x41,0x00,
- 0x00,0x7F,0x7F,0x09,0x09,0x01,0x01,0x00,
- 0x00,0x3E,0x7F,0x41,0x49,0x7B,0x3A,0x00,
- 0x00,0x7F,0x7F,0x08,0x08,0x7F,0x7F,0x00,
- 0x00,0x00,0x41,0x7F,0x7F,0x41,0x00,0x00,
- 0x00,0x20,0x60,0x41,0x7F,0x3F,0x01,0x00,
- 0x00,0x7F,0x7F,0x1C,0x36,0x63,0x41,0x00,
- 0x00,0x7F,0x7F,0x40,0x40,0x40,0x40,0x00,
- 0x00,0x7F,0x7F,0x06,0x0C,0x06,0x7F,0x7F,
- 0x00,0x7F,0x7F,0x0E,0x1C,0x7F,0x7F,0x00,
- 0x00,0x3E,0x7F,0x41,0x41,0x7F,0x3E,0x00,
- 0x00,0x7F,0x7F,0x09,0x09,0x0F,0x06,0x00,
- 0x00,0x1E,0x3F,0x21,0x61,0x7F,0x5E,0x00,
- 0x00,0x7F,0x7F,0x19,0x39,0x6F,0x46,0x00,
- 0x00,0x26,0x6F,0x49,0x49,0x7B,0x32,0x00,
- 0x00,0x01,0x01,0x7F,0x7F,0x01,0x01,0x00,
- 0x00,0x3F,0x7F,0x40,0x40,0x7F,0x3F,0x00,
- 0x00,0x1F,0x3F,0x60,0x60,0x3F,0x1F,0x00,
- 0x00,0x7F,0x7F,0x30,0x18,0x30,0x7F,0x7F,
- 0x00,0x63,0x77,0x1C,0x1C,0x77,0x63,0x00,
- 0x00,0x07,0x0F,0x78,0x78,0x0F,0x07,0x00,
- 0x00,0x61,0x71,0x59,0x4D,0x47,0x43,0x00,
- 0x00,0x00,0x7F,0x7F,0x41,0x41,0x00,0x00,
- 0x00,0x01,0x03,0x06,0x0C,0x18,0x30,0x20,
- 0x00,0x00,0x41,0x41,0x7F,0x7F,0x00,0x00,
- 0x00,0x08,0x0C,0x06,0x06,0x0C,0x08,0x00,
- 0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
- 0x00,0x00,0x00,0x07,0x07,0x00,0x00,0x00,
- 0x00,0x20,0x74,0x54,0x54,0x7C,0x78,0x00,
- 0x00,0x7E,0x7E,0x48,0x48,0x78,0x30,0x00,
- 0x00,0x38,0x7C,0x44,0x44,0x44,0x00,0x00,
- 0x00,0x30,0x78,0x48,0x48,0x7E,0x7E,0x00,
- 0x00,0x38,0x7C,0x54,0x54,0x5C,0x18,0x00,
- 0x00,0x00,0x08,0x7C,0x7E,0x0A,0x0A,0x00,
- 0x00,0x98,0xBC,0xA4,0xA4,0xFC,0x7C,0x00,
- 0x00,0x7E,0x7E,0x08,0x08,0x78,0x70,0x00,
- 0x00,0x00,0x48,0x7A,0x7A,0x40,0x00,0x00,
- 0x00,0x00,0x80,0x80,0x80,0xFA,0x7A,0x00,
- 0x00,0x7E,0x7E,0x10,0x38,0x68,0x40,0x00,
- 0x00,0x00,0x42,0x7E,0x7E,0x40,0x00,0x00,
- 0x00,0x7C,0x7C,0x18,0x38,0x1C,0x7C,0x78,
- 0x00,0x7C,0x7C,0x04,0x04,0x7C,0x78,0x00,
- 0x00,0x38,0x7C,0x44,0x44,0x7C,0x38,0x00,
- 0x00,0xFC,0xFC,0x24,0x24,0x3C,0x18,0x00,
- 0x00,0x18,0x3C,0x24,0x24,0xFC,0xFC,0x00,
- 0x00,0x7C,0x7C,0x04,0x04,0x0C,0x08,0x00,
- 0x00,0x48,0x5C,0x54,0x54,0x74,0x24,0x00,
- 0x00,0x04,0x04,0x3E,0x7E,0x44,0x44,0x00,
- 0x00,0x3C,0x7C,0x40,0x40,0x7C,0x7C,0x00,
- 0x00,0x1C,0x3C,0x60,0x60,0x3C,0x1C,0x00,
- 0x00,0x1C,0x7C,0x70,0x38,0x70,0x7C,0x1C,
- 0x00,0x44,0x6C,0x38,0x38,0x6C,0x44,0x00,
- 0x00,0x9C,0xBC,0xA0,0xE0,0x7C,0x3C,0x00,
- 0x00,0x44,0x64,0x74,0x5C,0x4C,0x44,0x00,
- 0x00,0x08,0x2A,0x7F,0x55,0x41,0x00,0x00,
- 0x00,0x00,0x00,0xE7,0xE7,0x00,0x00,0x00,
- 0x00,0x00,0x41,0x55,0x7F,0x2A,0x08,0x00,
- 0x06,0x06,0x03,0x03,0x06,0x06,0x03,0x03,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
- };
- u8 vram[8]; //点阵显存
- u8 *text="Hello World! I Love You! "; //欲滚动的字符串(末尾加空格,严禁中文)
- void main(){
- u8 i =0;
- //强推挽
- WDT_CONTR = 0x27; //开看门狗
- XM0=0xFF;XM1=0x00;
- YM0=0xFF;YM1=0x00;
- InitTimer0(); //开定时器0中断
- while(1){
- _nop_();
- _nop_();
- WDT_CONTR |= 0x10; //看门狗喂狗
- _nop_();
- _nop_();
- }
- }
- void left(u8 i){ //向左滚动
- u8 j;
- for(j=1;j<8;j++){
- vram[j-1] = vram[j];
- }
- vram[7]=i;
- }
- void Timer0Interrupt() interrupt 1 {
- static u8 i=0,j=0,k=0;
- static u16 pc=0; //字符串指针
- TH0 = T1ms >> 8;
- TL0 = T1ms;
- //共阴(*AS)
- /*
- X = 0x00;
- Y = ~vram[i];
- X = (1 << i);
- */
-
- //共阳(*BS)
- X = 0xFF;
- Y = vram[i];
- X = ~(1 << i);
- if(++i >= 8){
- i = 0;
- if(++j >= 8){ //值越小滚动越快
- j = 0;
- left(word[text[pc]*8+k]);
- if(++k >= 8){
- k=0;
- if(!text[++pc]){
- pc=0;
- }
- }
- }
- }
- }
复制代码 |