历史上的今天
返回首页

历史上的今天

今天是:2025年03月18日(星期二)

正在发生

2021年03月18日 | 基于MSP430单片机的CPU卡模板程序(一)

2021-03-18 来源:eefocus

1.端口、变量定义

#include"msp430x41x.h"


;#defineRESET_VECTOR15*2/*0xFFFEReset[HighestPriority]*/


;******P1端口定义******




ICPOWERSET4H//IC卡的VCC


ICRSTset8h//IC卡的RST


ICIOset20h//IC卡的I/O


ICKEYSET40H




;******P4端口定义******


;SAMCLKSET2H


SAMPOWERset4h


SAMRSTset08h


SAMIOset10h


;******ICFlag0,1标志位定义******


#defineICSAM01h,&ICFLAG0//0--对SAM操作1--对卡操作


#defineCARDPRO_ERR02h,&ICFLAG0//0--读写卡操作正常1--读写卡错误


#defineICXOR40h,&ICFLAG1//卡/ESAM传来的校验和


#defineMXOR80h,&ICFLAG1//CPU计算的校验和




;*******用户寄存器*************


sfrBICFLAG0=200h//标志寄存器0


sfrBICFLAG1=201H//标志寄存器1




RSTDATABUFSET210H//复位信号存放的区域,共13个字节




COMMANDLENEQU220H//命令+数据的长度


CLAEQU221H


INSEQU222H


P1EQU223H


P2EQU224H


LCLEEQU225H//发送或接收字节的长度


DATABUFEQU226H//发送数据存放的区域






REINSSET250H//返回的INS代码


SWCH1SET251H//状态字sw1


SWCH2SET252H//状态字sw2


COMDATABUFSET253H//接收数据存放的区域


;*******端口替换*************


#definePOUTAP1OUT


#definePDIRAP1DIR


#definePINAP1IN




#definePOUTBP4OUT


#definePDIRBP4DIR


#definePINBP4IN




;******定义特殊寄存器******


#defineCNTREGR5//发送或接收数据的位数(常为8位)


#defineTRDATAR6//要发送或接收到的数据


#defineERRCNTR7//错误计数器


#defineDELAYCNTR8//接收字符时的延时计数器


#defineRESETCNTR9//计数器,复用


#defineBXR10//作间址寄存器


#defineDELAYNUMR11//计算ETU所用的延时计数器


;*********************************************************************


RSEGCSTACK


DS2




RSEGCODE//程序代码


Reset


MOV#SFE(CSTACK),SP//初始化系统堆栈指针


MOV#WDTPW+WDTHOLD,&WDTCTL//停看门狗


BIC#GIE,SR




BIS.B#ICSAM//对IC卡操作,换成BIC则是对ESAM操作


NOP


NOP


CALL#CARDRESET//复位




MOV.B#17,RESETCNT


W1:CALL#DELAY1ETU


DEC.BRESETCNT


JNZW1




CALL#GET_RANNUM//取随机数,16个,存放在253H开始的RAM中


CALL#COMMAND




MOV.B#8,RESETCNT


W2:CALL#DELAY1ETU


DEC.BRESETCNT


JNZW2




CALL#WRITE_B//写二进制文件,写的内容是从226H开始的8字节


CALL#COMMAND




MOV.B#12,RESETCNT


W3:CALL#DELAY1ETU


DEC.BRESETCNT


JNZW3




CALL#READ_B//读二进制文件,存放在253H开始的RAM中


CALL#COMMAND




CALL#CARDDOWN


;CALL#SAMDOWN


wokk:


jmpwokk


推荐阅读

史海拾趣

Future Designs, Inc. (FDI)公司的发展小趣事

在快速发展的同时,FDI也注重可持续发展。他们致力于环境保护和社会责任,积极采用环保材料和节能技术,减少生产过程中的资源消耗和污染排放。同时,FDI还关注员工的发展和福利,为员工提供良好的工作环境和培训机会,激发员工的创造力和创新精神。展望未来,FDI将继续秉承“创新、服务、质量、诚信”的核心理念,不断推动技术进步和产品升级,为电子行业的发展贡献更多的力量。

固驰(GUERTE)公司的发展小趣事

固驰电子深知产品质量是企业生存之本,因此始终将品质控制放在首位。公司不仅建立了完善的质量管理体系,还通过了ISO9001:2015质量管理体系认证和美国UL产品认证,这标志着固驰电子的产品质量达到了国际先进水平。此外,公司还积极申请专利,目前已拥有50项国家专利,进一步巩固了其在行业内的技术领先地位。

