微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 重温51单片机

重温51单片机

时间:11-26 来源:互联网 点击:
今天在图书馆看来一上午的书。。把51的一点知识顺便记了一下。。。感觉很好。。。尤其是汇编那里。。对学习STM32有帮助。。。

时钟

片内时钟模式;由XTAL1和XTAL2外接石英晶体和震荡电容

片外时钟模式;对于普通的8051,外部时钟由XTAL2直接送到单片机内部,XTAL1应直接接地,而且XTAL2引脚的逻辑电平不是TTL电平,应外接上拉电阻。对于CMOS型单片机,其时钟发生器的信号取自于反相放大器的输入端,因此,外部时钟信号应该从XTAL1引脚输入,而XTAL2需要悬空。

特殊功能寄存器区,如果某个特殊功能寄存器的地址可以被8整除,那么这个寄存器便可以进行位寻址。在位寻址指令中,可以用“寄存器名.位”“字节地址.位”“位地址”“位名称”

如“B.5”表示寄存器B的第五位。其中引脚p0,p1,p2,p3等都可以位寻址。

单片机的指令时序

拍;振荡脉冲的周期,为51系列的最小时序单元。时钟周期;时钟周期是单片机CPU中的最基本的时间单元在一个时间周期内,CPU仅完成一个最基本的动作,拍经过二分频,便可得到单片机的时钟信号,由于是二分频,因此一个时钟周期包含两个拍。

机器周期;一个机器周期由6个时钟周期构成,也就是12个拍组成。指令周期;指令周期执行一条指令所需要的时间,不同指令需要不同的指令周期。

掉电保护;

1当检测到电源下降时,触发外部中断2在中断服务子程序中将外部的RAM中的有用数据送到内部的RAM中保护,然后对电源控制寄存器PCON进行设置3切换备用电源,备用电源只为单片机内部RAM和专用寄存器提供维持电流,是这些重要数据不丢失,而整个外部电路因为电源的中断而停止工作,时钟电路停止震荡,CPU也停止工作。4当电源恢复时,备用电源也要继续工作10ms左右,以保证外部电路达到稳定状态。

专用寄存器

程序计数器PC

相当于一个搬运工,用来不断的将指令搬运过来执行,由16个触发器构成,是一个16位二进制的程序地址寄存器,程序计数器PC的编码范围是0000H~FFFFH,寻址范围为64KB.

累加器A8位二进制存储器

寄存器B8位二进制存储器一般和A一起使用,用于乘除法操作指令。

程序状态寄存器PSW8位存储器

数据指针DPTR用于数据存储器的操作,由8位寄存器DPH和DPL组合而成,是一个典型的16位寄存器。DPH为数据指针的高8位,DPL为数据指针的低8位。

汇编语言;

起始伪指令ORG格式:[标号:] ORG 16位地址

在这,16位地址便是汇编程序块或者数据块存放的起始地址,如果省略ORG伪指令,则单片机程序代码从默认的0000H单元块开始存放。

字节保存伪指令DB格式[标号:] DB8位字节数据表其中8位字节数据表可以是一个或者多个字节数据、字符串或者表达式。在数据表中各项用‘,’分隔,一个数据项占一个存储单元,所有的数据项从标号指定的地址单元开始,将数据表中的字节数据按顺序依次保存。数据项可以采用十进制、二进制、或者十六进制数据表示。例如

ORG1100H

DATA1:DB51H,67H,61,90H

DATA2:DB110B,‘B’

字节数据将从1100H地址进行保存字节数据。

内存单元

内容

内存单元

内容

1100H

51H

1103H

90H

1101H

67H

1104H

110B=06H

1102H

61=33H

1105H

‘B’=42H

字保存伪指令DW用于单片机内存中保存双字节数据表,只能对程序存储器进操作。

格式[标号:]DW16位字数据表

其中可以是一个或者多个字节数据、字符串或者表达式。在数据表中各项用‘,’分隔,一个数据项占一个存储单元,所有的数据项从标号指定的地址单元开始,将数据表中的字节数据按顺序依次保存。需要注意的是,16位数据要占用两个单元的存储器,高8位数据存储到低地址字节,低八位数据存入到高地址字节。例如;

ORG1000H

DATA1:DW27AEH, 5CH

字节数据从1000H地址开始保存字数据。

内存单元

内容

内存单元

内容

1000H

21H

1002H

00H

1001H

AEH

1003H

5CH

空间预留伪指令DS用于在单片机内存中划分出一定的存储空间用作备用区域,只能对程序存储器进行操作,[标号:]DS表达式这里,表达式表达了从标号指定的地址单元开始,保存存储器单元的个数。

ORG1100H

BUF:DS08H

即从地址1100H开始划分出8个内存单元,从1108H之后的单元才可以进行其他操作。

位变量伪指令BIT用于给位地址定义一个字符名称

字符名称BIT位地址

如;P1BITP2.4

P2BITP2.6

在这里,位地址P2.4和P2.6赋给P1和P2 ,此后,遇到P1,P2的地方,就相当于使用P2.4和P2.6。

单片机指令的寻址方式

立即寻址直接寻址寄存器寻址寄存器间接寻址变址寻址相对寻址和位寻址

立即寻址相当于直接给出操作数,此时的操作数成为立即数。前面用“#”来标示

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top