﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-darkstax-随笔分类-嵌入式系统</title><link>http://www.cnitblog.com/darkstax/category/4221.html</link><description>slackware linux</description><language>zh-cn</language><lastBuildDate>Sat, 01 Oct 2011 07:34:34 GMT</lastBuildDate><pubDate>Sat, 01 Oct 2011 07:34:34 GMT</pubDate><ttl>60</ttl><item><title>单片机结构</title><link>http://www.cnitblog.com/darkstax/archive/2006/11/21/19434.html</link><dc:creator>darkstax</dc:creator><author>darkstax</author><pubDate>Tue, 21 Nov 2006 05:01:00 GMT</pubDate><guid>http://www.cnitblog.com/darkstax/archive/2006/11/21/19434.html</guid><description><![CDATA[<p>单片机本身相当于一个运算器和一个控制器，在一个单片机中最为重要的片外结构就是存储器了。<br><br><font color=#000000><strong>存储器<br><br></strong>存储器有两种结构，普林斯顿结构和哈佛结构。如下图所示。<br><br>普林斯顿结构的特点是只有一个地址空间，ROM和RAM安排在这一地址空间的不同区域，一个地址对应唯一的一个存储器单元，CPU访问ROM和访问RAM使用相同的访问指令。如8086、奔腾等微型计算机采用这种结构。<br><br>哈佛结构的特点是微机的ROM和RAM分别安排在两个不同的地址空间，ROM和RAM可以有相同的地址，CPU访问ROM和RAM存储器用不同的指令访问。<br><br>ROM用来存放程序、表格和始终要保留的常数，单片机中称其为程序存储器；RAM通常用来存储程序运行中所需的数据（常数或变量）或运算的结果，单片机中称其为数据存储器。<br><br>51单片机采用哈佛结构。<br><br>从物理地址空间看，8XX51有4个存储器地址空间，即片内ROM、片外ROM、片内RAM、片外RAM。其中片内ROM和片外ROM共用一个寻址空间，由引脚EA来控制。<br><br>例如：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当 EA=1 时， 内部ROM占用 0000H - 0FFFH<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;外部ROM占用 1FFFH - FFFFH<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当 EA=0 时， 内部ROM被屏蔽<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;外部ROM占用 0000H - FFFFH<br><br>由于片内、片外程序存储器统一编址，因此从逻辑上看，8XX51有3个存储器地址空间，即片内RAM、片外RAM、片内片外统一编址的程序存储器（ROM）。<br><br><strong>程序计数器PC<br><br></strong>51单片机执行时，由程序计数器PC指示指令地址，复位后的PC内容为0000H。程序存储器中的某些地址被用于中断服务程序的入口地址。例如：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 复位时， PC = 0000H<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 外部中断0时， PC = 0003H<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 串行IO中断时， PC = 0023H<br><br>由于两入口地址之间的存储器空间有限，在这些地址处通常放一些跳转指令，跳到中断服务程序例程的地址。</font></p>
<img src ="http://www.cnitblog.com/darkstax/aggbug/19434.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/darkstax/" target="_blank">darkstax</a> 2006-11-21 13:01 <a href="http://www.cnitblog.com/darkstax/archive/2006/11/21/19434.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>