📄 keyinput.lis
字号:
.module KeyInput.c
.area text
0000 .dbfile KeyInput.c
0000 .dbfunc e KeyInput_Init _KeyInput_Init fV
0000 _KeyInput_Init::
0000 .dbline -1
0000 .dbline 13
0000 ; /*------------------------------------------------------------------------*
0000 ; *文件描述:本文件包含了开关量输入的2个子程序,分别为: *
0000 ; *(1)KeyInput_Init:开关量输入初始化 *
0000 ; *(2)KeyInput_Judge:读取8路开关量输入的状态 *
0000 ; *------------------------------------------------------------------------*/
0000 ; #include "Includes.h"
0000 ; /* KeyInput_Init:开关量输入初始化-----------------------------------------*
0000 ; *功 能:初始化两个需要中断的开关量输入,但中断并不开放 *
0000 ; *参 数: 无 *
0000 ; *返 回: 无 *
0000 ; *------------------------------------------------------------------------*/
0000 ; void KeyInput_Init(void) //开关量输入初始化
0000 ; {
0000 .dbline 14
0000 ; key_D =0x00; //定义PTA7-0为输入
0000 3F04 clr 0x4
0002 .dbline 15
0002 ; key_PUE =0xff;//定义输入引脚有内部上拉电阻
0002 A6FF lda #-1
0004 B70D sta 0xd
0006 .dbline 16
0006 ; INTKBSCR|= (1<<IntBit); //屏蔽键盘中断(IMASKk=1)
0006 121A bset #1,0x1a
0008 .dbline 17
0008 ; INTKBIER=0xff; //定义PTA作为中断输入引脚
0008 A6FF lda #-1
000A B71B sta 0x1b
000C .dbline 18
000C ; INTKBSCR|= (1<<ACKKBit); //清键盘中断请求(ACKK=1)
000C 141A bset #2,0x1a
000E .dbline -2
000E L1:
000E .dbline 0 ; func end
000E 81 rts
000F .dbend
000F .dbfunc e KeyInput_Judge _KeyInput_Judge fV
000F ; SwInFlag -> 2,X
000F _KeyInput_Judge::
000F .dbline -1
000F 95 tsx
0010 .dbline 36
0010 ; }
0010 ;
0010 ; /* KeyInput_Judge:读取4路开关量/4个按键的状态------------------------------*
0010 ; *功 能:读取开关量/键盘输入口存入内存中 *
0010 ; *参 数:SwInFlag-开关量/键盘输入状态字节的地址 *
0010 ; *返 回:开关量/键盘输入状态字节 *
0010 ; *说 明:*SwInFlag:0bxxxxdddd *
0010 ; * |||||||_初效压差开关 *
0010 ; * |||||||_中效压差开关 *
0010 ; * ||||||__防火阀1 *
0010 ; * |||||___防火阀2 *
0010 ; * ||||____按钮-上移 *
0010 ; * |||_____按钮-下移 *
0010 ; * ||______按钮-确定 *
0010 ; * |_______电源按钮按下,此时其他按键才有效(PTA6~4才有效) *
0010 ; *-------------------------------------------------------------------------*/
0010 ; void KeyInput_Judge(INT8U *SwInFlag) //读取开关量/键盘输入口存入内存中
0010 ; {
0010 .dbline 37
0010 ; asm("nop");
0010 9D nop
0011 .dbline 38
0011 ; asm("nop");
0011 9D nop
0012 .dbline 39
0012 ; *SwInFlag=key_P;
0012 E603 lda 3,X
0014 B700 sta *__r1
0016 E602 lda 2,X
0018 B700 sta *__r0
001A B600 lda 0
001C 5500 ldhx *__r0
001E F7 sta ,x
001F 95 tsx
0020 .dbline -2
0020 L2:
0020 .dbline 0 ; func end
0020 81 rts
0021 .dbsym l SwInFlag 2 pc
0021 .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -