-
大小: 40KB文件類型: .rar金幣: 2下載: 0 次發(fā)布日期: 2021-05-21
- 語言: 其他
- 標(biāo)簽:
資源簡介
51單片機(jī)4×4鍵盤proteus仿真51單片機(jī)4×4鍵盤proteus仿真51單片機(jī)4×4鍵盤proteus仿真

代碼片段和文件信息
#include?
#define?uchar?unsigned?char
#define?uint?unsigned?int
uchar?bufftimesj;
unsigned?char?code?dispcode[]={0x3f0x060x5b0x4f?//0123
???????????????????????????????0x660x6d0x7d0x07?//4567
???????????????????????????????0x7f0x6f0x770x7c?//89AB
???????????????????????????????0x390x5e0x790x710x00};?//CDEFnull
unsigned?char?idata?value[8];
void?delay1ms(void)??//消抖動(dòng)
{?uchar?i;
??for(i=200;i>0;i--);
}
void?delay5ms(void)??//延時(shí)5ms
{
??unsigned?char?ij;
??for(i=5;i>0;i--)
??for(j=248;j>0;j--);
}
void?key_scan(void)???//鍵盤輸入掃描函數(shù)
{?uchar?hangliekey;
??P3=0xf0;
??if((P3&0xf0)!=0xf0)???//行碼為0,列碼為1
???{?delay1ms();
?????if((P3&0xf0)!=0xf0)??//有鍵按下,列碼變?yōu)?
??????{?hang=0xfe;?????//逐行掃描
????????times++;
??????????????if(times==9)
????????????????times=1;
????????while((hang&0x10)!=0)??//掃描完4行后跳出
?????????{?P3=hang;
???????????if((P3&0xf0)!=0xf0)??//本行有鍵按下
????????????{?lie=(P3&0xf0)|0x0f;
??????????????buff=((~hang)+(~lie));
??????????????switch(buff)
???????????????{?case?0x28:?key=0;break;
?????????????????case?0x14:?key=1;break;
?????????????????case?0x24:?key=2;break;
?????????????????case?0x44:?key=3;break;
?????????????????case?0x12:?key=4;break;
?????????????????case?0x22:?key=5;break;
?????????????????case?0x42:?key=6;break;
?????????????????case?0x11:?key=7;break;
?????????????????case?0x21:?key=8;break;
?????????????????case?0x41:?key=9;break;
?????????????????case?0x81:?key=10;break;
?????????????????case?0x82:?key=11;break;
?????????????????case?0x84:?key=12;break;
?????????????????case?0x88:?key=13;break;
?????????????????case?0x48:?key=14;break;
?????????????????case?0x18:?key=15;break;
???????????????}
????????????value[times-1]=key;??//按下的鍵值
????????????}
???????????else?hang=(hang<<1)|0x01;?//下一行掃描
?????????}
??????}
???}
}
void?main(void)
{?uchar?key;
??while(1)
???{?key_scan();
?????P0=0;
?????for(j=times;j>0;j--)?//74LS138掃描?
???????{
?????????P2=j-1;??//數(shù)碼管列掃描
?????????P0=dispcode[value[times-j]];?//A-G數(shù)據(jù)
?????????delay5ms();
???????}
???}
}
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????1307??2007-01-03?15:13??key_scan.Opt
?????文件????????231??2007-01-03?15:13??key_scan.plg
?????文件???????1683??2007-01-03?14:31??key_scan.Uv2
????.......??????1656??2007-01-03?12:21??key_scan_Uv2.Bak
?????文件???????2178??2007-01-03?15:12??key.c
?????文件?????101199??2007-01-03?15:20??KEY.DSN
?????文件????????717??2007-01-03?15:20??KEY.PWI
?????文件????????698??2006-12-12?20:14??key_scan.h
?????文件?????101199??2007-01-03?15:04??Last?Loaded?KEY.DBK
?????文件???????4203??2007-01-03?15:13??key.LST
?????文件?????????28??2007-01-03?15:13??key_scan.lnp
?????文件???????8224??2007-01-03?15:13??key_scan.M51
?????文件???????1117??2007-01-03?15:13??key_scan.hex
????.......??????1309??2007-01-03?15:05??key_scan_Opt.Bak
?????文件???????4871??2007-01-03?15:13??key.OBJ
?????文件???????4056??2007-01-03?15:13??key_scan
-----------?---------??----------?-----??----
???????????????234676????????????????????16
- 上一篇:硬盤助手v0.3.rar
- 下一篇:mdwiki 項(xiàng)目模板代碼
評(píng)論
共有 條評(píng)論