LCD1602 PIC驱动程序
更新时间:2023-05-18 03:25:01 阅读量: 实用文档 文档下载
- lcd1602推荐度:
- 相关推荐
LCD1602 PIC驱动程序,程序中有详细注释。
LCD1602 PIC驱动程序
1. 仿真电路图如下:
2. 源程序如下:
//LCD1602驱动程序,4位总线方式
//单片机:PIC16F877A(4MHz)
LCD1602 PIC驱动程序,程序中有详细注释。
//******************初始化说明**************************
//4位总线方式初始化,应注意LCD接线方式,及初始化首条指令
//4位总线初始化方法:因LCD加电初始化后默认为8位总线方式,
//故首条指令只能以8位方式传送,此时高4位数据可以程序控制,
//(而低4位则取决于硬件接线方式)设定为4位总线方式的控制
//位,刚好在第4位,故此时可以将总线传送方式设为4位方式,当将
//总经传送方式设为4位后,LCD工作方式就完全可以控制了.
//关于低4位接线方式的说明:由于首条指令只需将总线方式设为
//4位传送方式,LCD便可控,因低4位的接线方式并不影响对LCD总
//线传送方式的设定,故低4位接线方式可任意(包括悬空).
//*******************************************************
#include <pic.h>
#include <data_type.h>
__CONFIG(HS &WDTDIS& PWRTEN& BORDIS& LVPDIS& UNPROTECT);
#define LCD_EN RC7
#define LCD_RS RC6
#define LCD_A RC5 //LCD背光控制
#define LCD_DATA_BUS PORTC //4位总线,只用RC0-RC3
#define LAMP_OFF 1 //背光关
#define LAMP_ON 0 //背光开
#define C 0 //控制RS用,转送命令
#define D 1 //转送数据
#define ON 1 //控制E用,高电平
#define OFF 0 //低电平
unchar LCD_init(void);
unchar Wcmd(unchar command);
unchar Wdata(unchar data);
void delay(unint loop);
void main(void)
{
unchar const str1[]="***My LCD1602***\0"; //第一行字符
unchar const str2[]="2010-06-26\0"; //第二行字符
unchar const *str_p;
LCD_init();
while(1){
LCD1602 PIC驱动程序,程序中有详细注释。
Wcmd(0x01); //清显示
delay(170); //延时1.8ms
delay(60000);
for(str_p=str1;*str_p!='\0';str_p++){
Wdata(*str_p); //送显第一行字符
delay(20000);
}
Wcmd(0x80+0x43);
for(str_p=str2;*str_p!='\0';str_p++){
Wdata(*str_p); //送显第二行字符
delay(20000);
}
delay(60000);
delay(60000);
}
}
unchar LCD_init(void)
{
PORTC=0;
LCD_RS=D;
TRISC=0b00010000;
LCD_RS=C; //传送命令
LCD_DATA_BUS=(LCD_DATA_BUS & 0xf0)| 2;
LCD_EN=ON; //设定为4位总线方式
NOP(); //延时2us
NOP();
LCD_EN=OFF; //转送高4位字节(2)
delay(5); //延时60us
Wcmd(0x28); //功能调置:4位总线,两行显示5*8点字符
Wcmd(0x01); //清显示
delay(170); //延时1.8ms
Wcmd(0x0c); //显示控制:开显示,无光标
Wcmd(0x06); //输入模式:LCD AC自增,显示不移动
LCD_A=LAMP_ON; //开背光
return 0;
}
//转送命令函数
unchar Wcmd(unchar command)
{
LCD_RS=C;
LCD_DATA_BUS=(LCD_DATA_BUS & 0xf0)|((command & 0xf0)>>4);
LCD1602 PIC驱动程序,程序中有详细注释。
LCD_EN=ON;
NOP(); //延时2us
NOP();
LCD_EN=OFF; //转送高4位字节
LCD_DATA_BUS=(LCD_DATA_BUS & 0xf0)|(command & 0x0f);
LCD_EN=ON;
asm("goto $+1"); //延时2us
LCD_EN=OFF; //转送低4位字节
delay(5);
return 0;
}
//转送数据函数
unchar Wdata(unchar data)
{
LCD_RS=D;
LCD_DATA_BUS=(LCD_DATA_BUS & 0xf0)|((data & 0xf0)>>4);
LCD_EN=ON;
NOP(); //延时2us
NOP();
LCD_EN=OFF; //转送高4位字节
LCD_DATA_BUS=(LCD_DATA_BUS & 0xf0)|(data & 0x0f);
LCD_EN=ON;
NOP(); //延时2us
NOP();
LCD_EN=OFF; //转送低4位字节
delay(5);
return 0;
}
void delay(unint loop) /*延时函数!延迟周期如下:*/
{ /*1<=loop<=3时:Cycle≈loop*10+5*/
/*4<=loop<=9时:Cycle≈loop*10+10*/
while(--loop) /*10=<loop<1000时:Cycle=loop*11+3*/
{;} /*1000=<loop<=65535时Cycle=loop*11+5*/
}
说明:电路及程序已完全调试通过,并通过开发板实验完全正常,另外有关LCD1602资料见我上传《通用1602LCD使用手册_中文.pdf》
正在阅读:
LCD1602 PIC驱动程序05-18
津劳登字6号表(就业、劳动合同登记名册)05-10
七年级英语下册Module 6 Unit2学案外研版05-19
网络对大学生心理健康的影响调查报告第十组05-13
浅谈武汉城市圈发展规划01-27
第三章 离散线性系统随机振动05-24
《金融风险管理》习题集04-17
Web开发面试题及其答案09-28
2014-2015学年度人教版四年级语文下册期中测试题及答案03-20
烟草专卖科长述职述廉报告(精选多篇)09-26
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 驱动程序
- LCD1602
- PIC
- 美国的高等教育评估
- 《椭圆的简单几何性质》教学设计
- 国家环保局关于全国机动车尾气排放监测管理制度(暂行)1991.2.23
- 小学英语五年级复习介词填空
- 宜宾市高三(2013届)第一次诊断性测试文科综合
- 管理形势分析会材料
- 学习心得模板(二)
- 以就业为导向的公共管理人才培养模式
- PEP英语五年级听力原文及参考答案
- 赵都新城施工组织设计
- 能帮助学子考上北航法硕的辅导班
- 10-13高考短文改错
- 甘肃政法学院学生社团发展问题调查报告1
- 0~12个月宝宝成长发育指标与养育要事提醒(整理版,新手妈妈必备)
- 从福柯的空间理论解读欧茨小说中的异质空间
- 广西桂林市国美电器圣诞狂欢促销活动策划案
- 临海市青少年宫五年级写作课程第十三次课教案
- 教师招聘考试题公共教育学.心理学考试题及参考答案
- 视频剪辑感受之令狐文艳创作
- 联轴器100个问与答