8051单片机的内部结构由运算器、控制器、存储器、数据总线和I/O接口组成。7)中断控制系统 8051单片机拥有5个中断源,两个中断优先级的中断控制系统,以满足控制应用的需要。图3-2 单片机内部振荡图3-3 HMOS8051单片机外部时钟图3-4 CHMOS80C51单片机9)时序定时51单片机共有4个,分别为振荡周期、状态周期、机器周期和指令周期。......
2023-11-04
多分支结构中具有两个以上条件可供选择,可使用无条件间接转移指令(或称散转指令)“JMP@A+DPTR”来实现。但使用该指令实现多分支转移时,需要有数据表格配合。其流程如图4-4(b)所示。使用散转指令设计多分支程序结构时可采用下面的两种方法:
1)数据指针DPTR固定,根据累加器A的内容,程序转入相应的分支程序中去。
2)累加器A清0,根据数据指针DPTR的值,决定程序转向的目的地址。DPTR的值可用查表或其他方法获得。
下面介绍几种不同的分支程序。
1.采用转移指令表实现多分支结构
在许多应用中,需要根据某标志单元的内容(输入或运算结果)转至相应的操作程序。针对这一情况,可以先用无条件直接转移指令按序组成一个转移表,再将转移表的首地址转入数据指针DPTR中,然后将标志单元的内容装入累加器A,经运算后作为变址值,最后执行JMP@A+DPTR指令实现散转。
【例4-5】设计128路分支的转移程序。设128个出口地址分别为SUB00,SUB01,…,SUB7F;要转移的出口信息放在工作寄存器R3中。注意出口信息是0~127的整数。
【编程说明】对于典型的多分支转移,最有效的办法是执行MOVC与散转指令,用ROM中短表格的位移量指明多分支转移的相对出口地址。
【程序】
程序详解
2.采用地址偏移量表实现多分支结构
在上面介绍的散转程序中,必须先建立转移表,然后程序根据散转点执行JMP@A+DPTR指令进入转移表,再由双字节AJMP指令转入2K字节空间范围内的操作入口或由3个字节LJMP转移指令转入64K字节空间范围内的操作入口。
实际应用中,如果散转点较少,所有操作程序处在同一页(256字节)内时,可以使用地址偏移量转移表来实现多分支结构。(www.chuimin.cn)
【例4-6】设计一个三路分支转移程序,转移的目标程序序号存放于R7中。
【程序】
从本例中可以看出,地址偏移量表每项对应一个操作程序入口,占一个字节,分别表示对应入口地址与表首的偏移量。如当R7=1时,执行MOVC A,@A+DPTR指令后,A中值为OPR1-TAB3,而DPTR为TAB3,执行JMP@A+DPTR时:
所以程序转向了OPR1。
使用这种方法,地址偏移量的长度加上各操作程序长度必须在同一页内,需要注意的是最后一个操作程序的长度不受限制。
3.采用转向地址表实现多分支结构
采用地址偏移量表的方法实现多分支结构要求其转向范围在一页以内,在使用时受到较大的限制。若需要转向较大的范围,可以建立一个转向地址表,即将所要转向的双字节地址组成一个表,先用查表方法获得表中的转向地址,然后将该地址转入数据指针DPTR中,再清累加器A,最后执行JMP@A+DPTR指令,程序转入所要达到的目的地址中去。
【例4-7】采用转向地址表实现多分支结构,转移的目标程序序号存放于R7中。
【程序】
这种方法可以达到64K字节地址空间范围内的转移,但分支数n≤256。若要n>256,可仿照前面的双字节加法运算的方法来修改DPH。
有关单片机基础及应用的文章
8051单片机的内部结构由运算器、控制器、存储器、数据总线和I/O接口组成。7)中断控制系统 8051单片机拥有5个中断源,两个中断优先级的中断控制系统,以满足控制应用的需要。图3-2 单片机内部振荡图3-3 HMOS8051单片机外部时钟图3-4 CHMOS80C51单片机9)时序定时51单片机共有4个,分别为振荡周期、状态周期、机器周期和指令周期。......
2023-11-04
按功能可把8255的内部结构分为3个逻辑电路部分,分别为口电路、总线接口电路和控制逻辑电路,如图8-31所示。2.总线接口电路总线接口电路用于实现8255和单片机芯片的信号连接。其中包括:图8-308255芯片引脚排列图图8-318255的逻辑结构图1)数据总线缓冲器。8255共有4个可寻址端口。4.中断控制电路8255逻辑电路中还包含一个中断控制电路。置位为允许,复位为禁止。......
2023-11-17
2)条件结构分支选择器,位于条件结构框架的左端,用一个“?”3)分支标识,用来标识当前的条件结构程序代码。当程序执行到基本条件结构时,条件结构首先判断条件结构分支选择器中的内容是真还是假,如果是真则自动执行case结构中真的程序代码;如果是假则自动执行case结构中假的程序代码。图2-53中“东”为默认选择项,通过单击条件选择器标签的快捷菜单可以更改默认项的分支。......
2023-07-02
流程控制语句不论对汇编语言还是C51都是程序设计中最重要的部分,C51同C语言一样是结构化程序设计语言。C51的结构化程序由若干个函数构成,函数由若干个基本结构构成,基本结构由若干条语句构成。结构化的C51程序设计语言有3种基本结构,即顺序结构、选择结构和循环结构。另外,在C51中还支持多分支结构,多分支结构既可以通过if和else if语句嵌套实现,也可用switch/case语句实现。......
2023-11-17
if-else条件分支语句是选择结构的一种形式,是最常用的语句之一。这意味着如果if后面的表达式成立(不为0),则执行if下面的语句,否则直接向下执行。......
2023-11-07
结构损伤一致多尺度分析的关键是在不同尺度的模型衔接起来进行计算,为此首先需要将前述跨尺度界面单元衔接方法引入ABAQUS,按软件指定的格式引入跨尺度界面上须满足的位移约束方程。但是由于K2本身是奇异的,同时计算机有效位数是有限的,α过大会导致系统方程病态而使计算失效。根据所建立的结构一致多尺度模型并通过宏细观变量的跨尺度关联,便可实现结构损伤的并发多尺度计算。......
2023-08-26
MCS-51单片机的算术运算类指令包括加、减、乘、除、加1、减1等指令。这类指令有ADD、ADDC、INC、SUBB、DEC、DA、MUL、DIV共8种。表3-3算术运算类指令注:√表示该指令影响某一标志位。运算结果对PSW的影响同上述4条ADD指令。6.十进制调整指令十进制调整指令只有以下1条:该指令用于BCD码加法运算时,对BCD码的加法运算结果自动进行调整,但对BCD码的减法运算不能用此指令来调整。在运算过程中,单片机按二进制规则进行运算。......
2023-11-17
1.生产厂商常见的单片机生产厂商有Intel公司、Motorola公司、Philips公司、Atmel公司、Zilog公司、NEC公司、MicroChip公司、ADI公司、Epson公司、NS公司、AMD公司、WinBond公司、Scenix公司、Toshiba公司、Fujitsu公司、Samsung公司等。2.单片机系列常见的单片机系列有Intel公司的MCS-51、MCS-96/98系列,Motorola公司的68HC05、68HC5X、68HC12、68HC16、683XX系列,Philips公司的80C5X系列,Atmel公司的AT89系列,Zilog公司的Z8、Z86系列,ADI公司的MC-6801系列,MicroChip公司的PIC16CX、PIC16FX、PIC17CX、PIC18CX系列,NEC公司的μPD7800系列,Toshiba公司的MB8900、MB90系列等。......
2023-11-17
相关推荐