PIE struct const (piestry蛋糕)
本文目录导航:
- const struct PIE_VECT_TABLE PieVectTableInit什么意思?
- 8086中断类型号为40H的中断服务程序入口地址存放在中断向量表的起始地址是:
- 单片机存储器的程序存储器
const struct PIE_VECT_TABLE PieVectTableInit什么意思?
定义了一个结构体类型为PIE_VECT_TABLE的结构体常量PieVectTableInit(不可更改),并给元素赋初值。
其元素数值为其对应的默认的中断服务程序的起始地址(函数名)。
在InitPieVectTable初始化函数中PieVectTableInit的值都赋值给PieVectTable,完成初始化。

8086中断类型号为40H的中断服务程序入口地址存放在中断向量表的起始地址是:
答案为C. 因为中断向量是放在从 0000H 起始的地址中的, 与 DS 寄存器无关 (DS一般存放数据段的地址). 每个向量为 4 字节 (前两个字节为段地址, 后两个字节为偏移值), 40H 的就是40H*4=100H
单片机存储器的程序存储器
MCS-51中,程序存储器通过16位程序计数器(PC)寻址,具有64KB寻址能力,也即可以在64KB的地址空间任意寻址。
其中,具有4KB片内程序存储器空间,地址为000H-0FFFH(注:8031无片内程序存储器);片外程序存储器空间最大可扩展到64KB,地址为0000H-FFFFH,片内、外统一编址。
1、程序存储器片内与片外地址由于片内、外统一编址,所以片内4KB存储空间地址000H-0FFFH与片外存储器地址000H-0FFFH发生冲突。
但是,CPU是访问片内存储器还是访问片外存储器,可由引脚上所接的电平来确定。
1)当EA引脚接高电平时,若程序计数器(PC)值超出片内存储空间,则自动转向片外程序存储器空间执行程序;2)当EA引脚接低电平时,单片机只能执行片外程序存储器的程序。
另外,因为8031没有片内程序存储器,所以就将EA引脚固定接低电平,通过外部扩展程序存储器来存放程序;而对其它MCS-51,若没有片外程序存储器,那应将引脚固定接高电平。
通过EA引脚所接电平不同,解决了程序存储器中片内、片外地址冲突问题。
2、程序存储器中的特殊单元MCS-51程序存储器中,有6个存储单元具有特殊用途。
0000H单元为系统启动地址。
MCS-51单片机启动复位后,程序计数器(PC)的内容为0000H,所以系统将从0000H单元取指令,并开始执行程序。
程序设计时一般在该地址存放一条绝对跳转指令,转入主程序的入口地址。
另外0003H一002AH日被均匀地分成5段,用于5个中断服务程序的入口。
其中0003H、000BH、0013H、O01BH、0023H为5个中断源的中断服务程序的入口地址。
中断源的中断服务程序的入口地址,即当中断产生相应的中断服务程序的起始地址被装入程序计数器(PC),系统将从该地址取指令,并执行程序 。
8051有256个单元的内片数据存储器,其中00H-7FH为片内随机存储器RAM,也叫低128B;80H-FFH为特殊功能寄存器,也叫高128B。
低128B又分为工作寄存器区、位寻址区、用户RAM区。
1.工作寄存器区(00H-1FH)在00H-1FH共32个单元,被均匀地分为四组工作寄存器堆:RB0、RB1、RB2、RB3,每组寄存器堆包含8个工作寄存器,均以R0-R7来命名,这些寄存器被称为通用寄存器。
工作寄存器用于临时存放8位信息。
在使用时,由程序状态字寄存器中的RS0、RS1来选择工作寄存器堆。
2.位寻址区(20H-2FH)片内数据存储器的20H-2FH存储区为位寻址区,既可作为一般单元按字节寻址,也可按位进行寻址。
位寻址区有16个字节,位地址为00H-7FH。
3.用户RAM区(30H-7FH)用户RAM区主要用作数据缓冲区和堆栈。
这个存储区只能按字节寻址,用作存放数据及作为堆栈区。
通常堆栈区被设置在这块存储区,由堆栈寄存器SP指定,CPU复位时SP=07H,使得堆栈实际上是从08H开始的,但08H-1FH属于工作寄存器区 。
MCS-51单片机的特殊功能寄存器符号地址功能介绍BF0HB寄存器ACCE0H累加器PSWD0H程序状态字TH2*CDH定时器/计数器2(高8位)TL2*CCH定时器/计数器2(低8位)RLDH*CBH外部输入(P1.1)计数器/自动再装入模式时初值寄存器高八位RLDL*CAH外部输入(P1.1)计数器/自动再装入模式时初值寄存器低八位T2CON*C8HT2定时器/计数器控制寄存器IPB8H中断优先级控制寄存器P3B0HP3口锁存器IEA8H中断允许控制寄存器P2A0HP2口锁存器SBUF99H串行口锁存器SCON98H串行口控制寄存器P190HP1口锁存器TH18DH定时器/计数器1(高8位)TH08CH定时器/计数器0(高8位)TL18BH定时器/计数器1(低8位)TL08AH定时器/计数器0(低8位)TMOD89HT0、T1定时器/计数器方式控制寄存器TCON88HT0、T1定时器/计数器控制寄存器DPH83H数据地址指针(高8位)DPL82H数据地址指针(低8位)SP81H堆栈指针P080HP0口锁存器PCON87H电源控制寄存器