返回首页
当前位置: 主页 > 51单片机 >

holtek8位单片机问答集1

时间:2009-11-02 21:23来源:未知 作者:admin 点击:
holtek8位单片机

Question

Answer

在3V时,Power On Reset时间为45ms~180ms;5V时,Power On Reset的时间 35ms~140ms

Question 

间接寻址如何使用?

Answer

首先将要读写之Data Memory的地址先存入地址指针缓存器 (MP),然后对IAR执行读写 (例如: MOV a, IAR),即可读到MP所指到的Data (MP的内容当地址)。间接寻址功能特别方便于数列 (array) 的处理,一般先将数列地址放入MP做运算后再读取所需的数列Data。

Question 

查表指令如何使用,有何注意事项?

Answer

查表指令有二种,一种是TABRDC指令,此指令读取目前指令所在表数据,另一种为TABRDL指令,此指令固定读取最后一页表数据。要查表时首先必需将表的Low Address填入TBLP再执行查表指令,表的Low Byte Data将存入指令指定的内存;表的High Byte Data被存入TBLH中,要注意未满16-Bit之表Data高位被补0。

Question 

可以在Interrupt Service Routine内执行Call吗?

Answer

因为HT48R05A-1/HT48C05和HT48R06A-1/HT48C06仅有2层Stack,很容易在进入Interrupt时Stack已经满了,如果此时再执行Call会造成Stack Over,而使得程序无法返回,所以强烈建议不要在Interrupt内执行Call。从程序观点,一般要求Interrupt要越短越好,所以也不适合在Interrupt内执行太长的Call。

Question 

已经进入HALT Mode为何还有耗电?

Answer

MCU进入HALT会将系统OSC关闭,但WDT OSC (如果Option选WDT Enable) 仍在工作,而且全部I/O会保持HALT前状态,除了WDT OSC会耗一些电外,最要注意的是Input Port是否浮接或者Output Port是否仍有负载,这些I/O处理要非常小心,否则会耗大电流。

Question 

PA已经Low为何没有唤醒MCU?

Answer

MCU的PA Port唤醒为瞬间下降缘触发,若在执行HALT之前PA已经Low,且在HALT期间一直维持在Low,因为没有下降缘动作,所以无法唤醒MCU。

Question 8

为何外部中断有下降缘,仍然没有唤醒MCU?

Answer

虽然MCU可由中断唤醒,但严格的说是要靠中断要求旗标 (Request Flag) EIF由0变1才能唤醒。若在MCU进入HALT之前EIF已经设定 (EIF=1),则再来之INT无法改变EIF的值,亦即是EIF不能由0变1,所以不能唤醒MCU。

Question

WDT Clock Source选择WDT OSC和选择 fSYS/4有何差别?

Answer

WDT Clock Source选择WDT OSC则在系统误入HALT时WDT Timer仍然继续工作,当WDT Time-out可以再启动系统。若选择 fSYS/4 则在误入HALT后,则一直沈睡下去无法Wake-up,但选择WDT OSC则需花一些代价 (消耗电流)。在另外一种情形,如果系统正常就有HALT功能,且在HALT时不希望被WDT叫醒,则此时WDT Source可选 fSYS/4。

Question

Prescaler + 8-Bit Timer之Prescaler可以Reset吗?

Answer

Prescaler在Power On Reset后,就一直不停的Run,没有任何指令可以Reset此Prescaler。

Question

8-Bit Timer/Counter之Timer Mode如何设定?

Answer

因Timer/Counter有3种模式,即Timer、Event Counter和Pulse Width等3种。
要执行Timer Mode要执行以下动作设定:

  1. 设定Timer/Counter为Timer Mode (TM1、TM0=10H)

  2. 依据Timer的长短选定Prescaler值 (PSC2~PSC0)

  3. 设定计数初始值 (TMR)

  4. 打开相对应中断致能旗标 (ETI和EMI)

  5. 设定 Timer ON (TMRC.4=1)

当Timer被打开后,Timer开始向上计数,若Timer OFF (TMRC.4=0),则Timer立即停止。下次Timer再ON,则从上次停留值继续往上数,直到满位溢出产生中断,同时Timer 重新加载初始值。

Power On Reset时间为何?

(责任编辑:admin)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名:密码: 验证码:点击我更换图片
推荐内容