高分求高人解释DSP2407汇编程序!!!!!! 50

本人新手,对dsp汇编一窍不通。哪位高手帮忙注释一下!!!不需要说明功能,只要每句话的意思。满意再加50分。*******************************... 本人新手,对dsp汇编一窍不通。哪位高手帮忙注释一下!!!不需要说明功能,只要每句话的意思。满意再加50分。

*********************************************
* 主程序
**********************************************
MAINLOOP:

LDP #EVBIFRA>>7
BIT EVBIFRA,BIT7
BCND LOOP_COM,NTC
SPLK #80H,EVBIFRA

KICK_DOG

CALL SCI_TIMER,AR1

LDP #MS_CNT>>7
LACL MS_CNT
ADD #1
SACL MS_CNT ;MS计数器

LDP #MS_CNT1>>7
LACC MS_CNT1
ADD #1
SACL MS_CNT1
SUB #2
BCND MS2_LOOP,EQ
SUB #2
BCND LOOP_COM,NEQ
MS2_LOOP:
**********************************************
KICK_DOG
CALL SUB_KEYBOARD,AR1
CALL SUB_CON_CAL,AR1
CALL SUB_SVC_WR,AR1
CALL SUB_VFIRMS_CAL,AR1
CALL SUB_COMMAND_PARA_SET,AR1
CALL SUB_RUN_DEAL,AR1
CALL SUB_PROTECT_DEAL,AR1
CALL SUB_VF_CURVE_CAL,AR1
CALL SUB_RUN_CONTROL,AR1

LDP #MS_CNT1>>7
LACC MS_CNT1
SUB #4
BCND LOOP_COM,NEQ
SPLK #0,MS_CNT1
**********************************************
KICK_DOG
CALL SUB_ACTUAL_TO_MARK,AR1 ;;实际值转化为标幺值
CALL SUB_INPUT_ERR,AR1
CALL SUB_OUTPUT_ERR,AR1
CALL SUB_TIME_CAL,AR1
CALL SUB_FAN_CONTROL,AR1 ;;风扇控制子程序
CALL SUB_OVERLOAD,AR1 ;;过载保护检测子程序
CALL SUB_DIS_FILT,AR1 ;;滤波子程序
CALL SUB_TEMPERATURE,AR1 ;;散热器1/2温度计算
CALL SUB_POWER_TOR_CAL,AR1
CALL SUB_ANALOG_IN,AR1
CALL SUB_ANALOG_OUT,AR1
CALL SUB_SWITCH_INPUT,AR1
CALL SUB_SWITCH_OUTPUT,AR1
CALL SUB_DI_COMD,AR1 ;;完成端子命令处理

LOOP_COM:
CALL SUB_SCI,AR1 ;;通讯处理子程序
CALL SUB_FAULT_CHECK,AR1 ;;故障检测子程序
CALL SUB_CON_SET,AR1 ;;参数设定子程序
CALL SUB_ICOE_CAL,AR1
CALL SUB_POFFSAVE,AR1

B MAINLOOP
展开
 我来答
手机用户61626
2011-10-01 · 超过11用户采纳过TA的回答
知道答主
回答量:102
采纳率:0%
帮助的人:40.9万
展开全部
还是用C来写吧,缺少对抢答器功能方面的描述,不知道程序要实现哪些功能。
读了下这段汇编程序,觉得有个地方写法似乎不太妥当,大家讨论一下:

LOOP:
MOV P1,A
SJMP LOOP
RET
显示子程序中这个地方为无条件跳转,也就是说,按键后显示值无法刷新,除非有系统中断或复位。我觉得编程本意还是送显后接着执行其他指令,否则这段下面的返回指令RET也就意义不明显了。
注释了一下程序,不知对不对
ORG 0000H;
MOV P1,#7FH ; 初始化P1口输出逻辑为0111 1111
MAIN:
MOV P3,#3CH ; P3 0011 1100
MOV A,P3 ;读入P3.5 P3.4 P3.3 P3.2的电平逻辑
ANL A,#3CH; ;取上述四位
CJNE A,#3EH,START ; 如果A不等于0011 1110 (P3.1有正电平跳变)跳转至START
SJMP MIAN ; 构造主程序超级循环,到这里主程序结束,一直重复上述过程

START:;如果P3.1 有0--》1的电平跳变,则开始键扫?

MOV A,P3 ;读入P3口信息,给ACC
ANL A,#3CH ;取中间四位(P3.5 P3.4 P3.3 P3.2)
CJNE A,#3CH,KEY1234 ; 如果有输入,转去扫描键1234
MOV A,#3DH ;(ACC)=0011 1101
MOV P3,A ;P3 =ACC =0011 1101
MOV A,P3 ;读入 (P3.5 P3.4 P3.3 P3.2 和P3.0)的状态
ANL A,#3CH ; 取中间四位 这里不太明白,感觉 #3CH应该为#3DH
CJNE A,#3CH,KEY5678 ; 若有输入,则转key5678,

KEY1234:
MOV B,#0FFH ;
RL A ; ACC左还移2位(数值*4)
RL A ;
CHKEY1234: ;
RLC A ; ACC带进位位左环移1位
INC B ; B=00H; C+1
JC CHKEY1234 ; 若C=1(原A的高位移0给C)则扫描A的下一位
LCALL DISPLAY ; 扫描完成后, 调用显示子程序
RET ; 返回主程序,感觉这里没太大意义

KEY5678: ; 参考key1234过程
MOV B,#0FFH
RL A;
RL A
CHKEY5678:
RLC A
INC B
JC CHKEY5678
INC B
INC B
INC B
INC B
LCALL DISPLAY
RET
; 显示子程序
DISPLAY:
MOV DPTR,#TAB ;段码表首地址给DPTR
MOV A,B ;A=B
MOVC A,@A+DPTR ;查表得到数值的段码
LOOP:
MOV P1,A ;循环送P1口A的值
SJMP LOOP
RET ;子程序返回

;数码管段码表
TAB:
DB OD9H,OBDH,0B7H,19H,0FFH,039H,0EFH,0EDH
END
丛尔柔
2011-09-19 · TA获得超过851个赞
知道小有建树答主
回答量:613
采纳率:0%
帮助的人:237万
展开全部
浮点DSP能直接进行浮点运算,一次完成,是直接用硬件完成的。
而定点DSP无法直接完成浮点运算,需要用程序来辅助完成浮点运算。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式