引言:本来想写一个OC8051系列的博客,作为自己学习研究OC8051的一个记录,可实在是惭愧,距离上一次篇OC8051过去实在太久了。我得抓紧了。
一、简介
8051微控制器是MCS-51系列,最初的设计由intel在80年代完成。8051一经推出就风靡全球,在大量的嵌入式产品中使用。
基本的8051包括一些片上外设,像定时器/计数器,128B片上RAM和高达4K片上ROM。
OC8051内核具有以下特点:
- 优化的8bit CPU
- 出色的布尔处理(单bit 逻辑)能力
- 64K程序存储器寻址空间xrom
- 64K数据存储器寻址空间xram
- 4k片上程序存储器rom
- 128B片上数据存储器ram
- 两个16位定时/计数器
- 6个中断源/5个中断向量,带2级中断优先级
图1 OC8051系统框图
二、系统架构
1、存储器组织结构
8051的存储结构有点特殊,它的程序存储空间(ROM)和数据存储空间(RAM)是逻辑分离的,另外它必须使用16-bit的DPTR寄存器来访问外部的数据存储器。
程序存储器:只读,不可写,8051的地址线为16-bit,因此最大可寻址64k,其中有4k可以在片内,而访问片外的程序存储器需要使用PSEN信号线(program store enable)。
数据存储器:数据存储器和程序存储器逻辑上市分离的,8051架构要求有128B的片上数据ram,直接用作普通ram快速存储数据和变量;还包括一些特殊功能寄存器,另外,访问外部数据存储器需要使用"movx"指令。
图2片上128B的RAM 的分布情况:
图 2 内部数据存储器,128B的RAM
2、中断向量
oc8051支持4个中断向量(加复位5个),中断向量入口如下:
0000H:reset
0003H:外部中断0
000BH:定时器0
0013H:外部中断1
001BH:定时器1
可通过特殊功能寄存器IE(interrupt enable)和IP(interrupt priority)对中断进行相关设置;低优先级中断可被高优先级中断打断,如果两个同等优先级中断同时触发,则有内部中断服务查询顺序决定哪个中断被服务,内部优先级结构为:0000H>0003H>000BH>0013H>001BH。