-
大小: 72KB文件類型: .zip金幣: 2下載: 0 次發(fā)布日期: 2021-05-12
- 語言: 其他
- 標(biāo)簽:
資源簡介
矩陣鍵盤程序基于proteus的設(shè)計(jì)與仿真

代碼片段和文件信息
#include
#include
#define?uint?unsigned?int
#define?uchar?unsigned?char
/*********************************
函數(shù):Delay_1ms()
參數(shù):t
返回:無
功能:延時子程序,延時時間為?1ms?*?t。
??使用晶振是11.0592M。
**********************************/
void?Delay_1ms(uint?t)
{
uint?ij;
for(i=0;i {
for(j=0;j<=100;j++)
{
_nop_();
}
}
}
/*********************************
函數(shù):Keyscan()
參數(shù):i+j*4
返回:無
功能:判斷哪個矩陣按鍵按下。該子程序是行掃描方式。
**********************************/
uchar?Keyscan(void)
{
uchar?ijktempnum;
uchar?Buffer[3]?=?{0x300x500x60};??//賦值4組行數(shù)據(jù)
for(j=0;?j<3;?j++)?????//行變化
{
temp?=?0x01;?????????//首先是最左邊一列????
????????num=?0x01;????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
for(i=0;?i<2;?i++)?//列變化
{
P1?=?Buffer[j];??//把行數(shù)據(jù)給P1口
P1?=?P1?|?temp;??//讓列和P1口進(jìn)行或操作
k?=?P1?&?0x03;???//判斷是否是該列被按下
if(k?==?0)???????
{
while(1)???//循環(huán)等待按鍵釋放
{
if(P1?&?0x03)???//按鍵釋放后,退出循環(huán)
{
break;
}
}
return(num<<(i*3+j));
}
?????????temp<<=1;
}
}
}
/*********************************
函數(shù):Main()
參數(shù):無
返回:無
功能:主函數(shù)
**********************************/
void?Main(void)
{
P2?=?0x00;??????????????????
while(1)
{
P1?=?0x70; ????????//P1口賦值為0xf0
if(P1?!=?0x70) //判斷有無按鍵按下
{
Delay_1ms(20);????//按鍵消抖
if(P1?!=?0x70) //第三次判斷有無按鍵按下
{
P2?=?Keyscan(); //運(yùn)行矩陣鍵盤函數(shù)并返回到鍵值變量 ??????????????
}
}
}
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2015-02-04?11:41??鍵盤顯示\
?????文件??????183918??2015-02-03?19:50??鍵盤顯示\Last?Loaded?鍵盤.DBK
?????文件????????5115??2002-04-16?15:32??鍵盤顯示\STARTUP.A51
?????文件???????11751??2015-02-04?11:38??鍵盤顯示\STARTUP.lst
?????文件?????????828??2015-02-04?11:38??鍵盤顯示\STARTUP.obj
?????文件????????1731??2015-02-04?11:38??鍵盤顯示\Text1.c
?????文件????????4502??2015-02-04?11:38??鍵盤顯示\Text1.LST
?????文件????????3211??2015-02-04?11:38??鍵盤顯示\Text1.OBJ
?????文件??????183918??2015-02-03?21:54??鍵盤顯示\鍵盤.DSN
?????文件????????1483??2015-02-04?11:41??鍵盤顯示\鍵盤.PWI
?????文件????????3878??2015-02-04?11:38??鍵盤顯示\鍵盤顯示
?????文件????????1223??2015-02-04?11:38??鍵盤顯示\鍵盤顯示.hex
?????文件????????6824??2015-02-04?11:38??鍵盤顯示\鍵盤顯示.M51
?????文件????????1128??2015-02-04?11:41??鍵盤顯示\鍵盤顯示.Opt
?????文件?????????360??2015-02-04?11:41??鍵盤顯示\鍵盤顯示.plg
?????文件????????2044??2015-02-03?21:54??鍵盤顯示\鍵盤顯示.Uv2
?????文件????????1128??2015-02-04?09:55??鍵盤顯示\鍵盤顯示_Opt.Bak
?????文件???????????0??2015-02-03?11:36??鍵盤顯示\鍵盤顯示_Uv2.Bak
評論
共有 條評論