
实验五4×4矩阵式键盘识别设计
实验五 4×4矩阵式键盘识别设计

主要内容·1.掌握4×4矩阵式键盘程序识别原理·2.掌握4×4矩阵式键盘按键的设计方法
主要内容 • 1.掌握4×4矩阵式键盘程序识别原理。 • 2.掌握4×4矩阵式键盘按键的设计方法

矩阵键盘按键排布84C-9d-63F76
矩阵键盘按键排布

键盘识别按键按下原理:4*4矩阵按键ZidOld3ldK6K7K8K9O0OCOCCR4P17K10KH1K12K3LOKOOO0COCP16R1SK14K13K16K171OKOCOeOP15R17K18K19K20K211OKO00OSRISP1410K
键盘识别按键按下原理:

预处理定义::sbit row0=P1^7;·sbit row1=P1^6;·sbitrow2=P1^5;·sbitrow3=P1^4;·sbitline0=P1^3;·sbitline1=P1^2;·sbitline2=P1^1;.sbitline3=P1^0;
预处理定义: • sbit row0=P1^7; • sbit row1=P1^6; • sbit row2=P1^5; • sbit row3=P1^4; • sbit line0=P1^3; • sbit line1=P1^2; • sbit line2=P1^1; • sbit line3=P1^0;

识别有按键按下程序·voidkeyprepro()row0=1;row1=1;row2=1;row3=1line0=0:line1=0:line2=0:line3=0·/思考是否可以写P1=0xf0;if(row0==0//row1==0//row2==0//row3==0)·//若前一步写的P1=0xf0;此处如何写判别条件。(flag=1;)elseflag=O;
识别有按键按下程序 • void keyprepro() • { • row0=1;row1=1;row2=1;row3=1; • line0=0;line1=0;line2=0;line3=0; • //思考是否可以写P1=0xf0; • if(row0==0||row1==0||row2==0||row3==0) • //若前一步写的P1=0xf0;此处如何写判别条件。 • {flag=1;} • else flag=0; • }

逐行扫描原理及程序:4*4矩阵按键OLd3ZidPK6K8K9隆OOBRR4P17K10KI1K12K3LOKOCOCaP16KI4K13K16K170RI7P15K18K19K21K201OKCR18P141OK
逐行扫描原理及程序:

识别按键号码程序.void keypro()if(flag==1){line0=0:line1=1:line2=1:line3=1if(row0==0)keyvalue=0;)elseif(row1==0)(keyvalue=1;)elseif(row2==0)(keyvalue=2;)elseif(row3==0)(keyvalue=3;)I/需要补充程序的地方在此
识别按键号码程序 • void keypro() • { • if(flag==1) • { • line0=0;line1=1;line2=1;line3=1; • if(row0==0){keyvalue=0;} • else if(row1==0){keyvalue=1;} • else if(row2==0){keyvalue=2;} • else if(row3==0){keyvalue=3;} • //需要补充程序的地方在此。 • } • }

思考如何用数码管将按键号显示出来。表 5-1LED数码管的字型码.显示显示共阴极共阳极共阴极共阳极字符字符字型码字型码字型码字型码0C3FHCOH39HC6H1d06HF9H5EHA1H2E5BHA4H79H86H3F4FHBOH71H8EH4P66H99H73H8CH5U6DH3EH92HC1H6T7DH82H31HCEH707HF8Hy6EH91H8H7FH80H76H89HL96FH90H38HC7H“灭”AOOH77H88HFFHb7CH83H
思考如何用数码管将按键号显示出来。 •

主程序如下:.voidmain()keyvalue=16;·I/此处初始时,keyvalue不能为0,因为0代表0号按键按下。·/此时如果不想让显示,可通过16时段码给00实现while(1)(keyprepro();keypro();display();
主程序如下: • void main() • { • keyvalue=16; • //此处初始时,keyvalue不能为0,因为0代表0号按键按下。 • //此时如果不想让显示,可通过16时段码给00实现。 • while(1) • { • keyprepro(); • keypro(); • display(); • } • }