基于MSP430单片机的CPU卡模板程序(一)

发布者:SerendipityRose最新更新时间:2021-03-18 来源: eefocus关键字:MSP430  单片机 手机看文章 扫描二维码
随时随地手机看文章

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


关键字:MSP430  单片机 引用地址:基于MSP430单片机的CPU卡模板程序(一)

上一篇:MSP430单片机硬件知识-5种低功耗模式
下一篇:430学习笔记之我见

推荐阅读最新更新时间:2024-11-13 14:20

单片机C语言程序该这样写!不是教科书上教的那样!
写单片机程序也是程序,也要遵循写软件的一些基本原则,不是为了完成功能那么简单。我看过的所有的C语言单片机书籍基本都不注重模块化思想,完全是拿着C当汇编用,简直是在糟蹋C语言! 如下问题,几乎所有的单片机书籍中都大量存在(更别说网上的和现实中的代码了,书上都写的那么差劲,学的人能好到哪里去): 1、变量到处定义,根本不管变量的生命周期是否合适(请回答:全局变量、局部变量、静态变量、volatile变量有什么区别联系?) 2、变量名称极不规范,根本从名字上看不出来这个变量类型是什么,到底想干什么。 3、函数定义几乎不用参数,全都是void 4、语句写的一点都不直观,根本就是在用汇编。比如:想取一个字长的高字节和低字节,应该定
[单片机]
51单片机汇编学习例程(1)——KEY篇
1.ASM1_KEY:按键控制LED亮灭,3种情况 /** ****************************************************************************** * @file asm.asm * @author Alex——小白 * @version V1.0 * @date 2019.9.1 * @brief 3种方法实现KEY to LED ************************************************************************
[单片机]
51<font color='red'>单片机</font>汇编学习例程(1)——KEY篇
AVR单片机中左移位和右移位指令
计算机的指令系统是一套控制计算机操作的代码,称之为机器语言。计算机只能识别和执行机器语言的指令。为了便于人们理解、记忆和使用,通常用汇编语言指令来描述计算机的指令系统。汇编语言指令可通过汇编器翻译成计算机能识别的机器语言。 AVR单片机指令系统是RISC结构的精简指令集,是一种简明易掌握﹑效率高的指令系统。 SL-DIY02-3开发实验器使用AT90S8535单片机,有118条指令, 而我们所做的11个实验程序仅用了34条指令, 我们重点讲这34条指令, 其余指令就可自学了。 AVR器件(指令速查表) 118条指令器件 AT90S2313/2323/2343/2333 ,AT90S4414/4433/4434/85
[单片机]
AVR<font color='red'>单片机</font>中左移位和右移位指令
常用单片机名词解释
总线: 指能为多个部件服务的信息传送线,在微机系统中各个部件通过总线相互通信。 地址总线: 它是传送由CPU发出的用于选择要访问的器件或部件的地址。 数据总线: 它是用来传送微型机系统内的各种类型的数据。 汇编: 是能完成一定任务的机器指令的集合。 二进制数: 只有0和1两个数码,基数为二。 十六进制数: 采用0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F等16个数码,其中A-F相应的十进数为10-15,基数是16。 指令: 是计算机所能执行的一种基本操作的描述,是计算机软件的基本单元。 存储器: 用来存放计算机中的所有信息:包括程序、原始数据、运算的中间结果及最终结果等。 暂存器: 用来暂存由数据
[单片机]
基于单片机的数字光标直读示波器的设计与实现
1 引 言   YB4365/4345数字光标直读示波器是2001年国家级重点新产品,该产品是采用单片机控制技术和双时基扫描技术的宽带示波器。该机不仅具备通用示波器的作用,还具备数字频率计和高频毫伏表等多种功能。 2 主要性能指标与特点   YB4365/4345数字光标直读示波器垂直偏转系数为1mV/div~5V/div,频带宽度为100MHz/40MHz,上升时间 3.5ns/8.8ns。扫描偏转系数0.5s/div~50ns/div。扩展 10后最快扫速为5ns/div,输入阻抗为1M /25P,该机的主要性能特点如下:   (1)屏幕显示设定状态。扫描速度、扫描延迟时间、非校准状态、垂直灵敏度等参数均可在屏幕上以字符形式显示
[单片机]
基于<font color='red'>单片机</font>的数字光标直读示波器的设计与实现
PIC10F202单片机制作的双色车灯控制源程序
PIC10F202 制作的双色车灯 GP2用作开关检测,GP0,GP1分别控制二路LED,上电亮GP0正白灯珠,开关掉电一次,切换为GP1暖白灯珠,开关再掉电一次为交替闪烁。 单片机源程序如下: #include pic.h __CONFIG(0X010); #define uchar unsigned char #define uint unsigned int #define TIME_MAX 1000 uint key2_time_cnt;//按键去抖计数器 uchar num; uchar key_flag; void Delay_mS(uint n) { uint j; uchar k; for(j=0;
[单片机]
AVR单片机I²C总线实验
/* AVR单片机I2C总线实验。 1、用24C02记录CPU启动次数,并在PB口上显示出来。 2、内部1 M晶振,程序采用单任务方式,软件延时。 3、进行此实验请插上JP1的所有8个短路块,JP7(LED_EN)/PC0/PC1短路块。 4、通过此实验,可以I2C总线操作有个初步认识。 */ #include iom16v.h extern unsigned char twi_write(unsigned char addr, unsigned char dd); extern unsigned char twi_read(unsigned char addr, unsigned char *dd);
[单片机]
【GD32 MCU 入门教程】一、GD32 MCU 开发环境搭建(1)使用Keil开发GD32
目前市面通用的MDK for ARM版本有Keil 4和Keil 5:使用Keil 4建议安装4.74及以上;使用Keil 5建议安装5.20以上版本(注意:GD32E23x系列必须使用Keil5开发)。 1.1 在Keil4中添加GD32 MCU Device 1.1.1 从GD32官网下载相关系列插件。 下面以GD32F30x为例,在官网上下载MDK-ARM_AddOn_GD32F30x_V1.0.0.rar,如图所示: 1.1.2 双击解压安装至Keil 4的目录,一般都会默认选择,如若同时安装了Keil 4和Keil 5才需要手动选择。 1.1.3 安装成功后,重新打开Keil 4,则可以在File- Device
[单片机]
【GD32 <font color='red'>MCU</font> 入门教程】一、GD32 <font color='red'>MCU</font> 开发环境搭建(1)使用Keil开发GD32
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved