首页 / 单片机 / 汇编语言51单片机-第一天
汇编语言51单片机-第一天
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了汇编语言51单片机-第一天,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5539字,纯文字阅读大概需要8分钟。
内容图文
![汇编语言51单片机-第一天](/upload/InfoBanner/zyjiaocheng/622/acfae0b51f24404cad8e7a06c73edbd4.jpg)
1. 什么是51单片机?
-
单片机
在一片集成电路芯片上集成微处理器(CPU)、存储器(ROM和RAM)、I/O接口电路,从而构成了单芯片微型计算机,即单片机(single chip Microcomputer)也叫微控制器(MCU)。 -
51单片机
MCS51是指由美国INTEL公司(对了,就是大名鼎鼎的INTEL)生产的一系列单片机的总称,这一系列单片机包括了好些品种,如8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的产品,该系列其它单片机都是在8051的基础上进行功能的增、减、改变而来的,所以人们习惯于用8051来称呼MCS51系列单片机,而8031是前些年在我国最流行的单片机,所以很多场合会看到8031的名称。INTEL公司将MCS51的核心技术授权(卖)给了很多其它公司,所以有很多公司在做以8051为核心的单片机,当然,功能或多或少有些改变,以满足不同的需求,其中89C51就是这几年在我国非常流行的单片机.
2. 51单片机引脚介绍
- 电源:
⑴ VCC - 芯片电源,接+5V;
⑵ VSS - 接地端; - 时钟:
XTAL1、XTAL2 - 晶体振荡电路反相输入端和输出端。 - 控制线(4根):
⑴ ALE/PROG:地址锁存允许/片内EPROM编程脉冲
① ALE功能:用来锁存P0口送出的低8位地址
② PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。
⑵ PSEN:外ROM读选通信号。
⑶ RST/VPD:复位/备用电源。
① RST(Reset)功能:复位信号输入端。
② VPD功能:在Vcc掉电情况下,接备用电源。
⑷ EA/Vpp:内外ROM选择/片内EPROM编程电源。
① EA功能:内外ROM选择端。
② Vpp功能:片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。 - I/O线
80C51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。
3. 为什么选择汇编语言?
其实如果在现实中有什么使用单片机需求,一般会使用C语言来编写程序,因为C语言的抽象程度比较高,代码编写效率高。而为什么选择汇编语言来学习51单片机呢?因为汇编语言更加贴近硬件本身,使用汇编语言来编写程序,能够更好的理解单片机的原理。
51单片机中两个指令:
SET P1.0
:P1.0管脚输出高电平。
CLR P1.0
:P1.0管教输出低电平。
4. LED灯闪烁
LOOP: SETB P1.0
LCALL DELAY
CLR P1.0
LCALL DELAY
AJMP LOOP
DELAY: MOV R7,#250
D1:MOV R6,#250
D2:DJNZ R6,D2
DJNZ R7,D1
RET
END
5. 时序分析
计算机使用统一时钟来同步各部件的运行。
-
时钟周期
晶振震动一次所需要的时间称为一个时钟周期。 -
机器周期
完成一个基本操作所需要的时间称为机器周期,比如取值、执行。
一个机器周期包括12个时钟周期。下面让我们算一下一个机器周期是多长时间吧。设一个单片机工作于12M晶体震荡器,它的时钟周期是1/12(微秒)。它的一个机器周期是12*(1/12)也就是1微秒。 -
指令周期
计算机的指令所需要时间不都是相同的,有的指令执行得快,有的执行得慢,所以我们使用指令周期来表示执行一条指令所需要的时间。
6. 并行口结构
- LED灯同时闪烁:
LOOP: mov P1, #0ffh
lcall DELAY
mov P1,#00h
lcall DELAY
ajmp LOOP
DELAY: mov R7,#250
D1:mov R6,#250
D2:djnz R6,D2
djnz R7,D1
ret
end
- 键控LED灯
P3口接按键,用于控制LED灯点亮。
MAIN: mov P3, #0ffh
LOOP: mov A, P3
mov P1, A
ljmp LOOP
end
7. 特殊寄存器
在51单片机中有:
- 一个CPU用来运算与控制
- 四个并行I/O口,P0,P1,P2,P3
- EPROM,用来存放程序
- RAM,来保存中间结果
- 定时器、串行I/O口
- 中断系统
还有一些特殊功能寄存器(SFR):
符号 | 地址 | 功能介绍 |
---|---|---|
B | F0H | B寄存器 |
ACC | E0H | 累加器 |
PSW | D0H | 程序状态字 |
IP | B8H | 中断优先级控制寄存器 |
P3 | B8H | P3口锁存器 |
IE | A8H | 中断允许控制寄存器 |
P2 | A0H | P3口锁存器 |
SBUF | 99H | 串口锁存器 |
SCON | 98H | 串口控制寄存器 |
P1 | 90H | P1口锁存器 |
TH1/TL1 | 8DH/8BH | 定时/计数器1(高低8位) |
TH0/TL0 | 8CH/8AH | 定时/计数器0(高低8位) |
TMOD | 89H | 定时/计数器方式控制寄存器 |
TCON | 88H | 定时/计数控制寄存器 |
DPH | 83H | 数据地址指针(高8位) |
DPL | 82H | 数据地址指针(低8位) |
SP | 81H | 堆栈指针 |
P0 | 80H | P0口锁存器 |
PCON | 87H | 电源控制寄存器 |
SFR寄存器地址映射表:
几个常用的SFR:
- ACC:累加器,常常用A表示。这是个什么东西,可不能从名字上理解,它是一个寄存器,而不是一个做加法的东西,为什么给它这么一个名字呢?或许是因为在运算器做运算时其中一个数一定是在ACC中的缘故吧。它的名字特殊,身份也特殊,稍后我们将学到指令,能发现,所有的运算类指令都离不开它。
- B:一个寄存器。在做乘、除法时放乘数或除数,不做乘除法时,随你怎么用。
- PSW:程序状态字。这是一个很重要的东西,里面放了CPU工作时的很多状态,借此,我们能了解CPU的当前状态,并作出对应的处理。
- DPTR(DPH、DPL):数据指针,能用它来访问外部数据存储器中的任一单元,如果不用,也能作为通用寄存器来用,由我们自已决定如何使用。16位,由两个8位寄存器DPH、DPL组成。主要用于存放一个16位地址,作为访问外部存储器(外RAM和ROM)的地址指针。
- P0、P1、P2、P3:这个我们已经知道,是四个并行输入/输出口的寄存器。它里面的内容对应着管脚的输出。
- SP:堆栈指针。(专用于指出堆栈顶部数据的地址。)
PSW各bit介绍:
- CY:进位标志。用于表示Acc.7有否向更高位进位。8051中的运算器是一种8位的运算器,我们知道,8位运算器只能表示到0-255,如果做加法的话,两数相加可能会超过255,这样最高位就会丢失,造成运算的错误,怎么办?最高位就进到这里来。这样就没事了。例:78H+97H(01111000+10010111)
- AC:辅助进位标志也叫半进位标志。 用于表示Acc.3有否向Acc.4进位例:57H+3AH(01010111+00111010)
- F0:用户标志位,由我们(编程人员)决定什么时候用,什么时候不用。
- RS1、RS0:工作寄存器组选择位。
RS1、RS0 = 00 —— 0区(00H~07H)
RS1、RS0 = 01 —— 1区(08H~0FH)
RS1、RS0 = 10 —— 2区(10H~17H)
RS1、RS0 = 11 —— 3区(18H~1FH) - 0V:溢出标志位。 表示Acc在有符号数算术运算中的溢出,什么是溢出我们稍后再谈吧。
- P:奇偶校验位:它用来表示ALU运算结果中二进制数位“1”的个数的奇偶性。若为奇数,则P=1,不然为0。例:某运算结果是78H(01111000),显然1的个数为偶数,所以P=0。
8. 指令系统与寻址方式
指令系统
汇编语句与机器指令存在这一一对应的关系,也就是说,汇编语句是机器指令的助记符。
所以,我们所能使用的汇编语句又硬件所提供的机器指令来确定。
寻址方式
-
立即数寻址:
操作数包含在指令中,使用#
来表示立即数
示例:将值200送入寄存器A
mov A, #200
-
直接寻址:
操作数中直接给出所需数据的地址。
示例:将地址0d2h处的数据送入寄存器A
mov A, 0d2h
-
间接寻址:
将所需数据的地址放置在寄存器中,通过寄存器间接寻址
实例:以寄存器R0的值为地址,取该地址的值到A,使用@
来间接寻址
MOV A, @R0
内容总结
以上是互联网集市为您收集整理的汇编语言51单片机-第一天全部内容,希望文章能够帮你解决汇编语言51单片机-第一天所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。