视频演示
Keil源代码包
系统框图
30
0x00,0x70,0x48,0x08,0x08,0x08,0xF0,0x00,0x00,0x00,0x00,0x30,0x36,0x01,0x00,0x00,//? 31
0xC0,0x30,0xC8,0x28,0xE8,0x10,0xE0,0x00,0x07,0x18,0x27,0x24,0x23,0x14,0x0B,0x00,//@ 32
0x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00,0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20,//A 33
0x08,0xF8,0x88,0x88,0x88,0x70,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x11,0x0E,0x00,//B 34
0xC0,0x30,0x08,0x08,0x08,0x08,0x38,0x00,0x07,0x18,0x20,0x20,0x20,0x10,0x08,0x00,//C 35
0x08,0xF8,0x08,0x08,0x08,0x10,0xE0,0x00,0x20,0x3F,0x20,0x20,0x20,0x10,0x0F,0x00,//D 36
0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x20,0x23,0x20,0x18,0x00,//E 37
0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x00,0x03,0x00,0x00,0x00,//F 38
0xC0,0x30,0x08,0x08,0x08,0x38,0x00,0x00,0x07,0x18,0x20,0x20,0x22,0x1E,0x02,0x00,//G 39
0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x20,0x3F,0x21,0x01,0x01,0x21,0x3F,0x20,//H 40
0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//I 41
0x00,0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,0x00,//J 42
0x08,0xF8,0x88,0xC0,0x28,0x18,0x08,0x00,0x20,0x3F,0x20,0x01,0x26,0x38,0x20,0x00,//K 43
0x08,0xF8,0x08,0x00,0x00,0x00,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x20,0x30,0x00,//L 44
0x08,0xF8,0xF8,0x00,0xF8,0xF8,0x08,0x00,0x20,0x3F,0x00,0x3F,0x00,0x3F,0x20,0x00,//M 45
0x08,0xF8,0x30,0xC0,0x00,0x08,0xF8,0x08,0x20,0x3F,0x20,0x00,0x07,0x18,0x3F,0x00,//N 46
0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x10,0x20,0x20,0x20,0x10,0x0F,0x00,//O 47
0x08,0xF8,0x08,0x08,0x08,0x08,0xF0,0x00,0x20,0x3F,0x21,0x01,0x01,0x01,0x00,0x00,//P 48
0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x18,0x24,0x24,0x38,0x50,0x4F,0x00,//Q 49
0x08,0xF8,0x88,0x88,0x88,0x88,0x70,0x00,0x20,0x3F,0x20,0x00,0x03,0x0C,0x30,0x20,//R 50
0x00,0x70,0x88,0x08,0x08,0x08,0x38,0x00,0x00,0x38,0x20,0x21,0x21,0x22,0x1C,0x00,//S 51
0x18,0x08,0x08,0xF8,0x08,0x08,0x18,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00,//T 52
0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,//U 53
0x08,0x78,0x88,0x00,0x00,0xC8,0x38,0x08,0x00,0x00,0x07,0x38,0x0E,0x01,0x00,0x00,//V 54
0xF8,0x08,0x00,0xF8,0x00,0x08,0xF8,0x00,0x03,0x3C,0x07,0x00,0x07,0x3C,0x03,0x00,//W 55
0x08,0x18,0x68,0x80,0x80,0x68,0x18,0x08,0x20,0x30,0x2C,0x03,0x03,0x2C,0x30,0x20,//X 56
0x08,0x38,0xC8,0x00,0xC8,0x38,0x08,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00,//Y 57
0x10,0x08,0x08,0x08,0xC8,0x38,0x08,0x00,0x20,0x38,0x26,0x21,0x20,0x20,0x18,0x00,//Z 58
0x00,0x00,0x00,0xFE,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x7F,0x40,0x40,0x40,0x00,//[ 59
0x00,0x0C,0x30,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x06,0x38,0xC0,0x00,//\ 60
0x00,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,0x00,0x40,0x40,0x40,0x7F,0x00,0x00,0x00,//] 61
0x00,0x00,0x04,0x02,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//^ 62
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,//_ 63
0x00,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//` 64
0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x19,0x24,0x22,0x22,0x22,0x3F,0x20,//a 65
0x08,0xF8,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x3F,0x11,0x20,0x20,0x11,0x0E,0x00,//b 66
0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x0E,0x11,0x20,0x20,0x20,0x11,0x00,//c 67
0x00,0x00,0x00,0x80,0x80,0x88,0xF8,0x00,0x00,0x0E,0x11,0x20,0x20,0x10,0x3F,0x20,//d 68
0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x22,0x22,0x22,0x22,0x13,0x00,//e 69
0x00,0x80,0x80,0xF0,0x88,0x88,0x88,0x18,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//f 70
0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x6B,0x94,0x94,0x94,0x93,0x60,0x00,//g 71
0x08,0xF8,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20,//h 72
0x00,0x80,0x98,0x98,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//i 73
0x00,0x00,0x00,0x80,0x98,0x98,0x00,0x00,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,//j 74
0x08,0xF8,0x00,0x00,0x80,0x80,0x80,0x00,0x20,0x3F,0x24,0x02,0x2D,0x30,0x20,0x00,//k 75
0x00,0x08,0x08,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//l 76
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x20,0x3F,0x20,0x00,0x3F,0x20,0x00,0x3F,//m 77
0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20,//n 78
0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,//o 79
0x80,0x80,0x00,0x80,0x80,0x00,0x00,0x00,0x80,0xFF,0xA1,0x20,0x20,0x11,0x0E,0x00,//p 80
0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x0E,0x11,0x20,0x20,0xA0,0xFF,0x80,//q 81
0x80,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x20,0x20,0x3F,0x21,0x20,0x00,0x01,0x00,//r 82
0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x33,0x24,0x24,0x24,0x24,0x19,0x00,//s 83
0x00,0x80,0x80,0xE0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x1F,0x20,0x20,0x00,0x00,//t 84
0x80,0x80,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x1F,0x20,0x20,0x20,0x10,0x3F,0x20,//u 85
0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x00,0x01,0x0E,0x30,0x08,0x06,0x01,0x00,//v 86
0x80,0x80,0x00,0x80,0x00,0x80,0x80,0x80,0x0F,0x30,0x0C,0x03,0x0C,0x30,0x0F,0x00,//w 87
0x00,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x31,0x2E,0x0E,0x31,0x20,0x00,//x 88
0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x80,0x81,0x8E,0x70,0x18,0x06,0x01,0x00,//y 89
0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x21,0x30,0x2C,0x22,0x21,0x30,0x00,//z 90
0x00,0x00,0x00,0x00,0x80,0x7C,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x3F,0x40,0x40,//{ 91
0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,//| 92
0x00,0x02,0x02,0x7C,0x80,0x00,0x00,0x00,0x00,0x40,0x40,0x3F,0x00,0x00,0x00,0x00,//} 93
//0x00,0x06,0x01,0x01,0x02,0x02,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//~ 94=126-32
0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0xFE,0xFF,0x00,0x01,0x03,0x07,0x0F,0x1F,0x3F,0x7F,/*"箭头(替换~)",95*/
};
//一个128*64的LOGO图片
uchar code 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,
0x80,0x80,0xC0,0xC0,0xE0,0xE0,0xE0,0xE0,0xE0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,
0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0x60,
0x60,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
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,0xFC,0xFE,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x3F,0x3F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,
0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x07,0x03,0x03,0x01,0x00,0x00,0x00,
0x80,0xC0,0xF0,0xFC,0x7E,0x3E,0x1F,0x0F,0x07,0x07,0x03,0x03,0x03,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0xFC,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x7F,0x1F,0x07,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x80,0x80,0xC0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xF8,0xFC,0xFE,
0xFF,0x7F,0x07,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0xFC,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x87,0x80,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xC0,0xE0,0xF0,0xF8,0xF8,
0xFC,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x0F,0x07,0x07,0x03,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x03,0x07,0x07,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
0x0F,0x0F,0x0F,0x07,0x07,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0x60,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x40,0x80,
0x80,0x00,0x00,0x00,0x00,0xE0,0xE0,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x00,0x00,0x00,0xE0,0xE0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,
0xE0,0x00,0x00,0x00,0x80,0xC0,0xC0,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x40,0xC0,0x00,0x00,0x00,0xE0,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0xE0,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x1F,0x3F,0x7F,0xC0,0x80,0x80,0x9C,0x9C,0x84,0x84,0x84,0x84,0x8C,0xFC,
0xFC,0x00,0x00,0x00,0x00,0xFF,0xFF,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
0x86,0x00,0x00,0x00,0xFF,0xFF,0x00,0x01,0x03,0x06,0x06,0x0C,0x18,0x30,0x60,0xFF,
0xFF,0x00,0x00,0x0E,0x1F,0x3F,0x40,0xC0,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0x40,0x30,0x00,0x00,0x00,0xFF,0xFF,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
0x04,0x04,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"D:\_USER_FILE\桌面\1.BMP",0*/
};
/**********************************************
//IIC Start
**********************************************/
void IIC_Start()
{
SCL = high;
SDA = high;
SDA = low;
SCL = low;
}
/**********************************************
//IIC Stop
**********************************************/
void IIC_Stop()
{
SCL = low;
SDA = low;
SCL = high;
SDA = high;
}
/**********************************************
// 通过I2C总线写一个字节
**********************************************/
void Write_IIC_Byte(unsigned char IIC_Byte)
{
unsigned char i;
for(i=0;i<8;i++)
{
if(IIC_Byte & 0x80)
SDA=high;
else
SDA=low;
SCL=high;
SCL=low;
IIC_Byte<>4)|0x10);
OLED_WrCmd((x&0x0f)|0x01);
}
/*********************OLED全屏************************************/
void OLED_Fill(unsigned char bmp_dat)
{
unsigned char y,x;
for(y=0;y<8;y++)
{
OLED_WrCmd(0xb0+y);
OLED_WrCmd(0x01);
OLED_WrCmd(0x10);
for(x=0;x<X_WIDTH;x++)
OLED_WrDat(bmp_dat);
}
}
/*********************OLED复位************************************/
void OLED_CLS(void)
{
unsigned char y,x;
for(y=0;y<8;y++)
{
OLED_WrCmd(0xb0+y);
OLED_WrCmd(0x01);
OLED_WrCmd(0x10);
for(x=0;x120){x=0;y++;}
OLED_Set_Pos(x,y);
for(i=0;i<8;i++)
OLED_WrDat(F8X16[c*16+i]);
OLED_Set_Pos(x,y+1);
for(i=0;i<8;i++)
OLED_WrDat(F8X16[c*16+i+8]);
x+=8;
j++;
}
}
/*****************功能描述:显示16*16点阵 显示的坐标(x,y),y为页范围0~7****************************/
void OLED_P16x16Ch(uchar x, uchar y, uchar N)
{
unsigned char wm=0;
unsigned char adder=32*N;
OLED_Set_Pos(x , y);
for(wm = 0;wm < 16;wm++)
{
OLED_WrDat(F16x16[adder]);
adder += 1;
}
OLED_Set_Pos(x,y + 1);
for(wm = 0;wm < 16;wm++)
{
OLED_WrDat(F16x16[adder]);
adder += 1;
}
}
/***********功能描述:显示显示BMP图片128×64起始点坐标(x,y),x的范围0~127,y为页的范围0~7*****************/
void Draw_BMP(unsigned char x0, y0,x1, y1,unsigned char BMP[])
{
unsigned int j=0;
unsigned char x,y;
if(y1%8==0) y=y1/8;
else y=y1/8+1;
for(y=y0;y<y1;y++)
{
OLED_Set_Pos(x0,y);
for(x=x0;x126){x=0;y++;}
OLED_Set_Pos(x,y);
for(i=0;i<6;i++)
OLED_WrDat(F6x8[c][i]);
x+=6;
j++;
}
}
#endif
Tips code status[5]=
{
{"OK."},
{"Error,Retry."},
{"1"}
};
/**************************************************
*
* 菜单库
*
***************************************************/
uchar func_index = 0;
// Tips code line[4]={{"Selection 1 "},{"Selection 2 "},{"Selection 3 "},{"Selection 4 "},};
Tips code line[4]={
// (" ADD ");
{"Modify U PWD "},
{" S50 CARDs "},
{"LOG MESSEGES "},
{" Home "},};
// Tips code lines[4]={{"Selection 1~ "},{"Selection 2~ "},{"Selection 3~ "},{"Selection 4~ "}};
Tips code lines[4]={
// (" ADD ");
{"Modify U PWD ~"},
{" S50 CARDs ~"},
{"LOG MESSEGES ~"},
{" Home ~"}
};
/**************
* 以下函数func0~func14都是菜单功能的循环
* 包含结构体和函数指针的知识,详情请见解析
* https://zhidao.baidu.com/question/447214291.html
*********************/
void func0() //OLED显示:菜单模式 func_index = 0;
{
EA = 0;
OLED_CLS();
OLED_P16x16Ch(23,3,0);
OLED_P16x16Ch(40,3,1);
OLED_P16x16Ch(57,3,2);
OLED_P16x16Ch(74,3,3);
EA = 1;
}
void func1() //OLED显示:Modify User Passwd
{
EA = 0;
OLED_P8x16Str(0,6,line[3].messege);
OLED_P8x16Str(0,4,line[2].messege);
OLED_P8x16Str(0,2,line[1].messege);
OLED_P8x16Str(0,0,lines[0].messege);
EA = 1;
}
void func2() //OLED显示:ADD S50 Cards
{
EA = 0;
OLED_P8x16Str(0,0,line[0].messege);
OLED_P8x16Str(0,2,lines[1].messege);
OLED_P8x16Str(0,4,line[2].messege);
OLED_P8x16Str(0,6,line[3].messege);
EA = 1;
}
void func3() //OLED显示:LOG MESSEGES
{
EA = 0;
OLED_P8x16Str(0,0,line[0].messege);
OLED_P8x16Str(0,2,line[1].messege);
OLED_P8x16Str(0,4,lines[2].messege);
OLED_P8x16Str(0,6,line[3].messege);
EA = 1;
}
void func4() //OLED显示:HOME
{
EA = 0;
OLED_P8x16Str(0,0,line[0].messege);
OLED_P8x16Str(0,2,line[1].messege);
OLED_P8x16Str(0,4,line[2].messege);
OLED_P8x16Str(0,6,lines[3].messege);
EA = 1;
}
void func5() //修改用户密码,执行完毕,func_index = 7(欢迎回家)
{
EA = 0;
OLED_CLS();
OLED_P8x16Str(40,0,"Input");
OLED_P8x16Str(15,2,"Super Passwd");
OLED_P8x16Str(100,4,"...");
EA = 1;
if(modify()) {EA = 0; OLED_CLS();OLED_P8x16Str(30,3,"Successful!");Delay500ms();EA=1;}
else {EA=0;OLED_CLS();OLED_P8x16Str(40,4,"Retry!");Delay500ms();EA =1;}
func_index = 7;
OUT = 1;
EA = 1;
}
void func6()// 第四行的Home返回到欢迎界面
{
OUT = 1;
TEMP = 0;
func_index = 7;
EA = 0;
OLED_CLS();
OLED_P8x16Str(3,4,"BACKING HOME!");
Delay500ms();
// OLED_P16x16Ch(23,3,1);
// OLED_P16x16Ch(40,3,2);
// OLED_P16x16Ch(57,3,3);
// OLED_P16x16Ch(74,3,4);
EA = 1;
}
void func7()//OLED显示:“欢迎回家”,内含返回while循环的关键函数
{
EA = 0;
OLED_CLS();
OLED_P16x16Ch(23,3,4);
OLED_P16x16Ch(40,3,5);
OLED_P16x16Ch(57,3,6);
OLED_P16x16Ch(74,3,7);
OUT = 1;
TEMP = 0;
EA = 1;
}
void func8()//版本信息
{
EA = 0;
OLED_CLS();
OLED_P8x16Str(0,0,"Version Messege");
OLED_P8x16Str(40,2,"V3.99");
OLED_P8x16Str(30,4,"By LAH");
OLED_P8x16Str(5,6," 2020421 Update");
EA = 1;
}
void func9(){
EA = 0;
OLED_CLS();
OLED_P8x16Str(0,3,"Door Is Opening.");
EA = 1;
Delay500ms();
MotroOpenDoor();
func_index = 7;
OUT = 1;
TEMP = 0;
}
void func10(){
bit Cards_OUT = 0;
EA = 0;
OLED_CLS();
OLED_P8x16Str(40,0,"Input");
OLED_P8x16Str(15,2,"Super Passwd");
OLED_P8x16Str(100,4,"...");
EA = 1;
if(verif_admin_passwd()) {
EA = 0;
OLED_CLS();
OLED_P8x16Str(30,3,"Successful!");Delay500ms();
OLED_CLS();
OLED_P8x16Str(30,3,"Show Card!");
EA=1;
while(!Cards_OUT){
if(PcdRequest(0x52,Temp_S50) == MI_OK)
{
if(PcdAnticoll(UID_S50)== MI_OK )
{
save_UID_In_EEPROM(UID_S50);
Delay200ms();
Cards_OUT = 1;
}
}
}
EA = 0;
OLED_CLS();
OLED_P8x16Str(30,2,"Successful!");
OLED_P8x16Str(30,4,"Updating...");
Delay500ms();
read_UID_From_EEPROM(G);
OLED_CLS();
EA=1;
}
else {EA=0;OLED_CLS();OLED_P8x16Str(40,4,"Retry!");Delay500ms();EA =1;func_index = 7; OUT = 1;TEMP = 0;return;}
OUT = 1;
TEMP = 0;
func_index = 7;
}
void func11(){
EA = 0;
OLED_CLS();
OLED_P8x16Str(0,0,"Warning!");
OLED_P8x16Str(40,3,"CLEAN");
OLED_P8x16Str(40,3,"ALl");
OLED_P8x16Str(40,3,"UID");
EA = 1;
clearAll();
OUT = 1;
TEMP = 0;
func_index = 7;
}
void func12(){
EA = 0;
OLED_P8x16Str(0,0," ADD~");
OLED_P8x16Str(0,2," DEL UID ");
OLED_P8x16Str(0,4," Back ");
OLED_P8x16Str(0,6," ");
EA = 1;
}
void func13(){
EA = 0;
//"Modify U PWD "
OLED_P8x16Str(0,0," ADD ");
OLED_P8x16Str(0,2," DEL UID~");
OLED_P8x16Str(0,4," Back ");
OLED_P8x16Str(0,6," ");
EA = 1;
}
void func14(){
EA = 0;
OLED_P8x16Str(0,0," ADD ");
OLED_P8x16Str(0,2," DEL UID ");
OLED_P8x16Str(0,4," Back~");
OLED_P8x16Str(0,6," ");
EA = 1;
}
key_table code table[20] =
{
// {current,up,down,enter,(*current_operation)},
{0,4,1,0,(*func0)},
{1,4,2,5,(*func1)},//第一行"Modify User Passwd",确认键进入函数5(修改用户密码),
{2,1,3,12,(*func2)},//第二行 S50 Cards
{3,2,4,8,(*func3)},//第三行“LOG Messeges”
{4,3,1,6,(*func4)},//第四行“HOME”
{5,0,0,0,(*func5)},//功能函数:修改密码函数
{6,2,0,7,(*func6)},//功能函数:Home返回键,提示“Backing HOME!”,执行完func6,赋值func_index为7,退出后执行函数7,提示“欢迎回家”,之后重回到while大循环中
{7,7,7,7,(*func7)},//功能函数:OLED显示:“欢迎回家”,内含返回while循环的关键函数
{8,7,7,7,(*func8)},//功能函数:显示版本等信息,按任意功能键返回HOME
{9,9,9,9,(*func9)}, //Null
{10,7,7,7,(*func10)}, //添加新S50功能函数
{11,7,7,7,(*func11)}, //清除全部UID函数
{12,14,13,10,(*func12)}, //显示 ADD
{13,12,14,11,(*func13)}, //显示DEL跳转func11清除UID函数
{14,13,12,7,(*func14)}, //显示Back
};
void enterMenu()
{
EA = 0;
Draw_BMP(0,0,128,8,BMP1);
Delay1000ms();
EA = 1;
}
uchar getDir()// 获取函数下标func_index
{
uchar temp = 0;
key_flag = 0;
temp = key_num;
if(temp == 3){ func_index = table[func_index].up; key_num = 99; key_flag = 1;return temp; } //上
else if(temp == 15){ func_index = table[func_index].down; key_num = 99; key_flag = 1; return temp; } //下
else if(temp == 14){ func_index = table[func_index].enter; key_num = 99; key_flag = 1; return temp;} //确定键
else return 0;
}
超薄奥利奥
原创文章 5获赞 5访问量 479
关注
私信
展开阅读全文
作者:超薄奥利奥