按書本上的例子改了一下
輸入9和99兩個數
入口是:r0 。數據存在30h和31h
出口:r1 。數據存在 31h和32H
KEIL沒語法錯誤 但是在實驗板上運行P2無任何顯示
急切盼望哪位前輩指點一下 偶已經折騰了3天了。。。
SCK BIT P1.7
CS BIT P1.5 wp bit p1.6 SI BIT P1.2 SO BIT P1.1
wrsr_fun equ 01h rdsr_fun equ 05h wr_fun equ 02h rd_fun equ 03h wren_fun equ 06h wrdi_fun equ 04h ORG 0000H LJMP MAIN org 40h MAIN: MOV SP,#5fh mov p1,#0ffh mov p2,#offh mov 30h,#99 mov 31h,#09 mov r0,#30h SETB CS NOP NOP CLR CS MOV A,#wrsr_fun
LCALL WRITE MOV A,#30H LCALL WRITE MOV A,#wren_fun
LCALL WRITE SETB CS NOP NOP L1: CLR CS MOV A,#rdsr_fun LCALL WRITE LCALL READ SETB CS NOP NOP JNB ACC.1,L1 mov p2,a ;這里是為了檢查讀出來的狀態
CLR CS MOV A,#write
LCALL WRITE MOV A,#00H
LCALL WRITE MOV R6,#2
LOOP: MOV A,@r0
LCALL WRITE inc r0 DJNZ R6,LOOP SETB CS call delay CLR CS MOV A,#rd_fun
LCALL WRITE setb cs nop nop clr cs MOV A,#00H LCALL WRITE setb cs nop nop clr cs MOV R1,#30H
MOV R6,#2 NEXT: LCALL READ MOV @R1,A INC R1
DJNZ R6,NEXT setb sck SETB CS mov p2,@r1 NOP NOP aJMP $ delay: mov r4,#7 d1: mov r5,#200 djnz r5,$ djnz r4,d1 ret WRITE: MOV R2,#8 WGOON: CLR SCK NOP NOP RLC A MOV SI,C
SETB SCK NOP NOP DJNZ R2,WGOON RET READ: MOV R2,#8
RGOON: SETB SCK NOP NOP CLR SCK MOV C,SO
NOP NOP RLC A DJNZ R2,RGOON RET end
[此貼子已經被作者于2010-11-7 11:15:52編輯過]
|