按键输入和LED数码管扫描显示实验_第1页
按键输入和LED数码管扫描显示实验_第2页
按键输入和LED数码管扫描显示实验_第3页
全文预览已结束

下载本文档

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

文档简介

按键输入和LED数码管扫描显示实验设计内容:给8个按键键盘的每个键定义一个功能,从左到右按键一次按下时,分别显示数字1-8,当有两个及以上的按键按下时,显示数字9。LCD初始显示个人学号,当有按键按下时,最后一位显示对应的数字。实验程序:#include sbit key=P06; /键盘公共线,见原理图sbit ls1=P02; /千位公共极sbit ls2=P03; /百位公共极sbit ls3=P04; /十位公共极sbit ls4=P05; /个位公共极unsigned char keyval; /读取的键值#define Dat P1 /数据输出端char a;char b4=0,3,3,0; /初始值为学号后四位unsigned char tab=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; /延时-Delay(unsigned int t) while(t-); /显示-void Display(unsigned char mun) unsigned char j; for(j=0;j50;j+) Dat=a; Dat=tabb0; /把得到7段显示码数据送P1端口 ls1=0; /点亮千位 Delay(100); /显示一会 ls1=1; /关闭,显示下一位 Dat=tabb1; ls2=0; /点亮百位 Delay(100); ls2=1; Dat=tabb2; ls3=0; /点亮十位 Delay(100); ls3=1; /个位 Dat=tabb3; ls4=0; Delay(100); ls4=1; Dat=0xff; /P1恢复为0xff/-键盘扫描程序-Scankey() unsigned char i; key=0; /拉低键盘公共线 if(Dat!=0xff) /有键按下 Delay(1000); /消抖动 if(Dat!=0xff) /有键按下 i=Dat; a=Dat; /读取键盘状态, switch(i) case 0x01: keyval=0x01;break; /K1 case 0x02: keyval=0x02;break; /K2 case 0x04: keyval=0x03;break; /K3 case 0x08: keyval=0x04;break; /K4 case 0x10: keyval=0x05;break; /K5 case 0x20: keyval=0x06;break; /K6 case 0x40: keyval=0x07;break; /K7 case 0x80: keyval=0x08;break; /K8 default: keyval=0x09;break; /其它双键按下不处理,均为9 b3=b2;b2=b1;b1=b0;b0=keyval; while(Dat!=0xff) key=1; /暂时关闭键盘,不干扰显示 Display(keyval); /等待按键抬起 key=0; /开启键盘检测 key=1;

温馨提示

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

评论

0/150

提交评论