”PIC16F877A和一个4x4键盘

L

Legatus

Guest
我有一个为所有的EDA董事会聪明才智的问题:

我如何接口与PIC16F877A一个4x4的键盘?

噢,我使用CCS的编译器。

谢谢

<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="很高兴" border="0" />
 
尝试ħ ** p:/ /瓦特* w.ccsinfo.com /论坛/的例子。替换*当然。这一原则将是相同的大多数图片,只需更改管脚分配。

 
我这样做是为使用可*升编译器8052之一。这一个是为3x4,但给人的总体思路。应该很容易适应的知情同意。

/ /读取键盘并返回数字值

无符号字符键值(无效)/ /取得按键

sbit C3二0xA4; / / P2.4
sbit芹菜= 0xA5; / / P2.5
sbit C1 = 0xA6; / / P2.6
SFR公司的P2 = 0xA0; / /端口2连接下轻咬

无符号字符数字,KeyRead;

C1 = 0;芹菜= 1; C3二1; / /列1月
KeyRead =(小二&0x0F);
如果(KeyRead == 14)位= 1; / /读取行和翻译
如果(KeyRead == 13位= 4);
如果(KeyRead == 11位= 7);
如果(KeyRead == 7位= 10); / /取消重点

C1 = 1;芹菜= 0; C3二1; / /列2月
KeyRead =(小二&0x0F);
如果(KeyRead == 14)= 2位;
如果(KeyRead == 13位= 5);
如果(KeyRead == 11位= 8);
如果(KeyRead == 7)数字= 0;

C1 = 1;芹菜= 1; C3二0; / /列3月
KeyRead =(小二&0x0F);
如果(KeyRead == 14)数字= 3;
如果(KeyRead == 13位= 6);
如果(KeyRead == 11位= 9);
如果(KeyRead == 7位)= 11; / /通话键

C1 = 0;芹菜= 0; C3二0;
而((小二&0x0F)!= 0x0F)()/ /等待的按键释放
探测器= 0;
返回数字;


 
谢谢,我给了* *一个想法。我会尽力将它转化成石化

<img src="http://www.edaboard.com/images/smiles/icon_wink.gif" alt="眨眼" border="0" />**“ -编辑

 

Welcome to EDABoard.com

Sponsor

Back
Top