6542|4

473

帖子

0

TA的资源

纯净的硅(高级)

楼主
 

单片机MSC-51学习笔记 [复制链接]

单片机MSC-51学习笔记1



第二章 CS-51单片机的结构

本章的重点

MCS-51 单片机的内部结构

MCS-51 单片机的引脚功能

MCS-51 单片机CPU的结构特点

MCS-51 单片机的存储器组织特点及访问方式

MCS-51 单片机的低功耗方式及应用

 

一、MCS-51 单片机的内部结构

1、  CPU:是单片机的核心,用于实现运算和控制功能。

2、  内部RAM:用于存放运行期间的数据,也叫内部数据存储器

3、  内部ROM:用于存放程序、表格、常数,也叫程序存储器

4、  并行接口:包括P0P1P2P3,除P1口其它都有第二功能,P0可作地址和数据总线,P2可作地址总线,P3可用作串行口数据线、中断请求信号、计数器、外部数据存储器或I/O口读写控制信号

5、  定时/计数器:用于实现产生周性的信号、完成精确的定时、对外进行计数、为片内串行接口提供时钟

6、  中断系统:片内或外部电路与CPU可以中断方式接口,处理外部应急事件

7、  串行口:用于与远程设备进行全双工的异步串行通信

8、  振荡器:提供时钟

二、MCS-51 单片机的引脚功能

1、  电源:VCC为电源+5VGND为接地

2、  外接晶振引脚:为XTAL1XTAL2

3、  控制信号引脚:RST复位信号

 ALE/PROG 地址锁存允许信号输出

PSEN 程序存储器允许信号输出

EA/VPP 外部访问信号输入

4、  并行I/O口引脚:P0 位漏极开路的双向I/O

                   P1 带有内部上拉电阻的8位准双向I/O

                   P2 带有内部上拉电阻的8位准双向I/O

                               P3带有内部上拉电阻的8位准双向I/O口,都具有第二功能。

三、MCS-51单片机的CPU

1、  控制器 主要功能是识别指令,并根据指令的性质控制单片机内部各个功能部件,使其协调工作

A、 时序电路 对振荡器送来的时钟信号分频

B、 程序计数器PC 是个独立的16位专用寄存器,存放下一条将要从程序存储器中取出的指令起始地址。PC的基本工作方式是自动加1.

C、 指令寄存器IR和指令译码电路 用来存放从程序存储器中取出的指令码,IR8

D、微操作控制部件 包括一些门电路连接单片机的各个部件

E、 中断控制电路 处理中断事件的电路,中断程序执行完后PC自动恢复到被中断的位置

F、 数据指针DPTR 用来存放16位单元地址,是单片机中唯一可直接访问的16位寄存器,DPTR中的地址通常是外部数据存储器单元或I/O端口地址

2、  运算器 完成算术、逻辑、位运算、数据中转与处理、利用程序状态字PSW记忆运算器运行的某些结果状态等

A、 算术逻辑单元ALU 运算器的核心部件,实质上是一个全加器

B、 累加器ACC ALU的输入之一,大部分数据操作是围绕累加器进行的

C、 寄存器B 为乘法除法操作而设置的,

D、程序状态字PSW 一个8位专用寄存器,可按位进行访问,主要用于存放当前运算结果的某些状态

3、  布尔处理器 1位计算机,可进行位寻址和位操作

4、  时钟电路 产生单片机所需要的时钟信号

5、  时序 CPU执行指令时所需控制信号的时间顺序

A、 节拍 即为一个振荡周期

B、 状态 经过内部2分频触发器对振荡频率分频产生的连续两个节拍

C、 机器周期 包含6个状态,为S1-S6

D、指令周期 执行一条指令所需时间,根据指令不同包含124个机器周期

四、MCS-51单片机的存储器组织

1、  程序存储器 存放系统运行所需的程序代码以及表格、常数数据等。查表只能用MOVC指令,而MOVC指令也只能用于读取程序存储器的数据

2、  内部数据存储器 通常用MOV指令访问,根据使用方法又分以下几种

A、 工作寄存器 指令数据多,程序代码短,执行速度快分为4组,每组有8个寄存器,记做R0-R7,

B、 位寻址区 可作为字节访问,也可单独访问基中一位,这些作为布尔处理器的存储区域

C、 普通寄存器,只能字节寻址,可以存放程序运行期间的数据和结果

D、堆栈区,是一种以后进先出方式使用的存储区域,用于存放具有后进先出性质的数据,如果子程序嵌套调用等,堆栈一般占用一段连续的存储区域

E、 间接寻址区 通常只对高于30H的非堆栈区单元使用

