亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3115|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

C51單片機鍵盤行列式源程序附加DSN Proteus仿真 帶注釋

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:716077 發(fā)表于 2020-3-30 15:39 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
#include   "reg51.h"
unsigned  char  tab[]={0x0ee,0x0de,0x0be,0x7e,0x0ed,0x0dd,0x0bd,0x7d,0x0eb,0x0db,0x0bb,0x7b,0x0e7,0x0d7,0x0b7,0x77};//定義按鍵K0~K15的鍵碼值
unsigned  char  smm[]={0x0fe,0x0fd,0x0fb,0x0f7};//行0~行3的行掃描碼
unsigned  char  a[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};


unsigned  char  keysm1()
{
unsigned  char  a,b,t;
for(P2=0x0f0;P2==0x0f0;);//行線輸出低電平,并判斷是否有按鍵按下
t=0;//行計數(shù)器清0
b=smm[t];//獲得行掃描碼,準(zhǔn)備行掃描
do//進(jìn)行行掃描
{
P2=b;//給P1口送行掃描碼
a=P2;//此時讀入列線值
a=a&0x0f0;//取出列線值
if(a==0x0f0)//如果相等則代表此行無鍵按下,準(zhǔn)備下一行的掃描碼
{
t++;
if(t==4)   t=0;
b=smm[t];
}
}while(a==0x0f0);//只要無鍵按下,則循環(huán)掃描
b=b&0x0f;//當(dāng)某行有鍵按下時,取出列線值
b=b|a;//將行列線值合并成鍵值碼
t=0;//鍵值碼查找計數(shù)器清0
for(;b!=tab[t];t++);//循環(huán)查找按鍵的鍵值碼
return(t);//找到鍵值碼后,返回按鍵的位置,例如K0鍵返回0,以此類推
}


void  delayms(unsigned  char  ms)//毫秒級延時函數(shù),晶振6MHZ
{
unsigned  char  i;
while(ms--)
{
for(i=60;i>0;i--);
}
}


void  display(unsigned  char  x)//顯示函數(shù),當(dāng)按相應(yīng)按鍵時,在數(shù)碼管上顯示鍵值,例如K0鍵返回0,以此類推,例如K15鍵返回15
{
P3=a[x];
}


void  main()
{
unsigned  char  m,n;
for(;;)//無限循環(huán)掃描鍵盤以及顯示按鍵信息
{
m=keysm1();//調(diào)用鍵盤是否被按下的逐行掃描法函數(shù)
delayms(11);//延時10ms,用于鍵盤消抖
n=keysm1();//再次調(diào)用鍵盤是否被按下的逐行掃描法函數(shù),返回顯示數(shù)字
if(m==n)//如果消抖前后兩次按鍵的顯示數(shù)字相同
{
display(m);//則調(diào)用顯示函數(shù)在數(shù)碼管上的顯示結(jié)果
}
for(P2=0x0f;P2!=0x0f;);//判斷按鍵是否結(jié)束
delayms(100);//延時1ms
}
}

51hei.png (11.18 KB, 下載次數(shù): 81)

51hei.png

行列式鍵盤(1).zip

14.48 KB, 下載次數(shù): 15, 下載積分: 黑幣 -5

DSN

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表