第22章单片机系统键盘输入模块

第22章单片机系统键盘输入模块

ID:43643693

大小:71.50 KB

页数:9页

时间:2019-10-11

第22章单片机系统键盘输入模块_第1页
第22章单片机系统键盘输入模块_第2页
第22章单片机系统键盘输入模块_第3页
第22章单片机系统键盘输入模块_第4页
第22章单片机系统键盘输入模块_第5页
资源描述:

《第22章单片机系统键盘输入模块》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、22.1.2键盘的基本组成形式ucharkey_scan(){unsignedcharkey,temp;P仁OxOf;if(P1&OxOf!=OxOf)//如果有键按下{delaylOms();//延时去抖动if(P1&OxOf!=OxOf){P1=OxOf;temp=p1&OxfO;switch(temp){caseOxOe://如果第一行有键按下key=4;break;caseOxOd://第二行有键按下key=3;break;caseOxOb://第三行有键按下key=2;break;case0x07://第四

2、行有键按下key=1;break;}return(key);}ucharKeyScan();//按键扫描子程序voiddelayl0ms{);//延时程序ucharkey_free();//等待按键释放程序voidkey_deal();//键处理程序〃主程序voidmain(){while(1){KeyScan();key_free();key_deal();}}〃按键扫描子程序ucharKeyScan()unsignedcharkey,temp;P1=0xF0;//置行线全为高电平,列线全为低电平if(P1&0xF

3、0!=0xF0)//如果有键按下{delay10ms{);//延时去抖动if(P1&OxFO!=OxFO){P1=0xFE;//扫描第一列temp=P1;temp=temp&OxFO;if(temp!=OxFO)//如果本列有键按下{switch(temp){caseOxEO://如果第一行有键按下key=O;break;caseOxDO://第二行有键按下key=4;break;caseOxBO://第三行有键按下key=8;break;case0x707/第四行有键按下key=12;break;}}P1=0xFD

4、;〃扫描第二列temp=P1;temp&=OxFO;if(temp!=OxFO){switch(temp){caseOxEO://如果第一行有键按下key=1;break;caseOxDO://第二行有键按下key=5;break;caseOxBO://第三行有键按下key=9;break;case0x70://第四行有键按下key=13;break;}}P1=0xFb;〃扫描第三列temp=P1;temp&=OxFO;if(temp!=OxFO){switch(temp){caseOxEO://如果第一行有键按下k

5、ey=2;break;caseOxDO://第二行有键按下key=6;break;caseOxBO://第三行有键按下key=1O;break;case0x70://第四行有键按下key=14;break;}}P1=0xF7;//扫描第四列temp=P1;temp&=OxFO;if(temp!=OxFO){switch(temp){caseOxEO://如果第一行有键按下key=3;break;caseOxDO://第二行有键按下key=7;break;caseOxBO://第三行有键按下key=11;break;c

6、ase0x70://第四行有键按下key=15;break;}}}return(key);}〃延时程序voiddelay10ms(){unsignedchari,j;for(i=0;i<10;b++)for{j=0;j<120;j++)//延时1ms〃等待按键释放程序ucharkey_free(){key=key_scan();//取扫描到的键值P仁OxFO;//置行线全为高电平,列线全为低电平while(P1&OxFO!=OxFO)〃如果仍有键按下{}return(key);〃返回键值}22.2.2程序设计ucha

7、rkey_scan();〃按键扫描子程序voiddelaylOms();//延时程序ucharkey_free();//等待按键释放程序voidkey_deal();//键处理程序sysem」nitial();〃初始化程序〃主程序voidmain(){sysem_initial();while(1){key_scan();ucharkey_free();key_deal();}}〃初始化程序voidsysem_initial(){PCON=OxOO;SCON=Ox18;//选择串行工作方式0ES=0;//禁止串行口中

8、断}〃扫描按键程序ucharkey_scan(){unsignedcharkey,Rankcode;inti,j;SBUF=0x00;//使扫描键盘的74LS164输出为OOH,所有列线为低电平while(TI!=1)//串行输出完否?TI=0;〃清零P1=Ox03;//所有行线为高电平if(P1&0x03!=0x03)//如果有键按下{del

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

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

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