教程第133执行完第一次A/D转换之后怎么返回?

[复制链接]
2666|5
 楼主| mugangzhu 发表于 2009-9-17 16:20 | 显示全部楼层 |阅读模式
ADC_VOL_11:
             LDA AD_DTL,00H ;保存第一次A/D 转换结果
             STA ADC_DL1,01H
             LDA AD_DTH,00H
             STA ADC_DH1,01H
            JMP ADC_PROC_END
执行完上面这些指令后调到ADC_PROC_END程序怎么返回执行剩下的三次A/D转换呢?
 楼主| mugangzhu 发表于 2009-9-21 09:12 | 显示全部楼层
warm_ice 发表于 2009-9-21 11:52 | 显示全部楼层
本帖最后由 warm_ice 于 2009-9-21 13:37 编辑

执行完这段程序后,进入HALT模式,有中断的时候唤醒,这时再判断1MS标志,有1MS标志,即进入下次AD转换,没有1MS标志,进入HALT模式继续等。
1MS标志在中断中设置。
 楼主| mugangzhu 发表于 2009-9-21 14:37 | 显示全部楼层
好的,谢谢啊,1ms时间到时产生了中断响应中断服务程序
;*******************************************
; 子程序: TIMER0_ISP
; 描述: TIMER0 中断服务程序
;*******************************************
TIMER0_ISP:
STA AC_BAK,00H ;备份AC 值
ANDIM IRQ,1011B ;清TIMER0 中断请求标志
132
J1MS:
SBIM T1MS_CT,01H
BNZ TIMER0_ISP_END
LDI T1MS_CT,04H ;重置1ms 计数器
ORIM F_TIMER,0001B ;设置 "1ms 到"标志
TIMER0_ISP_END:
LDI IE,0100B ;打开TIMER0 中断
LDA AC_BAK,00H ;取出AC 值
RTNI
然后是不是就该执行
MAIN_PRE:
LDI IRQ,00H
LDI IE,0100B ;打开Timer0 中断这些程序了呢?
warm_ice 发表于 2009-9-21 14:46 | 显示全部楼层
不是。
既然叫“中断”,就是在程序执行过程中产生中断请求,然后响应中断,中断执行完成后,返回中断产生的地方继续执行程序。
 楼主| mugangzhu 发表于 2009-9-21 15:10 | 显示全部楼层
我看懂了,呵呵!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

70

主题

358

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部