打印
[其它应用]

执行完这些指令后调到ADC_PROC_END程序怎么返回执行剩下的三次A/D转换呢?

[复制链接]
604|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
llia|  楼主 | 2017-12-24 14:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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转换呢?
沙发
wangpe| | 2017-12-24 14:21 | 只看该作者
这是教程中的例子吧

使用特权

评论回复
板凳
llia|  楼主 | 2017-12-24 14:23 | 只看该作者
是的,教程第133页,执行完第一次A/D转换之后怎么返回?

使用特权

评论回复
地板
langgq| | 2017-12-24 14:26 | 只看该作者
执行完这段程序后,进入HALT模式,有中断的时候唤醒,这时再判断1MS标志,有1MS标志,即进入下次AD转换,没有1MS标志,进入HALT模式继续等。

使用特权

评论回复
5
langgq| | 2017-12-24 14:28 | 只看该作者
1MS标志在中断中设置。

使用特权

评论回复
6
llia|  楼主 | 2017-12-24 14:30 | 只看该作者
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 中断这些程序了呢?

使用特权

评论回复
7
wangzsa| | 2017-12-24 14:41 | 只看该作者
当然不是了

使用特权

评论回复
8
llia|  楼主 | 2017-12-24 14:43 | 只看该作者
为什么

使用特权

评论回复
9
zhuww| | 2017-12-24 14:46 | 只看该作者
既然叫“中断”,就是在程序执行过程中产生中断请求,然后响应中断

使用特权

评论回复
10
zhuww| | 2017-12-24 14:49 | 只看该作者
中断执行完成后,返回中断产生的地方继续执行程序。

使用特权

评论回复
11
lium| | 2017-12-24 14:51 | 只看该作者
中颖能给你一个ADC转换的例程,说明,教会了你如何用SH单片机的ADC功能,你会用后,接下来,如何做8个ADC测量,这就不是中颖的问题了,而是你编程技术的问题了。

使用特权

评论回复
12
llia|  楼主 | 2017-12-24 15:03 | 只看该作者
好的,多谢大家讨论

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

961

主题

8893

帖子

4

粉丝