欢迎来到天天文库
浏览记录
ID:21022886
大小:49.50 KB
页数:3页
时间:2018-10-18
《用pic单片机实现的ic卡读写器》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、用PIC单片机实现的IC卡读写器
2、第1内容加载中...luner2)输出的二分频等四种。在芯片时钟为20MHz时,SCK的最大频率为5.0MHz。在本设计中,使用的就是SPI主模式,由单片机控制时钟SCK的输出。当向IC卡中写数据时,随时可以发送数据;当读IC卡内的数据时,先要发送任意一个数据(此时IC卡不处于写入状态,不会接收该数据),给IC卡提供输出数据的时钟,然后再接收IC卡发出的数据。其时序如图2所示。(发送和接惦的数据均为6FH)如果要连续发送数据,那么每次将数据送到SSPBUF寄存器后,都要判断是否已经发送完该数据,即判断PIR1寄存器的SSPIF位是否为1
3、。如果SSPIF位为1,则表明数据已经发送完毕,可以继续发送下一个数据。但此时还不能立即发送下一个数据,因为SSPIF位必须在程序中由软件清零,只有将SSPIF位软件清零后,才能继续发送下一个数据。1.2SPI从模式在SPI从模式,数据的发送和接收领先SCK引脚上输入的外时钟脉冲,当最后一位被锁存后,中断标志位SSPIF(PIR1的D3)位。在休眠模式,从模式仍可发送和接收数据,一旦接收到数据,芯片就从休眠中唤醒。如果采用SS控制的从模式,当SS引脚接到VDD时,SPI模式复位;如果彩CKE=1控制的从模式,必须开放SS引脚控制。在本设计中,由于IC卡是存储器卡,不能提
4、供时钟信号,因此不能采用从模式,只能采用主模式,由单片机控制时钟信号。单片机的SPI方式初始化程序如下:MOVLOV区的第1页BCFSSPSTAT,SMP;将SSPSTAT寄存器的SMP位置0BSFSSPSTAT,CKE;将SSPSTAT寄存器的CLK位置1BCFTRISC,3;将端口C的第3位设置为输出BCFTRISC,5;将端口C的第5位设置为输出其中,上述第1、2行程序是配置控制寄存器,将SPI方式配置为主控模式,时钟频率为单片机时钟频率的1/4,并将时钟的高电平设置为空闲状态。第3行程序为换页指令,将指针转到第1页。因为PIC16F877单片机的数据存储器是分页
5、的,而所要操作的寄存器在第1页,因此要用换页指令将指针到第1页。第4、5行程序是配置状态寄存器,将SPI方式设置为数据输出时钟的中间采样,时钟SCK的上升沿触发。第6、7行程序则是将RC口的RC3和RC5设置为输出。2USART方式通用同步异步接收发送模块(USART)是两个串行通信接口之一,USART又称为SCI(SerialmunicationInterface)。USART可以设置为全双工异步串行通信系统,这种方式可以与个人计算机PC或串行接口CRT等外围设备进行串行通信:也可以设置为半双工异步串行通信系统,与串行接口的A/D或D/A集成电路、串行EEPROM等器
6、件连接。USART是二线制串行通信接口,它可以被定义如下三种工作方式:全双工异步方式、半双工同步主控方式、半双工同步从动方式。为了把RC6和RC7分别设置成串行通信接口的发送/时钟(TX/CK)线和接收/数据(TX/DT)线,必须首先把SPEN位(TCSTAT的RD7)和方向寄存器TRISC的D7:D6置1。USART功能模块含有两个8位可读/写的状态/控制寄存器,它们是发送状态/控制寄存器TXSTA和接收状态/控制寄存器TCSTA。USART带有一个8位波特率发生器BRG(BaudRatoGenerator),这个BRG支持USART的同步和异步工作方式。用SPBRG
7、寄存器控制一个独立的8位定时器的周期。在异步方式下,发送状态/控制寄存器TXSTA的BRGH位(即D2)也被用来控制波特率(在同步方式下忽略BRGH位)。向波特率寄存器SPBRG写入一个新的初值时,都会使BRG定时器复位清零,由此可以保证BRG不需要等到定时器溢出后就可以输出新的波特率。对USART方式进行初始化的程序如下:BSFSTATUS,RP0;将指针指向数据存储器的第1页MOVLOV数据缓存,允许在重编程非易失性存储器时接收数据;*内置的编程和控制定时器;*低功耗,4mA有源读取电流,2μACMOS备用电流;*15MHz的最大时钟频率;*串行外围接口方式(SPI
8、)——模式0和3;*CMOS的TTL兼容的输入和输出;*5.0V可承受的输入,SI、SCK、CS(低电平有效)、RESET(低电平有效)。在本设计的调试过程中,曾测试过IC卡的输入输出电平,结果证明这种IC卡的输入电平与TTL兼容,而输出电平与TTL不兼容。4IC卡的电源提供电路在本设计中,由于IC卡的电源电压范围为+2.7~+3.6V,而PIC单片机需要的电源为+5V,而且稳压源提供的电压也是+5V,因此,要设计一个稳压模块,给IC卡提供+3V左右的电压。设计电路如图3所示。该电路的主要元件为LM317芯片,它是三端可调集成稳压器,输出
此文档下载收益归作者所有