一、51单片机常用知识
1、数制
4个二进制位,即4位 —— 半字节
8个二进制位,即8位 —— 一个字节
16个二进制位,即16位 —— 双字节,也叫字
32个二进制位,即32位 —— 双字,也叫长字
计算机中有符号数有三种表示方法,①原码②补码③反码。在计算机系统中,数值一律用补码表示和存储,0表示“+”也就是正数,1表示“-”也就是负数。
补码的转化方式:
①正数,补码与原码相同。
②负数,所有位取反,+1。
2、51单片机的存储
程序存储器一般用ROM来存放,即Read Only Memory。51单片机只有4K的ROM,即4x1024个字节,地址空间从0000H到0FFFH。
单片机的第一条程序永远从0000H开始,这就是程序的起始地址,也叫程序的入口地址。
程序计数器,简写PC。CPU只从PC当(当前PC的位置)开始执行程序,PC的初始值是0000H。CPU从PC当指向的位置取指令后,PC当就自动加1,然后CPU开始分析指令,然后执行指令。
指令执行的过程分为三步:①取指令②分析指令③执行指令
二、51单片机内部结构
ALU是单片机的算术逻辑单元,由"And Gate"(与门) 和"Or Gate"(或门)构成的算术逻辑单元,主要功能是进行二位元的算术运算,如加减乘(不包括整数除法)。ALU的数据可以从暂存器1和2中获取,运算后的数据可以放到总线中。PSW(程序状态字)可以读取ALU中的数据,如果ALU在进行加法运算时有溢出则PSW中的溢出位置1,PSW中的数据可以经过总线进行双向传输。(待完善)
三、存储器
51单片机内部集成存储器,采用独立编址的哈佛结构,同时也可以总线访问外挂的存储器。51单片机内部有4K的ROM,地址为0000H到0FFFH,可以通过MOVC指令进行访问。内部RAM共256字节,可分为3个部分,低128字节RAM,高128字节RAM及SFR特殊功能寄存器区。低128字节的数据存储器既可以直接寻址也可以间接寻址。高128字节RAM遇特殊功能寄存器貌似公用相同的地址范围,都用80H-FFH,使用时通过不同的寻址方式加以区别,通过MOV指令的直接和间接访问来区分是访问的RAM还是SFFR。
外部存储器则是64k的ROM和RAM。通过EA引脚判断是访问的内部存储器还是外部存储器,当EA引脚=1时访问内部存储器,EA引脚=0时访问外部存储器。
特殊的PC指针在内部ROM加到0FFFH后,再加一,自动跳转到外部ROM的下一个地址。
低128位RAM按功能不同又可以区分为三种,分别为工作寄存器组、可位寻址(也可以按字寻址)、只能按字寻址。
①工作寄存器组(00H到1FH)
一共分为4组,分别为第0、1、2、3组,每一组都由R0、R1、…R7组成,其中一个R可以存一个字节。通过RS0和RS1这两个标志位控制是第几组。RS1和RS0位于PSW程序状态字寄存器中。
②可位寻址(20-2FH)位地址空间00H-7FH
③只能字节访问(30H-7FH)
关键字:51单片机 汇编 结构
引用地址:
51单片机原理及汇编教程(一)之51单片机结构及原理
推荐阅读最新更新时间:2024-11-12 11:17
从MCU转到IGBT 汽车芯片呈结构性紧缺
汽车行业分析公司AFS的最新数据显示,由于芯片短缺,今年全球汽车市场累计减产量约为281.02万辆。AFS预测,到今年年底,全球汽车制造商将减产368.06万辆。 在过去的两年里,全球范围内的芯片短缺令所有人措手不及,其中最受影响的就是汽车芯片,导致各大汽车厂商陷入“停产待芯”的境地,纷纷放出了减产的消息。而近期,消费电子类的芯片需求大幅降低,出现减产砍单的现象,各大芯片厂商也将产能转向了更热门的汽车芯片,并且更多的厂商也加入了汽车芯片的生产行列,于是就有“汽车芯片已经不再紧缺”的消息传出。但据记者了解,仅仅是部分汽车芯片得到了缓解,整个汽车芯片市场正在向结构性紧缺上转变。这其中最为紧俏的,甚至被称为卡住汽车生产“喉咙”的就
[汽车电子]
得到一个field在结构体中的偏移量
简介:在使用C语言对STM32编程的过程中,经常使用到结构体,本文介绍了一种得到结构体中一个field的偏移量的方法。 宏定义:得到一个field在结构体(struct type)中的偏移量 #defineOFFSETOF(type,field)((u32)&(((type*)0)- field)) (type*)0:把0地址当成type类型的指针。 ((type*)0)- field:对应域的变量。 &((type*)0)- field:取该变量的地址,其实就等于该域相对于0地址的偏移量。 (u32)&(((type*)0)- field):将该地址(偏移量)转化为u32型数据。 下面写了一个简单的测
[单片机]
MCS-51单片机的内部结构
1、8051单片机片内并行接口 2、MCS-51的内部资源 3、 MCS-51的芯片引脚 图1-8 MCS-51引脚图 4、单片机的工作方式 单片机的工作方式包括:复位方式、程序执行方式、单步执行方式、低功耗操作方式以及EPROM编程和校验方式。 1. 复位方式:经典的上电复位电路 2. 程序执行方式:(1)执行内部程序;(2)执行外部程序 3. 单步执行方式:用于调试程序和系统 4. 低功耗操作方式 5. 编程和校验
[单片机]
51单片机实验14:红外通信模块应用
目的:利用遥控器与单片机通信,并将遥控器按键所对应的编码在数码管上以十六进制的形式显示出来。 开发板红外传感器数据输出引脚对应的IO口为P3^2,该IO口同时为外部中断引脚,因此程序中采用下降沿触发的外部中断来判断是否接收到起始码。 51单片机中断系统的相关内容:https://blog.csdn.net/cax1165/article/details/86633086 数码管的相关内容:https://blog.csdn.net/cax1165/article/details/86557551 开发板红外模块电路图如下: 说明:程序中大量使用了如下代码片段: err=***; while((irin==*
[单片机]
【零基础】彻底搞懂51单片机各种型号(ATMEL系列)
零、前言 初学者开始学习51单片机时往往先是一愣,说好51单片机啊,咋个型号是AT89C52,这个S52又是咋回事?上学的时候大都懵懵懂懂就这么用着,但始终没整明白,所以今天我们就彻底搞明白这些“51”都是些啥51。文章最后我还准备了一份各型号的对比手册,大家可以对照参考。 一、8031指令集 51单片机是一个泛称,我们将所有兼容Intel 8031指令系统的都叫51单片机,所以无论是AT89C51、AT89S52、AT80C51、TS83C25等等,不管他叫什么名字都统称为51单片机。那为啥不叫31单片机呢?Intel当年推出这个单片机系列时第一款编号就是8031(所以叫8031指令系统),而后在其基础上进行小改就叫80
[单片机]
51单片机实现单键重复按键检测
/***************************************************************************** Copyright: 2013-07-27.version1.0 File name: key.c Description: 自己做的单键识别实现重复按键功能 Author: Version: version1.0 Date: 2013.7.27 History: 无 *******************************************************/ #include reg51.h sbit key=P0^0; int num=0; /**
[单片机]
keil C语言与汇编语言混合编程
1. C语言中嵌入汇编 1、在 C 文件中要嵌入汇编代码片以如下方式加入汇编代码: #pragma ASM ; Assembler Code Here #pragma ENDASM 2、在 Project 窗口中包含汇编代码的 C 文件上右键,选择 Options for ... ,点击右边的 Generate Assembler SRC File 和 Assemble SRC File ,使检查框由灰色变成黑色(有效)状态; 3、根据选择的编译模式,把相应的库文件(如 Small 模式时,是 Keil/C51/Lib/C51S.Lib)加入工程中, 该文件必须作为工程的最后文件; 4、编译,即可生成目标代码。 来个
[单片机]
汇编语言的交通灯程序
汇编语言的交通灯程序,单片机采用51单片机,基本完成控制两组交通指示灯交替亮,每个路口有左拐、直行及行人三种指示灯。直行灯设有红、黄、绿三种颜色。非机动车与汽车共用左拐和直行灯。首先东西向直行绿灯和行人灯亮1分钟,左转灯亮30秒,黄灯亮5秒(同时南北向红灯亮95秒),然后东西向红灯亮95秒钟(同时首先南北向直行绿灯和行人灯亮1分钟,左转灯亮30秒,黄灯亮5秒),然后东西向的绿灯亮,依次类推。 每次绿灯亮的时候,对应的行人灯亮。60S/30S/5S/60S/30S/5S 东西道:绿和行人/左转/黄/红/红/红 南北道:红/红/红/绿和行人/左转/黄 行人灯亮的时候有声音提示盲人能通过。突发交通事
[单片机]