找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2770|回复: 1
打印 上一主题 下一主题
收起左侧

程序没问题.仿真老出错.哪位大神能帮忙改一下

[复制链接]
跳转到指定楼层
楼主
10黑币
本帖最后由 1003 于 2016-6-1 17:09 编辑

  ORG      0000H
JMP       START1 ;
        ORG      000BH ;                       定时器/计数器0溢出中断
JMP       TIM0 ;                           转中断程序
START1: MOV      TMOD,#01H;                           设定定时器0工作方式1
        MOV      TH0 , #HIGH(65536-50000);         设定初值
        MOV      TL0,#LOW(65536-50000);
        SETB      TR0;                         启动定时器0
        MOV      IE,#82H;                      定时器0开放中断
        MOV      24H,#0FFH;
        ANL       P1,#00H;
        MOV      R0,#14;                           延时
START:  MOVX    @R0,A;                          启动A/D转换
WAIT:   JNB       P2.1,SET0;                       检测温度输入
         JB        P2.0,ADC;                     检测转换是否完成
         JMP       WAIT
ADC:    MOVX    A,@R0;                       将转换好的值送入A
LCALL  L1;
LCALL  DISP;
JMP     START
L1:      CLR       C;                              0
         MOV      20H,#00H;
         MOV      21H,#00H;
         MOV      R3,#08H;                        显示位数
NEXT:   RLC       A;                          A的内容和Cy左移一位,显示准备
         MOV      R2,A;
         MOV      A,20H;
         ADDC     A,20H
         DA        A;                              A进行十进制调整
         MOV      20H,A;
         MOV      A,21H;
         ADDC     A,21H
         MOV      21H,A;
         MOV      A,R2;
         DJNZ      R2,NEXT;                    R2-10 循环计数
L2:      MOV      A,20H
         ADD       A,20H;
         DA        A;
         MOV      20H,A;
             MOV      A,21H;
             ADDC     A,21H;
             DA        A;
             MOV      21H,A;
         RET
DISP:    MOV       A,20H;                           显示程序
         ANL        A,#0F0H
         SWAP       A;                              交换高低位
         MOV       22H,A
         MOV       A,21H;
         ANL       A,#0FFH
         SWAP       A ;
         ORL        A,22H;
         MOV       23H,A
         MOV       P1,A;
         MOV       R7,#0FFH;
         DJNZ       R7,$;                          是否显示完
         RET
SET0:    LCALL     DELAY;
         JNB        P2.1,$;                      等待按键操作
         LCALL       DELAY;                      消除按键抖动
A2:      CJNE       R0,#0FFH,A1;               
         MOV        R0,#14;                       延时
A1:      MOV        A,R0;
         MOV        DPTR,#TABLE ;                数据指针指向表头
         MOVC      A,@A+DPTR;                  查表
         MOV        P1,A;
         MOV        24H,A;
         MOV        R5,#4FH;
D4:      MOV        R7,#0FFH
D2:      MOV        R6,#0FFH
D1:      JNB         P2.1,SET1;                    有按键按下  转SET1
         DJNZ        R6,D1
         DJNZ        R7,D2
         DJNZ        R5,D4
         JMP         START;                  
SET1:    LCALL      DELAY;
         JNB         P2.1,$;                        等待按键操作
         LCALL      DELAY;                       消除抖动
         DEC         R0;                           
         JMP         A2;
TIM0:    PUSH       ACC;                         保护现场
         PUSH        PSW
         MOV        TH0,#HIGH (65536 - 50000);      重装定时初值
         MOV        TL0,#LOW (65536 -50000)
         CLR         C ;                           进位标志清0
         MOV        A,24H;                        比较温度
         SUBB       A,23H;
         JNC         OFF;
         CLR         C;
         MOV        A,24H;
         SUBB       A,23H;
         JNC        OFF;
         CLR        P3.0;                          压缩机停止工作
RETURN: POP        PSW
         POP         ACC
         RETI ;                                     中断返回
OFF:     SETB       P3.0;驱动                      压缩机开始工作
         JMP         RETURN
DELAY:  MOV        R7,#60;                        延时程序
D3:      MOV       R6,#248
         DJNZ       R6,$
         DJNZ       R7,D3
         RET
TABLE:  DB          20H,21H,22H,23H,24H;         
         DB         25H,26H,27H,28H,29H
         DB         30H,31H,32H,33H,34H
         END

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:7485 发表于 2016-6-1 21:30 | 只看该作者
本帖最后由 ahshmj 于 2016-6-1 21:31 编辑

“        MOV      R0,#14;                           延时
START:  MOVX    @R0,A;                          启动A/D转换  ”

外部地址是8位?  图中没看到AD转换的地址是14(000EH)。

AD转换是什么芯片?图中看不清楚。怎么看这有一个好像是DS18b20的?
你注释的 “延时”也不对,根据下面一句,应该是地址。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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