8051内核结构
8051内核说明管脚
该部分的8051内核的顶层信号引脚在8051内核的顶层便可查看到各个引脚模块的定义。引脚的定义和普通的8051单片机相似,区别在于P3口的定义,普通的8051单片机的P3口有双重功能,在对普通的8051单片机编程时,特别是用C进行编程时所面向的是寄存器层面的,但在硬件层面上,在定义P3口的两种功能时是不一致的,原因是用C编程时,编译软件已经将C代码转变成机器代码,让机器能够辨别要用哪一个硬件模块,也就是8051的内核已经'解码'了机器码。普通的8051芯片的引脚框图和P3口的定义如下如下:
这里姑且不讨论哪些电源、地、时钟输入XTAL1/XTAL2、地址锁存控制信号ALE/PROG、外部程序存储器选通信号PSEN、访问外部程序存储器控制信号EA/VPP。可以看出剩下的都是单片机的外部通信操作接口(P0~P3口)。如果想进一步了解8051单片机的更多内容可以参考8051单片机的芯片手册。(这里不在多讲)
8051IP核
核心本身是由定时器/计数器,ALU,串行接口,和控制单元组成。
8015内核的原理图:
Clk:时钟输入
Reset:复位输入引脚
rom_data_i:ROM数据输入
ram_data_i :RAM数据输入
int0_i外部中断0
int1_i:外部中断1
all_t0_i:定时计数0
all_t1_i:定时计数1
all_rxd_i:串口接收
p0_i:IO-port0 input
p1_i:IO-port1 input
p2_i:IO-port2 input
p3_i:IO-port3 input
p0_o:IO-port0 output
p1_o:IO-port1 output
p2_o:IO-port2 output
p3_o:IO-port3 output
all_rxd_o:内部接收后直接输出,可以进入all_rxd_i
all_txd_o:串口发送
all_rxdwr_o:接收方向信号
rom_adr_o:输出到ROM地址信号
ram_data_o:输出到RAM数据信号
ram_adr_o:输出到RAM地址信号
ram_wr_o:数据输出到RAM的使能信号
ram_en_o:RAM的时钟使能信号
datax_i:从RAM 的数据输入到单片机的信号
datax_o:从单片机输出数据到RAM的信号
adrx_o:RAM 的地址信号
wrx_o:RAM的写使能信号
8051内核的设计层次和设计文件:
层次设计框图中的microcontroller core相当与CPU,一般的CPU的整体框图如下:
(该8051模块的设计文件都是用VHDL编写的所以要看懂器内部的构造还必须把VHDL学好)原理性的东西和层次结构已经说明了,现在就开始应用8051内核,把FPGA开发板打造成一块8051单片机开发板,先通过一个简单的实验看认识8051内核的使用。
关键字:内核结构 C编程
引用地址:
8051内核的使用
推荐阅读最新更新时间:2024-11-18 09:57
基于C8051F330便携式生理参数监测仪设计
随着人们生活水平的提高, 越来越多的人希望通过简便的方式了解身体基本状况。因此人体生理监护仪开始出现并呈不断增多的趋势, 已经由过去的单一测试仪发展为现在的多参数监护仪。 在实际生活中, 生理参数监测仪多是基于PC 机平台的多参数测量、价格昂贵、体积庞大、不便于移动。现在多数生理参数监测仪无法准确的实时测量人体运动时的生理参数, 导致有些人特别是老年人运动强度过大, 对身体造成较大伤害。而教练员因无法准确掌握运动员运动时生理参数变化, 而不能 因材施教!, 有针对性的制定训练方案, 所以运动员训练方式都是大众化训练。综上所述, 开发一种体积小、价格低, 基于嵌入式系统的便携式生理参数监测仪就具有重要的意义。 1 系
[测试测量]
c8051f 的IO配置方法及原则
C8051F---I/0口 问:C8051F020/022的p4-p7口和p0-p3口有什么不同? 答:P0-P3口复位时为通用口,可通过Crossbar(数据交叉开关)寄存器按优先级设置成第二功能。而P4-P7口是通用口,另外P4-P7寄存器不能位寻址。 问:如果通过Crossbar寄存器使能并分配为P0.0和P0.1引脚,那么,我还可以用这两个引脚为通用I/O吗? 答:①如果你通过Crossbar使能一个外设,如UART,那么这个外设将控制这些引脚的输出状态(逻辑高/逻辑低)。 ②你可以在任何时刻读引脚的状态,与Crossbar控制与否无关。 ③当被禁止时,大部分外设的输出引脚被置为高阻态(UART口是一个很好的例子)。因为
[单片机]
51单片机——中断系统、外部中断、定时器中断、串口通信C语言入门编程
中断系统: 当中央处理机CPU正在处理某件事的时候外界发生了紧急事件请求,要求CPU暂停当前的工作,转而去处理这个紧急事件,处理完以后,再回到原来被中断的地方,继续原来的工作,这样的过程称为中断。当几个中断源同时向 CPU请求中断,CPU总是先响应优先级别最高的中断请求。当CPU正在处理一个中断源请求的时候(执行相应的中断服务程序),发生了另外一个优先级比它还高的中断源请求。如果CPU能够暂停对原来中断源的服务程序,转而去处理优先级更高的中断请求源,处理完以后,再回到原低级中断服务程序,这样的过程称为中断嵌套。STC89C5X 系列单片机提供了8个中断请求源,它们分别是:外部中断0(INT0)、外部中断1(INT1)、外部中断2(
[单片机]
基于单片机C8051F020的自动测控LED节能照明系统
在全球能源危机凸现的当今社会,LED照明以其绿色环保,高效节能的优势成为当前最具潜力的照明方式之一。LED号称“绿色照明的第四代光源”,目前已开始逐步应用于电信、交通、农业、医学、军事等领域。LED(Light-emitting Diode,发光二极管)是一种固态的半导体组件,能够把电能直接转化为光能。作为一种固体照明光源,LED具有长寿命、高光效、多光色等特性,可在安全低电压下工作,也可连续开关闪断,能实现0%~100%调光。 本文阐述一种基于单片机C8051F020自动测控LED节能照明系统的设计方案。该系统能够对LED灯的发光强度进行调控,当环境光强减弱时自动提高LED的发光强度,当环境光强变强时自动减弱LED灯的发光强
[单片机]
关于keil中的c语言和c++的混合编程
c语言编程简单,但是对于编写面向对象来说,实在是不方便。 一个工程是很多驱动文件的集合,底层驱动文件一般使用c语言来编写,但是一般数据封装和功能实现使用c++开发会更加方便。 所以在工程中使用c语言和c++混合编程是非常又必要的。 第一步先设置一下keil的c++编译环境,只需设计下面一步即可。 a.h文件: #ifndef _A_ #define _A_ void funA(); #endif a.c文件: #include a.h void funA() { } b.h文件: #ifndef _B_ #define _B_ class B { public:
[单片机]
基于C8051F311单片机实现汽车座椅自动控制系统的软硬件设计
引言 随着人们生活水平的提高,对汽车座椅的舒适性要求也越来越高,要求对汽车座椅地调节能够更加简单、方便、快捷。目前,汽车座椅位置的调节多采用基于手动调节方式的机械和电动控制两种方式。汽车座椅位置的调节主要有三个方向,即高度调节、水平位置调节以及座椅靠背倾角的调节。 对于家庭使用的汽车,往往由多个成员驾驶同一辆汽车;当不同的驾驶者坐在同一个座椅时,由于个人的身体差异,所需要的汽车座椅的位置各不相同,需经常调节座椅位置;而目前的大部分汽车座椅没有记忆功能,使同一个人在不同的时间驾驶汽车时,汽车座椅的位置可能被其他成员改变,而需重新调节座椅各个方向位置,比较繁琐。 座椅在汽车内安装时,由于不同汽车的内部空间不相同,座椅在各方向所
[单片机]
8051、ARM和DSP指令周期的测试与分析方法
在实时控制系统中,选择微控制器的指标时最重要的是计算速度的问题。指令周期是反映计算速度的一个重要指标,为此本文对三种最具代表性的微控制器(AT89S51单片机、ARM7TDMI核的LPC2114型单片机和TMS320F2812)的指令周期进行了分析和测试。为了能观察到指令周期,将三种控制器的GPIO口设置为数字输出口,并采用循环不断地置位和清零,通过观察GPIO口的波形变化得到整个循环的周期。为了将整个循环的周期与具体的每一条指令的指令周期对应起来,通过C语言源程序得到汇编语言指令来计算每一条汇编语言的指令周期。 1、 AT89S51工作机制及指令周期的测试 AT89S51单片机的时钟采用内部方式,时钟发生器对振荡脉冲进行
[单片机]
单片机C语言模块化编程方法
当你在一个项目小组做一个相对较复杂的工程时,意味着你不再独自单干。你需要和你的小组成员分工合作,一起完成项目,这就要求小组成员各自负责一部分工程。比如你可能只是负责通讯或者显示这一块。这个时候,你就应该将自己的这一块程序写成一个模块,单独调试,留出接口供其它模块调用。最后,小组成员都将自己负责的模块写完并调试无误后,由项目组长进行组合调试。像这些场合就要求程序必须模块化。模块化的好处是很多的,不仅仅是便于分工,它还有助于程序的调试,有利于程序结构的划分,还能增加程序的可读性和可移植性。 初学者往往搞不懂如何模块化编程,其实它是简单易学,而且又是组织良好程序结构行之有效的方法之一. 本文将先大概讲一下模块化的方法和注意事项,最后将以
[单片机]