feat: add STM32 four-channel weighing firmware

This commit is contained in:
FinleyHsu
2026-07-28 11:01:55 +08:00
commit 1282b9b77e
205 changed files with 80376 additions and 0 deletions
@@ -0,0 +1,216 @@
#ifndef __BMP_H__
#define __BMP_H__
u8 BMP1[]={
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,0x80,0x18,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x78,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF3,0xF8,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xC0,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xF8,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xF8,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x18,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x78,
0x00,0x00,0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x18,
0x00,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,0x00,0x00,0xCF,0x98,
0x00,0x00,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0xC6,0x18,
0x00,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0x01,0xFF,0xF0,0x00,0x00,0x00,0x00,0xFF,0xF8,
0x00,0x01,0xFF,0xFF,0xFF,0xFF,0xFE,0x00,0x1F,0xFE,0x00,0x00,0x00,0x00,0xFF,0xF8,
0x00,0x07,0xFF,0xFF,0xFF,0xFF,0xFE,0x00,0x03,0xFF,0xC0,0x00,0x00,0x00,0x80,0x08,
0x00,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xF8,0x00,0x00,0x00,0x78,0x00,
0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0x80,0x00,0x3F,0xFF,0x00,0x00,0x00,0xE0,0x00,
0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC0,0x00,0x0F,0xFF,0xC0,0x00,0x00,0xC0,0x18,
0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE0,0x00,0x07,0xFF,0xF8,0x00,0x00,0xFF,0xF8,
0x07,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x00,0x01,0xFF,0xFE,0x00,0x00,0xFF,0xF8,
0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0x00,0x00,0xFF,0xFF,0x80,0x00,0xC0,0x18,
0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC0,0x00,0x7F,0xFF,0xE0,0x00,0xF8,0x00,
0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,0x00,0x3F,0xFF,0xF8,0x00,0x00,0x00,
0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x1F,0xFF,0xFC,0x00,0xFF,0xF8,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,0x1F,0xFF,0xFF,0x00,0xFF,0xF8,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x80,0x87,0xE0,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC0,0x7E,0x00,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE0,0xF8,0x18,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE0,0xFF,0xF8,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC0,0x80,0x08,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x80,0x10,0xE0,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,0x1F,0xFF,0xFF,0x00,0xF0,0x38,
0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x1F,0xFF,0xFE,0x00,0xCF,0x98,
0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,0x00,0x3F,0xFF,0xF8,0x00,0xC6,0x18,
0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC0,0x00,0x7F,0xFF,0xE0,0x00,0xC6,0x18,
0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0x00,0x00,0x7F,0xFF,0x80,0x00,0xFF,0xF8,
0x07,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x00,0x01,0xFF,0xFE,0x00,0x00,0xC0,0x18,
0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE0,0x00,0x03,0xFF,0xF0,0x00,0x00,0x00,0x00,
0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC0,0x00,0x0F,0xFF,0xC0,0x00,0x00,0xC0,0x18,
0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0x80,0x00,0x3F,0xFE,0x00,0x00,0x00,0xFF,0xF8,
0x00,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xF0,0x00,0x00,0x00,0xFF,0xF8,
0x00,0x07,0xFF,0xFF,0xFF,0xFF,0xFE,0x00,0x03,0xFF,0xC0,0x00,0x00,0x00,0xC0,0x18,
0x00,0x03,0xFF,0xFF,0xFF,0xFF,0xFE,0x00,0x3F,0xFC,0x00,0x00,0x00,0x00,0x00,0xF0,
0x00,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0x03,0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,0x38,
0x00,0x00,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x18,
0x00,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,0xC0,0x18,
0x00,0x00,0x00,0x0F,0xFF,0xFF,0xFF,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xF8,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x18,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF8,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xD8,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF1,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x88,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xF8,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,
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
};
u8 BMP2[]={
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE0,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC0,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x80,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x80,0x00,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x80,0x00,0x00,0x1F,0xFF,0xFF,0xFF,0xFF,0xFE,0x07,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0x00,0x00,0x00,0x1F,0xFF,0xFF,0xFF,0xFF,0xC0,0x01,
0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,0x00,0x00,0x00,0x1F,0xFF,0xFF,0xFC,0x1C,0x00,0x00,
0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x1F,0xFF,0xFF,0xE0,0x00,0x00,0x00,
0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x1F,0xFF,0xFF,0xE0,0x00,0x00,0x00,
0xFF,0xFF,0xFF,0xFE,0x00,0x00,0x00,0x00,0x00,0x1F,0xFF,0xFF,0xC0,0x00,0x00,0x00,
0xFF,0xFF,0xFF,0xE0,0x00,0x00,0x00,0x00,0x00,0x1F,0xFF,0xF8,0x00,0x00,0x00,0x00,
0xFF,0xFF,0xFF,0xC0,0x00,0x00,0x07,0x00,0x00,0x3F,0xFF,0x00,0x00,0x00,0x3F,0xC3,
0xFF,0xFF,0xFF,0x00,0x00,0x00,0x1F,0x80,0x00,0x3F,0xF8,0x00,0x00,0x03,0xFF,0xFF,
0xFF,0xFF,0xFF,0x00,0x00,0x00,0x3F,0x80,0x00,0x7F,0xE0,0x00,0x00,0x0F,0xFF,0xFF,
0xFF,0xFF,0xFE,0x00,0x00,0x00,0xFF,0xC0,0x00,0x7F,0x80,0x00,0x00,0x1F,0xFF,0xFF,
0xFF,0xFF,0xFC,0x00,0x00,0x1F,0xFF,0xC0,0x00,0xFE,0x00,0x00,0x03,0xFF,0xFF,0xFF,
0xF0,0x7F,0xFC,0x00,0x00,0x1F,0xFF,0xE0,0x01,0xFE,0x00,0x00,0x07,0xF8,0x00,0x7F,
0xC0,0x0F,0xFC,0x00,0x03,0xFF,0xFF,0xF8,0x03,0xF8,0x00,0x00,0x1F,0xE0,0x00,0x7F,
0x80,0x03,0xF8,0x00,0x0F,0xFF,0xFF,0xFF,0x1E,0x00,0x00,0x00,0x1F,0xC0,0x00,0x7F,
0x80,0x01,0xF0,0x00,0x0F,0xFF,0xFF,0xFF,0xF0,0x00,0x00,0x00,0x3F,0x80,0x00,0x7F,
0x00,0x00,0xF0,0x00,0x07,0xFF,0xFF,0xC0,0x00,0x00,0x00,0x00,0x7F,0x80,0x07,0xFF,
0x00,0x00,0x60,0x00,0x07,0xFF,0xFC,0x00,0x00,0x00,0x00,0x00,0x7F,0x03,0xC7,0xFF,
0x00,0x00,0x00,0x00,0x01,0xFF,0xE0,0x00,0x00,0x00,0x00,0x00,0xFF,0x80,0x07,0xFF,
0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x00,0x00,0x00,0x00,0x01,0xFF,0x80,0x00,0x7F,
0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x01,0xFF,0xC0,0x00,0x7F,
0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x01,0xFF,0xE0,0x00,0x7F,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xFF,0xF8,0x00,0x7F,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xFF,0xFF,0xFF,0xFF,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xFF,0xFF,0xFF,
0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xFF,0x01,0x00,0x7F,
0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xFF,0x00,0x00,0x7F,
0xFE,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xFF,0x00,0x00,0x7F,
0xFF,0xFF,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xFF,0x04,0x00,0x7F,
0xFF,0xFF,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x0C,0x38,0x7F,
0xFF,0xFF,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x0C,0x78,0x7F,
0xFF,0xFF,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFF,0xFF,0x00,0x00,0x7F,
0xFF,0xFF,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xFF,0xFF,0x00,0x00,0x7F,
0xFF,0xFF,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xFF,0x00,0x00,0x7F,
0xFF,0xFF,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xFF,0xFF,0x00,0x00,0x7F,
0xFF,0xFF,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xFF,0xFF,0x00,0x00,0x7F,
0xFF,0xFF,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xFF,0xFF,0xFF,0x00,0x00,0x7F,
0xFF,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xFF,0xFF,0xFF,0x00,0x00,0x7F,
0xFF,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xFF,0xFF,0xFF,0x00,0x00,0x7F,
0xFF,0xFF,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xFF,0xFF,0xFF,0xFE,0x00,0x7F,
0xFF,0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xFF,0xFF,0xFF,0xF8,0x01,0xFF,
0xFF,0xFF,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xFF,0xFF,0xFF,0xC0,0x0F,0xFF,
0xFF,0xFF,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xFF,0xFF,0xFF,0x00,0x1F,0xFF,
0xFF,0xFF,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xFF,0xFF,0xFF,0x00,0x00,0x7F,
0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x03,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x7F,
0xFF,0xFF,0xFF,0xC0,0x00,0x00,0x00,0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x7F,
0xFF,0xFF,0xFF,0xF0,0x00,0x00,0x80,0x00,0x1F,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x7F,
0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xC0,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0x80,0x00,0xE0,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xC0,0x00,0xFE,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xE0,0x01,0xFE,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xF8,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
};
u8 BMP3[]={
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,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x80,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x1F,0xFF,0xFF,0xF0,0x3F,0x00,0x00,0x0F,0xE0,0x00,0x00,0x00,
0x00,0x00,0x00,0x07,0xFF,0x80,0x00,0x39,0xE1,0xD8,0x00,0x00,0x78,0x00,0x00,0x00,
0x00,0x00,0x00,0x7F,0x80,0x05,0xF0,0x00,0x00,0x01,0xC0,0x00,0x1E,0x00,0x00,0x00,
0x00,0x00,0x03,0xF0,0x00,0x00,0x00,0x0B,0xFF,0xA0,0x1C,0x00,0x07,0x80,0x00,0x00,
0x00,0x00,0x0F,0x86,0x03,0xFF,0xFF,0x80,0x00,0x03,0x81,0x80,0x03,0xC0,0x00,0x00,
0x00,0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0xA0,0xE0,0x18,0x30,0x00,0xE0,0x00,0x00,
0x00,0x00,0xF0,0x00,0x1F,0xC0,0x00,0x00,0x40,0x03,0xC3,0x0C,0x00,0x70,0x00,0x00,
0x00,0x01,0xE0,0x01,0x80,0x01,0x00,0x00,0x80,0x00,0x1C,0x41,0x00,0x38,0x00,0x00,
0x00,0x01,0xC0,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x03,0x10,0x40,0x38,0x00,0x00,
0x00,0x01,0xC0,0x08,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0xC4,0x00,0x1C,0x00,0x00,
0x00,0x01,0x80,0x00,0x00,0x03,0x00,0x00,0x00,0x7E,0x00,0x20,0x00,0x0E,0x00,0x00,
0x00,0x03,0x80,0x00,0x00,0x01,0x00,0x00,0x1F,0xFF,0xF8,0x00,0x00,0x07,0x00,0x00,
0x00,0x07,0x00,0x00,0xFF,0x80,0x00,0x00,0x7C,0x3F,0xFF,0x00,0x00,0x03,0xC0,0x00,
0x00,0x1E,0x00,0x07,0xFF,0xF8,0x00,0x01,0xE0,0x3F,0xFB,0xC0,0x00,0x01,0xF0,0x00,
0x00,0x78,0x3F,0xEF,0xFF,0xFE,0x00,0x07,0x81,0xFF,0xFF,0xE3,0x80,0x3F,0xF8,0x00,
0x00,0xF1,0x00,0x00,0xFF,0xFF,0xF8,0x07,0x1F,0xE0,0x0F,0xC8,0x00,0x00,0x5E,0x00,
0x01,0xC4,0x00,0x00,0x00,0x1F,0xE0,0x03,0xFC,0x07,0x00,0x00,0x3F,0xF0,0x37,0x00,
0x01,0x91,0x80,0x00,0x00,0x03,0x80,0x00,0xE0,0x03,0xC0,0x03,0xFF,0xFC,0x0B,0x80,
0x03,0xA2,0x3F,0xE0,0x00,0x03,0x80,0x00,0x00,0x01,0xF8,0x7F,0xC0,0x0F,0x09,0xC0,
0x03,0xA2,0xF8,0xF8,0x60,0x03,0x80,0x00,0x00,0x00,0x3F,0xF8,0x06,0x03,0x84,0xE0,
0x03,0x84,0x00,0x3F,0xE0,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x01,0x84,0x60,
0x03,0xA4,0x01,0x0F,0x80,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x01,0xC4,0x60,
0x03,0xA6,0x03,0x80,0x00,0xF8,0x00,0x03,0xFB,0x00,0x00,0x03,0xF7,0xE1,0xC4,0x60,
0x01,0xF1,0x03,0x80,0x03,0xF0,0x00,0x00,0x3C,0xFF,0x80,0x3F,0x87,0xF9,0xC4,0x60,
0x01,0xD8,0x07,0x80,0x0F,0xF0,0x00,0x3E,0x0C,0x00,0x03,0xF8,0x07,0x01,0x88,0xE0,
0x00,0xE6,0x0F,0xC0,0x61,0x78,0x00,0xFF,0x1C,0x00,0x7F,0xE0,0x0E,0x03,0x88,0xE0,
0x00,0x70,0xCF,0xF1,0x00,0x1E,0x00,0x00,0x38,0x0F,0xF8,0xC0,0x3E,0x03,0x11,0xC0,
0x00,0x38,0x0F,0xFC,0x00,0x07,0xF0,0x00,0x03,0xFF,0x00,0xC1,0xFC,0x00,0x63,0x80,
0x00,0x38,0x1F,0xBF,0x80,0x01,0xE0,0x00,0x7F,0xE0,0x03,0xCF,0xF8,0x03,0x0F,0x00,
0x00,0x1C,0x1F,0xBB,0xFE,0x00,0x01,0xFF,0xFF,0x80,0x07,0xFE,0x70,0x00,0x7C,0x00,
0x00,0x0C,0x1F,0x38,0x7F,0xFF,0xFF,0xF8,0x03,0x80,0x7F,0xF0,0xE0,0x00,0x78,0x00,
0x00,0x0C,0x1F,0x38,0x70,0x1F,0x81,0xC0,0x01,0xC7,0xFF,0xC3,0xC0,0x00,0xE0,0x00,
0x00,0x0C,0x1F,0xF8,0x60,0x0E,0x01,0xC0,0x01,0xFF,0xF9,0x87,0x80,0x01,0xC0,0x00,
0x00,0x0C,0x0F,0xFC,0xE0,0x0E,0x01,0xC0,0x1F,0xFF,0x81,0xCE,0x00,0x03,0x80,0x00,
0x00,0x0C,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,0x00,0xFC,0x00,0x07,0x00,0x00,
0x00,0x0C,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xE0,0x00,0xF0,0x00,0x0E,0x00,0x00,
0x00,0x0C,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xC0,0xE0,0x03,0xE0,0x00,0x1C,0x00,0x00,
0x00,0x0C,0x0E,0xFF,0xFF,0xFF,0xFF,0xF8,0x00,0x70,0x0F,0x80,0x00,0x38,0x00,0x00,
0x00,0x0C,0x06,0x67,0xFF,0xFF,0xF8,0x30,0x00,0x70,0x3E,0x00,0x00,0x70,0x00,0x00,
0x00,0x0C,0x07,0x73,0x8E,0x07,0x00,0x30,0x00,0x39,0xF0,0x00,0x01,0xE0,0x00,0x00,
0x00,0x0C,0x03,0xE1,0xC7,0x03,0x80,0x30,0x00,0x1F,0xC0,0x00,0x07,0x80,0x00,0x00,
0x00,0x0C,0x01,0xF1,0xC3,0x83,0x80,0x30,0x01,0xFE,0x01,0x83,0x1F,0x00,0x00,0x00,
0x00,0x0C,0x00,0x3F,0xF3,0xC3,0x80,0x38,0xFF,0xE0,0x1C,0x18,0x7C,0x00,0x00,0x00,
0x00,0x0C,0x00,0x03,0xFF,0xFF,0xFF,0xFF,0xF8,0x00,0xE0,0xC1,0xF0,0x00,0x00,0x00,
0x00,0x1C,0x00,0x00,0x00,0x0F,0xFC,0x00,0x00,0x0E,0x0E,0x0F,0x80,0x00,0x00,0x00,
0x00,0x1C,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0xE0,0x60,0x7E,0x00,0x00,0x00,0x00,
0x00,0x1C,0x00,0x30,0x00,0x00,0x00,0x00,0x0E,0x0F,0x03,0xF0,0x00,0x00,0x00,0x00,
0x00,0x18,0x10,0x06,0x00,0x00,0x00,0x03,0xC0,0xE0,0x3F,0x80,0x00,0x00,0x00,0x00,
0x00,0x18,0x0C,0x00,0x5F,0xFF,0xDC,0x00,0xB8,0x03,0xF8,0x00,0x00,0x00,0x00,0x00,
0x00,0x18,0x03,0x80,0x00,0x00,0x00,0x78,0x00,0x1F,0x80,0x00,0x00,0x00,0x00,0x00,
0x00,0x1C,0x00,0x3F,0xFF,0xFF,0xC0,0x00,0x01,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x03,0x80,0x00,0x00,0x00,0x00,0x7F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x01,0xF0,0x00,0x00,0x00,0x1F,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x7E,0x00,0x00,0x0F,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x0F,0xFF,0xFF,0xFF,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,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};
#endif
@@ -0,0 +1,302 @@
/*************************** (C) COPYRIGHT 2017 YNHB ****************************
* 文件名 LCD_SDWe.c
* 描 述 :7寸LCD串口显示屏驱动程序
* 版 本 V1.0
* 作 者 XuZhongPing
* 日 期 2017/10/23
*********************************************************************************/
#include "SDWe_LCD.h"
#include "usart5.h"
#include "timer.h"
#include "string.h"
#include "stdlib.h"
#include "delay.h"
/*
***********************************************************************
* 函 数 名: LCD_PackProcotol
* 功能说明: LCD显示屏控制传输协议打包函数
* 形 参:
* 返 回 值: 无
***********************************************************************
*/
void SDWe_LCD_PackProcotol(uint8_t* data, uint16_t dataLen)
{
int index = 0;
uint8_t buf[128];
buf[index++] = 0xA5;
buf[index++] = 0x5A;
buf[index++] = dataLen;
if (data != NULL)
{
memcpy(&buf[index], data, dataLen);
index += dataLen;
}
UART5_Printf((uint8_t*)buf, index);
}
/*
***********************************************************************
* 函 数 名: LCD_WriteReg
* 功能说明: 写LCD寄存器
* 形 参:
* 返 回 值: 无
***********************************************************************
*/
void SDWe_LCD_WriteReg(uint8_t addr, uint8_t *data, uint8_t dataLen)
{
int index = 0;
uint8_t buf[128];
buf[index++] = 0x80;
buf[index++] = addr;
if (data != NULL)
{
memcpy(&buf[index], data, dataLen);
index += dataLen;
}
SDWe_LCD_PackProcotol(buf, index);
}
/*
***********************************************************************
* 函 数 名: LCD_WriteMem
* 功能说明: 写LCD存储器
* 形 参:
* 返 回 值: 无
***********************************************************************
*/
void SDWe_LCD_WriteMem(uint16_t addr, uint8_t *data, uint8_t dataLen)
{
int index = 0;
uint8_t buf[128];
buf[index++] = 0x82;
buf[index++] = (uint8_t)(addr >> 8); //发送变量地址
buf[index++] = (uint8_t)addr;
if (data != NULL)
{
memcpy(&buf[index], data, dataLen);
index += dataLen;
}
SDWe_LCD_PackProcotol(buf, index);
}
/*
***********************************************************************
* 函 数 名: LCD_SetBacklight
* 功能说明: 设置LCD背光亮度
* 形 参:val -> 亮度值(0x00-0x40
* 返 回 值: 无
***********************************************************************
*/
void SDWe_LCD_SetBacklight(uint8_t val)
{
SDWe_LCD_WriteReg(0x01, &val, 1); //0x01为设置背光亮度
}
/*
***********************************************************************
* 函 数 名: LCD_ConfigEN
* 功能说明: 屏参配置使能
* 形 参:val -> 亮度值(0x00-0x40
* 返 回 值: 无
***********************************************************************
*/
void SDWe_LCD_ConfigEN(uint8_t cmd)
{
static uint8_t ctrlReg;
if(cmd)
{
ctrlReg = 0x5A;
}else{
ctrlReg = 0xA5;
}
SDWe_LCD_WriteReg(0x1D, &ctrlReg, 1); //0x01为设置背光亮度
}
/*
***********************************************************************
* 函 数 名: LCD_SetDisplayPage
* 功能说明: 设置显示页面
* 形 参:page -> 高度值(0x00-0x40
* 返 回 值: 无
***********************************************************************
*/
void SDWe_LCD_SetBound(uint32_t baudrate)
{
uint8_t val;
switch(baudrate)
{
case 1200:
val = 0x00;
break;
case 9600:
val = 0x03;
break;
case 19200:
val = 0x04;
break;
case 38400:
val = 0x05;
break;
default:
val = 0x07;
}
SDWe_LCD_WriteReg(0x11, &val, 1); //0x03-0x04为设置显示页面
}
/*
***********************************************************************
* 函 数 名: LCD_SetDisplayPage
* 功能说明: 设置显示页面
* 形 参:page -> 高度值(0x00-0x40
* 返 回 值: 无
***********************************************************************
*/
void SDWe_LCD_SetDisplayPage(uint16_t page)
{
uint8_t pageBuf[2];
pageBuf[0] = (uint8_t)(page >> 8);
pageBuf[1] = (uint8_t)page;
SDWe_LCD_WriteReg(0x03, pageBuf, 2); //0x03-0x04为设置显示页面
}
/*
***********************************************************************
* 函 数 名: SDWe_LCD_ShowNum
* 功能说明: 显示数字变量
* 形 参:
* 返 回 值: 无
***********************************************************************
*/
void SDWe_LCD_ShowNum(uint16_t addr, uint32_t num)
{
uint8_t numBuf[4];
numBuf[0] = (uint8_t)(num >> 24);
numBuf[1] = (uint8_t)(num >> 16);
numBuf[2] = (uint8_t)(num >> 8);
numBuf[3] = (uint8_t)num;
SDWe_LCD_WriteMem(addr, numBuf, 4);
}
/*
***********************************************************************
* 函 数 名: LCD_ShowString
* 功能说明: 显示字符串
* 形 参:
* 返 回 值: 无
***********************************************************************
*/
void SDWe_LCD_ShowString(uint16_t addr, char *p)
{
uint8_t len;
len = strlen(p);
printf("len = %d ", len);
SDWe_LCD_WriteMem(addr, (uint8_t *)p, len);
}
/*
***********************************************************************
* 函 数 名: LCD_GetReturnData
* 功能说明: 取得LCD显示屏返回的数据
* 形 参:
* 返 回 值: 无
***********************************************************************
*/
void SDWe_LCD_GetReturnData(void)
{
uint8_t i;
uint32_t tempData;
uint8_t dataLen; //指令长度
uint8_t instructionType; //指令码 
uint8_t regAddr; //寄存器地址
uint16_t memoryAddr; //存储器地址
uint8_t returnDataLen; //返回数据长度
static uint8_t iValue = 0;
if(USART5_RX_STA == 0xfd) //接收到一次数据了
{
printf("\r\n收到LCD显示屏返回的数据正在解析:\r\n");
USART5_RX_STA = 0; //启动下一次接收
dataLen = USART5_RX_BUF[0];
instructionType = USART5_RX_BUF[1]; //取出指令码
printf("\r\n指令长度 = %d \r\n", dataLen);
printf("\r\n指令码 = 0x%x \r\n", instructionType);
switch(instructionType)
{
case 0x81:
regAddr = USART5_RX_BUF[2];
switch(regAddr)
{
case 0x00:
printf("\r\nVersion = V%x \r\n", USART5_RX_BUF[4]);
break;
case 0x01:
break;
}
break;
case 0x82:
break;
case 0x83:
break;
}
}
}
/*
***********************************************************************
* 函 数 名: LCD_DisplayControlTask
* 功能说明: LCD显示屏测试程序
* 形 参:
* 返 回 值: 无
***********************************************************************
*/
void SDWe_LCD_DisplayControlTask(void)
{
static uint32_t page = 0;
delay_ms(100);
// LCD_ShowString(0x0021, "show string");
// LCD_SetDisplayPage(page);
// delay_ms(100);
// page++;
// if(page > 0xfffffffe)
// {
// page = 0;
// }
// printf("\r\n向LCD发送数据\r\n");
}
/******************** (C) COPYRIGHT 2017 YNHB *****END OF FILE*******************/
@@ -0,0 +1,20 @@
/*************************** (C) COPYRIGHT 2017 YNHB ****************************
* 文件名 LCD_SDWe.h
* 描 述 :7寸LCD串口显示屏驱动头文件
* 版 本 V1.0
* 作 者 XuZhongPing
* 日 期 2017/10/23
*********************************************************************************/
#ifndef __LCD_SDWe_H
#define __LCD_SDWe_H
#include "sys.h"
void SDWe_LCD_SetDisplayPage(uint16_t page);
void SDWe_LCD_ShowNum(uint16_t addr, uint32_t num);
void SDWe_LCD_ShowString(uint16_t addr, char *p);
void SDWe_LCD_GetReturnData(void);
void SDWe_LCD_DisplayControlTask(void);
#endif
/******************** (C) COPYRIGHT 2017 YNHB *****END OF FILE*******************/
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,33 @@
/*************************** (C) COPYRIGHT 2017 YNHB ****************************
* 文件名 display.h
* 描 述 :显示程序
* 版 本 V1.0
* 作 者 XuZhongPing
* 日 期 2017/10/16
*********************************************************************************/
#ifndef __DISPLAY_H
#define __DISPLAY_H
#include "stdint.h"
void Screen_SystemInit(void);
void Screen_ShowDeviceInfo(char *ver, uint8_t type1, uint8_t type2, uint8_t type3, uint8_t type4);
void Screen_Default(void);
void Screen_DeviceDisable(void);
void Screen_Landing(void);
void Screen_Query(uint8_t auth, uint8_t mode, uint8_t *icCard, uint32_t inputAccount, uint32_t inputBalance);
void Screen_UserInfo(uint8_t auth, uint8_t mode, uint8_t *icCard, uint32_t inputAccount, uint32_t inputBalance);
void Screen_Countdown(uint8_t timerVal);
void Screen_ShowPutInInfo(uint8_t type, uint8_t leftType, uint8_t rightType, uint16_t leftVal, uint16_t rightVal);
void Screen_ShowPutInInfo2(uint16_t val1, uint16_t val2, uint16_t val3, uint16_t val4);
void Screen_ShowPutInReward(uint32_t beforeCapital, uint32_t afterCapital);
void Screen_Exit(void);
void Screen_ShowFull(void);
void Screen_Error(uint8_t type, uint8_t pre1, uint8_t pre2);
void Screen_ScaleCalibraEnter(uint8_t num);
void Screen_ScaleCalibraStart(uint8_t num);
void Screen_ScaleCalibraFinish(uint8_t num);
void DispalyTask(void);
#endif
@@ -0,0 +1,192 @@
/*************************** (C) COPYRIGHT 2017 CXHY ****************************
* 文件名 icon.h
* 描 述 :图片信息头文件
* 版 本 V1.0
* 作 者 XuZhongPing
* 日 期 2017/10/17
*********************************************************************************/
#ifndef __ICON_H__
#define __ICON_H__
#include "stdint.h"
//横向取模
//信号图标
const unsigned char signalIcon[8][32] = {
{0x00,0x00,0x7C,0x00,0x38,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, //无信号
{0x00,0x00,0x7C,0x00,0x38,0x00,0x10,0x00,0x10,0x00,0x12,0x00,0x12,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, //1格信号
{0x00,0x00,0x7C,0x00,0x38,0x00,0x10,0x00,0x10,0x80,0x12,0x80,0x12,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, //2格信号
{0x00,0x00,0x7C,0x00,0x38,0x00,0x10,0x20,0x10,0xA0,0x12,0xA0,0x12,0xA0,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, //3格信号
{0x00,0x00,0x7C,0x00,0x38,0x08,0x10,0x28,0x10,0xA8,0x12,0xA8,0x12,0xA8,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, //4格信号
{0x00,0x00,0x7C,0x00,0x38,0x11,0x10,0x0A,0x10,0x84,0x12,0x8A,0x12,0x91,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, //无法注册网络(卡识别正常)
{0x00,0x00,0x7C,0x04,0x38,0x04,0x10,0x04,0x10,0x84,0x12,0x80,0x12,0x84,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, //没有GPRS业务
{0x00,0x00,0x7C,0x74,0x38,0x94,0x11,0x14,0x11,0x14,0x11,0x10,0x11,0xF4,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, //没有检测到卡
};
//温度符号℃
const uint8_t temperatureIcon[32] = {
0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x6E,0x00,0x1B,0x00,0x31,0x00,0x30,0x00,0x30,
0x00,0x30,0x00,0x31,0x00,0x1B,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
//垃圾桶图标
const uint8_t Icon2[11][192] = {
{ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x78,0x3F,0xFF,0xFF,0xF8,
0x3F,0xFF,0xFF,0xFC,0x08,0x00,0x00,0xD4,0x08,0x00,0x00,0x94,0x08,0x00,0x00,0x94,
0x08,0x00,0x00,0x94,0x08,0x00,0x00,0xA4,0x08,0x00,0x00,0xA4,0x08,0x00,0x00,0xA4,
0x08,0x00,0x00,0xA4,0x08,0x00,0x00,0xA4,0x08,0x00,0x00,0xA4,0x08,0x00,0x00,0xA4,
0x08,0x00,0x00,0x94,0x08,0x00,0x00,0x94,0x08,0x00,0x00,0x94,0x08,0x00,0x00,0x94,
0x08,0x00,0x00,0x8C,0x08,0x00,0x00,0x8C,0x04,0x00,0x01,0x0C,0x04,0x00,0x01,0x1C,
0x04,0x00,0x01,0x04,0x04,0x00,0x01,0x04,0x04,0x00,0x01,0x00,0x04,0x00,0x01,0x00,
0x04,0x00,0x01,0x00,0x04,0x00,0x01,0x00,0x04,0x00,0x01,0x00,0x04,0x00,0x01,0x00,
0x04,0x00,0x01,0x00,0x04,0x00,0x03,0x80,0x04,0x00,0x04,0x40,0x04,0x00,0x09,0x20,
0x04,0x00,0x0B,0xA0,0x07,0xFF,0xF9,0x20,0x03,0x80,0x04,0x40,0x03,0x80,0x03,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, //0%
{ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x78,0x3F,0xFF,0xFF,0xF8,
0x3F,0xFF,0xFF,0xFC,0x08,0x00,0x00,0xD4,0x08,0x00,0x00,0x94,0x08,0x00,0x00,0x94,
0x08,0x00,0x00,0x94,0x08,0x00,0x00,0xA4,0x08,0x00,0x00,0xA4,0x08,0x00,0x00,0xA4,
0x08,0x00,0x00,0xA4,0x08,0x00,0x00,0xA4,0x08,0x00,0x00,0xA4,0x08,0x00,0x00,0xA4,
0x08,0x00,0x00,0x94,0x08,0x00,0x00,0x94,0x08,0x00,0x00,0x94,0x08,0x00,0x00,0x94,
0x08,0x00,0x00,0x8C,0x08,0x00,0x00,0x8C,0x04,0x00,0x01,0x0C,0x04,0x00,0x01,0x1C,
0x04,0x00,0x01,0x04,0x04,0x00,0x01,0x04,0x04,0x00,0x01,0x00,0x04,0x00,0x01,0x00,
0x04,0x00,0x01,0x00,0x04,0x00,0x01,0x00,0x04,0x00,0x01,0x00,0x04,0x00,0x01,0x00,
0x04,0x00,0x01,0x00,0x05,0xFF,0xFB,0x80,0x05,0xFF,0xF4,0x40,0x05,0xFF,0xE9,0x20,
0x04,0x00,0x0B,0xA0,0x07,0xFF,0xF9,0x20,0x03,0x80,0x04,0x40,0x03,0x80,0x03,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, //10%
{ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x78,0x3F,0xFF,0xFF,0xF8,
0x3F,0xFF,0xFF,0xFC,0x08,0x00,0x00,0xD4,0x08,0x00,0x00,0x94,0x08,0x00,0x00,0x94,
0x08,0x00,0x00,0x94,0x08,0x00,0x00,0xA4,0x08,0x00,0x00,0xA4,0x08,0x00,0x00,0xA4,
0x08,0x00,0x00,0xA4,0x08,0x00,0x00,0xA4,0x08,0x00,0x00,0xA4,0x08,0x00,0x00,0xA4,
0x08,0x00,0x00,0x94,0x08,0x00,0x00,0x94,0x08,0x00,0x00,0x94,0x08,0x00,0x00,0x94,
0x08,0x00,0x00,0x8C,0x08,0x00,0x00,0x8C,0x04,0x00,0x01,0x0C,0x04,0x00,0x01,0x1C,
0x04,0x00,0x01,0x04,0x04,0x00,0x01,0x04,0x04,0x00,0x01,0x00,0x04,0x00,0x01,0x00,
0x04,0x00,0x01,0x00,0x04,0x00,0x01,0x00,0x05,0xFF,0xFD,0x00,0x05,0xFF,0xFD,0x00,
0x05,0xFF,0xFD,0x00,0x05,0xFF,0xFB,0x80,0x05,0xFF,0xF4,0x40,0x05,0xFF,0xE9,0x20,
0x04,0x00,0x0B,0xA0,0x07,0xFF,0xF9,0x20,0x03,0x80,0x04,0x40,0x03,0x80,0x03,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, //20%
{ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x78,0x3F,0xFF,0xFF,0xF8,
0x3F,0xFF,0xFF,0xFC,0x08,0x00,0x00,0xD4,0x08,0x00,0x00,0x94,0x08,0x00,0x00,0x94,
0x08,0x00,0x00,0x94,0x08,0x00,0x00,0xA4,0x08,0x00,0x00,0xA4,0x08,0x00,0x00,0xA4,
0x08,0x00,0x00,0xA4,0x08,0x00,0x00,0xA4,0x08,0x00,0x00,0xA4,0x08,0x00,0x00,0xA4,
0x08,0x00,0x00,0x94,0x08,0x00,0x00,0x94,0x08,0x00,0x00,0x94,0x08,0x00,0x00,0x94,
0x08,0x00,0x00,0x8C,0x08,0x00,0x00,0x8C,0x04,0x00,0x01,0x0C,0x04,0x00,0x01,0x1C,
0x04,0x00,0x01,0x04,0x04,0x00,0x01,0x04,0x04,0x00,0x01,0x00,0x05,0xFF,0xFD,0x00,
0x05,0xFF,0xFD,0x00,0x05,0xFF,0xFD,0x00,0x05,0xFF,0xFD,0x00,0x05,0xFF,0xFD,0x00,
0x05,0xFF,0xFD,0x00,0x05,0xFF,0xFB,0x80,0x05,0xFF,0xF4,0x40,0x05,0xFF,0xE9,0x20,
0x04,0x00,0x0B,0xA0,0x07,0xFF,0xF9,0x20,0x03,0x80,0x04,0x40,0x03,0x80,0x03,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, //30%
{ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x78,0x3F,0xFF,0xFF,0xF8,
0x3F,0xFF,0xFF,0xFC,0x08,0x00,0x00,0xD4,0x08,0x00,0x00,0x94,0x08,0x00,0x00,0x94,
0x08,0x00,0x00,0x94,0x08,0x00,0x00,0xA4,0x08,0x00,0x00,0xA4,0x08,0x00,0x00,0xA4,
0x08,0x00,0x00,0xA4,0x08,0x00,0x00,0xA4,0x08,0x00,0x00,0xA4,0x08,0x00,0x00,0xA4,
0x08,0x00,0x00,0x94,0x08,0x00,0x00,0x94,0x08,0x00,0x00,0x94,0x08,0x00,0x00,0x94,
0x08,0x00,0x00,0x8C,0x08,0x00,0x00,0x8C,0x04,0x00,0x01,0x0C,0x04,0x00,0x01,0x1C,
0x05,0xFF,0xFD,0x04,0x05,0xFF,0xFD,0x04,0x05,0xFF,0xFD,0x00,0x05,0xFF,0xFD,0x00,
0x05,0xFF,0xFD,0x00,0x05,0xFF,0xFD,0x00,0x05,0xFF,0xFD,0x00,0x05,0xFF,0xFD,0x00,
0x05,0xFF,0xFD,0x00,0x05,0xFF,0xFB,0x80,0x05,0xFF,0xF4,0x40,0x05,0xFF,0xE9,0x20,
0x04,0x00,0x0B,0xA0,0x07,0xFF,0xF9,0x20,0x03,0x80,0x04,0x40,0x03,0x80,0x03,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, //40%
{ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x78,0x3F,0xFF,0xFF,0xF8,
0x3F,0xFF,0xFF,0xFC,0x08,0x00,0x00,0xD4,0x08,0x00,0x00,0x94,0x08,0x00,0x00,0x94,
0x08,0x00,0x00,0x94,0x08,0x00,0x00,0xA4,0x08,0x00,0x00,0xA4,0x08,0x00,0x00,0xA4,
0x08,0x00,0x00,0xA4,0x08,0x00,0x00,0xA4,0x08,0x00,0x00,0xA4,0x08,0x00,0x00,0xA4,
0x08,0x00,0x00,0x94,0x08,0x00,0x00,0x94,0x08,0x00,0x00,0x94,0x08,0x00,0x00,0x94,
0x08,0x00,0x00,0x8C,0x0B,0xFF,0xFE,0x8C,0x05,0xFF,0xFD,0x0C,0x05,0xFF,0xFD,0x1C,
0x05,0xFF,0xFD,0x04,0x05,0xFF,0xFD,0x04,0x05,0xFF,0xFD,0x00,0x05,0xFF,0xFD,0x00,
0x05,0xFF,0xFD,0x00,0x05,0xFF,0xFD,0x00,0x05,0xFF,0xFD,0x00,0x05,0xFF,0xFD,0x00,
0x05,0xFF,0xFD,0x00,0x05,0xFF,0xFB,0x80,0x05,0xFF,0xF4,0x40,0x05,0xFF,0xE9,0x20,
0x04,0x00,0x0B,0xA0,0x07,0xFF,0xF9,0x20,0x03,0x80,0x04,0x40,0x03,0x80,0x03,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, //50%
{ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x78,0x3F,0xFF,0xFF,0xF8,
0x3F,0xFF,0xFF,0xFC,0x08,0x00,0x00,0xD4,0x08,0x00,0x00,0x94,0x08,0x00,0x00,0x94,
0x08,0x00,0x00,0x94,0x08,0x00,0x00,0xA4,0x08,0x00,0x00,0xA4,0x08,0x00,0x00,0xA4,
0x08,0x00,0x00,0xA4,0x08,0x00,0x00,0xA4,0x08,0x00,0x00,0xA4,0x08,0x00,0x00,0xA4,
0x08,0x00,0x00,0x94,0x08,0x00,0x00,0x94,0x0B,0xFF,0xFE,0x94,0x0B,0xFF,0xFE,0x94,
0x0B,0xFF,0xFE,0x8C,0x0B,0xFF,0xFE,0x8C,0x05,0xFF,0xFD,0x0C,0x05,0xFF,0xFD,0x1C,
0x05,0xFF,0xFD,0x04,0x05,0xFF,0xFD,0x04,0x05,0xFF,0xFD,0x00,0x05,0xFF,0xFD,0x00,
0x05,0xFF,0xFD,0x00,0x05,0xFF,0xFD,0x00,0x05,0xFF,0xFD,0x00,0x05,0xFF,0xFD,0x00,
0x05,0xFF,0xFD,0x00,0x05,0xFF,0xFB,0x80,0x05,0xFF,0xF4,0x40,0x05,0xFF,0xE9,0x20,
0x04,0x00,0x0B,0xA0,0x07,0xFF,0xF9,0x20,0x03,0x80,0x04,0x40,0x03,0x80,0x03,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, //60%
{ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x78,0x3F,0xFF,0xFF,0xF8,
0x3F,0xFF,0xFF,0xFC,0x08,0x00,0x00,0xD4,0x08,0x00,0x00,0x94,0x08,0x00,0x00,0x94,
0x08,0x00,0x00,0x94,0x08,0x00,0x00,0xA4,0x08,0x00,0x00,0xA4,0x08,0x00,0x00,0xA4,
0x08,0x00,0x00,0xA4,0x08,0x00,0x00,0xA4,0x08,0x00,0x00,0xA4,0x0B,0xFF,0xFE,0xA4,
0x0B,0xFF,0xFE,0x94,0x0B,0xFF,0xFE,0x94,0x0B,0xFF,0xFE,0x94,0x0B,0xFF,0xFE,0x94,
0x0B,0xFF,0xFE,0x8C,0x0B,0xFF,0xFE,0x8C,0x05,0xFF,0xFD,0x0C,0x05,0xFF,0xFD,0x1C,
0x05,0xFF,0xFD,0x04,0x05,0xFF,0xFD,0x04,0x05,0xFF,0xFD,0x00,0x05,0xFF,0xFD,0x00,
0x05,0xFF,0xFD,0x00,0x05,0xFF,0xFD,0x00,0x05,0xFF,0xFD,0x00,0x05,0xFF,0xFD,0x00,
0x05,0xFF,0xFD,0x00,0x05,0xFF,0xFB,0x80,0x05,0xFF,0xF4,0x40,0x05,0xFF,0xE9,0x20,
0x04,0x00,0x0B,0xA0,0x07,0xFF,0xF9,0x20,0x03,0x80,0x04,0x40,0x03,0x80,0x03,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, //70%
{ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x78,0x3F,0xFF,0xFF,0xF8,
0x3F,0xFF,0xFF,0xFC,0x08,0x00,0x00,0xD4,0x08,0x00,0x00,0x94,0x08,0x00,0x00,0x94,
0x08,0x00,0x00,0x94,0x08,0x00,0x00,0xA4,0x08,0x00,0x00,0xA4,0x08,0x00,0x00,0xA4,
0x0B,0xFF,0xFE,0xA4,0x0B,0xFF,0xFE,0xA4,0x0B,0xFF,0xFE,0xA4,0x0B,0xFF,0xFE,0xA4,
0x0B,0xFF,0xFE,0x94,0x0B,0xFF,0xFE,0x94,0x0B,0xFF,0xFE,0x94,0x0B,0xFF,0xFE,0x94,
0x0B,0xFF,0xFE,0x8C,0x0B,0xFF,0xFE,0x8C,0x05,0xFF,0xFD,0x0C,0x05,0xFF,0xFD,0x1C,
0x05,0xFF,0xFD,0x04,0x05,0xFF,0xFD,0x04,0x05,0xFF,0xFD,0x00,0x05,0xFF,0xFD,0x00,
0x05,0xFF,0xFD,0x00,0x05,0xFF,0xFD,0x00,0x05,0xFF,0xFD,0x00,0x05,0xFF,0xFD,0x00,
0x05,0xFF,0xFD,0x00,0x05,0xFF,0xFB,0x80,0x05,0xFF,0xF4,0x40,0x05,0xFF,0xE9,0x20,
0x04,0x00,0x0B,0xA0,0x07,0xFF,0xF9,0x20,0x03,0x80,0x04,0x40,0x03,0x80,0x03,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, //80%
{ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x78,0x3F,0xFF,0xFF,0xF8,
0x3F,0xFF,0xFF,0xFC,0x08,0x00,0x00,0xD4,0x08,0x00,0x00,0x94,0x08,0x00,0x00,0x94,
0x08,0x00,0x00,0x94,0x0B,0xFF,0xFE,0xA4,0x0B,0xFF,0xFE,0xA4,0x0B,0xFF,0xFE,0xA4,
0x0B,0xFF,0xFE,0xA4,0x0B,0xFF,0xFE,0xA4,0x0B,0xFF,0xFE,0xA4,0x0B,0xFF,0xFE,0xA4,
0x0B,0xFF,0xFE,0x94,0x0B,0xFF,0xFE,0x94,0x0B,0xFF,0xFE,0x94,0x0B,0xFF,0xFE,0x94,
0x0B,0xFF,0xFE,0x8C,0x0B,0xFF,0xFE,0x8C,0x05,0xFF,0xFD,0x0C,0x05,0xFF,0xFD,0x1C,
0x05,0xFF,0xFD,0x04,0x05,0xFF,0xFD,0x04,0x05,0xFF,0xFD,0x00,0x05,0xFF,0xFD,0x00,
0x05,0xFF,0xFD,0x00,0x05,0xFF,0xFD,0x00,0x05,0xFF,0xFD,0x00,0x05,0xFF,0xFD,0x00,
0x05,0xFF,0xFD,0x00,0x05,0xFF,0xFB,0x80,0x05,0xFF,0xF4,0x40,0x05,0xFF,0xE9,0x20,
0x04,0x00,0x0B,0xA0,0x07,0xFF,0xF9,0x20,0x03,0x80,0x04,0x40,0x03,0x80,0x03,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, //90%
{ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x78,0x3F,0xFF,0xFF,0xF8,
0x3F,0xFF,0xFF,0xFC,0x08,0x00,0x00,0xD4,0x0B,0xFF,0xFE,0x94,0x0B,0xFF,0xFE,0x94,
0x0B,0xFF,0xFE,0x94,0x0B,0xFF,0xFE,0xA4,0x0B,0xFF,0xFE,0xA4,0x0B,0xFF,0xFE,0xA4,
0x0B,0xFF,0xFE,0xA4,0x0B,0xFF,0xFE,0xA4,0x0B,0xFF,0xFE,0xA4,0x0B,0xFF,0xFE,0xA4,
0x0B,0xFF,0xFE,0x94,0x0B,0xFF,0xFE,0x94,0x0B,0xFF,0xFE,0x94,0x0B,0xFF,0xFE,0x94,
0x0B,0xFF,0xFE,0x8C,0x0B,0xFF,0xFE,0x8C,0x05,0xFF,0xFD,0x0C,0x05,0xFF,0xFD,0x1C,
0x05,0xFF,0xFD,0x04,0x05,0xFF,0xFD,0x04,0x05,0xFF,0xFD,0x00,0x05,0xFF,0xFD,0x00,
0x05,0xFF,0xFD,0x00,0x05,0xFF,0xFD,0x00,0x05,0xFF,0xFD,0x00,0x05,0xFF,0xFD,0x00,
0x05,0xFF,0xFD,0x00,0x05,0xFF,0xFB,0x80,0x05,0xFF,0xF4,0x40,0x05,0xFF,0xE9,0x20,
0x04,0x00,0x0B,0xA0,0x07,0xFF,0xF9,0x20,0x03,0x80,0x04,0x40,0x03,0x80,0x03,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00} //100%
};
#endif
@@ -0,0 +1,136 @@
/*************************** (C) COPYRIGHT 2017 YNHB ****************************
* 文件名 lcd.c
* 描 述 :LCD显示屏接口应用程序
* 版 本 V1.0
* 作 者 XuZhongPing
* 日 期 2017/10/23
*********************************************************************************/
#include "lcd.h"
#include "lcd12864.h"
#include "string.h"
#include "stdlib.h"
#include "delay.h"
/*
***********************************************************************
* 函 数 名: LCD_SetBacklight
* 功能说明: LCD显示屏初始化
* 形 参:无
* 返 回 值: 无
***********************************************************************
*/
void LCD_Init(void)
{
LCD12864_Init();
}
/*
***********************************************************************
* 函 数 名: LCD_SetBacklight
* 功能说明: 设置LCD背光亮度
* 形 参:val -> 亮度值(百分比)
* 返 回 值: 无
***********************************************************************
*/
void LCD_SetBacklight(uint8_t val)
{
}
/*
***********************************************************************
* 函 数 名: LCD_Clear
* 功能说明: 显示清屏
* 形 参:无
* 返 回 值: 无
***********************************************************************
*/
void LCD_Clear(void)
{
LCD12864_Clear();
}
/*
***********************************************************************
* 函 数 名: LCD_DrawModeCtrl
* 功能说明: 绘图模式控制
* 形 参:param -> 0:关闭绘图模式;1:打开绘图模式
* 返 回 值: 无
***********************************************************************
*/
void LCD_DrawModeCtrl(uint8_t param)
{
LCD12864_DrawModeCtrl(param);
}
/*
***********************************************************************
* 函 数 名: LCD_ShowChar
* 功能说明: 显示一个字符
* 形 参:num -> 要显示的字符
* 返 回 值: 无
***********************************************************************
*/
void LCD_ShowChar(uint8_t num)
{
LCD12864_ShowChar(num);
}
/*
***********************************************************************
* 函 数 名: LCD_ShowString
* 功能说明: 显示字符串
* 形 参:x -> 行坐标
* y -> 纵坐标
* p -> 要显示的内容指针
* 返 回 值: 无
***********************************************************************
*/
void LCD_ShowString(uint8_t x, uint8_t y, char *p)
{
LCD12864_ShowString(x, y, p);
}
/*
***********************************************************************
* 函 数 名: LCD_ShowNum
* 功能说明: 显示数字变量
* 形 参:
* 返 回 值: 无
***********************************************************************
*/
void LCD_ShowNum(uint8_t num)
{
LCD12864_ShowNum(num);
}
/*
***********************************************************************
* 函 数 名: LCD_ShowxNum
* 功能说明: 显示数字
* 形 参:x,y -> 显示坐标
* num -> 要显示的内容
* len -> 显示的长度(即位数)
* 返 回 值: 无
***********************************************************************
*/
void LCD_ShowxNum(uint8_t x, uint8_t y, uint32_t num, uint8_t len)
{
LCD12864_ShowxNum(x, y, num, len);
}
/*
***********************************************************************
* 函 数 名: LCD_ShowSignal
* 功能说明: 显示GSM信号强度
* 形 参:val -> 信号的强度(0-4格显示)
* 返 回 值: 无
***********************************************************************
*/
void LCD_ShowSignal(uint8_t val)
{
LCD12864_ShowSignal(val);
}
/******************** (C) COPYRIGHT 2017 YNHB *****END OF FILE*******************/
@@ -0,0 +1,25 @@
/*************************** (C) COPYRIGHT 2017 YNHB ****************************
* 文件名 lcd.h
* 描 述 :LCD显示屏接口应用程序
* 版 本 V1.0
* 作 者 XuZhongPing
* 日 期 2017/10/23
*********************************************************************************/
#ifndef __LCD_H
#define __LCD_H
#include "stdint.h"
#include "string.h"
void LCD_Init(void);
void LCD_SetBacklight(uint8_t val);
void LCD_Clear(void);
void LCD_DrawModeCtrl(uint8_t param);
void LCD_ShowChar(uint8_t num);
void LCD_ShowString(uint8_t x, uint8_t y, char *p);
void LCD_ShowNum(uint8_t num);
void LCD_ShowxNum(uint8_t x, uint8_t y, uint32_t num, uint8_t len);
void LCD_ShowSignal(uint8_t val);
#endif
/******************** (C) COPYRIGHT 2017 YNHB *****END OF FILE*******************/
@@ -0,0 +1,523 @@
/*************************** (C) COPYRIGHT 2017 YNHB ****************************
* 文件名 lcd12864.c
* 描 述 :lcd12864显示驱动程序
* 版 本 V1.0
* 作 者 XuZhongPing
* 日 期 2017/10/16
*********************************************************************************/
#include "lcd12864.h"
#include "delay.h"
#include "icon.h"
#define LCD12864_E_PORT_PeriphClock RCC_APB2Periph_GPIOB
#define LCD12864_E_PORT GPIOB
#define LCD12864_E_PORT_PIN GPIO_Pin_5
#define LCD12864_RW_PORT_PeriphClock RCC_APB2Periph_GPIOB
#define LCD12864_RW_PORT GPIOB
#define LCD12864_RW_PORT_PIN GPIO_Pin_6
#define LCD12864_RS_PORT_PeriphClock RCC_APB2Periph_GPIOB
#define LCD12864_RS_PORT GPIOB
#define LCD12864_RS_PORT_PIN GPIO_Pin_7
/*
***********************************************************************
* 函 数 名: LCD12864_Init
* 功能说明: LCD12864接初始化
* 形 参:无
* 返 回 值: 无
***********************************************************************
*/
void LCD12864_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(LCD12864_E_PORT_PeriphClock, ENABLE);
RCC_APB2PeriphClockCmd(LCD12864_RW_PORT_PeriphClock, ENABLE);
RCC_APB2PeriphClockCmd(LCD12864_RS_PORT_PeriphClock, ENABLE);
//E(CLK),输出
GPIO_InitStructure.GPIO_Pin = LCD12864_E_PORT_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(LCD12864_E_PORT, &GPIO_InitStructure);
//R/W(SID),数据
GPIO_InitStructure.GPIO_Pin = LCD12864_RW_PORT_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(LCD12864_RW_PORT, &GPIO_InitStructure);
//RS/CS,片选
GPIO_InitStructure.GPIO_Pin = LCD12864_RS_PORT_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(LCD12864_RS_PORT, &GPIO_InitStructure);
/*--------------------LCD基本指令-----------------------*/
delay_ms(2);
LCD12864_WriteCommand(0x30); //30--基本指令动作
delay_ms(5);
LCD12864_WriteCommand(0x0c); //光标右移画面不动
delay_ms(5);
LCD12864_WriteCommand(0x01); //清屏
delay_ms(5); //清屏时间较长
LCD12864_WriteCommand(0x06); //显示打开,光标开,反白关
delay_ms(5);
// LCD12864_WriteCommand(0x34); // 扩充指令
// LCD12864_WriteCommand(0x36); // 打开绘图指令
LCD12864_Clear(); // 清屏
}
/*
***********************************************************************
* 函 数 名: LCD12864_SendByte
* 功能说明: 写一字节数据到LCD
* 形 参:zdata -> 要写的数据
* 返 回 值: 无
***********************************************************************
*/
void LCD12864_SendByte(uint8_t zdata)
{
uint16_t i;
for(i=0; i<8; i++)
{
if((zdata << i) & 0x80)
{
SID_H;
}else{
SID_L;
}
SCLK_H;
SCLK_L;
}
}
/*
***********************************************************************
* 函 数 名: LCD12864_ReceiveByte
* 功能说明: 读LCD数据
* 形 参:无
* 返 回 值: 无
***********************************************************************
*/
uint8_t LCD12864_ReceiveByte(void)
{
uint8_t i, temp1, temp2, value;
// temp1 = 0;
// temp2 = 0;
// for(i = 0; i < 8; i++)
// {
// temp1 = temp1<<1;
// SCLK_L;
// SCLK_H;
// SCLK_L;
// if(PAout(7) == 1)
// {
// temp1++;
// }
// }
// for(i = 0; i < 8; i++)
// {
// temp2 = temp2<<1;
// SCLK_L;
// SCLK_H;
// SCLK_L;
// if(PAout(7) == 1)
// {
// temp2++;
// }
// }
// temp1 = 0xf0&temp1;
// temp2 = 0x0f&temp2;
// value = temp1+temp2;
return value;
}
/*
***********************************************************************
* 函 数 名: LCD12864_CheckBusy
* 功能说明: LCD忙检查
* 形 参:无
* 返 回 值: 无
***********************************************************************
*/
void LCD12864_CheckBusy(void)
{
do{
LCD12864_SendByte(0xfc); //11111,RW(1),RS(0),0
}while(0x80 & LCD12864_ReceiveByte());
}
/*
***********************************************************************
* 函 数 名: LCD12864_WriteCommand
* 功能说明: 写命令到LCD
* 形 参:cmdcode -> 待写入的命令数据
* 返 回 值: 无
***********************************************************************
*/
void LCD12864_WriteCommand(uint8_t cmdcode)
{
CS_H;
LCD12864_CheckBusy();
LCD12864_SendByte(0xf8);
LCD12864_SendByte(cmdcode & 0xf0);
LCD12864_SendByte((cmdcode << 4) & 0xf0);
delay_us(100);
CS_L;
}
/*
***********************************************************************
* 函 数 名: LCD12864_WriteData
* 功能说明: 写显示内容到LCD
* 形 参:dispdata -> 待写入的命令数据
* 返 回 值: 无
***********************************************************************
*/
void LCD12864_WriteData(uint8_t dispdata)
{
CS_H;
LCD12864_CheckBusy();
LCD12864_SendByte(0xfa); //11111,RW(0),RS(1),0
LCD12864_SendByte(dispdata & 0xf0);
LCD12864_SendByte((dispdata << 4) & 0xf0);
delay_us(100);
CS_L;
}
/*
***********************************************************************
* 函 数 名: LCD12864_ReadData
* 功能说明: 读取LCD显示内容
* 形 参:无
* 返 回 值: LCD收到的数据
***********************************************************************
*/
uint8_t LCD12864_ReadData(void)
{
LCD12864_CheckBusy();
LCD12864_SendByte(0xfe); //11111RW(1),RS(1),0 LCD->MCU
return LCD12864_ReceiveByte();
}
/*
***********************************************************************
* 函 数 名: LCD12864_SetPos
* 功能说明: 设置显示位置
* 形 参:x,y显示坐标
* 返 回 值: 无
***********************************************************************
*/
void LCD12864_SetPos(uint8_t x, uint8_t y)
{
uint8_t pos;
switch(x)
{
case 0: x=0x80;break;
case 1: x=0x90;break;
case 2: x=0x88;break;
case 3: x=0x98;break;
}
pos = x + y;
LCD12864_WriteCommand(pos);
}
/*
***********************************************************************
* 函 数 名: LCD12864_DrawPoint
* 功能说明: LCD画点
* 形 参: x,y->坐标
* color -> 颜色,0不显示,1显示
* 返 回 值: 无
***********************************************************************
*/
void LCD12864_DrawPoint(uint16_t x, uint16_t y, uint8_t color)
{
}
/*
***********************************************************************
* 函 数 名: LCD12864_DrawLine
* 功能说明: 画直线
* 形 参: x1,y1->起点坐标
* x2,y2->终点坐标
* 返 回 值: 无
***********************************************************************
*/
void LCD12864_DrawLine(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2)
{
}
/*
***********************************************************************
* 函 数 名: LCD12864_DrawRectangle
* 功能说明: 画矩形
* 形 参: x1,y1->左上角坐标
* x2,y2->右下角坐标
* 返 回 值: 无
***********************************************************************
*/
void LCD12864_DrawRectangle(uint16_t x1,uint16_t y1,uint16_t x2,uint16_t y2)
{
}
/*
***********************************************************************
* 函 数 名: LCD12864_Clear
* 功能说明: 显示清屏
* 形 参:无
* 返 回 值: 无
***********************************************************************
*/
void LCD12864_Clear(void)
{
uint8_t i, j;
LCD12864_WriteCommand(0x34); //8Bit扩充指令集,即使是36H也要写两次
LCD12864_WriteCommand(0x36); //绘图ON,基本指令集里面36H不能开绘图
for(i = 0; i < 32; i++) //12864实际为256x32
{
LCD12864_WriteCommand(0x80|i); //行位置
LCD12864_WriteCommand(0x80); //列位置
for(j = 0; j < 32; j++) //256/8=32 byte
{
LCD12864_WriteData(0x00);
}
}
LCD12864_WriteCommand(0x36);
LCD12864_WriteCommand(0x30);
}
/*
***********************************************************************
* 函 数 名: LCD12864_DrawModeCtrl
* 功能说明: 绘图模式控制
* 形 参:param -> 0:关闭绘图模式;1:打开绘图模式
* 返 回 值: 无
***********************************************************************
*/
void LCD12864_DrawModeCtrl(uint8_t param)
{
if(param == 1)
{
LCD12864_WriteCommand(0x36);
LCD12864_WriteCommand(0x30);
}else{
LCD12864_WriteCommand(0x34);
LCD12864_WriteCommand(0x30);
}
}
/*
***********************************************************************
* 函 数 名: LCD12864_ShowChar
* 功能说明: 显示一个字符
* 形 参:num -> 要显示的字符
* 返 回 值: 无
***********************************************************************
*/
void LCD12864_ShowChar(uint8_t num)
{
LCD12864_WriteData(num);
delay_us(50);
}
/*
***********************************************************************
* 函 数 名: LCD12864_ShowString
* 功能说明: 显示字符串
* 形 参:x -> 行坐标(0对应第一行)
* y -> 纵坐标(0对应显示第一个字的位置,最多能显示8个汉字)
* p -> 要显示的内容指针
* 返 回 值: 无
***********************************************************************
*/
void LCD12864_ShowString(uint8_t x, uint8_t y, char *p)
{
uint8_t addr;
switch(x)
{
case 0:
addr = 0x80;
break;
case 1:
addr = 0x90;
break;
case 2:
addr = 0x88;
break;
case 3:
addr = 0x98;
break;
}
LCD12864_WriteCommand(addr + y);
while(*p>0)
{
LCD12864_WriteData(*p);
p++;
delay_us(50);
}
}
static uint64_t LCD_Pow(uint8_t m, uint8_t n)
{
uint64_t result = 1;
while(n--)result *= m;
return result;
}
const uint8_t numCode[11] = {"0123456789"};
/*
***********************************************************************
* 函 数 名: LCD12864_ShowNum
* 功能说明: 显示单个数字
* 形 参:num -> 要显示的数字
* 返 回 值: 无
***********************************************************************
*/
void LCD12864_ShowNum(uint8_t num)
{
LCD12864_WriteData(numCode[num]);
delay_us(50);
}
/*
***********************************************************************
* 函 数 名: LCD12864_ShowxNum
* 功能说明: 显示数字
* 形 参:x,y -> 显示坐标
* num -> 要显示的内容
* len -> 显示的长度(即位数)
* 返 回 值: 无
***********************************************************************
*/
void LCD12864_ShowxNum(uint8_t x, uint8_t y, uint32_t num, uint8_t len)
{
uint8_t t, temp;
LCD12864_SetPos(x, y); //设置显示坐标
for(t = 0; t < len; t++)
{
temp = (num/LCD_Pow(10, len-t-1))%10;
LCD12864_ShowNum(temp);
}
}
/*
***********************************************************************
* 函 数 名: LCD12864_ShowSignal
* 功能说明: 显示GSM信号强度
* 形 参:val -> 信号的强度(0-4格显示,5-6为异常情况显示)
* 返 回 值: 无
***********************************************************************
*/
void LCD12864_ShowSignal(uint8_t val)
{
uint8_t i=0, j=0;
LCD12864_WriteCommand(0x34); //8Bit扩充指令集,即使是36H也要写两次
LCD12864_WriteCommand(0x36); //绘图ON,基本指令集里面36H不能开绘图
for(i = 0; i < 16; i++)
{
LCD12864_WriteCommand(0x83 + i); //行位置(说明:不是从第一行开始显示)
LCD12864_WriteCommand(0x80); //列位置
LCD12864_WriteData((uint8_t)signalIcon[val][j++]);
LCD12864_WriteData((uint8_t)signalIcon[val][j++]);
}
LCD12864_WriteCommand(0x36);
LCD12864_WriteCommand(0x30);
}
void LCD_ShowTrash(uint8_t num, uint8_t val)
{
uint8_t i;
uint16_t addr = 0;
LCD12864_WriteCommand(0x34); //8Bit扩充指令集,即使是36H也要写两次
LCD12864_WriteCommand(0x36); //绘图ON,基本指令集里面36H不能开绘图
for(i = 0; i < 16; i++)
{
LCD12864_WriteCommand(0x90 | i); //行位置
if(num == 1)
{
LCD12864_WriteCommand(0x92); //列位置
}else{
LCD12864_WriteCommand(0x96); //列位置
}
LCD12864_WriteData((uint8_t)Icon2[val][addr++]);
LCD12864_WriteData((uint8_t)Icon2[val][addr++]);
LCD12864_WriteData((uint8_t)Icon2[val][addr++]);
LCD12864_WriteData((uint8_t)Icon2[val][addr++]);
}
for(i = 0; i < 16; i++)
{
LCD12864_WriteCommand(0x80 | i); //行位置
if(num == 1)
{
LCD12864_WriteCommand(0x8A); //列位置
}else{
LCD12864_WriteCommand(0x8E); //列位置
}
LCD12864_WriteData((uint8_t)Icon2[val][addr++]);
LCD12864_WriteData((uint8_t)Icon2[val][addr++]);
LCD12864_WriteData((uint8_t)Icon2[val][addr++]);
LCD12864_WriteData((uint8_t)Icon2[val][addr++]);
}
for(i = 0; i < 16; i++)
{
LCD12864_WriteCommand(0x90 | i); //行位置
if(num == 1)
{
LCD12864_WriteCommand(0x9A); //列位置
}else{
LCD12864_WriteCommand(0x9E); //列位置
}
LCD12864_WriteData((uint8_t)Icon2[val][addr++]);
LCD12864_WriteData((uint8_t)Icon2[val][addr++]);
LCD12864_WriteData((uint8_t)Icon2[val][addr++]);
LCD12864_WriteData((uint8_t)Icon2[val][addr++]);
}
LCD12864_WriteCommand(0x36);
LCD12864_WriteCommand(0x30);
}
void LCD_ShowTemperatureSymbol(uint8_t num)
{
uint8_t i;
uint16_t addr = 0;
LCD12864_WriteCommand(0x34); //8Bit扩充指令集,即使是36H也要写两次
LCD12864_WriteCommand(0x36); //绘图ON,基本指令集里面36H不能开绘图
for(i = 0; i < 16; i++)
{
LCD12864_WriteCommand(0x90 | i); //行位置
if(num == 1)
{
LCD12864_WriteCommand(0x91); //列位置
}else{
LCD12864_WriteCommand(0x95); //列位置
}
LCD12864_WriteData((uint8_t)temperatureIcon[addr++]);
LCD12864_WriteData((uint8_t)temperatureIcon[addr++]);
}
LCD12864_WriteCommand(0x36);
LCD12864_WriteCommand(0x30);
}
/******************** (C) COPYRIGHT 2017 YNHB *****END OF FILE*******************/
@@ -0,0 +1,43 @@
/*************************** (C) COPYRIGHT 2017 YNHB ****************************
* 文件名 lcd12864.h
* 描 述 :lcd12864显示驱动程序
* 版 本 V1.0
* 作 者 XuZhongPing
* 日 期 2017/10/16
*********************************************************************************/
#ifndef __LCD12864_H
#define __LCD12864_H
#include "stm32f10x.h"
#include "stdio.h"
#define CS_H GPIO_SetBits(GPIOB, GPIO_Pin_7) //RS(CS)
#define CS_L GPIO_ResetBits(GPIOB, GPIO_Pin_7)
#define SID_H GPIO_SetBits(GPIOB, GPIO_Pin_6) //R/W(SID)
#define SID_L GPIO_ResetBits(GPIOB, GPIO_Pin_6)
#define SCLK_H GPIO_SetBits(GPIOB, GPIO_Pin_5) //E(SCLK)
#define SCLK_L GPIO_ResetBits(GPIOB, GPIO_Pin_5)
// #define PSB_L GPIO_ResetBits(GPIOD, GPIO_Pin_4) //PSB
void LCD12864_Init(void);
void LCD12864_SendByte(uint8_t zdata);
uint8_t LCD12864_ReceiveByte(void);
void LCD12864_CheckBusy(void);
void LCD12864_WriteCommand(uint8_t cmdcode);
void LCD12864_WriteData(uint8_t dispdata);
uint8_t LCD12864_ReadData(void);
void LCD12864_SetPos(uint8_t x, uint8_t y);
void LCD12864_DrawPoint(uint16_t x, uint16_t y, uint8_t color);
void LCD12864_DrawLine(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2);
void LCD12864_DrawRectangle(uint16_t x1,uint16_t y1,uint16_t x2,uint16_t y2);
void LCD12864_Clear(void);
void LCD12864_DrawModeCtrl(uint8_t param);
void LCD12864_ShowChar(uint8_t num);
void LCD12864_ShowString(uint8_t x, uint8_t y, char *p);
void LCD12864_ShowNum(uint8_t num);
void LCD12864_ShowxNum(uint8_t x, uint8_t y, uint32_t num, uint8_t len);
void LCD12864_ShowSignal(uint8_t val);
#endif
/******************** (C) COPYRIGHT 2017 YNHB *****END OF FILE*******************/