单片机源程序如下:- #include "sys.h"
- #include "delay.h"
- #include "lcd1602.h"
- const u8 table1[] = "Hello Everyone!";
- const u8 table2[] = "Welcome to hear!";
- /////////////////////////////////////////////////////////
- //本程序只供学习使用,未经作者许可,不得用于其它任何用途
- //LCD1602液晶显示测试
- //液晶控制芯片HD44780及兼容芯片
- //驱动方式:并口驱动
- //作者;jia
- //创建日期:2016年3月19日
- //部分程序引用@正点原子
- //对此程序如有疑问或建议
- /////////////////////////////////////////////////////////
- u8 i;
- int main(void)
- {
- delay_init();
- lcd1602_init();
- while(1)
- {
- // lcd1602_write_byte(0x01,write_cmd);
- lcd1602_write_byte(0x80+0x10,write_cmd);
- for(i=0;i<15;i++)
- {
- lcd1602_write_byte(table1[i],write_dat);
- delay_ms(20);
- }
- lcd1602_write_byte(0x80+0x50,write_cmd);//必须用写命令来指定在GRAM哪个地址上写内容
- for(i=0;i<16;i++)
- {
- lcd1602_write_byte(table2[i],write_dat);
- delay_ms(20);
- }
-
- for(i=0;i<16;i++)
- {
- lcd1602_write_byte(0x18,write_cmd);
- delay_ms(500);
- }
- while(1);
- }
- }
复制代码
- #include "lcd1602.h"
- #include "delay.h"
- /////////////////////////////////////////////////////////
- //本程序只供学习使用,未经作者许可,不得用于其它任何用途
- //LCD1602液晶显示测试
- //液晶控制芯片HD44780及兼容芯片
- //驱动方式:并口驱动
- //作者;jia
- //创建日期:2016年3月19日
- //部分程序引用@正点原子
- //对此程序如有疑问或建议
- /////////////////////////////////////////////////////////
- //mode:0 写命令 1 写数据
- //dat 写入液晶数据口的数据
- void lcd1602_write_byte(u8 dat,u8 mode)
- {
- // GPIO_Write(GPIOB,dat<<8); //ok
- lcd1602_port_dat(dat) //ok
- lcd1602_rs = mode;
- // lcd1602_en = 0;
- // delay_ms(10);
- lcd1602_en = 1;
- delay_ms(10);
- lcd1602_en = 0;
- }
- //LCD1602初始化函数
- void lcd1602_init(void)
- {
- GPIO_InitTypeDef GPIO_InitStruct;
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
-
- GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;
- GPIO_InitStruct.GPIO_Pin=GPIO_Pin_All;
- GPIO_InitStruct.GPIO_Speed=GPIO_Speed_10MHz;
- GPIO_Init(GPIOB, &GPIO_InitStruct);
- GPIO_Write(GPIOB, 0XFF);
-
- lcd1602_write_byte(0x38,write_cmd);//16*2显示,5*7点阵,8位数据接口
- // delay_ms(100);
- lcd1602_write_byte(0x0f,write_cmd);//开显示,开光标,光标闪烁
- //delay_ms(100);
- lcd1602_write_byte(0x06,write_cmd);//字符指针加1,光标加1;写一个字符整屏不移动
- //delay_ms(100);
- lcd1602_write_byte(0x01,write_cmd);//清屏
- }
复制代码
Keil代码下载:
库函数-LCD1602.7z
(176.83 KB, 下载次数: 18)
|