123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- #include "drive_12864.h"
- #include <stdarg.h> // 标准头文件
- #include "stdio.h"
- #include "delay.h"
- #define L128_RW GPIO_Pin_8
- #define L128_EN GPIO_Pin_9
- #define SET_EN GPIO_SetBits(GPIOA, L128_EN);
- #define CLR_EN GPIO_ResetBits(GPIOA, L128_EN);
- #define SET_RW GPIO_SetBits(GPIOA, L128_RW);
- #define CLR_RW GPIO_ResetBits(GPIOA, L128_RW);
- void LCD128GPIO_Init(void)
- {
- GPIO_InitTypeDef GPIO_InitStructure;
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_9;
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
- GPIO_Init(GPIOA,&GPIO_InitStructure);
- }
- void Senbyte(unsigned char command)
- {
- unsigned char i;
- for(i=0;i<8;i++)
- {
- if((command<<i)&0x80)
- {
- SET_RW;
- }
- else
- {
- CLR_RW;
- }
- CLR_EN;
-
- SET_EN;
- }
- }
- void Write_lcd_com(unsigned char command)
- {
-
- Senbyte(0xf8);
- Senbyte(command&0xf0);
- Senbyte((command<<4)&0xF0);
- delay_us(100);
- }
- void Write_lcd_date(unsigned char date)
- {
- Senbyte(0xfa);
- Senbyte(date & 0xf0);
- Senbyte((date<<4) & 0xf0);
- delay_us(100);
- }
- void lcd128_Init(void)
- {
- LCD128GPIO_Init();
- delay_ms(100);
- Write_lcd_com(0x30);
- delay_us(100);
- Write_lcd_com(0xc0);
- delay_us(100);
- Write_lcd_com(0x30);
- Write_lcd_com(0x20);
- Write_lcd_com(0x06);
- Write_lcd_com(0x0c);
- Write_lcd_com(0x01);
- Write_lcd_com(0x80);
- }
- void WriteLcd128_String(char x,char y,char *p)
- {
- switch(y)
- {
- case 0:Write_lcd_com(0x80 + x);
- break;
- case 1:Write_lcd_com(0x90 + x);
- break;
- case 2:Write_lcd_com(0x88 + x);
- break;
- case 3:Write_lcd_com(0x98 + x);
- break;
- }
- while(*p != 0)
- {
- Write_lcd_date(*p);
-
- p++;
- }
- }
- void L128printf(char x,char y,char *p,...)
- {
- char LcdBuff[20];
- va_list ap;
- va_start(ap,p);
- vsprintf(LcdBuff,p,ap);
- va_end(ap);
- WriteLcd128_String(x,y,LcdBuff);
- }
|