键盘显示课件_第1页
键盘显示课件_第2页
键盘显示课件_第3页
键盘显示课件_第4页
键盘显示课件_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、键盘显示软件仿真张盟蒙陕西科技大学键盘显示软件仿真键盘显示软件仿真硬件电路图硬件电路图1程序设计程序设计2程序实例程序实例3一、硬件电路图键盘显示软件仿真一、硬件电路图主要由LPC2103、74HC595、数码管和键盘组成;uLPC2103作为整个模块的控制中心;u74HC595用于驱动7段数码管;u键盘用于控制数码管的显示型式;键盘显示软件仿真一、硬件电路图1、按键控制原理XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD7

2、32P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51R110kD1LED-RED键盘显示软件仿真一、硬件电路图1、按键控制原理 当按键按下时,P1.0为低电平,此时,可以用程序控制是LED灯点亮。 本课题中,键盘的工作原理一样,当某个按键

3、按下时,74HC595的某个引脚会收到响应的高电平或低电,LPC2103则通过程序就可以判断此时是哪个键被按下,同时执行响应的操作。键盘显示软件仿真一、硬件电路图DB0DB1DB2DB3DB4DB5DB6DB7P0.18P0.19P0.20P0.21DB0DB1DB2DB3DB4DB5DB6DB7P0.17R14.7kR24.7k10234567Q015Q11Q22Q33Q44Q55Q66Q77Q79SH_CP11ST_CP12DS14MR10OE13U474HC595一、硬件电路图2、总体硬件图分析 图中,数码管是两个1*4的数码管,U2(74HC595)控制数码管的段选,U3(74HC59

4、5)控制数码管的位选,U4用于获取键盘信息,U2、U3、U4都有LPC2103控制。 键盘模块具体连接如下: P0.19U4-SHcp(数据输入脉冲) P0.20U4-Ds(数据) P0.21U4-STcp /OE数据输出一直使能键盘显示软件仿真二、软件仿真在程序设计时,首先进行逻辑分析,通过分析,程序大体分为两部分 段选程序 数码管驱动子程序 位选程序 按键扫描子程序 主函数键盘显示软件仿真二、软件仿真1、数码管驱动子程序u位选 首先,决定怎么显示(eg:数码管依次点亮或一起点亮或者是各种花样的显示)。 选择一种显示,数码管依次点亮,即一位一位的选中,此时应该考虑用移位或查表实现。数码管为共

5、阳,即被选择的位应置一。移位eg:P0.11=0 x01(0000 0001) P0.11=1(左移一位),即P0.11=0 x20键盘显示软件仿真二、软件仿真1、数码管驱动子程序查表eg:DISP_TAB8 = 0 x01,0 x02,0 x04,0 x08,0 x10,0 x20,0 x40,0 x80; for(i=0;i8;i+) P0.11=DISP_TAB i; 键盘显示软件仿真二、软件仿真1、数码管驱动子程序第二步,用74HC595驱动实现位选 将要准备输入的位数据移入74HC595数据输入端。 将位数据逐位移入74HC595,即数据输入 并行输出数据。即数据并出键盘显示软件仿真

6、二、软件仿真1、数码管驱动子程序u段选和位选查表原理相同,将要显示的数字或字母的子码表放在一个数组中,通过查表选择此时要显示的内容。键盘显示软件仿真二、软件仿真1、数码管驱动子程序u子程序中应该注意:用到的LPC2103芯片的管脚P0.4、 P0.6、P0.7、P0.8、P0.11的设 置:输入还是输出; 数码管是共阴还是共阳;键盘显示软件仿真二、软件仿真2、键盘扫描子程序 首先,将16个 按键分成两组(左、右)来检测,并将每组检测的结果送给LPC2103的P0.17和P0.18两个引脚。 然后,LPC2103通过对比U4的每个引脚和P0.17的值来确定是哪个键被按下,从而执行响应的操作,并将

7、结果显示在数码管上。键盘显示软件仿真二、软件仿真2、键盘扫描子程序注意:在编写程序时,由于是机械按键,所以应该在扫描案件时考虑到消抖。键盘显示软件仿真二、软件仿真2、键盘扫描子程序* 名称:get_key()* 功能:按下按键取数值* 入口参数:无* 出口参数:键值* 说明:高位数据先发送uint8 get_key(void)uint8 key_value=16,i,j;uint8 k18=0,1,2,3,4,5,6,7;键盘显示软件仿真二、软件仿真2、键盘扫描子程序uint8 k28=8,9,10,11,12,13,14,15;const uint8 DISP_TAB28 = 0 xFE,0

8、 xFD,0 xFB,0 xF7,0 xEF,0 xDF,0 xBF,0 x7F;/74HC5958个输出脚一次为低电平 for(i=0;i8;i+) HC595_SendDat2(DISP_TAB2i);/扫描 if(IOPIN&KEY1)=0) DelayNS(10);/消抖 if(IOPIN&KEY1)=0)键盘显示软件仿真二、软件仿真2、键盘扫描子程序 while(IOPIN&KEY1)=0);/eg:i=1,如果if为真则左边有键按下 key_value=k1i; break; 键盘显示软件仿真二、软件仿真2、键盘扫描子程序if(key_value=16)fo

9、r(j=0;j8;j+) HC595_SendDat2(DISP_TAB2j);/扫描 if(IOPIN&KEY2)=0) DelayNS(10); if(IOPIN&KEY2)=0) while(IOPIN&KEY2)=0);key_value=k2j; break; return key_value;键盘显示软件仿真二、软件仿真3、主程序主程序只需调用数码管驱动子程序和键盘扫描子程序即可主程序中需注意: LPC2103头文件 #include“config.h”; 子程序调用; LPC2103引脚设置;键盘显示软件仿真二、软件仿真3、主程序int main(void)uint8 key_value=16,j=0,m; uint8 str8=0 x0c,0 x13,0 x14,0 x16,0 x12,0 x00,0 x00,0 x0d;/cpu-good PINSEL0=0 x00000000;/设置所有引脚连接GPIO PINSEL1=0 x00000000; IODIR=SPI_IOCON; /设置LED为输出其他为输入 Num_show(str);/初试显示cpu-good 键盘显示软件仿真二、软件仿真3、主程序 while(1)key_value=get_key();

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论