键盘显示程序设计实验

键盘显示程序设计实验

ID:18762750

大小:84.00 KB

页数:9页

时间:2018-09-22

键盘显示程序设计实验_第1页
键盘显示程序设计实验_第2页
键盘显示程序设计实验_第3页
键盘显示程序设计实验_第4页
键盘显示程序设计实验_第5页
资源描述:

《键盘显示程序设计实验》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验四键盘显示程序设计实验目的1、理解串行接口键盘单片机汇编语言程序的基本结构2、了解单片机汇编语言程序的设计和调试方法3、掌握几个的基本的传送类、控制类指令的使用方法实验仪器单片机开发板、万利仿真机、稳压电源、计算机实验原理1、键盘接口电路工作原理串行接口键盘盘电路如图4-15所示。键盘扫描线与显示位选扫描信号共用。键盘输入只需要一根线,电路简单。键盘扫描信号从74LS164输出,低电平有效。当扫描到某个键时,若按键按下,在KEY端得到低电平,否则得到高电平。通过判断KEY的电平就可以知道相应键盘是否按下。图

2、4-15键盘接口电路图2、读键盘程序设计从上面工作原理分析可知,读键程序可以和显示程序结合在一起,也可以单独设计。这种结构的键盘同样存在抖动问题。为了减少程序误动作,程序设计时也要考虑去抖动问题。这里设计一个把键值显示在LED上的程序。为了简化问题,把读键程序与显示结合起来。程序流程图如图4-16所示。Y显示计数为0……键盘显示程序取键值暂存到累加器返回键值N显示程序延时程序执行后读当前扫描的键状态,并存入键值暂存寄存器主程序初值化,显示缓冲区,键值暂存,键盘缓存调用键盘显示程序键值相同键值送显示YN图4-16

3、键盘扫描程序流程图实验内容1、设计程序把键值显示在数码管。#include#include"display.h"externucharpoint;externuchartable[8];uchart,temp,time;charnum;bitflag1;/*voidmain(){uchari;table[0]=0x0;for(i=1;i<8;i++)table[i]=0x11;while(1){num=dispkey();if(flag==1)table[0]=num;delay_1ms(2)

4、;}}*//************************************************************2、设计程序按不同键时实现不同功能。功能:按向上键:最右边一位数码管数值加1(0-9),到9时加1回到0按向下键:最右边一位数码管数值减加1(9-0),到0时减1回到9按向左键:显示数字左移一位按向右键:显示数字右移一位keypointr:短按小数点右移,长按显示学号;接口:上下左右keypointrkeypointl********************************

5、******************************/voidmain(){uchari,j=7,k=0;for(i=0;i<8;i++)table[i]=0x11;TMOD=0x01;EA=1;TH0=(65536-20000)/256;TL0=(65536-20000)%256;ET0=1;TR0=1;table[7]=0x1;while(1){delay_1ms(5);temp=dispkey();switch(temp){case5:if(flag==0){num=++table[j];//加1

6、if(num==10)num=0;table[j]=num;delay_1ms(1);};flag=1;break;case4:if(flag==0){num=--table[j];//减1if(num==-1)num=9;table[j]=num;delay_1ms(1);};flag=1;break;case2:if(flag==0)//右移{if(j==7){table[0]=table[7];table[7]=0x11;j=0;continue;}table[j+1]=table[j];//左边赋给右边

7、j++;table[j-1]=0x11;delay_1ms(1);//关闭左一位};flag=1;break;case8:if(flag==0){//左移if(j==0){table[7]=table[0];table[0]=0x11;j=7;continue;}table[j-1]=table[j];//右边赋给左边j--;table[j+1]=0x11;delay_1ms(1);//关闭右一位};flag=1;break;case1:if(flag==0)//小数点右移{if(flag1==1){table

8、[0]=0x9;table[1]=0x4;table[2]=0x0;table[3]=0x8;table[4]=0x1;table[5]=0x0;table[6]=0x3;table[7]=0x1;}else{if(k==7){point=tablepoint[7];k=0;continue;}point=tablepoint[k];k++;delay_1ms(1);}};flag=1

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

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

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