基于MDK編譯器 STM32與12864液晶顯示程序 和電路連接
這里用的12864液晶是5v的,電路鏈接部分 RS PE2 RW PE4 EN PE6 15口PSB串并 PE3
#include "stm32f10x.h"
GPIO_InitTypeDef GPIO_InitStructure;
#define RS_SET GPIO_SetBits(GPIOE, GPIO_Pin_2)
#define RS_CLR GPIO_ResetBits(GPIOE, GPIO_Pin_2)
#define RW_SET GPIO_SetBits(GPIOE, GPIO_Pin_4)
#define RW_CLR GPIO_ResetBits(GPIOE, GPIO_Pin_4)
#define EN_SET GPIO_SetBits(GPIOE, GPIO_Pin_6)
#define EN_CLR GPIO_ResetBits(GPIOE, GPIO_Pin_6)
#define PSB_SET GPIO_SetBits(GPIOE, GPIO_Pin_3)
#define PSB_CLR GPIO_ResetBits(GPIOE, GPIO_Pin_3)
#define DATA_IO GPIOC->ODR
void RCC_Configuration(void);
void LCD12864_Config(void);
void Delay_nus(__IO uint32_t nCount);
void Delay_mus(__IO uint32_t nCount);
uint8_t table[]="做我女朋友吧!";
void write_12864com(uint8_t com)
{
RW_CLR;
RS_CLR;
Delay_nus(500);
DATA_IO=com;
EN_SET;
Delay_nus(1000);
EN_CLR;
Delay_nus(1000);
}
void write_12864dat(uint8_t dat)
{
RW_CLR;
RS_SET;
Delay_nus(500);
DATA_IO=dat;
EN_SET;
Delay_nus(1000);
EN_CLR;
Delay_nus(1000);
}
void init12864lcd(void)
{
Delay_mus(500);
write_12864com(0x30);
Delay_nus(500);
write_12864com(0x30);
Delay_nus(500);
write_12864com(0x0f);
Delay_nus(500);
write_12864com(0x01);
Delay_nus(25);
write_12864com(0x06);
Delay_nus(2500);
write_12864com(0x0c);
Delay_nus(500);
}
void display(void)
{
uint8_t i;
write_12864com(0x80);
for(i=0;i<14;i++)
{
write_12864dat(table[i]);
Delay_mus(50);
}
}
void LCD12864_Config(void)
{
}
int main(void)
{
}
void RCC_Configuration(void)
{
}
void Delay_nus(uint32_t nCount)
{
}
void Delay_mus(uint32_t nCount)
{
}
評(píng)論