按书本上的例子改了一下
输入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编辑过]
|