导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→发表看法:[xufei2004]关于8051与ADC0809的汇编问题!



No.88418
作者:xufei2004
邮件:xufei2004009@126.com
ID:46577
登陆:1次
文章数:3篇
最后登陆IP:218.13.141.124
最后登陆:2006/2/23 11:49:51
注册:2006/1/24 8:44:31
财富:109
发帖时间:2006/1/24 8:50:07
发贴者IP:218.13.129.54
标题:xufei2004:关于8051与ADC0809的汇编问题!!
摘要:No.88418关于8051与ADC0809的汇编问题!! 我是初学单片机的,最近在搞一个8051与ADC0809的汇编程序,但在用软件调试的过程发现很多问题,但我又实在部知道怎样改过来,希望各位大虾们能帮帮忙,帮我看看咯
      程序如下:
ORG     0013H               ;中断服务程序入口
AJMP    PINT1              

ORG     2000H
MAIN:  MOV  R1,#0ATA     ;置数据区首地址
         SETB  IT1           ;为边沿触发方式
         SETB  EA           ;开中断
         SETB  EX1          ;允许中断
         MOV  DPTR,#7FF8H  ;指向IN0通道
         MOVX  @DPTR,A     ;启动A/D转换
LOOP:  NOP                 ;空操作,用于延长时间
         AJMP  LOOP         ;直接跳转指令
         
ORG   2100H                 ;中断服务程序入口
PINT1:  PUSH  PSW         ;保护现场
         PUSH  ACC
         PUSH  DPL
         PUSH  DPH
         MOV   DPTR,#7FF8H
         MOVX  A,@DPTR    ;读取转换后数据
         MOV   @R1,A        ;数据存入以DPTR为首地址的RAM中
         INC     R1          ;修改数据区指针
         MOVX  @DPTR,A    ;再次启动A/D转换
         POP     DPH        ;恢复现场
         POP     DPL
         POP     ACC
         POP     PSW
         RETI                 ;中断返回
P:      CJNE  R1, #4.AEH, LP1  ;将R1中现存的温度转换成的十六进制电压值与
48℃的十六进制数4.AEH比较,如果R1中温度不等
于48℃则指令跳转到LP1,相等则指令顺下执行
        AJMP   LP11          ;直接跳转指令,直接跳转到LP11
LP1:   JNC    LP11          ;进位标志位CY的状态判转指令,如果R1中的温度大于48℃,则CY=0,指令转移到LP11;如果R1中的温度小于48℃,则CY=1,指令顺下执行
        CLR    P1.0          ;清空P1.0口,把继电器1的控制口断电,断开继电器1
        AJMP   MAIN        ;直接跳转指令,温度低于48℃,直接跳转到MAIN,重新检测温度
LP11: SETB   P1.0           ;将P1.0口置1,接通继电器1
       CJNE  R1, #4.BAH, LP2  ;将R1中温度继续与48.5℃比较,不等于则跳转到LP2,相等则顺下执行
       AJMP  LP22            ;温度等于48.5℃,指令直接跳转到LP22
LP2:  JNC   LP22            ;R1中温度大于48.5℃,则CY=0,指令跳转到LP22;小于48.5℃,则CY=1,指令顺下执行
       CLR   P1.1         ;清空P1.1口,把继电器2的控制口断电,断开继电器2
       AJMP  MAIN   
LP22: SETB   P1.1           ;将P1.1口置1,接通继电器2
       CJNE  R1, #4.C7H, LP3  ;将R1中温度继续与49℃比较,不等于则跳转到LP3,相等则顺下执行
       AJMP  LP33            ;温度等于49℃,指令直接跳转到LP33
LP3:  JNC   LP33            ;R1中温度大于49℃,则CY=0,指令跳转到LP33;小于49℃,则CY=1,指令顺下执行
       CLR   P1.2           ;清空P1.2口,把继电器3的控制口断电, ......

>>返回讨论的主题



  发表回复
用户名   *您没有注册?
密码   *
验证码   * .
标题   *
心情
随便说说    我回答你    最新发现    得意的笑   
气死我了    真是没劲    坚决同意    表示反对   
大家过来    好奇怪哟    懒得理它    大家小心   
文件上传
内容


字体:      字体大小:    颜色:
粗体 斜体 下划线 居中 超级连接 Email连接 图片 Flash图片 Shockwave文件 realplay视频文件 Media Player视频文件 QuickTime视频文件 引用 飞行字 移动字 发光字 阴影字 查看更多的心情图标 背景音乐
点击加入表情
                         
选项
有回复时用短消息通知您?

   




老古网执行:31毫秒 最大:7276毫秒 查询6次