F、 特殊功能寄存器 是单片机中CPU各外围功能部件对应的寄存器,用以存放相应部件的控制命令、状态信息或者数据

G、外部数据存储器 可用于外部扩展数据存放器,数据总线由P0口提供,地址总线由P2口和P0口分别提供高8位和低8位,控制总线同P3口的3.63.7第二功能WRRD提供,对外部数据存放器访问只能使用间接寻址的方式,而且只能用MOVX指令

五、MCS-51单片机的工作方式

1、  复位方式

A、 复位操作RST引脚不小于两个机器周期的高电平可使单片机复位

B、 外部复位信号产生 可使用硬件按钮复位

2、  程序的执行方式 单片机正常的工作方式,被执行的程序可以存储到内部或外部程序存储器中,复位后PC值为0000H,可在0000H处放一条转移指令,转到合适的位置继续执行程序

3、  低功耗方式,有待机和掉电方式,待机方式下VCC仍为5V,但消耗电流可降到3MA,掉电方式VCC可降到2V,消耗电流为50UA

4、  编程和校验方式 向只读存储器内写入数据的过程叫做编程,将已写入的数据读出与编程时的原始数据进行比较叫校验

六、实验 自己动手搭建最小的单片机系统,观察分析结果

七、个人学习中碰到的问题

1、  对于引脚部分中的ALEPSEN两个引脚概念不是很清楚,

2、  对于时序部分不太会分析各个指令的时序图

3、  对于每个工作区别地址的分配要不要记住

此帖出自51单片机论坛

最新回复

总结太详细了,支持。  详情 回复 发表于 2017-1-19 01:50
点赞 关注
 

回复
举报

473

帖子

0

TA的资源

纯净的硅(高级)

沙发
 

单片机MSC-51学习笔记之2

51汇编学习第三章小结

本章重点

MCS-51的寻址方式和寻址空间

       MCS-51的指令分类

       MCS-51指令系统中各指令的执行过程

       MCS-51指领的应用特点

 

一、MCS-51单片机指令系统概述

1、  指令格式

指令操作码用8位二进制数编码,共有255种,指令不同操作码和操作数也不同,有些两者加起来只有一个字节称为单字节指令,有些是操作码和操作数各占一个字节称为双字节指令,有的操作码战一个字节,操作数占两个字节称为3字节指令

A、 单字节指令有的没有指定操作数的指令,如INC DPTR,有的有操作数指令,如MOV A,Rn

B、 双字节指令在程序存储器中占两个字节单元,操作码字节在前,操作数在后,如ADD A,#08H

C、 三字节指令第一个字节为操作码,第二和第三为操作数或者操作数地址如 MOV DPTR,#1234

2、  指令分类

A、 数据传送指令:可用于在单片机CPU内部寄存器、内部RAM、特殊功能寄存器、外部RAMI/O口、程序存储器之间传送数据

B、 算术运算指令:用于两个操作数进行加减乘除等,绝大多数指令要求一个操作数必须存放在累加器A内,而且运算结果仍存回A

C、 逻辑运算和循环移位指令:用于对两个操作希特勒按位进行与、或、异或、取反等操作,大多数也要求把一个操作数和结果放入累加器A

D、位操作指令:可实现位的传送、修改、运算和位控制转移

E、 流程控制类指令:实现无条件转移、条件转移、子程序调用和返回等具体方法就是修改程序计数器PC的值

3、指令系统中使用的符号RnA,B……..

 

二、寻址方式

找出操作数来源的方式就是操作数的寻址方式

1、  立即数寻址:指令中自带常数操作数,CPU取指后能直接得到操作数

2、  直接寻址:指令中直接给出操作数的地址,MCS-51可以直接寻址的操作数存储空间为内部RAM的低128字节(00H-7FH)和特殊功能寄存器(80H-FFH),对于52子系列其内部RAM空间的80HFFH不能直接寻址

3、  寄存器寻址:操作数在寄存器中的寻址方式 INC R1

4、  寄存器间接寻址:指令中给出含有操作数地址的寄存器号,寄存器号前加@,如INC @R1

5、  变址寻址:可称为索引寻址,目的是在一个连续存放的字节数组中,从数组起始地址(该起始地址存储在一个16位寄存器中)开始,找到以寄存器A内容为字节位移量的一项

6、  位寻址:只访问布尔处理器的累加器C时使用

7、  相对寻址:用于相对转移指令,CPU在执行相对转移指令时,将当前的16PC值与指令中的8位位移量相加,得到一个16位地址,以此作为新的PC值,于是程序的流程就发生了变化

8、  总结

