⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 equ.asm

📁 这是一个基于485的矩阵键盘程序源码
💻 ASM
字号:
;********************************************************************
;RC500
RC500_CE       EQU    P1.7    ;片选
RC500_RST      EQU    P1.5    ;复位
;--------------------------------------------------------------------
;数码管
W_ALE          EQU    P1.0    ;显示
D_ALE          EQU    P1.3    ;显示
;--------------------------------------------------------------------
U4_ALE         EQU    P1.2    ;按键部分
;--------------------------------------------------------------------
KEY_10         EQU    P2.0    ;键盘扫描1
KEY_20         EQU    P2.1    ;键盘扫描1
KEY_30         EQU    P2.2    ;键盘扫描1
KEY_40         EQU    P2.3    ;键盘扫描1

KEY_01         EQU    P2.6    ;键盘扫描1
KEY_02         EQU    P2.5    ;键盘扫描2
KEY_03         EQU    P2.4    ;键盘扫描3
KEY_04         EQU    P2.7    ;键盘扫描4

SPEAK          EQU    P3.5    ;蜂鸣器
;--------------------------------------------------------------------
;内存(位)
;BYTE:20H~25H  BIT:00H~2FH
;20H~27H已有特殊用途,不能再做它用
FKEY           EQU    08H  ;1 有新按键
FKEY_S         EQU    09H  ;按键状态 0 无键按下 ;1 有键按下
FLAG1          EQU    0AH  ;定时标志1


WORKLED        EQU    0CH  ;工作指示灯
FREC_COM       EQU    0DH  ;接收到的数据为命令
FREC_LEN       EQU    0EH  ;接收到的数据为数据长度
FREC_DATA      EQU    0FH  ;接收到的数据为数据
FREC_EDC       EQU    10H  ;接收到的数据为EDC
FREC_OVER      EQU    11H  ;接收数据结束
FLAG2          EQU    13H  ;流程控制
FDOT           EQU    14H  ;小数点
FKEYA          EQU    15H  ;有有效按键标识
FERR           EQU    21H  ;错误标识
FDATA          EQU    29H  ;有数据未发送标识
FCZAN          EQU    2AH  ;充值按钮有效位
FXF            EQU    2BH  ;消费计数器标识
FJSQAN         EQU    2CH  ;按钮计数器标识
FKEYCL         EQU    2DH  ;按键处理部分
FSETXF         EQU    2EH  ;设置消费方式,分为递增递减法与定值法,FSETXF=1为定值法
FSETOUT        EQU    2FH  ;设置消费输出方式,为1时为低电平有效,为0时为高电平有效
FCS            EQU    31H  ;测试标志
SYSLED         EQU    32H  ;工作标识
FCARDKEY       EQU    34H  ;发卡成功标示
FWRITEXF       EQU    35H  ;对消费额进行写操作
FENTER         EQU    36H  ;#号键有效时为1可以进行系统设置
FPAUSEEN       EQU    37H  ;有效充值脉冲标识
FSAVEPAUSE     EQU    39H  ;是否保存充值金额
FTIME          EQU    3BH  ;超时计数器
;--------------------------------------------------------------------
;内存(字节)
P0_MAP         EQU    20H  ;P0口映射在RAM中,可看作P5口.必须在20H

KEY_BAK        EQU    18H  ;按键键值
KEY_JSQ        EQU    19H  ;按键防抖动计数器
NET_JSQ        EQU    1AH  ;网络是否通畅计数器
ALLCZBAK       EQU    1BH  ;充值和备份1
MAXJE1         EQU    1CH  ;最大金额
MAXJE2         EQU    1DH  ;
MAXJE3         EQU    1EH  ;

REC_COM        EQU    1FH  ;接收到的通信命令
;28_2D
MACNO          EQU    28H  ;机号
KEYSEND        EQU    29H  ;要发送的按键

JSQFC          EQU    2BH  ;发卡用计数器
SJSQ           EQU    2CH  ;秒计数器
ZSJSQ          EQU    2DH  ;指示计数器
LEN            EQU    2EH  ;通信数据长度
EDC            EQU    2FH  ;EDC校验
REC_P          EQU    30H  ;接收数据指针
;;;;;;;;;;;;;;;;;;;
NUMDIS         EQU    31H  ;按住按键次数
KEYAL          EQU    32H  ;上一次按键的值
JSQ_MAIN_LOOP  EQU    33H  ;定时计数器1
JSQ_LOCAL_LOOP EQU    34H  ;定时计数器2
JSQ_SPEAK      EQU    35H  ;蜂鸣器用计数器
JSQ4           EQU    36H  ;请刷卡蜂鸣器指示
JSQ5           EQU    37H  ;错误时用计数器,蜂鸣器部分
ERR_JSQ        EQU    38H  ;错误用计数器,蜂鸣器部分

DIS_P          EQU    39H  ;动态扫描位指针
JSQ_X          EQU    3aH  ;兼容原程序10ms定时计数用的分频计数器
JSQCZ          EQU    3bH  ;充值用计数器
JSQXF          EQU    3cH  ;消费用计数器
JSQAN          EQU    3dH  ;充值按钮检测计数器

KEY_P          EQU    3EH  ;按键指针位置,取值0~16
MACBUF         EQU    3FH  ;物理编号缓冲区


