#include #include "display.h" #include "delay.h" // DB P1 // CTL P3 sbit RS = P3 ^ 0; sbit RW = P3 ^ 1; sbit E = P3 ^ 2; sbit CSA = P3 ^ 4; sbit CSB = P3 ^ 5; const unsigned char Z[] = { 0x10, 0x60, 0x02, 0x0C, 0xC0, 0x04, 0x04, 0x04, 0x04, 0xFC, 0x04, 0x04, 0x04, 0x04, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x20, 0x24, 0x24, 0xA4, 0xFE, 0x23, 0x22, 0x20, 0x00, 0xF8, 0x08, 0x08, 0x08, 0xF8, 0x00, 0x00, }; const unsigned char Z2[] = { 0x04, 0x04, 0x7C, 0x03, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3F, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x08, 0x06, 0x01, 0xFF, 0x01, 0x06, 0x00, 0x00, 0x3F, 0x10, 0x10, 0x10, 0x3F, 0x00, 0x00 }; void write() { RW=0; E = 0; E = 1; delay(2); E = 0; } void writeData(unsigned char d) { RS = 1; RW = 0; P1 = d; } void setCommand(unsigned char d) { RS = 0; RW = 0; P1 = d; } void setPage(unsigned char p) { setCommand(0xb8 + p); } void setLine(unsigned char p) { setCommand(0xc0 + p); } void setY(unsigned char p) { setCommand(0x40 + p); } void name(unsigned int line) { unsigned int j; CSA = 1; CSB = 0; RS = 0; RW = 0; P1 = 0xb8 + 0; write(); P1 = 0X40; write(); for(j=0; j < 48; j++) { RS = 1; RW = 0; P1 = Z[j%48]; write(); } RS = 0; RW = 0; P1 = 0xb8 + 1; write(); P1 = 0X40; write(); for(j=0; j < 48; j++) { RS = 1; RW = 0; P1 = Z2[j%48]; write(); } CSA = 0; CSB = 1; RS = 0; RW = 0; P1 = 0xb8 + line; write(); P1 = 0X40; write(); for(j=0; j < 48; j++) { RS = 1; RW = 0; P1 = Z[j%48]; write(); } RS = 0; RW = 0; P1 = 0xb8 + 1; write(); P1 = 0X40; write(); for(j=0; j < 48; j++) { RS = 1; RW = 0; P1 = Z2[j%48]; write(); } } void clear() { unsigned int i, j; CSA = 1; CSB = 0; for(i = 0; i < 8; i++) { RS = 0; RW = 0; P1 = 0xb8 + i; write(); P1 = 0X40; write(); for(j = 0; j < 64; j++) { RS = 1; RW = 0; P1 = 0x00;; write(); } } CSA = 0; CSB = 1; for(i = 0; i < 8; i++) { RS = 0; RW = 0; P1 = 0xb8 + i; write(); P1 = 0X40; write(); for(j = 0; j < 64; j++) { RS = 1; RW = 0; P1 = 0x00; write(); } } } void init() { E = 0; RS=1; CSA = 1; CSB = 0; RS = 0; P1 = 0X3F; write(); CSA = 0; CSB = 1; RS = 0; P1 = 0XFF; write(); } void test() { unsigned int i, j; CSA = 1; CSB = 0; for(i = 0; i < 8; i++) { RS = 0; RW = 0; P1 = 0xb8 + i; write(); P1 = 0X40; write(); for(j = 0; j < 64; j++) { RS = 1; RW = 0; P1 = 0x55; write(); } } CSA = 0; CSB = 1; for(i = 0; i < 8; i++) { RS = 0; RW = 0; P1 = 0xb8 + i; write(); P1 = 0X40; write(); for(j = 0; j < 64; j++) { RS = 1; RW = 0; P1 = 0x55;; write(); } } }