搜索
bottom↓
回复: 6

NEC单片机汇编程序求助~~~【恢复】

[复制链接]

出0入0汤圆

发表于 2008-10-22 20:39:56 | 显示全部楼层 |阅读模式
NECuD78K0SF9232单片机应用于空调控制模块,公司给了汇编代码,让我编出另一个,好晦涩看都看不懂,不知哪位达人有空帮忙解答了,谢谢~~代码很长

出0入0汤圆

发表于 2008-10-29 22:23:39 | 显示全部楼层
估计是2次采样的间隔时间或单次采样的稳定时间。

出0入0汤圆

 楼主| 发表于 2008-10-23 10:11:51 | 显示全部楼层
TEMP_TAB:   ;3450        

                                                                db                 13                     ;97

                db     14        ;98

                db     14        ;99

                db     14        ;100

                db     15        ;101

                db     15        ;102

                db     16        ;103

                db     16        ;104

                db     16        ;105

                db     17        ;106

                db     17        ;107

                db     18        ;108

                db     18        ;109

                db     18        ;110

                db     19        ;111

                db     19        ;112

                db     20        ;113

                db     20        ;114

                db     20        ;115

                db     21        ;116

                db     21        ;117

                db     22        ;118

                db     22        ;119

                db     22        ;120

                db     23        ;121

                db     23        ;122

                db     24        ;123

                db     24        ;124

                db     24        ;125

                db     25        ;126

                db     25        ;127

                db     25        ;128

                db     26        ;129

                db     26        ;130

                db     27        ;131

                db     27        ;132

                db     28        ;133

                db     28        ;134

                db     28        ;135

                db     29        ;136

                db     29        ;137

                db     30        ;138

                db     30        ;139

                db     30        ;140

                db     31        ;141

                db     31        ;142

                db     32        ;143

                db     32        ;144

                db     33        ;145

                db     33        ;146

                db     33        ;147

                db     34        ;148

                db     34        ;149

                db     35        ;150

                db                 35                                 ;151





========================================================

这个是表,不好意思一次贴这么多汗~我不明白的就是

ADSAMPLE:        

        CMP        SAMP_TIME,#30                ;60ms

        BNC        $ADSTART         ;2ms一次

        RET 

告诉我是2ms采样一次的意思我不明白

出0入0汤圆

 楼主| 发表于 2008-10-23 10:10:31 | 显示全部楼层
ADCSUM:         DS      2

SAMPCNT:        DS        1

ADCMIN:                DS        1

ADCMAX:                DS        1

ADVAL:                DS        1

T1:             DS        1

T2_adval:        DS        1

SAMP_TIME:      DS        1





ADSAMPLE:        

        CMP        SAMP_TIME,#30                ;60ms

        BNC        $ADSTART         ;2ms一次

        RET

ADSTART:

        MOV        SAMP_TIME,#0

        SET1        ADCS              ;置1开始AD转换

ADLOOP:

        BF        ADIF,$ADLOOP              ;ADIF=0(无中断信号)死循环

        CLR1        ADIF

        CLR1        ADCS                    ;

        MOV        A,ADCRH              ;ADCRH 8位AD转换结果寄存器

        INC        SAMPCNT             ;采样次数

        CMP        SAMPCNT,#2         

        BNC        $AD0               ;取第二次采样结果

        MOV        ADCMIN,A        ;第1次采样结果作为ADCMIN

        MOVW        AX,#0

        MOVW        ADCSUM,AX   

        RET

AD0:

        CMP        SAMPCNT,#3

        BNC        $MINCHK                                ;第3次采样执行MINCHK

        CMP        A,ADCMIN       ;

        BNC        $AD1         ;第2次采样A大于ADCMIN执行AD1

        XCH        A,ADCMIN        ;A小于ADCMIN将A结果作为MIN

AD1:

        MOV        ADCMAX,A

        RET

