设为首页
收藏本站
开启辅助访问
登录
立即注册
只需一步,快速开始
会员
首页
BBS
文章
Portal
教程
最新
供电设计
联系我
直达
搜索
搜索
图文教程
磁力开关
馈电开关
采煤机
华宁集控
高爆开关
掘进机
视频教程
初入煤电
组合开关
移变低馈
资料下载
书籍
标规
资料
说明书
社区分类
煤电入门
煤电维修
维修电工
电气软件
电子技术
工控自动
本版
文章
帖子
百技网
»
首页
›
电子技术
›
单片机
›
单片机教学 第七课
返回列表
发新帖
单片机教学 第七课
[复制链接]
1416
|
1
|
2011-9-7 22:43:39
|
显示全部楼层
|
阅读模式
<
单片机
第七课:单片机内部结构分析(五)
通过前面的学习,我们已知单片机的内部有ROM、有RAM、有并行I/O口,那么,除了这些东西之外,单片机内部究竟还有些什么,这些个零碎的东西怎么连在一起的,让我们来对单片机内部作一个完整的分析吧!
看图(1)(本图太大,请大家找本书看吧,一般讲单片机的书,随便哪本都有)。从图中我们可以看出,在51单片机内部有一个CPU用来运算、控制,有四个并行I/O口,分别是P0、P1、P2、P3,有ROM,用来存放程序,有RAM,用来存放中间结果,此外还有定时/计数器,串行I/O口,中断系统,以及一个内部的时钟电路。在一个51单片机的内部包含了这么多的东西。
对上面的图进行进一步的分析,我们已知,对并行I/O口的读写只要将数据送入到相应I/O口的锁存器就可以了,那么对于定时/计数器,串行I/O口等怎么用呢?在单片机中有一些独立的存储单元是用来控制这些器件的,被称之为特殊功能寄存器(SFR)。事实上,我们已接触过P1这个特殊功能寄存器了,还有哪些呢?看表1
符号 地址 功能介绍
B F0H B寄存器
ACC E0H 累加器
PSW D0H 程序状态字
IP B8H 中断优先级控制寄存器
P3 B0H P3口锁存器
IE A8H 中断允许控制寄存器
P2 A0H P2口锁存器
SBUF 99H 串行口锁存器
SCON 98H 串行口控制寄存器
P1 90H P1口锁存器
TH1 8DH 定时器/计数器1(高8位)
TH0 8CH 定时器/计数器1(低8位)
TL1 8BH 定时器/计数器0(高8位)
TL0 8AH 定时器/计数器0(低8位)
TMOD 89A 定时器/计数器方式控制寄存器
TCON 88H 定时器/计数器控制寄存器
DPH 83H 数据地址指针(高8位)
DPL 82H 数据地址指针(低8位)
SP 81H 堆栈指针
P0 80H P0口锁存器
PCON 87H 电源控制寄存器
表1
下面,我们介绍一下几个常用的SFR,看图2。
ACC:累加器,通常用A表示。这是个什么东西,可不能从名字上理解,它是一个寄存器,而不是一个做加法的东西,为什么给它这么一个名字呢?或许是因为在运算器做运算时其中一个数一定是在ACC中的缘故吧。它的名字特殊,身份也特殊,稍后我们将学到指令,可以发现,所有的运算类指令都离不开它。
2、B:一个寄存器。在做乘、除法时放乘数或除数,不做乘除法时,随你怎么用。
3、PSW:程序状态字。这是一个很重要的东西,里面放了CPU工作时的很多状态,借此,我们可以了解CPU的当前状态,并作出相应的处理。它的各位功能请看表2
D7D6D5D4D3D2D1D0
CYACF0RS1RS0OV P
表2
下面我们逐一介绍各位的用途
(1)CY:进位标志。8051中的运算器是一种8位的运算器,我们知道,8位运算器只能表示到0-255,如果做加法的话,两数相加可能会超过255,这样最高位就会丢失,造成运算的错误,怎么办?最高位就进到这里来。这样就没事了。
例:78H 97H(01111000 10010111)
(2)AC:半进位标志。
例:57H 3AH(01010111 00111010)
(3)F0:用户标志位,由我们(编程人员)决定什么时候用,什么时候不用。
(4)RS1、RS0:工作寄存器组选择位。这个我们已知了。
(5)0V:溢出标志位。什么是溢出我们稍后再谈吧。
(6)P:奇偶校验位:它用来表示ALU运算结果中二进制数位“1”的个数的奇偶性。若为奇数,则P=1,否则为0。
例:某运算结果是78H(01111000),显然1的个数为偶数,所以P=0。
4、DPTR(DPH、DPL):数据指针,可以用它来访问外部数据存储器中的任一单元,如果不用,也可以作为通用寄存器来用,由我们自已决定如何使用。
5、P0、P1、P2、P3:这个我们已经知道,是四个并行输入/输出口的寄存器。它里面的内容对应着管脚的输出。
6、SP:堆栈指针。
堆栈介绍:日常生活中,我们都注意到过这样的现象,家里洗的碗,一只一只摞起来,最晚放上去的放在最上面,而最早放上去的则放在最下面,在取的时候正好相反,先从最上面取,这种现象我们用一句话来概括:“先进后出,后进先出”。请大家想想,还有什么地方有这种现象?其实比比皆是,建筑工地上堆放的砖头、材料,仓库里放的货物,都是“先进后出,后进先出”,这实际是一种存取物品的规则,我们称之为“堆栈”。
单片机
热帖推荐
PLC学习1
供电所管理流程
电气标准规范汇编1
电容降压原理
供电所工作总结(范文)
变频器的冷却方式比较
法那克FANUC维修技巧(参数)
两台电动机既可分别启动和停止,也可以同时启动和停止
高压断路器有什么作用
单相双值电容异步电动机接倒顺开关
阻燃电缆和耐火电缆的结构、特性及如何选用
浅谈电力电缆型号性能介绍
相关帖子
•
台达PLC应用在净水设备中
•
台达PLC 在净水设备中的应用
•
单片机数据采集模块
•
基于GSM和PIC单片机的无人清洁护理机的设计
•
基于ATmega16单片机的实时温度采集与分析系统
•
啥是单片机
•
单片机的调光控制器设计
•
单片机控制的可控硅全波半控桥触发电路
•
关于单片机控制的电线探测仪的一些问题
•
徐州科达400馈电开关,送电显示单片机连接失败,有知道怎么回事吗?
回复
举报
beita
|
2011-9-7 22:43:40
|
显示全部楼层
在单片机中,我们也可以在RAM中构造这样一个区域,用来存放数据,这个区域存放数据的规则就是“先进后出,后进先出”,我们称之为“堆栈”。为什么需要这样来存放数据呢?存储器本身不是可以按地址来存放数据吗?对,知道了地址的确就可以知道里面的内容,但如果我们需要存放的是一批数据,每一个数据都需要知道地址那不是麻烦吗?如果我们让数据一个接一个地放置,那么我们只要知道第一个数据所在地址单元就可以了(看图2)如果第一个数据在27H,那么第二、三个就在28H、29H了。所以利用堆栈这种方法来放数据可以简化操作
那么51中堆栈什么地方呢?单片机中能存放数据的区域有限,我们不能够专门分配一块地方做堆栈,所以就在内存(RAM)中开辟一块地方,用于堆栈,但是用内存的哪一块呢?还是不好定,因为51是一种通用的单片机,各人的实际需求各不相同,有人需要多一些堆栈,而有人则不需要那么多,所以怎么分配都不合适,怎样来解决这个问题?分不好干脆就不分了,把分的权利给用户(编程者),根据自已的需要去定吧,所以51单片机中堆栈的位置是可以变化的。而这种变化就体现在SP中值的变化,看图2,SP中的值等于27H不就相当于是一个指针指向27H单元吗?当然在真正的51机中,开始指针所指的位置并非就是数据存放的位置,而是数据存放的前一个位置,比如一开始指针是指向27H单元的,那么第一个数据的位置是28H单元,而不是27H单元,为什么会这样,我们在学堆栈命令时再说明。
图2
其它的SFR,我们在用到时再介绍。
回复
支持
反对
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
shandong
回复楼主
返回列表
电子基础
电子制作
单片机
器件应用
图文推荐
如何升级VIP用户组
2018-01-13
软启动器的工作过程
2018-12-26
天津华宁KTC101主控器的内部结构
2021-05-14
煤矿电工教程:10、风机开关过流、短路、断相保护工作原理
2022-03-12
矿用防爆软启开关教程——13、软启开关近控启动过程
2020-02-15
热门排行
1
KJZ1-200(400)馈电开关原理分析
2
这个电气元件符号你认识吗?
3
煤矿电工教程:10、风机开关过流、短路、断相保护工作原理
4
馈电开关漏电闭锁故障维修_成伟维修笔记1
5
馈电开关漏电闭锁故障的维修_成伟维修笔记7
6
馈电开关漏电试验不跳闸故障维修_成伟维修笔记4
7
煤矿风机开关教程:11、过、欠压保护相关参数的设置
8
煤矿高压防爆开关漏电保护的研究
9
天津华宁KTC101主控器的内部结构
10
高防开关短路跳闸故障的维修_成伟维修笔记8