寻址方式                   表示形式              寻址空间

立即数寻址             #data(8)#data(16)          程序存储器

直接寻址               direct(8位地址)                  内部RAM128字节

                       特殊功能寄存器名                特殊功能寄存器名

                       特殊功能寄存器字节地址          特殊功能寄存器

                       Addr1111位)、Addr1116位)  程序存储器

寄存器寻址             ABR0-R7DPTR             CPU内部寄存器

寄存器间接寻址         @R0@R1                      内部RAM

                     @R0@R1@DPTR                  外部RAM及外部I/O空间

变址寻址             @A+DPTR@A+PC            程序存储器

位寻址               C                             位累加器

                     bit(8位位地址)                  位空间

相对寻址             rel8位有符号数)              程序存储器

 

三、数据传送指令

以实现把源操作数复制到目的地址的操作,如果要保留目的地址中操作数(目的操作数),可以使用数据交换指令

1、  内部数据传送指令:实现内部寄存器、RAM、特殊功能寄存器之间的数据传送,用MOV

A、 A为目的操作数的8位传送指令

MOV      A,#data

MOV      A,direct

MOV      A,Rn

MOV      A,@Ri

B、 direct为目的操作数的8位传送指令

MOV      direct,A

MOV      direct, #data

MOV      direct1 direct2

MOV      direct,Rn

MOV      direct,Ri

C、 Rn为目的操作数的8位传送指令,不能从一个寄存器传到另一个寄存器

MOV      Rn,A

MOV      Rn, #data

MOV      Rn, direct

D、@Ri的操作数的8位传送指令

MOV      @RiA

MOV      @Ri,#data

MOV      @Ri,direct

       E16位数据传送指令作用把16位立即数装入数据指针DPTR,高8位(指令的第二

              个字节)送入DPTR的高8PDH,低8位送入DPTR的低8PDL

              MOV     DPTR,#data16

2、  外部数据传送指令:在CPU与外部数据存储器或外部I/O口之间传送数据,每次传送一个字节,该操作只能使用累加器A来实现,

A、将外部数据送到累加器

      MOVX     A,@Ri

MOVX     A,@DPTR

       B、将累加器内容送入外部

      MOVX     @RiA

MOVX     @DPTR A

       C、查表指令用于读取程序存储器的内容,或者在程序存储器中存储的固定表格中查找

      一项

              MOVC      A,@A+DPTR

              MOVC      A,@A+PC

       D、堆栈操作指令:当通过子程序调用、返回等指令使程序的执行流程发生改变时,通

          常使用堆栈保存返回地址

              PUSH    direct

              POP      direct

F、 数据交换指令用以完成累加器与工作寄存器、内部RAM单元、特殊功能寄存器内容全部或部分互换

字节交换:将累加器A内容与源操作数互换

XCH       A,direct

XCH       A,Rn

XCH          A,@Ri

半字节交换将累加器A的低4位与由Ri内容指定的内部RAM单元的低4位互换,高4位不变

XCHD     A,@Ri

       练习:假设在内部RAM地址20H处存放着一个BCD25,编写程序将它转换ASCII码表示,存储在内部RAM地址30H开始的两个单元中

              BCD25H其实表示十进制数25,用ASCII表示时,应转换成字符“2”、“5”的ASCII32H35H

              MOV   R0,#20H           ; R0内容为25H存放位置

              MOV   R1#30H           R1内容为转换后ASCII码存放位置

              MOV   @R1,#30H         ASCII存放外,先初始化为30H

              MOV   A,@R0            A25H

              XCHD  A,@R1            A30H互换低4位内容,A20H30H内容为35H

              SWAP   A                A高低4位互换,为02H

              INC    R1                R131H

              MOV   @R1,#30H         ;初始化为30H

              XHCD  A,@R1            A31H互换低4位内容,A00H30H内容为32H

问题1、指令的范围,

       2、操作数和地址的区分

此帖出自51单片机论坛
 
 
 

回复

6066

帖子

93

TA的资源

裸片初长成(初级)

板凳
 
zjjone1023,我将你的两个帖子合并在一块了,这样大家看起来也比较方面,若有更多的学习笔记,你可以以楼层的方式,把内容放在楼层下面! 不知道你觉得怎么样!
此帖出自51单片机论坛
 
 
 

回复

473

帖子

0

TA的资源

纯净的硅(高级)

4
 

回复 板凳 maylove 的帖子

恩,好,我已经存在我的博客里了
此帖出自51单片机论坛
 
 
 

回复

22

帖子

0

TA的资源

一粒金砂(初级)

5
 
总结太详细了,支持。
此帖出自51单片机论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表