📄 l4.dt
字号:
/***********************************************
使用按钮输入矩阵, PB0,PB1作为输出端接行线,
PB2,PB3作为输入端接列线
按下按钮S11~S22,能够显示1~4
程序使用PortA为七划管输出端口,PD7,PD6控制LED1,LED2供电
使对应LED点亮,用查表方法把BCD数字码转换为七划管的显示码。
************************************************/
INCLUDE "ET44M210_REG.H"
ORG 0X0000
JMP INIT
ORG 0X0100
INIT:
MOV A,#0X00
MOV IOCA,A ;设定PORTA为输出端口
MOV IOCD,A ;设定PORTD为输出端口
CLR PORTA
COM PORTA ;PORTA置1
clr portd
mov a,#0b00001100
mov iocb,a
MOV PUCB,A ;设定提升电阻
mov A,#0
mov 0xa0,a ;个位
mov 0xa1,a ;十位
call display
;============================================================
START:
mov a,#0b11111110
mov portb,a
call del
jbs portb,2,$+5
mov a,#1
mov 0xa0,a
jmp cal
jbs portb,3,$+5
mov a,#2
mov 0xa0,a
jmp cal
mov a,#0b11111101
mov portb,a
call del
jbs portb,2,$+5
mov a,#3
mov 0xa0,a
jmp cal
jbs portb,3,$+4
mov a,#4
mov 0xa0,a
cal: call display
jmp start
display:
clr portd
com portd
inca 0xa0 ;R+1--A
CALL table
mov porta,a ;返回个位的显示码
mov a,#0B10111111
mov portd,a
call del
clr portd
com portd
inca 0xa1
CALL table
mov porta,a ;返回十位的显示码
mov a,#0B01111111
mov portd,a
call del
clr portd
com portd
ret
TABLE: TBL
RETL 0B11000000 ;0
RETL 0B11111001 ;1
RETL 0B10100100 ;2
RETL 0B10110000 ;3
RETL 0B10011001 ;4
RETL 0B10010010 ;5
RETL 0B10000010 ;6
RETL 0B11111000 ;7
RETL 0B10000000 ;8
RETL 0B10010000 ;9
;DEL子程序
DEL:
MOV A,#3 ;依次给3个计数器置初值
MOV 0X40,A
;============================================================
DEL_LOOP1:
MOV A,#1
MOV 0X41,A
;============================================================
DEL_LOOP2:
MOV A,#0
MOV 0X42,A
;============================================================
DEL_LOOP3:
DJZ 0X42,$+3 ;寄存器0X42减1,若为0,PC+3运行
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -