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

📄 xtkbser.asm

📁 XT_KeyBoard interface with 8951 using Assembler and Document for Key board delivered data details, W
💻 ASM
字号:
       cpu "8051.tbl"
        hof "int8"
;IEC:      EQU       A8H	      
PSW:      equ       0D0h      ;program status word.
IE:       EQU       0A8H      ;INTERRUPT ENABLE.
SBUF:     EQU       99H       ;SEND BUFFER.
SCON:     EQU       98H       ;SERIAL CONTROL.
TH1:      EQU       8DH       ;TIMER 1 HIGH.
TH0:      EQU       8CH       ;TIMER 0 HIGH.
TL1:      EQU       8BH       ;TIMER 1 LOW.
TL0:      EQU       8AH       ;TIMER 0 LOW.
TMOD:     EQU       89H       ;TIMER MODE.
TCON:     EQU       88H       ;TIMER CONTROL.
PCON:     EQU       87H       ;POWER CONTROL REGISTER.
DPH:      EQU       83H       ;DATA POINTER HIGH.
DPL:      EQU       82H       ;DATA POINTER LOW.
SP:       EQU       81H       ;STACK POINTER.
P0:       EQU       80H       ;PORT 0.
P1:       EQU       90H       ;PORT 1.
P2:       EQU       0A0H      ;PORT 2.
P3:       EQU       0B0H      ;port 3.
p4:       EQU       0E8H      ;port 4	
p6:       equ       0F8h      ;port6.
Acc:      equ       0E0h      ;Acc.
;
;MCS-51 INTERNAL BIT ADDRESSES
;
CY:       EQU       0D7H      ;CARRY FLAG
AC:       EQU       0D6H      ;AUXILIARY-CARRY FLAG
F0:       EQU       0D5H      ;USER FLAG 0
RS1:      EQU       0D4H      ;REGISTER SELECT MSB
RS0:      EQU       0D3H      ;REGISTER SELECT LSB
OV:       EQU       0D2H      ;OVERFLOW FLAG
P:        EQU       0D0H      ;PARITY FLAG
PS:       EQU       0BCH      ;PRIORITY SERIAL PORT
PT1:      EQU       0BBH      ;PRIORITY TIMER 1
PX1:      EQU       0BAH      ;PRIORITY EXTERNAL 1
PT0:      EQU       0B9H      ;PRIORITY TIMER 0
PX0:      EQU       0B8H      ;PRIORITY EXTERNAL 0
EA:       EQU       0AFH      ;ENABLE ALL INTERRUPT
ES:       EQU       0ACH      ;ENABLE SERIAL INTERRUPT
ET1:      EQU       0ABH      ;ENABLE TIMER 1 INTERRUPT
EX1:      EQU       0AAH      ;ENABLE EXTERNAL 1 INTERR
ET0:      EQU       0A9H      ;ENABLE TIMER 0 INTERRUPT
EX0:      EQU       0A8H      ;ENABLE EXTERNAL 0 INTERR
SM0:      EQU       09FH      ;SERIAL MODE 0
SM1:      EQU       09EH      ;SERIAL MODE 1
SM2:      EQU       09DH      ;SERIAL MODE 2
REN:      EQU       09CH      ;SERIAL RECEPTION ENABLE
TB8:      EQU       09BH      ;TRANSMITT BIT 8
RB8:      EQU       09AH      ;RECEIVE BIT 8
TI:       EQU       099H      ;TRANSMIT INTERRUPT FLAG
RI:       EQU       098H      ;RECEIVE INTERRUPT FLAG
TF1:      EQU       08FH      ;TIMER 1 OVERFLOW FLAG
TR1:      EQU       08EH      ;TIMER 1 RUN CONTROL BIT
TF0:      EQU       08DH      ;TIMER 0 OVERFLOW FLAG
TR0:      EQU       08CH      ;TIMER 0 RUN CONTROL BIT
IE1:      EQU       08BH      ;EXT INTERR. 1 EDGE FLAG
IT1:      EQU       08AH      ;EXT INTERR. 1 TYPE FLAG
IE0:      EQU       089H      ;EXT INTERR. 0 EDGE FLAG
IT0:      EQU       088H      ;EXT INTERR. 0 TYPE FLAG
BDE:      EQU       0dfH
org 0700h
    seg7: DFB	3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,67H,77h,7ch,58h,5eh,79h,71h
    
org 0710h
 Shifted: dfb	00,	
 org   30h
    kbdata1:	dfs 1
    kbdata2:	dfs 1
    kbdata3:	dfs 1
    kbdata4:	dfs 1
    kbdata5:	dfs 1
    kbdata6:	dfs 1
    temp1:	dfs 1
    temp2:	dfs 1
    temp3:	dfs 1
    temp4:	dfs 1
    bcount:	dfs 1
    store1:     dfs 1
    store2:     dfs 1
    gap1:	dfs 1
    store3:     dfs 1
    store4:     dfs 1
    gap2:	dfs 1
    store5:     dfs 1
    store6:     dfs 1
    gap3:	dfs 1
    store7:     dfs 1
    store8:     dfs 1
    gap4:	dfs 1
    store9:     dfs 1
    storea:     dfs 1
    gap5:	dfs 1    
    storeb:     dfs 1
    storec:     dfs 1
    gap6:	dfs 1
    gap7:	dfs 1
    timer1:	dfs 1
 org 0000h
        LJMP start
 org 0200h
start:	mov	sp,#20h
	acall	delay
	mov 	store1,#3fh
        mov 	store2,#3fh
        MOV 	store3,#3fh
        MOV 	store4,#3fh
        mov 	store5,#3fh
        mov 	store6,#3fh
        mov	gap1,#20h
        mov	gap2,#20h
        mov	gap3,#20h
        mov	gap4,#20h
        mov	gap5,#20h
        mov	gap6,#20h
        mov	gap7,#20h
	mov	temp1,#00
	mov 	timer1,#00
	acall	delay
	
repeat:	mov	temp1,#00
	acall	rebyte
	mov	kbdata1,temp1
		
	mov	temp1,#00
	acall	rebyte
	mov	kbdata2,temp1
		
	mov	temp1,#00
	acall	rebyte
	mov	kbdata3,temp1
		
	mov	temp1,#00
	acall	rebyte
	mov	kbdata4,temp1
	
	mov	temp1,#00
	acall	rebyte
	mov	kbdata5,temp1
	
	mov	temp1,#00
	acall	rebyte
	mov	kbdata6,temp1
	
	acall	init
	
	mov	a,kbdata1
	anl	a,#0fh
	acall	Ascii
	mov	store1,temp1
	mov	a,kbdata1
	SWAP	A
	anl	a,#0fh
	acall	Ascii
	MOV	store2,temp1
	
	mov	a,kbdata2
	anl	a,#0fh
	acall	Ascii
	mov	store3,temp1
	mov	a,kbdata2
	SWAP	A
	anl	a,#0fh
	acall	Ascii
	MOV	store4,temp1
	
	mov	a,kbdata3
	anl	a,#0fh
	acall	Ascii
	mov	store5,temp1
	mov	a,kbdata3
	SWAP	A
	anl	a,#0fh
	acall	Ascii
	MOV	store6,temp1

	mov	a,kbdata4
	anl	a,#0fh
	acall	Ascii
	mov	store7,temp1
	mov	a,kbdata4
	SWAP	A
	anl	a,#0fh
	acall	Ascii
	MOV	store8,temp1
	
	mov	a,kbdata5
	anl	a,#0fh
	acall	Ascii
	mov	store9,temp1
	mov	a,kbdata5
	SWAP	A
	anl	a,#0fh
	acall	Ascii
	MOV	storea,temp1
	
	mov	a,kbdata6
	anl	a,#0fh
	acall	Ascii
	mov	storeb,temp1
	mov	a,kbdata6
	SWAP	A
	anl	a,#0fh
	acall	Ascii
	MOV	storec,temp1
	
	acall	TX_DATA
	acall	Debounce
	clr 	tr1            	; stop timer
	ajmp	repeat		; data serial line.
;=============================================	
Ascii:	CJNE	A,#0AH,NotEql
	ADD	A,#37H
	MOV	temp1,A
	AJMP	MSB1
NotEql:	jc	below
	ADD	A,#37H
	MOV	temp1,A
	AJMP	MSB1
below:	add	a,#30h
	mov	temp1,a
MSB1:	ret
;=============================================
rebyte:	jb	p1+1,$		;

⌨️ 快捷键说明

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