基于单片机的LED16x16点阵显示
#include #include unsigned char code FONT16x16[3][32] {0xEF 0xFB 0xEE 0x01 0xEE 0xEF 0xEE 0xEF 0x02 0xEB 0xDA 0x81 0xDA 0xBB 0xDA 0xBB 0xDA 0xBB 0xBA 0xBB 0xD6 0x83 0xEE 0xEF 0xD6 0xEF 0xBA 0xEB 0x7A 0x01 0xFF 0xFF } {0xFE 0xFF 0xEE 0xFF 0xEE 0xFF 0xEE 0xF7 0xC0 0x03 0xDE 0xFF 0xBE 0xFF 0xBE 0xFF 0x7E 0xEF 0xC0 0x07 0xFE 0xFF 0xFE 0xFF 0xFE 0xFF 0xFE 0xFB 0x00 0x01 0xFF 0xFF } {0xFE 0xFF 0xFE 0xFF 0xFD 0x7F 0xFB 0xBF 0xF7 0xDF 0xEF 0xAF 0xD0 0x11 0x3E 0xFB 0xFE 0xFF 0xFE 0xBF 0 xF0 0x1F 0xFE 0xFF 0xFE 0xFF 0xFE 0xF7 0x80 0x03 0xFF 0xFF } sbit SDI P2^1; sbit SRCLK P2^0; sbit RCLK P2^2; #define LineCtrl P1 void delay unsigned int us { while us ; } void SendByte unsigned char dat { unsigned char i; for i 0;i<8;i++ { SRCLK 0; if dat&0x80 SDI 1; else SDI 0; SRCLK 1; dat dat<<1; } } void Display unsigned char dat1 unsigned char dat2 unsigned char dat3 { unsigned char i; for i 0;i<16;i++ { SendByte dat3[2 i+1] ; SendByte dat3[2 i] ; SendByte dat2[2 i+1] ; SendByte dat2[2 i] ; SendByte dat1[2 i+1] ; SendByte dat1[2 i] ; RCLK 0; nop ; nop ; nop ; nop ; LineCtrl i; RCLK 1; delay 100 ; } } void main void { while 1 Display FONT16x16[0] FONT16x16[1] FONT16x16[2] ; }">#include #include unsigned char code FONT16x16[3][32] {0xEF 0xFB 0xEE 0x01 0xEE 0xEF 0xEE 0xEF 0x02 0xEB 0xDA 0x81 0xDA 0xBB 0xDA 0xBB 0xDA 0xBB 0xBA 0xBB 0xD6 0x83 0xEE 0xEF 0xD6 0xEF 0xBA 0xEB 0x7A 0x01 0xFF 0xFF } {0xFE 0xFF 0xEE 0xFF 0xEE 0xFF 0xEE 0xF7 0xC0 0x [更多]
用户评论