键盘扫描和液晶显示.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
键盘扫描和液晶显示

杭州电子科技大学 电子设计(A)实验 设计报告 实验名称 1 键盘扫描与LCD显示 实验次数 1 小组号 26 姓名学号 潘瑞东姓名学号 姓名学号 指导教师 黄继业 2009 年 3 键盘扫描与LCD显示 方案论证与比较 方案一:矩阵键盘有一组I/O口控制,LCD输入数据端口直接与单片机的一组I/O口连接。此方案的设备比较简单,接线也简单,程序简洁。但缺点是所占的I/O资源比较多,实际操作性不强。 矩阵键盘STC 矩阵键盘 STC 1602LCD 方案二:矩阵键盘由一组I/O口控制,使用两块74HC595芯片,实现串行输出,转换并行输出,节约了I/O口,提高了单片机的可操作性。通过在KEIL中用C语言编写HEX文件,控制1602液晶显示屏。 键盘单片机 键盘 单片机 74HC595 LCD 二.总体方案设计 三.理论分析和计算 根据原理图可知,P0.0—P0.7口控制矩阵键盘,P1.0-P1.2作为第一块595芯片的输入,其中P1.0接入SH_CP,P1.1接入ST_CP,P1.2接入DS,其输出的Q4,Q5,Q6输出口分别控制LCD的RS,RW,E. P1.3-P1.5作为第二块595芯片的输入,其输出端Q0-Q7分别控制LCD的对应的数据口。 键盘扫描原理:先复位使行线输出口全为0,给高四位低电平,使其处于列线读取状态。然后判断低四位电平状况,如果没有键被按下,则表示没有键被按下,如果有键按下的话,行线和列线的交点处就会被导通,就会出现电平变化。 74HC595工作原理:595是串入并出带有锁存功能移位寄存器,Q0-Q7为并行数据输出;Q7-Q9为串行数据输出;MR 10 主复位(低电平);SHCP 11 移位寄存器时钟输入;STCP 12 存储寄存器时 钟输入;OE 13 输出有效(低电平); DS 14 串行数据输入。 四.软硬件的系统设计 本实验只要检测LCD是否在在显示屏的第一行出现“Hello World”.在显示屏的第二行显示所按的键,并在数码管中显示相应位置。 五.测试 本实验最终测试结果实现了4*4矩阵键盘扫描,并实现了通过键盘控制在1602lcd和数码管上显示数字。在LCD显示屏的第一行出现“Hello World”.在显示屏的第二行显示所按的键,并在数码管中显示相应位置。 六.总结 1、通过本次实验,使本人初步掌握了通过C语言,实现单片机控制的基本操作,诸如流水灯,液晶显示控制,键盘扫描。知道了通过查阅PDF技术文档,解决实验中碰到的问题。 2、通过本次实验,提高了我们组的协同合作能力。 参考文献: [1] EN_TC1602PDF,74HC595PDF [2] 51单片机C语言常用模块与综合系统设计实例精讲(第二版) 电子工业出版社 附: #includereg51.h #define uint unsigned int #define uchar unsigned char uchar code table2[]={0,1,2,3,4,5,6,7,8,9,a,b,c,d,e}; uchar code led[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}; uchar code table[]=Hello World!; uchar code table3[]=The key is; uchar num,temp,key,num1,num2,num3; sbit sh_cp_1=P1^3; //sh-cp sbit st_cp_1=P1^4; //st-cp sbit DAT_1=P1^5; //DS sbit sh_cp_2=P1^0; //sh-cp sbit st_cp_2=P1^1; //st-cp sbit DAT_2=P1^2; //DS void delay(unsigned char z) //延时程序 { unsigned int x,y; for(x=z;x0;x--) for(y=110;y0;y--) ; } void send_1(uchar a) //595给1602发数据 控制流水灯 { uchar c; for(c=0;c8;c++) { sh_cp_1=0; DAT_1=a0x80;

文档评论(0)

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

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

1亿VIP精品文档

相关文档