网站大量收购独家精品文档,联系QQ:2885784924

LC表驱动程序V1.0STC12C5A60S2许剑伟于莆田2012.10.doc

LC表驱动程序V1.0STC12C5A60S2许剑伟于莆田2012.10.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档