常用单片机简介
点击浏览芯片信息
点击浏览芯片信息
点击浏览芯片信息
当前位置>>中源单片机>>HOLTEK单片机结构原理     设为首页  加入收藏  
HOLTEK仿真器
HOLTEK仿真器简介
     可以在触发前面或后面跟踪记录。
     可以设置触发条件。
     最大可以设置20个断点。
     可以检测所有寄存器。
     直接输入信号控制。
     可以单步执行和跳过程序控制。
     HT48系列单片机结构原理--程序存储器(PROM)
    深圳市凌雁电子有限公司



    程序存储器(PROM)

    HT48R05A-1程序存储器容量为512x14位。程序存储器是用于存放要执行的指令代码的,包括中断向量、数据,可由程序计数器或表格指针来寻址。

    在程序存储器中某几个地址被保留作为特殊用途。

    △ 地址000H

    此地址保留给程序初始化之用,当系统复位时,程序会从000H地址开始执行。

    △ 地址004H

    此地址保留给外部中断服务使用。当中断是开放的,且堆栈未满,则一旦INT端被下降沿触发,就能产生中断,程序从004H地址开始执行外部中断服务程序。
HT48R05A-1程序存储器
    △ 地址008H

    此地址保留给定时/计数器中断服务使用。当中断是开放的,且堆栈未满,则一旦定时/计数器溢出时,就能产生中断,程序从008H地址开始执行中断服务程序。

    △ 表格地址

    ROM中的任何地址都可被用来作为查表地址使用。查表指令为TABRDC[m]与TABRDL[m]。TABRDC[m]是查表当前页的数据[1页=256个字节(word)]。TABRDL[m]是查表最后一页的数据。[m]为数据存放的地址。在执行TABRDC[m]指令(或TABRDL[m]指令)后,将会传送当前页(或最后一页)的一个字节的低位字节到[m],而这个字的高位字节传送到TBLH(08H)。只有表格中的低位字节被送到目的地址中。而表格中的高位字节的其它位被传送到TBLH的低部位,剩余的二位作为0读出。TBLH为只读寄存器,而表格指针(TBLP:07H)是可以读写的寄存器,用来指明表格地址。在访问表格以前。通过对TBLP寄存器赋值来指明表格地址,TBLH只能读出而不能存储。如果主程序和ISR(中断服务程序)二者都使用查表指令,那么在主程序中的TBLH的内容可能被ISR中的查表指令改变而发生错误。应该避免在主程序和ISR中同时使用查表指令。但是,如果主程序和ISR二者都必须使用查表指令,那么中断应该在查表指令前被禁止,直到TBLH被备份好。查表指令要花两个指令周期来完成这一条指令的操作。按照用户的需要,这些区域可以作为正常的程序存储器来使用。

 HT48R05A-1直流参数
指令 表格地址
*8*7*6*5*4*3*2*1*0
TABRDC[m]P8@7@6@5@4@3@2@1@0
TABRDL[m]1@7@6@5@4@3@2@1@0
      注:*8-*0:表格地震,P8:当前程序计数器,@7-@0:表格指针

    堆栈寄存器(STACK)

    堆栈寄存器(STACK)是一个用来保存PC值的特殊存储单元。HT48R05A-1的堆栈为2级,堆栈寄存器既不是数据存储器的一部分,也不是程序存储器的一部分,而且它既不能读,也不能写。任何一级堆栈的使用是由堆栈指针(SP)来确定。堆栈指针也不能写入和读出。一旦发生子程序调用或中断响应时,程序计数器(PC)的值会压入堆栈。在子程序调用结束或从子程序返回时,通过执行一条返回指令(RET或RETI),堆栈将原先压入堆栈的内容弹出,重新装入程序计数器(PC)中。在系统复位后,堆栈指针会指向堆栈顶部。

    如果堆栈已满,并且发生了不可屏蔽的中断,那么中断请求标志将会被记录下来,但是,该中断的响应还是会被禁止,直到堆栈指针(由RET或RETI)发生递减时,中断才会响应。这个功能能防止堆栈溢出,使得程序员易于使用这种结构。同样地,堆栈已满,接着又执行一个子程序调用(CALL),那么堆栈会产生溢出,而使首先进入堆栈的内容将会丢失,只有最后的两个返回地址会被保留。