HAHN - Elektrobau GmbH & Co KG公司的发展小趣事

在高通的发展历程中,公司多次面临来自竞争对手的专利纠纷。面对这些挑战,高通积极应诉,通过长达数年的法律斗争,最终捍卫了自己的CDMA创新成果。这些胜利不仅彰显了高通在通信技术领域的深厚积累,也进一步巩固了其在行业中的技术领导地位。高通持续投入大量资源进行研发创新,确保了公司在全球蜂窝通信技术领域的领先地位。

Ametherm公司的发展小趣事

品质是Ametherm公司的生命线。他们建立了严格的质量管理体系,从原材料采购到产品出厂的每一个环节都进行严格把控。同时,公司还注重持续改进,通过引入先进的生产设备和技术手段,提高生产效率和产品质量。这些努力使得Ametherm的产品在市场上具有很高的竞争力。

展恒电子(Broadic)公司的发展小趣事

2011年,展恒电子自主研发的首款485功能芯片——HD588成功问世,并成功应用到电网产品中。这一突破不仅证明了展恒电子在芯片设计领域的实力,也为公司在电力行业的拓展奠定了坚实的基础。随后,公司继续加大研发力度,不断推出更多具有竞争力的产品,逐步在电子行业中树立了良好的口碑。

泽耀科技(Ashining)公司的发展小趣事

随着市场的不断变化和消费者需求的升级,泽耀科技(Ashining)意识到只有不断创新才能在竞争中立于不败之地。公司加大了对研发的投入,引进了一批高素质的研发人才,并建立了完善的研发体系。经过多次尝试和实验,泽耀科技成功突破了某项关键技术,并推出了升级版的产品。这些新产品不仅性能更加优越,而且具有更高的性价比,深受消费者的喜爱。

问答坊 | AI 解惑

关于PLL的用法?

关于PLL的用法?altera PLL 这些管脚 怎么与FPGA实际硬件的管脚相连接 …

查看全部问答>

NRF24L01无线模块发射程序

最近从网上下了一NRF24L01无线模块发射程序,改了一下,准备用AT89S51单片机控制,但是运行之后没有反应(不知道模块是否正常运行)。麻烦大家给看一下问题出在哪,程序如下: #include #include #include \"api.h\" /********************** ...…

查看全部问答>

做linux驱动的迷茫啊!(不是技术问题)希望前人指引方向!

    我今年毕业,去了一家很大的公司去做嵌入式Linux驱动,公司很好、很大,但是当我去实习时发现,公司的驱动已经做得很成熟了,而且公司的产品更新换代很慢,几乎驱动是不用改的,所以感觉进这样的公司没办法去得到实践,是不是在这样 ...…

查看全部问答>

GSM TC35的问题

西门子的TC35模块,有没有集成SIM插槽,收发天线等等呢? 如果我想用单片机对其编程,使其能够发短信到一特定号码上,是不是只要一个RS232的串口线和其连接就够了呢? 有用单片机控制TC35发送短信到特定号码的实例源代码吗?  刚刚学习 ...…

查看全部问答>

远程视频监控的PCB设计问题

请问各位大大,关于DSP远程无线视频监控的的6层PCB电路板设计,其中多层电路板如何分层,在另外想询问一下,哪里能下到TI公司的TMS320DM647的电路原理图和元件封装!…

查看全部问答>

重金请高手帮忙 嵌入式数据

本人急需嵌入式数据应用程序。需要实现下列功能: 基于Windows CE的应用程序可以捕获来自于用户串口数据,并将它们存储在设备上的SQL Server CE数据库中,然后应用程序可以周期性地将SQL Server CE 数据库中的数据通过http上载到SQL Server上的数 ...…

查看全部问答>

贴片电容 没标容值怎么判断其大小?谢谢!!!越详细越好最好附图

贴片电容 没标容值怎么判断其大小?谢谢!!!越详细越好最好附图…

查看全部问答>

如何在VxWorks中添加应用程序!

我在usrApp中添加应用程序后总是在编译时出现 dld: warning: Undefined symbol \'IVEC_TO_INUM\' in file \'partialImage.o\' dld: Undefined symbols found - no output written 不知道是怎么回事?…

查看全部问答>

如何得到某个usb接口上的U盘的盘符?

举个例来说明这个问题,假设一台PC上有编号1、2、3、4的4个usb port,分别插入4支u盘,我如何用程序来实现:得到编号x的usb port上U盘盘符?    因为插入u盘的次序不同,某个usb port上的U盘盘符可能会变化,如果按顺序插入U盘,编号1、 ...…

查看全部问答>