MINCHK:

        CMP        A,ADCMIN

        BNC        $MAXCHK           ;A大于等于最小值转到MAXCHK,与最大值比较

        XCH        A,ADCMIN             ;A小于最小值,将A作为最小值

        BR        ADSUM

MAXCHK:

        CMP        A,ADCMAX           ;

        BC        $ADSUM                  ;A小于ADCMAX大于ADCMIN时执行ADSUM

        XCH        A,ADCMAX                 ;A大于ADCMAX将A值作为ADCMAX

ADSUM:                          ;累加

        ADD        A,ADCSUM               ;ADCSUM初值0

        MOV        ADCSUM,A

        ADDC        ADCSUM+1,#0

        MOV        A,ADCSUM+1

        CMP        SAMPCNT,#6            

        BNC        $AVERAGE            ;采样结果6次累加,大于6次后转到平均

        RET

AVERAGE:                 ;去掉最大值后采样值平均

        MOV        SAMPCNT,#0

        CLR1        CY

        RORC        A,1

        MOV        ADCSUM+1,A

        MOV        A,ADCSUM

        RORC        A,1

        MOV        ADCSUM,A         

        MOV        A,ADCSUM+1              ;/2

        CLR1        CY

        RORC        A,1

        MOV        ADCSUM+1,A

        MOV        A,ADCSUM

        RORC        A,1

        MOV        ADCSUM,A                ;/4   第1次采样和采样最大值不要

        MOV        ADVAL,A                        ;



;---------------------------------

T1CHANNEL:

        MOV        A,ADS

        CMP        A,#0

        BNZ        $T2CHANNEL                 ;ADS不为0转到2通道,两通道互换T1,T2

        

        MOV        A,ADVAL

        MOV T1_adval,A

        CMP        A,#5

        BC        $SETT1ERR

        CMP        A,#250

        BNC        $SETT1ERR                ;A小于5大于250出错SETT1ERR

        CLR1        T1err_f

T1_LOOKUP:

        CMP                A,#151+1

        BC                $T1_LOOKUP1                ;小于152跳转

        MOV                T1,#35                  ;大于152给35,结束

        BR                $T1_RET

T1_LOOKUP1:

        CMP                A,#97

        BNC                $T1_LOOKUP2               ;大于97,跳

        MOV                T1,#13                       ;根据表,小于97给13,结束

        BR                $T1_RET                            

T1_LOOKUP2:

        SUB                A,#97

        MOV        X,A

        MOV        A,#0

        ADDW        AX,#TEMP_TAB

        MOVW        HL,AX

        MOV        A,[HL]

        MOV        T1,A

        BR        $T1_RET

SETT1ERR:                      ;错误提示,大于250,小于5时

;        SET1        T1err_f

        MOV                T1,#13

T1_RET:

        MOV                ADS,#1

        RET

;==================

T2CHANNEL:

        MOV        A,ADVAL

        MOV        T2_adval,A

        CMP        A,#5

        BC        $SETT2ERR

        CMP        A,#250

        BNC        $SETT2ERR

        CLR1        T2err_f        

        BR        $T2_RET

SETT2ERR:

;        SET1        T2err_f

T2_RET:

        MOV          ADS,#0

        RET

=================================

这个是两通道采样的程序,老大上次说好像第一次采样的结果不要,采样最高值不要,一共六次温度采样,然后两个AD通道轮流运转。

出0入0汤圆

 楼主| 发表于 2008-10-23 09:49:33 | 显示全部楼层
谢谢各位~吼吼吼吼

出0入0汤圆

发表于 2008-10-23 09:07:59 | 显示全部楼层
楼主可以把看不懂的地方贴出来啊

出0入0汤圆

发表于 2008-10-22 22:26:16 | 显示全部楼层
2322317yg:

      你好!我也是做空调的,在用F9222,你不介意的可以把你公司给的汇编源代码和原来的电控板原理图及新的原理图还有电控规格书发给我,看我能不能帮得上,619968825@QQ.COM.
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-3 04:12

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表