51单片机怎么识别ic卡

51单片机怎么识别ic卡,第1张

你现在的IC卡 是不是 就是单片机的EEPROM ,如果是的话 那么 按键开启和停止键就用来控制EEPROM的 WR的使能 修改的话 由于不能频繁修改EEPROM所以 我建议你 其他按键修改金额后 用另外一个按键来确定修改,这样 可以一次弯咐性把修改后的金额放入EEPROM, 基本上充值都是加法运算,也就是说 点了确定键后 你先计算 然后在写到EEPROM,如果埋扒纯 IC卡不是单片机自带的EEPROM那么 开启和停止键就用来控制 IC 的 CS也就是说你可以用4个I/O口 设置4个按键,然后 通用4个按键子程序 分别处理,按键程序可以用扫描法 我这里给你一个读键的子程序 键值的子程序自己写吧 。

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卡.

如有疑问,请追问信启。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12566885.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存