;ID卡读卡器源程序_第1页
;ID卡读卡器源程序_第2页
;ID卡读卡器源程序_第3页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、;ID 卡读卡器源程序2002年 10月 15 日。;程序说明:本程序为读写器程序,程序建立时间, ;下面将本程序所用变量及含义定义如下:;定义SBUF (N )为串行通讯的缓冲区。;定义CBUF ( N )为读卡卡号的缓冲区。;通讯缓冲区定义BEGIN_FLAGEQU20HEND_FLAGEQU21HNUM_ADDEQU22HJISHUEQU23HCARD_FLAGEQU24HFIRST_HANDEQU25H;第一次握手标志,为 FF 为有握手, 为 CC匸-;00 表示无。SECOND_HANDEQU26H; 第二次握手标志,为 FF 为有握手,; 为 00 表示无。COMMAND_FLA

2、GEQU27H; 命令标志,表示什么命令。S_DATAEQUP3.2RESET_K4EQUP1.7RED_LEDEQUP1.6GREEN_LEDEQUP1.5BEEPEQUP1.4SBUF1EQU40HSBUF2EQU41HSBUF3EQU42HSBUF4EQU43HSBUF5EQU44HSBUF6EQU45HSBUF7EQU46HSBUF8EQU47HSBUF9EQU48HSBUF10EQU49HSBUF11EQU4AHSBUF12EQU4BHSBUF13EQU4CHSBUF14EQU4DHSBUF15EQU4EHSBUF16EQU4FH;读卡缓冲区定义CBUF1EQU50HCBUF2EQU

3、51HCBUF3EQU52HCBUF4EQU53HCBUF5EQU54HCBUF6EQU55HCBUF7EQU56HCBUF8EQU57HCBUF9EQU58HCBUF10EQU59HCBUF11EQU5AHCBUF12EQU5BHCBUF13EQU5CHCBUF14EQU5DHCBUF15EQU5EHCBUF16EQU5FHJORG0000HLJMP STARTORG0003H;INT0 入口地址LJMP INT_0ORG000BH;T0 入口地址LJMP TIME0ORG0013H;INT1 入口地址LJMP STARTORG001BH;T1 入口地址LJMP STARTORG0023H;

4、串行中断 S 入口地址LJMP SERIALSTARTCLRBEEPLCALLDH150msSETBRED_LEDMOVP1,#0FFHMOVSP,#05FH; 设置堆栈为高 64 字节CLREA;关闭所有中断MOVPCON,#00H;电源控制寄存器设初值MOVTCON, #00H;定时寄存器设初值MOVTMOD,#21H;定时方式寄存器设初值MOVTH1,#0FDH;设置波特率 9600bpsMOVTL1,#0FDHMOVTH0,#0FFHMOVTL0,#0FFHMOVSCON,#0F0H;设置串行中断工作在方式 2 状态。;当 SM2=1 时,只接收地址信息,MOVNUM_ADD,#31H

5、MOVIE,#0F3HSETBCLR GREEN_LEDMOVMOVLCALLCLRMOVSETBSETB; CLRSETBSETB MAINLCALL ; LCALL ; LCALL ; LCALLLJMP; AJMPMAIN; LCALLGET_CHARLCALLRESETLCALLCLEARSETBEX0LCALLDH70MSCLREX0MOVA,50HCJNEA, #02, NO_BEGINMOVA,5CHCJNEA, #03, NO_ENDMOVCARD_FLAG,#0FFHMOVJISHU, #50HLJMPREAD_END; JB S_DA TA,MAINREAD_CARDSET

6、BESSETBEASETBET0SETBET1SETBTR0MOVIP, #03HSETBSM2BEEPJISHU,#50H ;为缓冲区设置初始值。CARD_FLAG ,#00H; 无卡标志置 0。DH150MSEX0IE,#00HTR1ET0ET0ESEADH70MSREAD_CARDDH70MSTIME0MAIN;有卡, S_DATA 变低。;读一字节卡数据。;对 MTP-K4 进行复位。 ;首先对读卡空间和卡标志初始化;等待 70MS 从 INT0 接收数据;如果接收到 02,表示有开始位;如果接收到 03,表示有结束位 ; 标志有卡。NO_BEGINMOVCARD_FLAG , #00

7、HMOVJISHU, #50H; LCALLCLEAR;首先对读卡空间和卡标志初始化LJMPREAD_ENDNO_ENDMOVCARD_FLAG , #00HMOVJISHU, #50H; LCALLCLEAR;首先对读卡空间和卡标志初始化LJMPREAD_ENDREAD_ENDRETCLEARMOVCLR_1 MOVMOVDECMOVCJNERETR1, #5CHA, #0FFH R1, AR1A, R1A, #49H, CLR_1;得到字节子程序GET_CARD_CHARPUSHPUSH; JBLCALLLCALLMOVLOOPLCALLMOVRRCDJNZ; LCALLPOPPOPRET

