Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <SPI.h>
- const byte CS = 7;
- const byte DTA = 11;
- const byte CLK = 13;
- const byte RS = 9;
- const byte RESET = 8;
- int sensorValue = 0;
- unsigned int init_1[20]=
- {
- 0xEF, 0x00, 0xEE, 0x04, 0x1B, 0x04, 0xFE, 0xFE,
- 0xFE, 0xFE, 0xEF, 0x90, 0x4A, 0x04, 0x7F, 0x3F,
- 0xEE, 0x04, 0x43, 0x06};
- unsigned int init_2[40]=
- {
- 0xEF, 0x90, 0x09, 0x83, 0x08, 0x00, 0x0B, 0xAF,
- 0x0A, 0x00, 0x05, 0x00, 0x06, 0x00, 0x07, 0x00,
- 0xEF, 0x00, 0xEE, 0x0C, 0xEF, 0x90, 0x00, 0x80,
- 0xEF, 0xB0, 0x49, 0x02, 0xEF, 0x00, 0x7F, 0x01,
- 0xE1, 0x81, 0xE2, 0x02, 0xE2, 0x76, 0xE1, 0x83};
- unsigned int init_3[6]=
- {
- 0x80, 0x01, 0xEF, 0x90, 0x00, 0x00};
- unsigned int off_sequence[52]=
- {
- 0xEF, 0x00, 0x7E, 0x04, 0xEF, 0xB0, 0x5A, 0x48,
- 0xEF, 0x00, 0x7F, 0x01, 0xEF, 0xB0, 0x64, 0xFF,
- 0x65, 0x00, 0xEF, 0x00, 0x7F, 0x01, 0xE2, 0x62,
- 0xE2, 0x02, 0xEF, 0xB0, 0xBC, 0x02, 0xEF, 0x00,
- 0x7F, 0x01, 0xE2, 0x00, 0x80, 0x00, 0xE2, 0x04,
- 0xE2, 0x00, 0xE1, 0x00, 0xEF, 0xB0, 0xBC, 0x00,
- 0xEF, 0x00, 0x7F, 0x01};
- void initialization() {
- digitalWrite(RESET, LOW);
- digitalWrite(CS, HIGH);
- digitalWrite(RS, HIGH);
- delay(3);
- digitalWrite(RESET, HIGH);
- delay(1);
- digitalWrite(CS, LOW);
- for(int i = 0; i < 4; i++)
- {
- SPI.transfer(0xFD); // send pre-init code
- }
- for(int i = 0; i < 20; i++)
- {
- SPI.transfer(init_1[i]); // send first init table
- }
- delay(7); // wait 7 ms
- for(int i = 0; i < 40; i++)
- {
- SPI.transfer(init_2[i]);
- }
- delay(50);
- for(int i = 0; i < 6; i++)
- {
- SPI.transfer(init_3[i]);
- }
- digitalWrite(CS, HIGH);
- }
- void power_off() {
- digitalWrite(RESET, LOW);
- digitalWrite(CS, HIGH);
- digitalWrite(RS, HIGH);
- delay(3);
- digitalWrite(RESET, HIGH);
- delay(1);
- digitalWrite(CS, LOW);
- for(int i = 0; i < 52; i++)
- {
- SPI.transfer(off_sequence[i]);
- }
- digitalWrite(CS, HIGH);
- }
- void cmd_send(int cmd) {
- digitalWrite(RS, HIGH);
- digitalWrite(CS, LOW);
- SPI.transfer(cmd);
- digitalWrite(CS, HIGH);
- }
- void data_send(int data) {
- digitalWrite(RS, LOW);
- digitalWrite(CS, LOW);
- SPI.transfer(data);
- digitalWrite(CS, HIGH);
- }
- void display_off() {
- cmd_send(0xEF90);
- cmd_send(0x0040);
- }
- void display_on() {
- cmd_send(0xEF90);
- cmd_send(0x0000);
- }
- void _8bit_mode() {
- cmd_send(0xE840);
- }
- void _16bit_mode() {
- cmd_send(0xEF90);
- cmd_send(0xE80F);
- }
- void _65k_color_mode() {
- cmd_send(0x0400);
- cmd_send(0x0000);
- }
- void set_window(int x1, int y1, int x2, int y2) {
- cmd_send(0x0500);
- cmd_send(0x0A00+x1);
- cmd_send(0x0B00+x2);
- cmd_send(0x0800+y1);
- cmd_send(0x0900+y2);
- }
- void rectangle(int x1, int y1, int x2, int y2, int color) {
- set_window(x1,y1,x2,y2);
- for(int y = y1; y <= y2; y++)
- {
- for(int x = x1; x <= x2; x++)
- {
- data_send(color);
- }
- }
- }
- void scroll() {
- cmd_send(0xEF90);
- cmd_send(0x11A5);
- }
- void clrscr() {
- cmd_send(0xEF90);
- cmd_send(0x0500);
- cmd_send(0x0600);
- cmd_send(0x0700);
- for(int i = 0; i < 132*176; i++)
- data_send(0xFF);
- }
- void fill_screen(int color) {
- cmd_send(0xEF90);
- cmd_send(0x0504);
- cmd_send(0x0600);
- cmd_send(0x0700);
- for(int i = 0; i < 132*176; i++)
- data_send(color);
- }
- void setup() {
- pinMode(CS, OUTPUT);
- pinMode(RS, OUTPUT);
- pinMode(RESET, OUTPUT);
- SPI.setBitOrder(MSBFIRST);
- SPI.setClockDivider(SPI_CLOCK_DIV8);
- SPI.begin();
- initialization();
- fill_screen(120);
- }
- void loop() {
- }
Advertisement
Add Comment
Please, Sign In to add comment