void GetKey()//键扫描子程序,此首用于获得键值
{
bank1 static unsigned char nSetp=0
bank1 static unsigned char nBufferedKey
switch(nSetp)
{
case 0://去抖动
if (wDelay>20)//5MS延时
nSetp=1
break
case 1:
if ((RA5==0)&&(nBufferedKey==1)) //存键值
nSetp=3
else if ((RA4==0)&&(nBufferedKey==2))
nSetp=3
else if ((RA3==0)&&(nBufferedKey==3))
nSetp=3
else if ((RA2==0)&&(nBufferedKey==4))
nSetp=3
else nSetp=2
break
case 2:
if (RA5==0)//判断是否按键按下,并记录第一次按键情况 RA5功能键
{
nBufferedKey=1
wDelay=0
nSetp=0
}
else if (RA4==0) //+键 {
nBufferedKey=2
wDelay=0
nSetp=0
}
else if (RA3==0) //-键
{
nBufferedKey=3
wDelay=0
nSetp=0
}
else if (RA2==0)// 确定键
{
nBufferedKey =4
wDelay=0
nSetp =0
}
else
nBufferedKey=0
break
case 3:
if (RA5==1 &&RA4==1 &&RA3==1&&RA2==1)//等待键释放
{nKey=nBufferedKey<br><br> nSetp=0}
default:
break
}
}
//上面用到的变量自己定义下 RA5 RA4 RA3 RA2是4个按键的I/O口,通过判断nKey的值来判断按键子程序
主程序或中断程序可以一直扫描这个getkey()程序
然后在switch(nKey) 下就OK了
如果用【现成的读卡器】:查梁顷消询读卡器自带的【函数库】,注意要和你的 IC 型号匹配。
如果【自己做读卡器】:
这个难度就大了。
查询 IC 卡的技术文档,研究 IC 卡读取是的【时序电路】,用芯乎贺片(如51单片机)时序这
种时序,即可读写 IC 卡。
至于你图片上的那个界面,应该是用 VB 开发出来的。如果你用【现成的读卡器】,那么橡知读写 IC一般会有 VB 的函数可以调用的,实现起来会比较容易。
你好!1楼正解,
单片滑弊如机没法读写sim卡,
只能借助周边设备,
比如GSM模块.
通卜漏过GSM模块来读写Sim卡.
如有疑问,请追问信启。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)