单片机3道题目~在线等,急啊谢谢你们

2024-12-23 07:25:38
推荐回答(3个)
回答1:

程序测试通过PrlteUS

c_NUM_A EQU 30H

ORG 00H
AJMP _INIT_SYS

_INIT_SYS:
MOV SP,#80H

_MIAN:
MOV 40H,#30H ;X'S VALUE
LCALL _QUESTION_1
MOV DPTR,#2030H
MOV A,#41H
MOVX @DPTR,A
LCALL _QUESTION_2

AJMP $

; 求符号函数的值:
; 2 当X > 0
; 0 当X = 0
; -2 当X < 0
; X存放在40H单元,Y存放在41H单元。
_QUESTION_1:
MOV A,40H
JZ _1_ZERO
ANL A,#80H
JNZ _1_FU
_1_ZHENG:
MOV 41H,#2
RET
_1_ZERO:
MOV 41H,#0
RET
_1_FU:
MOV 41H,#82H
RET

; 设计数据检索程序,在外部RAM的2000H开始的连续100个单元中查找字符A
; (ASCII码为41H)的个数。
_QUESTION_2:
PUSH 0

MOV c_NUM_A,#00H
MOV DPTR,#2000H
MOV R0,#100
_2_LOOP:
MOVX A,@DPTR
CLR C
SUBB A,#041H
JNZ _2_END_TEST
INC c_NUM_A

_2_END_TEST:
INC DPTR
DJNZ R0, _2_LOOP

POP 0
RET

; 23. 对于中值滤波法,如果设n=3;3此采样值分别存放在R2、R3、R4中,
; 中值存在R3中,试用51系列单片机汇编语言编写中值滤波程序。
_QUESTION_3:
; 请把问题具体描述下,我不太理解
; 尽管信号系统,数字信号处理我都学过,学得太烂了,不好意思
RET

END

回答:
MOV R0,#00H ;一共循环100H次
MOV R2, #00 ;个数清零
....
INC R0
MOV A,R0
JNZ LOOP1
根据该片断, R0初值应为 256-100=156
按你的答案,找了256个而不是100个

当然,你说的也对
DJNZ R0, _AAA 即为 --1 不为0则跳转,相当于

DEC R0
MOV A,R0
JNZ LOOP1

回答2:

自己装个KEIL C51 , 单步运行!
www.pp51.com

回答3:

mian()