按键输入和LED数码管扫描显示实验

按键输入和LED数码管扫描显示实验

ID:38069227

大小:23.50 KB

页数:3页

时间:2019-05-25

按键输入和LED数码管扫描显示实验_第1页
按键输入和LED数码管扫描显示实验_第2页
按键输入和LED数码管扫描显示实验_第3页
资源描述:

《按键输入和LED数码管扫描显示实验》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、按键输入和LED数码管扫描显示实验设计内容:给8个按键键盘的每个键定义一个功能,从左到右按键一次按下时,分别显示数字1-8,当有两个及以上的按键按下时,显示数字9。LCD初始显示个人学号,当有按键按下时,最后一位显示对应的数字。实验程序:#includesbitkey=P0^6;//键盘公共线,见原理图sbitls1=P0^2;//千位公共极sbitls2=P0^3;//百位公共极sbitls3=P0^4;//十位公共极sbitls4=P0^5;//个位公共极unsignedcharkeyval;//读取的键值#defineDatP1//数据

2、输出端chara;charb[4]={0,3,3,0};//初始值为学号后四位unsignedchartab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//延时----------------------------Delay(unsignedintt){while(t--);}//显示----------------------------voidDisplay(unsignedcharmun){unsignedcharj;for(j=0;j<50;j++){Dat=a;Dat=tab[b[0

3、]];//把得到7段显示码数据送P1端口ls1=0;//点亮千位Delay(100);//显示一会ls1=1;//关闭,显示下一位Dat=tab[b[1]];ls2=0;//点亮百位Delay(100);ls2=1;Dat=tab[b[2]];ls3=0;//点亮十位Delay(100);ls3=1;//个位Dat=tab[b[3]];ls4=0;Delay(100);ls4=1;}}Dat=0xff;//P1恢复为0xff}//--键盘扫描程序--------------------------------------Scankey(){unsignedch

4、ari;key=0;//拉低键盘公共线if(Dat!=0xff)//有键按下{Delay(1000);//消抖动if(Dat!=0xff)//有键按下{i=~Dat;a=Dat;//读取键盘状态,switch(i){case0x01:keyval=0x01;break;//K1case0x02:keyval=0x02;break;//K2case0x04:keyval=0x03;break;//K3case0x08:keyval=0x04;break;//K4case0x10:keyval=0x05;break;//K5case0x20:keyval=0x06

5、;break;//K6case0x40:keyval=0x07;break;//K7case0x80:keyval=0x08;break;//K8default:keyval=0x09;break;}//其它双键按下不处理,均为9b[3]=b[2];b[2]=b[1];b[1]=b[0];b[0]=keyval;while(Dat!=0xff){key=1;//暂时关闭键盘,不干扰显示Display(keyval);//等待按键抬起key=0;//开启键盘检测}}}key=1;//释放键盘公共线}//--主程序-------------------------

6、--------------------------------main(){while(1){Display(keyval);//显示Scankey();//键盘扫描}}

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。