什么是单片机硬件
你知道什么是单片机硬件么?下面将由小编带大家来解答这个疑问吧,希望对大家有所收获!
单片机硬件的概述
8051 系列微处理器基于简化的嵌入式控制系统结构被广泛应用于从军事到自动控制再到 PC 机上的键盘上的各种应用系统上仅次于 Motorola 68HC11 在 8 位微控制器市场上的销量很多制造商都可提供 8051 系列单片机像 IntelPhilipsSiemens 等这些制造商给 51 系列单片机加入了大量的性能和外部功能像 I2C 总线接口模拟量到数字量的转换看门狗PWM 输出等不少芯片的工作频率达到 40M工作电压下降到 1.5V基 于一个内核的这些功能使得 8051 单片机很适合作为厂家产品的基本构架它能够运行各种程序而且开发者只需要学习这一个平台
8051 系列的基本结构如下
1 、一个 8 位算术逻辑单元
2、32 个 I/O 口4 组 8 位端口可单独寻址
3、两个 16 位定时计数器
4、全双工串行通信
5、6 个中断源两个中断优先级
6、128 字节内置 RAM
7、独立的 64K 字节可寻址数据和代码区
每个 8051 处理周期包括 12 个振荡周期每 12 个振荡周期用来完成一项操作如取指令和计算指令执行时间可把时钟频率除以 12取倒数然后指令执行所须的周期数 因此 如果你的系统时钟是 11.059MHz 除以 12 后就得到了每秒执行的指令个数 为 921583 条指令 取倒数将得到每条指令所须的时间 1.085m
2 存储区结构
8051 结构提供给用户 3 个不同的存储空间如图 A-1每个存储空间包括从 0 到最大存储范围的连续的字节地址空间通过利用特定地址的寻址指令解决了地址重叠的问题
2.1 CODE 区
第一个存储空间是代码段用来存放可执行代码被 16 位寻址空间可达 64K代码段是只读的当要对外接存储器件如 EPROM 进行寻址时处理器会产生一个信号但这并不意味着代码区一定要用一个 EPROM目前一般使用 EEPROM 作为外接存储器可以被外围器件或 8051 进行改写这使系统更新更加容易新的软件可以下载到 EEPROM 中而不用拆开它然后装入一个新的 EEPROM另外带电池的 SRAMs 也可用来代替 EPROM他可以像 EEPROM 一样进行程序的更新并且没有像 EEPROM 那样读写周期的限制但是当电源耗尽时存储在 SRAMs 中的程序也随之丢失使用 SRAMs 来代替 EPROM 时允许快速下载新程序到目标系统中这避免了编程/调试/擦写这样一个循环过程不再需要使用昂贵的在线仿真器
除了可执行代码还可在代码段中存储查寻表为达此目的8051 提供了通过数据指针 DPTR 或程序计数器加上由累加器提供的偏移量进行寻址的指令这样就可以把表头地址装入 DPTR 中把表中要寻址的元素的偏移量装入累加器中8051 在执行指令时的过程中把这两者相加由此可节省不少指令周期在以后的例子中我们会看到这点
2.2DATA 区
第二个存储区是 8051 内 128 字节的内部 RAM或 8052 的前 128 字节内部 RAM这部分
主要是作为数据段称为 DATA 区指令用一个或两个周期来访问数据段访问 DATA 区比访问 XDATA 区要快因为它采用直接寻址方式而访问 XDATA 须采用间接寻址必须先初始化 DPTR通常我们把使用比较频繁的变量或局部变量存储在 DATA 段中但是必须节省使用 DATA 段因为它的空间毕竟有限
在数据段中也可通过 R0 和 R1 采用间接寻址R0 和 R1 被作为数据区的指针将要恢复或改变字节的地址放入 R0 或 R1 中根据源操作数和目的操作数的不同执行指令需要一个或两个周期
数据段中有两个小段第一个子段包含四组寄存器组每组寄存器组包含八个寄存器 共 32 个寄存器可在任何时候通过修改 PSW 寄存器的 RS1 和 RS0 这两位来选择四组寄存器的任意一组作为工作寄存器组8051 也可默认任意一组作为工作寄存器组工作寄存器组的快速切换不仅使参数传递更为方便而且可在 8051 中进行快速任务转换
另外一个子段叫做位寻址段BDATA包括 16 个字节共 128 位每一位都可单独寻址8051 有好几条位操作指令这使得程序控制非常方便并且可帮助软件代替外部组合逻辑这样就减少了系统中的模块数位寻址段的这 16 个字节也可像数据段中其它字节一样进行字节寻址
2.3特殊功能寄存器
中断系统和外部功能控制寄存器位于从地址 80H 开始的内部 RAM 中 这些寄存器被称
做特殊功能寄存器简称 SFR其中很多寄存器都可位寻址可通过名字进行引用如果要对中断使能寄存器中的 EA 位进行寻址可使用 EA 或 IE.7
或 0AFHSFRs 控制定时
计数器串行口中断源及中断优先级等这些寄
存器的寻址方式和 DATA
取中的其它字节和位一样
2.4IDATA 区
8051 系列的一些单片机如 8052 有附加的 128 字节的内部 RAM位于从 80H 开始的地址
空间中被称为 IDATA因为 IDATA 区的地址和 SFRs 的地址是重叠的通过区分所访问的存储区来解决地址重叠问题因为 IDATA 区只能通过间接寻址来访问
2.5XDATA 区
8051 的最后一个存储空间为 64K和 CODE 区一样采用 16 位地址寻址称作外部数
据区简称 XDATA 区这个区通常包括一些 RAM如 SRAM或一些需要通过总线接口的外围器件对 XDATA 的读写操作需要至少两个处理周期使用 DPTRR0 或 DPTRR1对 DPTR 来说至少需要两个处理周期来装入地址而读写又需要两个处理周期同样 对于 R0 或 R1 装入需要一个以上的处理周期而读写又需两个周期由此可见处理 XDATA 中的数据至少要花 3 个指令周期因此使用频繁的数据应尽量保存在 DATA 区中
如果不需要和外部器件进行 I/O 操作或者希望在和外部器件进行 I/O 操作时开关 RAM 则 XDATA 可全部使用 64K RAM关于这方面的应用将在以后介绍