版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、#include<>#include<>#defineLed_datXBYTE0xcfe8#defineLed_ctlXBYTE0xcfe9#definePortAXBYTE0xcfa0#definePortBXBYTE0xcfa1#definePortCtrXBYTE0xcfa3typedefunsignedcharuchar;bitcard_on;sbitcard_pwr=P1A0;/*IC卡的电源控制*/sbitok=P1A1;/*身份识别标志*/xdataunsignedlongkey_value,id10;xdataucharidadd=10,key_num=
2、0;voidINI8255(uchardat);/*8255的配置程序*/voidICCARDW(ucharadd,uchardat);ucharICCARDR(ucharadd);voidICCARDSTART(void);voidICCARDSTOP(void);voidICCARDWb(uchardat);voidICCARDACK(void);/*函数定义*/voidDisplay_byte(ucharloc,uchardat)uchartable=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e
3、,0x79,0x71;loc&=0xf;Led_ctl=loc|0x80;Led_dat=tabledat&0xf;/*显示低4位*/unsignedlongkey(uchartemp)switch(temp)case0xc0:return0;case0xc1:return1;case0xc2:return2;case0xc3:return3;case0xc6:return4;case0xc7:return5;case0xc8:return6;case0xc9:return7;case0xcc:return8;case0xcd:return9;case0xce:return10
4、;case0xcf:return11;case0xd2:return12;case0xd3:return13;case0xd4:return14;case0xd5:return15;default:return16;voiddellay(unsignedintt)for(;t>0;t-);voidcard_insert(void)interrupt0card_on=1;card_pwr=1;voidcard_wr(void)interrupt2chari;staticcharnum=0;unsignedlongdat=0;card_pwr=1;for(i=0;i<3;i+)ICCA
5、RDW(idadd+i,key_value>>(16-i*8);for(i=0;i<3;i+)dat|=(unsignedlong)ICCARDR(idadd+i)<<(16-i*8);if(dat&0xffffff)!=(key_value&0xffffff)for(i=0;i<6;i+)Display_byte(i,15);elseidnum+=dat;if(num>10)num=0;for(i=0;i<6;i+)Display_byte(i,0);card_pwr=0;key_num=0;EX0=1;/*函数名称:voidI
6、NI8255(uchardat)函数说明:对8255进行配置输入参数:配置字节输出参数:无*/voidINI8255(uchardat)PortCtr=dat;/*函数名称:voidICCARDWb(uchardat)函数说明:向IC卡内写入字节数据输入参数:写入的数据输出参数:*/voidICCARDWb(uchardat)uchari,temp;for(i=0;i<8;i+)dellay(10);temp=dat;temp&=0x80;if(temp)PortA=1;elsePortA=0;dellay(10);PortB=1;dellay(10);PortB=0;dat&l
7、t;<=1;dat&=0xff;/*函数名称:voidICCARDW(ucharadd,uchardat)函数说明:向IC卡内指定地址写入指定数据输入参数:欲写入的地址和数据输出参数:无*/voidICCARDW(ucharadd,uchardat)ICCARDSTART();/*ICCARDWb(0xa0);/*ICCARDACK();ICCARDWb(add);/*ICCARDACK();ICCARDWb(dat);/*ICCARDACK();ICCARDSTOP();启动IC卡的操作*/启动IC卡的写操作*/写入地址字节*/写入数据*/*函数名称:ucharICCARDR(
8、ucharadd)函数说明:向从IC卡内指定地址读出数据输入参数:要读的地址输出参数:读出的数据*/ucharICCARDR(ucharadd)uchari,temp,temp1;ICCARDSTART();/*ICCARDWb(0xa0);/*ICCARDACK();ICCARDWb(add);/*ICCARDACK();ICCARDSTART();/*ICCARDWb(0xa1);/*启动IC卡的操作*/启动IC卡的写操作*/写入地址字节*/启动IC卡的操作*/启动IC卡的读操作*/ICCARDACK();配置8255的A口为输入,B口输出*/INI8255(0x99);/*dellay(
9、10);for(i=0;i<8;i+)temp<<=1;PortB=1;dellay(10);temp1=PortA;temp1&=1;if(temp1)temp|=1;PortB=0;dellay(10);ICCARDSTOP();returntemp;/*函数名称:voidICCARDSTART(void)函数说明:启动IC卡的操作输入参数:无输出参数:无*/voidICCARDSTART(void)INI8255(0x89);/*配置8255的A口为输出,B口输出*/PortB=0;/*时钟位变低*/dellay(10);PortA=1;/*数据位变高*/del
10、lay(10);PortB=1;/*时钟位变高*/dellay(10);PortA=0;/*数据位变低*/dellay(10);PortB=0;/*时钟位变低*/*函数名称:voidICCARDSTOP(void)函数说明:结束对IC卡的操作输入参数:无/*函数名称函数说明输入参数输出参数输出参数:无*/voidICCARDSTOP(void)INI8255(0x89);/*配置8255的A口为输出,B口输出*/dellay(10);PortA=0;/*数据位变低*/PortB=1;/*时钟位变高*/dellay(10);PortA=1;dellay(10);/*数据位变高*/voidICCA
11、RDACK(void)监测字节操作是否结束无无*/voidICCARDACK(void)uchartemp;INI8255(0x99);/*PortB=1;/*dellay(10);temp=PortA;temp&=1;while(temp)temp=PortA;temp&=1;PortB=0;/*INI8255(0x89);/*dellay(10);配置8255的A口为输入,B时钟位变高*/数据位变低*/配置8255的A口为输出,B口输出口输出*/*/*主函数*voidmain()unsignedchari,temp;unsignedlongtmp;Led_ctl=0xd1;
12、while(Led_ctl&0x80)=0x80);Led_ctl=0x31;IE=0x85;/*允许外部中断0中断*/IT0=1;/*外部中断0为边沿触发*/IT1=1;/*外部中断1为边沿触发*/card_on=0;card_pwr=0;key_num=0;while(1)if(card_on)ok=1;tmp=0;for(i=0;i<3;i+)temp=ICCARDR(idadd+i);tmp|=(unsignedlong)temp<<(16-i*8);Display_byte(2*i,(temp&0xf0)>>4);Display_byte(2*i+1,temp&0xf);card_on=0;card_pwr=0;for(i=0;i<10;i+)if(tmp=idi)ok=0;dellay(30000);ok=1;tmp=0;break;if(Led_ctl&0xf)>0)EX0=0;Led_ctl=0x
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年河南省荥阳市高三生物上册期末考试模拟卷及参考答案【预热题】
- 2026年7月重症医学科N0-N1理论考核试题(含答案)
- 2026年广东省高州市高三生物上册期末考试模拟卷附答案(培优B卷)
- 2026年康复医学专升本复习题(附答案)
- 2026年甘肃省合作市高二生物下册期末考试测试卷附参考答案【考试直接用】
- 2026年安徽省巢湖市高二生物下册期末考试模拟卷及答案【夺冠系列】
- 2026年辽宁省新民市高二生物下册期末考试测试卷及参考答案(完整版)
- 2026年江苏省句容市高二生物下册期末考试考试卷含答案(综合卷)
- 2026年江苏省靖江市高二生物下册期末考试测试卷含答案(达标题)
- 2026年吉林省龙井市高二生物下册期末考试模拟卷附参考答案(黄金题型)
- 社区档案管理制度模板
- 河北房屋建筑和市政基础设施工程造价指标指数 编制标准
- 2026年及未来5年市场数据中国农业机器人行业市场调研及投资战略规划报告
- 确立的毕业论文制度
- 剧本杀剧本创作技巧与角色设计
- T∕CHBSA 001-2025 新生儿遗传代谢病串联质谱筛查实验室检测技术要求
- 胰腺炎护理查房
- 电梯安装工程吊装方案(3篇)
- 年产10万吨高精度铝及铝合金板带箔材生产线项目可行性研究报告
- 脑梗死护理课件
- 2025年气瓶检验员闭卷考试题库及答案
评论
0/150
提交评论