📄 ws.asm
字号:
;******************************************************************************************;
;地址分配表。
; 4003h---? 0c003h----- ? (10h-30h)----? (4eh-64h)-----? 65h----蜂鸣器控制寄存器(0ffh开00关)
; (70-79h)------? (0010-009f)-----存储实测水分的结果 34h---? 0c002----5832地址 40H----初始画面1与主菜单的标志位0
; 2EH---? 2FH----?30H---?31H---? 32H----? 33H-----? 26H---?27H---?35H---?36H----?
; 37H---?38H-----?3BH---?3DH----?
; 20h--F0打印方式的标志位,高电平有效。
; 21h--F1打印方式的标志位,高电平有效。
; 22h--F2打印方式的标志位,高电平有效。
; 23h--F3打印方式的标志位,高电平有效。
; 7AH-7FH可位寻址地址未用
; 30H-4CH数据存储器用作堆栈。
; 4ch用作3次平均值的计数寄存器
; 42h,43h,44h,45h,46h,记录第一次测量值
; 47h,48h,49h,4ah,4bh,记录第二次测量值
;7eh,为两次平均打印标志位
;7fh,为3次平均打印标志位
ORG 0000H
LJMP START
ORG 0003H
LJMP IN00
ORG 000BH
LJMP SC25
ORG 001BH
LJMP T1JS
ORG 0040H
START:MOV SP,#30H ;程序初始化,各寄存器地址未分清。
MOV DPTR,#4003H ;键盘用8255控制口地址
MOV A,#81H ;置pa.pb为输出口,pc低半字节为输入口,输入键盘数据。
MOVX @DPTR,A
MOV DPTR,#0C003H ;打印机,8532用8255控制口地址 0c002h是时钟芯片5832口地址
MOV A,#80H ;置pa.pb.pc为输出口
MOVX @DPTR,A
MOV DPTR,#4003H ;8255的c口具有位控制功能,可以通过对工作方式控制字的操作将其任意一位置一或清零。
MOV A,#0CH ; pc6置0
MOVX @DPTR,A
MOV A,#0EH ; pc7置0 4052选中x0通道。
MOVX @DPTR,A
MOV 87H,#80H ;SMOD=1
MOV SCON,#0C0H
MOV 0CBH,#0FFH
MOV 0CAH,#0EEH
MOV 0CDH,#0FFH
MOV 0CCH,#0EEH
MOV 0C8H,#34H
MOV 89H,#15H
MOV TH1,#4CH
MOV TL1,#01H
MOV TH0,#0FFH
MOV TL0,#0E7H
LCALL TMRD ;调8532时钟数据,把秒分时日月年分别存入80h-8ch.
MOV R0,#87H ;把日的低字节转存入90h地址中
MOV A,@R0
MOV R0,#90H
MOV @R0,A
MOV R2,#10H
MOV R0,#20H
MOV A,#0 ;20h...30h地址内容清零
STAR1:MOV @R0,A
INC R0
DJNZ R2,STAR1
MOV R0,#4EH
MOV R2,#17H
MOV A,#0
STAR2:MOV @R0,A ;4EH...64H QING 0
INC R0
DJNZ R2,STAR2
MOV 65H,#0FFH ;GUANBI FENMINGQI 关闭蜂鸣器
MOV 66H,#0
MOV 6BH,#0
MOV 6CH,#0
MOV 6DH,#44H
MOV 6EH,#0
MOV 6FH,#0
MOV R2,#10H
MOV A,#0
MOV R0,#70H
STT1: MOV @R0,A
INC R0 ;70-79地址内容清零。
DJNZ R2,STT1
MOV A,#0
MOV DPTR,#0010H
MOV R2,#90H
ST: MOVX @DPTR,A ;0010-009f地址的内容清零。 以备存储实测水分结果
INC DPTR
DJNZ R2,ST
MOV DPTR,#0000H ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -