Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Revision 0:f89c213df477, committed 2021-12-16
- Comitter:
- cspista
- Date:
- Thu Dec 16 12:47:42 2021 +0000
- Commit message:
- Final version;
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bitmap.h Thu Dec 16 12:47:42 2021 +0000 @@ -0,0 +1,157 @@ +#ifndef BITMAP_H +#define BITMAP_H + + +/////////////////////////////////////////////////////////////////////////////////////////////////// +const unsigned char BMP[768] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xF0, + 0xF8, 0xF8, 0xFC, 0xFC, 0xFC, 0xFC, 0xF8, 0xF0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xF0, 0xF8, 0xF8, 0xFC, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xF0, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x3C, 0x7C, 0x7C, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, + 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xF8, 0xF8, 0xF8, 0xF0, 0xF0, + 0xE0, 0xE0, 0xC0, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x3F, 0x3F, 0x3F, + 0x3F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x3F, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x3F, 0x7F, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0xCF, 0x8F, 0x0F, + 0x0F, 0x0F, 0x0F, 0x0F, 0x1F, 0x1F, 0x3F, 0x3F, 0x7F, 0xFF, 0xFF, 0xC1, 0xC0, 0x80, 0x80, 0xC0, + 0xE0, 0xF0, 0xFF, 0x7F, 0x7F, 0x7F, 0x7F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFE, 0xFE, 0xFE, 0xFE, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xF8, 0x78, 0x78, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, + 0x03, 0x03, 0x87, 0x87, 0xC7, 0xC7, 0xE7, 0xEF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x7F, 0x3E, 0x1E, 0x1E, 0x0E, 0x0E, 0x0E, 0x06, 0x86, 0xEF, 0xFF, 0xFF, 0xFF, 0xDF, 0x0F, 0x0F, + 0x0F, 0x1C, 0x1C, 0x3C, 0x78, 0xF8, 0xF8, 0xF8, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFE, 0xFE, 0x7F, + 0x7F, 0x7F, 0x7F, 0x7F, 0xFF, 0xFF, 0xFF, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x3F, 0x3F, 0x1F, 0x1F, + 0x0F, 0x0F, 0x07, 0x07, 0x03, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xE0, 0xF0, 0xFC, + 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFC, 0xF8, 0xFC, 0xFC, 0xFC, 0xFE, 0xFE, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, + 0xFC, 0xF8, 0xF0, 0xF0, 0xF0, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, + 0xFE, 0xFC, 0xF0, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xF8, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x7F, 0x7F, 0x7F, 0x3F, 0x3F, 0x3F, 0x3F, 0x1F, 0x1F, + 0x1F, 0x0F, 0x0F, 0x07, 0x07, 0x03, 0x03, 0x01, 0x00, 0x00, 0x01, 0x07, 0x0F, 0x1F, 0x3F, 0x3F, + 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x07, 0x07, 0x0F, 0x0F, 0x0F, 0x1F, 0x1F, 0x3F, 0x3F, + 0x3F, 0x7F, 0x3F, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + + +const unsigned char FONT[] = { // ASCII + 0x00,0x00,0x00,0x00,0x00, // - - + 0x00,0x00,0x5F,0x00,0x00, // -!- + 0x00,0x07,0x00,0x07,0x00, // -"- + 0x14,0x7F,0x14,0x7F,0x14, // -#- + 0x24,0x2E,0x7B,0x2A,0x12, // -$- + 0x23,0x13,0x08,0x64,0x62, // -%- + 0x36,0x49,0x56,0x20,0x50, // -&- + 0x00,0x04,0x03,0x01,0x00, // -'- + 0x00,0x1C,0x22,0x41,0x00, // -(- + 0x00,0x41,0x22,0x1C,0x00, // -)- + 0x22,0x14,0x7F,0x14,0x22, // -*- + 0x08,0x08,0x7F,0x08,0x08, // -+- + 0x40,0x30,0x10,0x00,0x00, // -,- + 0x08,0x08,0x08,0x08,0x08, // --- + 0x00,0x60,0x60,0x00,0x00, // -.- + 0x20,0x10,0x08,0x04,0x02, // -/- + 0x3E,0x51,0x49,0x45,0x3E, // -0- + 0x00,0x42,0x7F,0x40,0x00, // -1- + 0x62,0x51,0x49,0x49,0x46, // -2- + 0x21,0x41,0x49,0x4D,0x33, // -3- + 0x18,0x14,0x12,0x7F,0x10, // -4- + 0x27,0x45,0x45,0x45,0x39, // -5- + 0x3C,0x4A,0x49,0x49,0x31, // -6- + 0x01,0x71,0x09,0x05,0x03, // -7- + 0x36,0x49,0x49,0x49,0x36, // -8- + 0x46,0x49,0x49,0x29,0x1E, // -9- + 0x00,0x36,0x36,0x00,0x00, // -:- + 0x40,0x36,0x36,0x00,0x00, // -;- + 0x08,0x14,0x22,0x41,0x00, // -<- + 0x14,0x14,0x14,0x14,0x14, // -=- + 0x00,0x41,0x22,0x14,0x08, // ->- + 0x02,0x01,0x59,0x05,0x02, // -?- + 0x3E,0x41,0x5D,0x55,0x5E, // -@- + 0x7C,0x12,0x11,0x12,0x7C, // -A- + 0x7F,0x49,0x49,0x49,0x36, // -B- + 0x3E,0x41,0x41,0x41,0x22, // -C- + 0x7F,0x41,0x41,0x41,0x3E, // -D- + 0x7F,0x49,0x49,0x49,0x41, // -E- + 0x7F,0x09,0x09,0x09,0x01, // -F- + 0x3E,0x41,0x51,0x51,0x72, // -G- + 0x7F,0x08,0x08,0x08,0x7F, // -H- + 0x00,0x41,0x7F,0x41,0x00, // -I- + 0x20,0x40,0x41,0x3F,0x01, // -J- + 0x7F,0x08,0x14,0x22,0x41, // -K- + 0x7F,0x40,0x40,0x40,0x40, // -L- + 0x7F,0x02,0x0C,0x02,0x7F, // -M- + 0x7F,0x04,0x08,0x10,0x7F, // -N- + 0x3E,0x41,0x41,0x41,0x3E, // -O- + 0x7F,0x09,0x09,0x09,0x06, // -P- + 0x3E,0x41,0x51,0x21,0x5E, // -Q- + 0x7F,0x09,0x19,0x29,0x46, // -R- + 0x26,0x49,0x49,0x49,0x32, // -S- + 0x01,0x01,0x7F,0x01,0x01, // -T- + 0x3F,0x40,0x40,0x40,0x3F, // -U- + 0x1F,0x20,0x40,0x20,0x1F, // -V- + 0x7F,0x20,0x18,0x20,0x7F, // -W- + 0x63,0x14,0x08,0x14,0x63, // -X- + 0x03,0x04,0x78,0x04,0x03, // -Y- + 0x61,0x51,0x49,0x45,0x43, // -Z- + 0x7F,0x7F,0x41,0x41,0x00, // -[- + 0x02,0x04,0x08,0x10,0x20, // -\- + 0x00,0x41,0x41,0x7F,0x7F, // -]- + 0x04,0x02,0x7F,0x02,0x04, // -^- + 0x08,0x1C,0x2A,0x08,0x08, // -_- + 0x00,0x00,0x01,0x02,0x04, // -`- + 0x24,0x54,0x54,0x38,0x40, // -a- + 0x7F,0x28,0x44,0x44,0x38, // -b- + 0x38,0x44,0x44,0x44,0x08, // -c- + 0x38,0x44,0x44,0x28,0x7F, // -d- + 0x38,0x54,0x54,0x54,0x08, // -e- + 0x08,0x7E,0x09,0x09,0x02, // -f- + 0x98,0xA4,0xA4,0xA4,0x78, // -g- + 0x7F,0x08,0x04,0x04,0x78, // -h- + 0x00,0x00,0x79,0x00,0x00, // -i- + 0x00,0x80,0x88,0x79,0x00, // -j- + 0x7F,0x10,0x28,0x44,0x40, // -k- + 0x00,0x41,0x7F,0x40,0x00, // -l- + 0x78,0x04,0x78,0x04,0x78, // -m- + 0x04,0x78,0x04,0x04,0x78, // -n- + 0x38,0x44,0x44,0x44,0x38, // -o- + 0xFC,0x24,0x24,0x24,0x18, // -p- + 0x18,0x24,0x24,0x24,0xFC, // -q- + 0x04,0x78,0x04,0x04,0x08, // -r- + 0x48,0x54,0x54,0x54,0x24, // -s- + 0x04,0x3F,0x44,0x44,0x24, // -t- + 0x3C,0x40,0x40,0x3C,0x40, // -u- + 0x1C,0x20,0x40,0x20,0x1C, // -v- + 0x3C,0x40,0x3C,0x40,0x3C, // -w- + 0x44,0x28,0x10,0x28,0x44, // -x- + 0x9C,0xA0,0xA0,0x90,0x7C, // -y- + 0x44,0x64,0x54,0x4C,0x44, // -z- + 0x08,0x36,0x41,0x00,0x00, // -{- + 0x00,0x00,0x77,0x00,0x00, // -|- + 0x00,0x00,0x41,0x36,0x08, // -}- + 0x08,0x04,0x08,0x10,0x08, // -~- + 0x55,0x2A,0x55,0x2A,0x55, // -- +}; + +#endif \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Thu Dec 16 12:47:42 2021 +0000 @@ -0,0 +1,163 @@ +#include "mbed.h" +#include "bitmap.h" + +#define NOP 0x00 +#define Function_Set 0x20 +#define Display_Control 0x08 +#define Set_Y_Address 0x40 +#define Set_X_Address 0x80 +#define Set_V0 0x80 +#define Set_Test_Mode 0x30 + +DigitalOut SCK_pin(D13); // SPI clock +DigitalOut SDI_pin(D11); // SPI MOSI +DigitalOut DC_pin(D10); // Data/command selector +DigitalOut RST_pin(D9); // HW Reset +DigitalOut CS_pin(D8); // SPI chip select + + +void LCDShiftWrite(unsigned char dat) +{ + unsigned char i; + unsigned char Series,Temp; + SCK_pin = false; + Series = dat; + for(i=0; i<8; i++) { + SCK_pin = false; + Temp=Series & 0x80; + if(Temp) { + SDI_pin = true; + } else { + SDI_pin = false; + } + SCK_pin = true; + Series = Series << 1; + } +} + + +void send_cmd(unsigned char cmd, unsigned char dat) +{ + DC_pin = false; //digitalWrite(RSX,LOW); + CS_pin = false; //digitalWrite(CSX,LOW); + LCDShiftWrite(cmd|dat); + CS_pin = true; //digitalWrite(CSX,HIGH); + DC_pin = true; //digitalWrite(RSX,HIGH); +} + +void send_dat(unsigned char dat) +{ + DC_pin = true; //digitalWrite(RSX,HIGH); + CS_pin = false; //digitalWrite(CSX,LOW); + LCDShiftWrite(dat); + CS_pin = true; //digitalWrite(CSX,HIGH); +} + + +void LCDInit() +{ + RST_pin = false; //digitalWrite(RESX,LOW); + wait_ms(10); + RST_pin = true; //digitalWrite(RESX,HIGH); + wait_ms(100); + send_cmd(Function_Set,0x01); + send_cmd(Set_V0,0x20); + send_cmd(Set_Test_Mode,0x02); + send_cmd(Function_Set,0x00); + send_cmd(Display_Control,0x04); +} + +void LCD_set_XY(unsigned char x,unsigned char y) +{ + send_cmd(Set_X_Address,x); + send_cmd(Set_Y_Address,y); +} + +void cls(void) +{ + int i; + send_cmd(Set_X_Address,0); + send_cmd(Set_Y_Address,0); + for(i=0; i<960; i++) + send_dat(0x00); + send_cmd(Set_X_Address,0); + send_cmd(Set_Y_Address,0); +} + +void putch(unsigned char x, unsigned char y, unsigned int ch) +{ + unsigned char i; + send_cmd(Set_X_Address,x); + send_cmd(Set_Y_Address,y); + for(i=0; i<5; i++) + send_dat(FONT[(ch-0x20)*5+i]); +} + +void putstr(unsigned char x, unsigned char y, char *str) +{ + while(*str!=0) { + putch(x,y,*str++); + x=x+6; + } +} + +void SHOW_BMP() +{ + unsigned int i,j,n=0; + for(i=0; i<8; i++) { + for(j=0; j<96; j++) { + send_cmd(Set_Y_Address,7-i); + send_cmd(Set_X_Address,j); + send_dat(BMP[n++]); + } + } +} + +void SHOW_ICO() +{ + unsigned char i; + for(i=0; i<96; i++) { + send_cmd(Set_Y_Address,8); + send_cmd(Set_X_Address,i); + send_dat(0xFF); + } +} + +void SHOW_LINE() +{ + unsigned int i,j; + const unsigned char line[8] = { + 0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80 + }; + for(i=0; i<8; i++) { + send_cmd(Set_Y_Address,7-i); + for(j=0; j<8; j++) { + send_cmd(Set_X_Address,j+8*i); + send_dat(line[j]); + } + } +} + +int main() +{ + + LCDInit(); + + + while(1) { + SHOW_ICO(); + putstr(30,5,"ST7585"); + putstr(15,3,"96*64 GLCD"); + putstr(10,1,"ARM Mbed demo"); + wait_ms(5000); + cls(); + SHOW_LINE(); + wait_ms(5000); + cls(); + + SHOW_BMP(); + wait_ms(5000); + cls(); + } +} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Thu Dec 16 12:47:42 2021 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/users/mbed_official/code/mbed/builds/65be27845400 \ No newline at end of file