1 unsigned char Lcdram[32]=
2 {3 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,4 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,5 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,6 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
7 };8
9 const unsigned char Wendu[] = //温度0-9
10 {11 0X5F, 0X50, 0X3D, 0X79, 0X72, 0X6B, 0X6F, 0X51, 0X7F, 0X7B
12 };13 ///驱动函数
14 /*
15 * LCD 模式写入16 * 入口:MODE :COM(命令模式) DAT(数据模式)17 * 出口:void18 */
19 void write_mode(unsigned char MODE) //写入模式,数据or命令
20 {21 GPIO_ResetBits(GPIOB, HT1621_WR); //RW = 0;
22 delay_us(10);23 GPIO_SetBits(GPIOB, HT1621_DATA); //DA = 1;
24 GPIO_SetBits(GPIOB, HT1621_WR); //RW = 1;
25 delay_us(10);26
27 GPIO_ResetBits(GPIOB, HT1621_WR); //RW = 0;
28 delay_us(10);29 GPIO_ResetBits(GPIOB, HT1621_DATA); //DA = 0;
30 GPIO_SetBits(GPIOB, HT1621_WR); //RW = 1;
31 delay_us(10);32
33 GPIO_ResetBits(GPIOB, HT1621_WR); //RW = 0;
34 delay_us(10);35
36 if (0 ==MODE)37 {38 GPIO_ResetBits(GPIOB, HT1621_DATA); //DA = 0;
39 }40 else
41 {42 GPIO_SetBits(GPIOB, HT1621_DATA); //DA = 1;
43 }44 delay_us(10);45 GPIO_SetBits(GPIOB, HT1621_WR); //RW = 1;
46 delay_us(10);47 }48
49 /*
50 * LCD 命令写入函数51 * 入口:cbyte ,控制命令字52 * 出口:void53 */
54 void write_command(unsigned charCbyte)55 {56 unsigned char i = 0;57
58 for (i = 0; i < 8; i++)59 {60 GPIO_ResetBits(GPIOB, HT1621_WR);61 if ((Cbyte >> (7 - i)) & 0x01)62 {63 GPIO_SetBits(GPIOB, HT1621_DATA);64 }65 else
66 {67 GPIO_ResetBits(GPIOB, HT1621_DATA);68 }69 delay_us(10);70 GPIO_SetBits(GPIOB, HT1621_WR);71 delay_us(10);72 }73 GPIO_ResetBits(GPIOB, HT1621_WR);74 delay_us(10);75 GPIO_ResetBits(GPIOB, HT1621_DATA);76 GPIO_SetBits(GPIOB, HT1621_WR);77 delay_us(10);78 }79
80 /*
81 * LCD 地址写入函数82 * 入口:cbyte,地址83