8、01H;R1 入栈02H;R2 入栈S_DATA, $DH10USDH10USR2, #08DH104USC, S_DATAAR2, LOOPDH104US02H01H;中断读卡程序INT_0;读一字节卡数据在 A 中。PUSHACCLCALLGET_CARD_CHARMOVR0,JISHUMOVR0, AINCR0MOVJISHU, R0POPACCCLRBEEPSETBGREEN_LEDLCALLDH150MSCLRGREEN_LEDSETBBEEPCLRRESET_K4SETBRESET_K4RETI;蜂鸣器发声;绿色 LED 发光。; 对 MTP K4 进行复位操作。;串口得到字符程序

9、 ,所得字符在 A 中 ,并清除串行中断。 COM_GET_CHARMOVA, SBUFCLRRIRET;串口发送字符程序,所发字符在A 中,并等待发送完成。COM_SEND_CHARSBUF, ATI, $MOVJNBCLR TIRETJCOM_CARDRETSOUND_1CLRBEEPLCALLDH70MSSETBBEEPLCALLDH70MSRETJ;串行中断子程序SERIALJSETBGREEN_LEDCLRRIPUSHACCMOVA, SBUFCJNEA, #00, COMMAND_01MOVA,#00HLCALLCOM_SEND_CHAR;指令为与读写器连接;指令为读模块版本号。A

10、, #02H, COMMAND_03READ_CARDA, CARD_FLAGA, #0FFH, COMMAND_02_ERRA, 51HCOM_SEND_CHARA, 52HCOM_SEND_CHARA, 53HCOM_SEND_CHARA, 54HCOM_SEND_CHARA, 55HCOM_SEND_CHARA, 56HCOM_SEND_CHARA, 57HCOM_SEND_CHARA, 58HCOM_SEND_CHARA, 59HCOM_SEND_CHARA, 5AHCOM_SEND_CHARA, 5BHCOM_SEND_CHARPOPRETICOMMAND_01CJNEMOVLCAL

11、LMOVLCALLMOVLCALLMOVLCALL MOV LCALL POP CLR RETI COMMAND_02CJNELCALLMOVCJNEMOVLCALLMOVLCALLMOVLCALLMOVLCALLMOVLCALLMOVLCALLMOVLCALLMOVLCALLMOVLCALLMOVLCALLMOVLCALLACCA, #01, COMMAND_02A,#56H COM_SEND_CHAR A,#31H COM_SEND_CHAR A,#2EH COM_SEND_CHAR A,#30H COM_SEND_CHAR A,#32H COM_SEND_CHAR ACC GREEN_L

12、EDPOPRETICOMMAND_02_ERRMOVLCALLPOPRETICOMMAND_03CJNEPOPRETICOMMAND_11CJNEMOVLCALLLCALL SOUND_1POPRETICOMMAND_12CJNEMOVLCALLLCALLLCALLPOPRETICOMMAND_13CJNEMOVLCALLLCALLLCALLLCALLPOPRETICOMMAND_21CJNEMOVLCALLSETBLCALLACCA, #02HCOM_SEND_CHARACCA, #03H, COMMAND_11ACCA, #011H, COMMAND_12A, #011H COM_SEND

13、_CHARACCA, #012H, COMMAND_13A, #012H COM_SEND_CHAR SOUND_1SOUND_1ACCA, #013H, COMMAND_21A, #013H COM_SEND_CHAR SOUND_1SOUND_1SOUND_1ACCA, #0B1H, COMMAND_22A,#0B1H COM_SEND_CHAR GREEN_LEDDH70MSCLRGREEN_LEDPOPACCRETIPOPRETIACC;SERIAL; PUSHACC; LCALLCOM_GET_CHAR; CJNEA, #23H, NO_FIRST_HAND; MOVA, #45H;

14、 LCALLCOM_SEND_CHAR; MOVFIRST_HAND, #0FFH; MOVCOMMAND_FLAG , #00H; LJMPSER_END;NO_FIRST_HAND; CJNEA, #0AAH, NO_READ_ID; MOVCOMMAND_FLAG , #0AAH; MOVA, #67H; LCALLCOM_SEND_CHAR; LJMPSER_END;NO_READ_ID; CJNEA, #89H, NO_SECOND_HAND; MOVA, COMMAND_FLAG;CJNEA, #0AAH, NEXT_COMMAND; LCALLCOM_SEND_ID;NEXT_C

15、OMMAND; MOVCOMMAND_FLAG , #00H; MOVFIRST_HAND, #00H; MOVSECOND_HAND, #00H; LJMPSER_END;SER_END; POPACC; RETIJRESETCLRRESET_K4; NOPSETBRESET_K4RETCOMMAND_22DH104US;如果等于 23H 为第一次握 ;手信号,否则不是。;第一次握手标志 ,成功。;清除命令标志。;AA 为取 ID 卡号命令。;如果为 AA 指令 ,发送 ;卡号。并清除指令。;命令出错, 清除所有标志。MOVR1, #47DJNZR1, $RETDH10USMOVDJNZ R1, $RETR1, #04JDH70MSMOVR1, #09FH

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论