ALLCZ1         EQU    48H  ;充值累计1
ALLCZ2         EQU    49H  ;充值累计2
ALLCZ3         EQU    4AH  ;充值累计3

CZJE1          EQU    4BH  ;充值金额1
CZJE2          EQU    4CH  ;充值金额2
CZJE3          EQU    4DH  ;充值金额3
ALL_CZCS       EQU    4EH  ;充值次数
CZBC           EQU    4FH  ;充值信息是否进入了累计

LASTCZ1        EQU    50H  ;最后一次充值
LASTCZ2        EQU    51H  ;最后一次充值
LASTCZ3        EQU    52H  ;最后一次充值

ALLXF1         EQU    53H  ;消费累计1
ALLXF2         EQU    54H  ;消费累计2
ALLXF3         EQU    55H  ;消费累计3

XFE1           EQU    56H  ;消费金额1
XFE2           EQU    57H  ;消费金额2
XFE3           EQU    58H  ;消费金额3
ALL_XFCS       EQU    59H  ;消费次数
SFBC           EQU    5AH  ;数据是否已经保存,在有扣到款时置1,
                           ;在扣款和保存部分都有用到,在主程序保存部分清零

LASTXF1        EQU    5BH  ;最后一次消费
LASTXF2        EQU    5CH  ;最后一次消费
LASTXF3        EQU    5DH  ;最后一次消费

KQE            equ    5EH  ;扣款数额

KEY_BUF        EQU    5FH  ;按键缓冲区,共16字节30H~3FH
DIS_BUF        EQU    6FH  ;显示缓冲区 6字节(直接寻址)6F、70、71、72、73、74、75、76H
S1XF           EQU    77H  ;消费方式设置字
S2XS           EQU    78H  ;消费输出设置字
S3MC           EQU    79H  ;脉冲相位
S4KG           EQU    7AH  ;充值开关设置字
S5XM           EQU    7BH  ;消费脉冲输出方式字
S6CM           EQU    7CH  ;充值脉冲输入方式字


RF_SBUF        EQU    7EH  ;和射频卡通讯时的数据缓存区(最多时连续19BYTE,前2个字节必须可立即寻址)
RFCSN          EQU    92H  ;射频卡序列号CSN(连续4BYTE)  RC500 程序用
CARD_NO        EQU    92H  ;射频卡序列号CSN(连续4BYTE)  自编程序用
;--------------------------------------------------------
BLOCK          EQU   0A3H  ;数据块,此处为发卡信息,共16字节0A3~0B2
DATABUF        EQU   0B3H  ;密码,共八字节
REC_DATA       EQU   0BBH  ;接收/发送数据缓冲区
;堆栈          EQU   0D0H  ;堆栈区
WDT            EQU    0E1H  ;stc89c52看门狗定时器控制寄存器(可直接寻址)
AUXR           EQU    08EH  ;可通过此位设置高位RAM是否可用
;FLASH读写用寄存器定义
ISP_DATA       EQU    0E2H      ;
ISP_ADDRH      EQU    0E3H      ;
ISP_ADDRL      EQU    0E4H      ;
ISP_CMD        EQU    0E5H      ;
ISP_TRIG       EQU    0E6H      ;
ISP_CONTR      EQU    0E7H      ;
ISP_READBYTE   EQU     01H      ;字节读
ISP_PROBYTE    EQU     02H      ;字节写
ISP_SECTOR     EQU     03H      ;扇区擦除
WAIT_TIME      EQU     80H      ;等待时间
FLASH_ADDL     EQU     00H
FLASH_ADDH     EQU     80H      ;从20H开始的6字节保存随机数
;--------------------------------------------------------------------
;立即数
FD_JSZ         EQU    12                ;键盘防抖动计数器数值

KEY_ESC        EQU    0CH               ;取消键
KEY_EN         EQU    04H               ;确认键
KEY_0          EQU    00H               ;数字键0
KEY_1          EQU    0FH               ;数字键1
KEY_2          EQU    03H               ;数字键2
KEY_3          EQU    07H               ;数字键3
KEY_4          EQU    0EH               ;数字键4
KEY_5          EQU    02H               ;数字键5
KEY_6          EQU    06H               ;数字键6
KEY_7          EQU    0DH               ;数字键7
KEY_8          EQU    01H               ;数字键8
KEY_9          EQU    05H               ;数字键9
;-----------------------------------------------------
;参数设置
STATE          EQU    00011111B         ;位0  卡密码传送开关        1开     0关
                                        ;位1  发卡子程序开关        1开     0关
                                        ;位2  充值子程序开关        1开     0关
                                        ;位3  消费子程序开关        1开     0关
                                        ;位4  锁存信号同反相开关    1常态高 0常态低
                                        ;位5  消费脉冲反相开关      1常态高 0常态低
                                        ;位6  保留位
                                        ;位7  保留位
FKJSQ          EQU      5               ;发卡计数器值的设置,单位为秒
DZKKE          EQU    0AH               ;定值扣款额的设置
CZDDPC         EQU    200               ;充值脉冲低电平最长时间,基数为2.5MS
CZDDPD         EQU      1               ;充值脉冲低电平最短时间,基数为2.5MS
ALLSD          EQU     25               ;一次性扣完部分余额闪动时间,单位0.2S

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -