按键复用1602液晶显示.docVIP

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
按键复用(1602 液晶显示) AVR单片机单按键复用之程序AVR单片机中断法的按钮前一段就可以了,查询的居然卡住了。先写一个51C的,在此基础上写了AVR GCC的,一直到今天才完成。感觉二者还是有点区别的。 ? ? //查询法按键程序,单键复用。P1.O接一按键,P1.1接一LED。 //11 05 13?? E:\DPJ_C\OTHER\ONEKEY\ONEKEY.C #include reg51.h #define? uchar unsigned char sbit LED1= P1^1; sbit LED2= P1^2; sbit KEY = P1^0; void delay(unsigned int ms ) { ?unsigned char i; ?while(ms--) ?for(i=0;i123;i++); } void disp1() { ?LED1=1; } void disp2() { ?LED1=0; } void main() {? ?uchar temp; ?while(1) ?{ ??while(!KEY) ??{ ???delay(10); ???if(KEY) ???temp=~temp; ???if(~temp) ???disp1(); ???else ???disp2();????? ??} ?}??? } ? //查询法按键程序,单键复用。PCO接一按键,PD0接一LED。 //11 05 13?? E:\AVR\ONEKEY\onekey.c #includeavr/io.h #includeutil/delay.h #define KEY PD0 #define? uchar unsigned char uchar temp,i; void disp1() { ?DDRC=~_BV(PC0);//PB0端口低电平 ?PORTC=~_BV(PC0);//PB0高阻状态,LED无电流通过? } void disp2() { ?DDRC|=_BV(PC0);//PC0端口高电平,输出 ?PORTC=~_BV(PC0);//PC0低电平输出,LED点亮? } int main() { ? ?DDRD|=_BV(KEY); //PD0高电平,输出 ?PORTD|=_BV(KEY); ?DDRD=~_BV(KEY); ?while(1) ?{? ??while(!(PIND_BV(KEY))) ??{ ???for(i=0;i5;i++)_delay_ms(10); ???if((PIND_BV(KEY)))//等待按键释放 ???temp =~temp; ???if(temp==0xff) ???disp2(); ???else ???disp1(); ??} ?} } 1602字符液晶详细资料和实例 时间:2010-10-11 ? 来源: ? 作者: ? 点击:816 ? 字体大小:【大 中 小】 - ??? 1602字符液晶在实际的产品中运用的也比较多了,前几天留意了一下,发现宿舍门前的自动售水机就是采用的1602液晶进行显示的。而且对于单片机的学习而言,掌握1602的用法是每一个学习者必然要经历的过程。在此,我将使用1602过程中遇到的问题以及感受记录下来,希望能够给初学者带来一点指导,少走一点弯路。? ????所谓1602是指显示的内容为16*2,即可以显示两行,每行16个字符。目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。? ?? 1602液晶的正面(绿色背光,黑色字体)? ?? 1602液晶背面(绿色背光,黑色字体)? ?? 另一种1602液晶模块,显示屏是蓝色背光白色字体 ??????? 字符型LCD1602通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样,引脚定义如下表所示:? ? ????HD44780内置了DDRAM、CGROM和CGRAM。? ??? DDRAM就是显示数据RAM,用来寄存待显示的字符代码。共80个字节,其地址和屏幕的对应关系如下表:? ?? 也就是说想要在LCD1602屏幕的第一行第一列显示一个A字,就要向DDRAM的00H地址写入“A”字的代码(指A的字模代码,0x20~0x7F为标准的ASCII码,通过这个代码,在CGROM中查找到相应的字符显示)就行了。但具体的写入是要按LCD模块的指令格式来进行的,后面我会说到的。那么一行可有40个地址呀?是的,在1602中我们就用前16个就行了。第二行也一样用前16个地址。对应如下: ? ?D

文档评论(0)

00625 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档