- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
LC表驱动程序V1.0STC12C5A60S2许剑伟于莆田2012.10
//==========================================================================
//??LC表驱动程序 V1.0
//??许剑伟 于莆田 2012.10
//==========================================================================
//==========================================================================
#define uchar unsigned char
#define uint??unsigned int
#define ulong??unsigned long
#include reg52.h
//==========================================================================
// 项目:LCD1602 四线驱动程序
// 设计要点:
//? ???LCD1602 的运行速度慢,而单片机运行的速度快,因此容易因为速度不
//? ???匹配造成调试失败。因此,调试之前应准确测试lcd_delay() 延时函数
//? ???准确的延时量,如果不能满足注释中的要求,则应调整循次数。每步操
//? ???作所需的延时量,按照数据手册指标指行,同时留下足够的时间余量。
// 硬件连接:
//? ???至少需要9条线,电源线2条,7条信号线。信号线详见程序中的接口定义。
//? ???清注意对LCD1602比对的调节,否则无显示。
// 设计:许剑伟,于莆田,2010.12
//==========================================================================
sbit lcd_RS = P0^1; //数据命令控制位,0命令1数据
sbit lcd_RW = P0^2; //读写位,0写1读
sbit lcd_EN = P0^3; //使能位,下降沿触发
sbit lcd_D4 = P0^7; //数据端口D4
sbit lcd_D5 = P0^6; //数据端口D5
sbit lcd_D6 = P0^5; //数据端口D6
sbit lcd_D7 = P0^4; //数据端口D7
//==========================================================================
void lcd_delay(int n){ //LCD专用延时函数
??//32MHz钟频下,约循环3000次延迟1毫秒
??int i,j;
??if(n0)? ? { for(i=0;i 20;i++); return; } //10us
??if(n== 0)??{ for(i=0;i100;i++); return; } //50us
??for(;n;n--){ for(j=0;j2000;j++);? ?? ???} //n毫秒
}
//==========================================================================
void lcd_B(char f, uchar c, char t){ //控制四线式接口LCD的7个脚
??//f=0写命令字, f=1写RAM数据, f=2读地址(或读忙), f=3读RAM数据
??lcd_EN = 0;
??lcd_RS = f%2;
??lcd_RW = f/2%2;
??//移入高四位
??lcd_D4 = c 16;
??lcd_D5 = c 32;
??lcd_D6 = c 64;
??lcd_D7 = c 128;
??lcd_EN = 1;??lcd_delay(-1);??lcd_EN = 0; //使能脉冲
??if(f==4) { lcd_delay(t); return; }
??//移入低四位
??lcd_D4 = c 1;
??lcd_D5 = c 2;
??lcd_D6 = c 4;
??lcd_D7 = c 8;
??lcd_EN = 1;??lcd_delay(-1);??lcd_EN = 0; //使能脉冲
??lcd_delay(t);??//不同的命令,响应时间不同,清零命令需要2ms
}
//==========================================================================
void lcd_in
您可能关注的文档
- DSP与PLC应用概述.ppt
- EMC基础知识培训.ppt.ppt
- EM-2000F2k-50N250.ppt
- Enc28j60以太网芯片驱动程序简介-Rming.doc
- EPG系统原理.doc.doc
- ETSIEN301213-1.doc
- Excel在临床药物动力学中的应用.doc.doc
- DVB-IRD接口标准.ppt
- ExecutiveSummary-星矢科技无线Mesh网络.doc
- ERP-中钢.ppt
- 福莱特玻璃集团股份有限公司海外监管公告 - 福莱特玻璃集团股份有限公司2024年度环境、社会及管治报告.pdf
- 广哈通信:2024年度环境、社会及治理(ESG)报告.pdf
- 招商证券股份有限公司招商证券2024年度环境、社会及管治报告.pdf
- 宏信建设发展有限公司2024 可持续发展暨环境、社会及管治(ESG)报告.pdf
- 品创控股有限公司环境、社会及管治报告 2024.pdf
- 中信建投证券股份有限公司2024可持续发展暨环境、社会及管治报告.pdf
- 洛阳栾川钼业集团股份有限公司环境、社会及管治报告.pdf
- 361度国际有限公司二零二四年环境、社会及管治报告.pdf
- 中国神华能源股份有限公司2024年度环境、社会及管治报告.pdf
- 广西能源:2024年环境、社会及治理(ESG)报告.pdf
文档评论(0)