您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页接触式IC卡2

接触式IC卡2

来源:意榕旅游网
 接口技术 实验报告

专业班级 计算机1406 姓名 宋世波 学 号 20143753

实验题目 接触式IC卡 日 期 2016-1-6

实验六、接触式IC卡 一、实验目的 了解接触式IC卡的工作原理及其与CPU的接口方式。 二、实验设备 1、DJ-86PCI微机实验箱 2、POD_IC接触式IC卡模块 三、实验内容 将十六进制数“AB”写入IC卡的7F地址单元,然后采用随机读取的方式将7F地址单元中的数据读入CPU。 四、实验原理 (1) AT24C01A卡是一种E2PROM存储卡,容量为128×8bit ,采用I²C总线结构,其卡的结构及引脚排列见下图 (2)操作状态开始和停止的定义 (3)数据的有效性关系 (4)数据传送确认 (5)写操作 (6)读操作 五、实验步骤 1、实验连线 将模块的SCL接CPU的PC0,SDA接PA0,INS、L1接PB0。 实验连线图 2、运行实验程序IC.ASM。 3、程序中设置断点,查看显示的数据和写入IC卡的数据是否相等 六、实验结果 插入IC卡,L1二极管亮,同时AH显示的数据与写入的数据相同。 七、实验程序 ;SCL接PC0,SDA接PA0,INS接PB0、L0,5286K(NEW),测试成功 pa8255 equ 0FF28h ;8255A的A口地址 pb8255 pc8255 con8255 equ 0FF29h ;8255A的B口地址 equ 0FF2Ah ;8255A的C口地址 equ 0FF2Bh ;8255A的控制端口地址 setclk equ 01h clrclk equ 00h setpw equ 03h clrpw equ 02h add_w equ 0a0h ;写卡地址 add_r equ 0a1h ;读卡地址 assume code org cs:code segment public 1000h ;规定程序的起始地址 start: mov dx, con8255 ;8255控制字,PB输入,PA.PC输出 mov al, 82h ;A组方式0A输出C高四位输出 ;B组方式0B输入C低四位输出 out dx, al ;将控制字压入寄存器 mov al, clrpw ;C口第1位复位 out dx, al start1: mov dx, pb8255 in al, dx ;将B口的内容送给AL test al, 01h ;若al最低位不为0则跳转回START1 jnz start1 ;检查是否插卡 mov dx, con8255 ;给予8255A控制端口地址 mov al, setpw ;C口第1位置1 out dx, al mov bh, 7fh ;写入地址7FH mov ah, 0abh ;写入数据ABH call write_byte ;调用写入子程序 call delay10 ;调用延时程序 mov bh, 7fh ;写入地址7FH call read_byte 调用读取子程序 nop ;设断点处 jmp start ;调回开始点 write_byte: call begin0 ;开始信号 mov bl, add_w ;写入器件地址 call wr_byte mov bl, bh ;写入字节地址 call wr_byte mov bl, ah ;写入数据 call wr_byte call stop0 ret read_byte: call begin0 bl, add_w ;执行空字节写序列 wr_byte mov call mov bl, bh call wr_byte call begin0 mov bl, add_r ;立即地址读取 call wr_byte mov dx, con8255 mov al, 92h ;方式0A输入方式0B输入 C输出 out dx, al mov al, setpw out dx, al call rd_byte call stop0 ret begin0: mov dx, con8255 ;给予DX8255A的FF2BH端口地址 mov al, clrclk ;C口第0位复位 out dx, al mov dx, pa8255 mov al, 01h out dx, al ;将01H送入8255A的A数据接口 mov dx, con8255 mov al, setclk ;C口第0位置1 out dx, al mov dx, pa8255 mov al, 00h ;将00H送入8255A的A数据接口 out dx, al mov dx, con8255 mov al, clrclk ;C口第0位复位 out dx, al ret stop0: mov dx, con8255 mov al, clrclk ;C口第0位复位,清空AL out dx, al mov dx, pa8255 ;将00H送入8255A的A数据接口 ;将00H送入IC卡 mov al, 00h out dx, al mov dx, con8255 ;置空al mov al, setclk ;C口第0位置1 out dx, al mov dx, pa8255 mov al, 01h ;将01H送入8255A的A数据接口 out dx, al mov dx, con8255 mov al, clrclk ;C口第0位复位 out dx, al mov dx, pa8255 mov al, 00h ;将00H送入8255A的A数据接口 out dx, al ret wr_byte: mov cx, 0008h ;循环次数为8 mov dx, con8255 ;给予8255A控制端口地址 mov al, clrclk ;C口第0位复位,清空al out dx, al wbyte1: rcl bl, 1 ;BL循环左移1,将最高位移进入CF mov al, 00h rcl al, 1 ;AL循环左移1,获取进位CF mov dx, pa8255 ;将al送入A口 out dx, al ;a口数据送入ic卡,SDA连接着a口 mov dx, con8255 mov al, setclk ;C口第0位置1 out dx, al ;给al赋值01h mov dx, con8255 mov al, clrclk ;C口第0位复位 out dx, al ;将al清0 loop wbyte1 ;循环 mov dx, con8255 mov al, setclk ;C口第0位置1 out dx, al mov cx, 0005h ;设置循环次数为5 wait0: nop ;设置断点 loop wait0 mov dx, con8255 mov al, clrclk ;C口第0位复位 out dx, al ret rd_byte: mov ah, 00h mov cx, 0008h ;给予cx08H rbyte1: mov dx, pa8255 ;8255A端口 in al, dx ;将DX端口内容送给AL ;读出IC卡数据一位 rcr al, 1 ;al循环右移一位 mov dx, con8255 mov al, setclk ;C口第0位置1 out dx, al rcl ah, 1 ;AL循环左移1位 mov dx, con8255 mov al, clrclk ;C口第0位复位 out dx, al loop rbyte1 ;进入循环 ret delay10: mov cx, 1388h ;延时子程序 delay1: nop ;延时断点子程序 loop delay1 ret code ends end start c口高低位与SCL相连,SCL为高时可以写入数据,读出数据 八、思考题 1、分析程序并写出程序注释。 答:已在程序部分写入好注释。 2、将写入IC卡的数据读出至发光二极管。 答:为完成实验,需要在代码中加入如下部分。 rd_byte: mov ah, 00h mov cx, 0008h ;给予cx08H rbyte1: mov dx, pa8255 ;8255A端口 in al, dx ;将DX端口内容送给AL ;读出IC卡数据一位 rcr al, 1 ;al循环右移一位 mov dx, con8255 mov al, 90H ;A口输入B口输出 out dx, al rcl ah, 1 ;AL循环左移1位 mov dx, pb8255 out dx,al ;输出获取的al值 loop rbyte1 ;进入循环 ret

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yrrf.cn 版权所有 赣ICP备2024042794号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务