公交非接触IC卡读写器的应用设计
[09-12 00:06:20] 来源:http://www.88dzw.com 电子基础知识 阅读:8418次
文章摘要:MOV P2,#0F0HMOV A,P2ANL A,#0F0HORL A,BCJNE A,#0FFH,KEY1RET ;无键按下KEY1: MOV B,A ;有键按下,存键码MOV DPTR,#TABLEMOV R3,#0FFH ;存顺序码单元初始化KEY2: INC R3MOV A,R3MOVC A,@A+DPTRCJNE A,B,KEY3 ;判键码,求顺序码MOV A,R3 ;若找到键码,存顺序码RETKEY3: CJNE A,#0FFH,KEY2;判是否查完RET ;已查完,键码未找到,以无按键处理TABLE: DB 77H,7BH,0BBH ;按键特征码表DB 0DBH,7DH,0BD
公交非接触IC卡读写器的应用设计,标签:电子基础,电子基础知识应用,http://www.88dzw.comMOV P2,#0F0H
MOV A,P2
ANL A,#0F0H
ORL A,B
CJNE A,#0FFH,KEY1
RET ;无键按下
KEY1: MOV B,A ;有键按下,存键码
MOV DPTR,#TABLE
MOV R3,#0FFH ;存顺序码单元初始化
KEY2: INC R3
MOV A,R3
MOVC A,@A+DPTR
CJNE A,B,KEY3 ;判键码,求顺序码
MOV A,R3 ;若找到键码,存顺序码
RET
KEY3: CJNE A,#0FFH,KEY2;判是否查完
RET ;已查完,键码未找到,以无按键处理
TABLE: DB 77H,7BH,0BBH ;按键特征码表
DB 0DBH,7DH,0BDH
DB 0DDH,7EH,0BEH
DB 0DEH,0B7H,0D7H
DB 0EEH,0EDH,0EBH
DB 0E7H,0C7H,0FFH
3.显示程序
根据图1,在显示电路中,用P1口的3根I/O口线(P1.0、P1.1、P1.2)分别提供时钟信号(CLK)、串行数据(DA)和使能信号(EN)。MC14499每一次可接收20位串行输入数据,前4位用于控制数码管的小数点显示,后16位是4个数码管的BCD码输入数据。在每帧数据传送之前,必须将EN置0;然后传送20位数据,数据传送完后,再将EN置1。显示程序如下:
DISP: CLR P1.0 ; 清CLK
CLR P1.2 ;清EN
MOV R2,#04 ;置传送位数
MOV A,#00
LCALL W14499 ;调送数显示
MOV A,@R1 ;读要显示的数
MOV R2,#08 ;置传送位数
LCALL W14499
INC R1
MOV A,@R1
MOV R2,#08 ; 置传送位数
LCALL W14499
SETB P1.2 ;置EN位
RET
W14499: SETB P1.0 ; 清CLK
RLC A ;准备逐位送数显示
MOV P1.1,C ; 将数移入DA
CLR P1.0 ; 清CLK
DJNZ R2,W14499
RET
4.串行E2PROM读写程序
24C64为I2C总线的E2PROM。SCL为400kHz时钟线,SDA为双向数据线,A2、A1、A0三位为片选地址,即I2C总线上最多可并联8个串行E2PROM芯片。对E2PROM的操作方式由读写控制命令字决定,如图4所示。其中"1010"为4位读写控制码,R/W为读写控制位:"0"为写操作,"1"为读操作。所以结合图1可知A2H为写控制命令字,A3H为读控制命令字。
对存储器写操作,首先,单片机向24C64发一个START命令,产生开始条件。然后,发写命令控制字(如A2H)。当24C64接到命令后,进入一个写周期,再由单片机发送存储地址,即确定数据写入到存储器的哪个地址,随后,单片机将要存储的数据送入到SDA数据线上。写周期结束时,单片机再发一停止位(STOP)。
对存储器读操作,首先,单片机向24C64发一个START命令,产生开始条件。然后发写命令控制字(如A2H)。当24C64接到命令后,进入一个写周期,再由单片机发送存储地址。存储地址发送成功后,单片机又向24C64发一个START命令,产生开始条件,然后发读命令控制字(A3H)。当24C64接到命令后,进入一个读周期,单片机从SDA数据线上读出指定存储地址中的数据。读周期结束时,单片机再发一停止位(STOP)。(程序略)
值得注意的是,对存储器操作时,每读写一个字节,单片机必须送一个应答位(ACK),释放一下SDA数据线,以便存储器能继续接收数据。
5.通信程序
在读写器中,单片机与PC机之间的通信主要由TC232来实现TTL电平(0~5V)与RS232电平(+10~-10V)的转换(电路见图1),以完成售卡机保存的售卡记录的传送。通信格式设置为:采用串行工作方式1,波特率为9600baud, 1个起始位,8位数据位,1个停止位,采取和校验方式。读写器中,单片机程序可采用C语言进行编程。C语言有功能丰富的库函数,运算速度快、编译效率高、可移植性好、软件的可读性强,便于改进和扩充(程序略)。
为提高在公交系统的适应能力,包括用户的各类特殊要求,抗干扰,抗恶劣环境,除硬件上采用监控电路外,在软件上还采取了指令冗余和软件陷阱。
- 上一篇:自动门的系统配置
《公交非接触IC卡读写器的应用设计》相关文章
- › 公交非接触IC卡读写器的应用设计
- 在百度中搜索相关文章:公交非接触IC卡读写器的应用设计
- 在谷歌中搜索相关文章:公交非接触IC卡读写器的应用设计
- 在soso中搜索相关文章:公交非接触IC卡读写器的应用设计
- 在搜狗中搜索相关文章:公交非接触IC卡读写器的应用设计
- · 电工基础知识
- · 运动控制术语
- · 什么是cpu卡
- · 锂离子电池的基本知识
- · 电动机型号与轴承的关系
- · 滤波电路原理分析
- · 电感和磁珠的选型
- · 什么是SPICE模型
- · 什么是双极型集成电路
- · 什么是熔断器