全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验九:M1卡数据块的值操作一、实验目的1、熟悉rf_increment(块加值)和rf_decrement(块减值)两个函数。2、理解M1卡数值存储格式。二、实验准备M1卡中数值块只能通过以数值块格式的写操作生成。数值:有符号4字节数值,数值的最低字节存储在最低地址字节。负值以标准的2的补码形式存储。出于数据完整性和安全原因,数值存储三次,两次不取反,一次取反。地址(Adr):1字节地址,当进行备份管理时,可用于保存块的地址。地址保存四次。两次取反,两次不取反。三、功能要求1、能够读取M1卡中某块的信息。2、能够进行加值/减值的操作。四、实验内容:1、用Microsoft Visual C+新建一个工程(MFC AppWizardexe),应用程序类型是基本对话框,应用程序向导创建完成之后,系统进入到对话框编译页面的主页面,用控件设计对话框,对话框的设计如下图所示:2、编写程序。(1)、由于本次试验没有用“连接设备”按钮,所以需要让定时器在程序启动时就开始工作,我把启动定时器、连接设备和装载密码的代码放在了初始化程序里面了,代码如下:BOOL CFpzDlg:OnInitDialog()CDialog:OnInitDialog();/ Add About. menu item to system menu.SetTimer(1,1000,NULL);/定义时钟1,时间间隔为1sicdev=rf_usbinit();/返回的设备描述符if (icdev0) /如果设备连接成功。m_list.AddString(设备连接成功!);/在列表框中显示设备连接成功rf_beep(icdev,50);/控制蜂鸣器, 蜂鸣时间50毫秒unsigned char status19;st=rf_get_status(icdev,status);/返回读写器版本信息,长度为18字节if (st=0) /如果设备连接成功。m_list.AddString(char*)status);/在列表框中显示版本号elsem_list.AddString(获取版本号失败!);/在列表框中显示获取版本号失败!unsigned char key6=0xff,0xff,0xff,0xff,0xff,0xff;st=rf_load_key(icdev,0,sector,key);/*向读写器装载指定扇区的新密码(不与卡片进行通讯),密码类型为 KEY A */if(st=0)m_list.AddString(load key right!);/在列表框中显示load key right!elsem_list.AddString(load key fail!);/在列表框中显示load key fail!elsem_list.AddString(连接失败!);/在列表框中显示连接失败!(2)、定时器执行的代码如下:void CCaikaDlg:OnTimer(UINT nIDEvent) / TODO: Add your message handler code here and/or call defaultswitch(nIDEvent)case 1: /1号定时器应该处理的事情unsigned long snr;st=rf_card(icdev,1,&snr);/发送读卡命令if (st=0)m_list.ResetContent();/显示数据之前先清空列表m_list.AddString(读卡成功!);/在显示区显示读卡成功!st=rf_authentication(icdev,0,sector);/*验证1扇区密码*/if (st=0)m_list.AddString(验证密码成功!);/显示扇区号和块号m_list1.ResetContent();/显示之前把列表框清空m_list1.AddString(1);/在扇区号 列表框显示1m_list2.ResetContent();/显示之前把列表框清空m_list2.AddString(2);/在块号列表框显示2/读取当前值m_list3.ResetContent();rf_readval(icdev,6,&value);/读取1扇区2块值操作块值CString str;str.Format(%d,value);/格式转换为10进制m_list3.AddString(str);/显示当前值else/清空所有列表,并在显示框显示请放卡!m_list.ResetContent();m_list.AddString(请放卡!);m_list1.ResetContent();m_list2.ResetContent();m_list3.ResetContent();break;(3)、初始化按钮执行的代码如下:void CCaikaDlg:OnButton15() rf_initval(icdev,6,0); /把1扇区2块初始化为零(4)、加值按钮执行代码如下:void CCaikaDlg:OnButton13() / TODO: Add your control notification handler code hereUpdateData();st=rf_increment(icdev,6,m_edit);/进行减值操作,减数为编辑框里的值m_editif(st=0)m_list.AddString(加值成功!);/在显示框显示加值成功!elsem_list.AddString(加值失败!);/在显示框显示加值失败!/读出并显示当前值rf_readval(icdev,6,&value);/读取1扇区2块值操作块值 CString str;str.Format(%d,value);/格式转换为10进制m_list3.ResetContent();/显示之前把当前值框清空m_list3.AddString(str);/在当前值框显示加值后的值m_edit=0;/编辑框初始化为0UpdateData(false);/把初始化后的m_edit显示在编辑框 (5)、减值按钮执行代码如下:void CCaikaDlg:OnButton14() / TODO: Add your control notification handler code hereUpdateData();st=rf_decrement(icdev,6,m_edit);/进行加值操作,加数为编辑框里的值m_editif(st=0)m_list.AddString(减值成功!);/在显示框显示减值成功!elsem_list.AddString(减值失败!);/在显示框显示减值失败!/读出并显示当前值rf_readval(icdev,6,&value);/读取1扇区2块值操作块值 CString str;str.Format(%d,value);/格式转换为10进制m_list3.ResetContent();/显示之前把当前值框清空m_list3.AddString(str);/在当前值框显示加值后的值m_edit=0;/编辑框初始化为0UpdateData(false);/把初始化后的m_edit显示在编辑框五、实验效果.(1)放卡后,运行程序并初始化后显示 (2)在编辑框输入50,点加值后显示效果
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智能杠铃重塑零售体验:无人健身房与自动售货融合
- ESG评级对上市公司融资成本的影响研究
- 智能机械狗与6G融合:低延迟控制下的集群协同作业新范式
- 智能吸尘机器人小镇青年:性价比首选与社交属性驱动消费
- 数据安全法约束下智能床垫用户隐私保护与合规挑战
- 十五五展望:家庭服务机器人如何重构家庭消费市场的价值链条
- 2024年湖南常德西洞庭职业学院高职单招职业技能考试模拟试卷及答案详解(网校专用)
- 2025年青岛技师学院高职单招职业技能考试题库(夺分金卷)附答案详解
- 2026年吕梁职业技术学院高职单招职业技能考试题库(网校专用)附答案详解
- 2025年黑龙江省牡丹江市单招综合素质考试题库附参考答案详解(黄金题型)
- 安全管理人员任命书
- 北京市延庆区教育委员会招聘教师笔试真题2025
- 2026湖南长沙市第二医院(长沙市妇幼保健院河西分院)招聘劳务派遣人员89人考试备考题库及答案详解
- 2026年电厂化学安全知识培训
- 公司展示馆数字影像集成方案动态
- 烧伤患者液体补充原则
- 核心素养视域下七年级数学“截一个几何体”跨学科项目式教案
- 雨天砼浇筑施工方案(3篇)
- 24J113-1 内隔墙-轻质条板(一)
- 卫生院冷链药品管理制度
- 小型水库安全管理操作规程
评论
0/150
提交评论