51单片机复习笔记经典1

合集下载

51单片机复习资料

51单片机复习资料

1、IP、IE、TCON、TMOD、SCON其中每一位的具体含义是什么?IP:中断优先寄存器(B8H);IE:中断允许寄存器(A8H);TCON:控制寄存器,控制定时/计数器的启动和益处;TMOD:方式寄存器,设定定时/计数器T0和T1的工作方式;SCON:串口控制寄存器PCON:电源控制寄存器2、MCS-51系列单片机的时钟周期、位周期、机器周期、指令周期之间的关系是什么?12个时钟周期=6个位周期=1个机器周期,1至2个机器周期=一个指令周期3、MCS-51系列单片机的特殊功能寄存器复位后的初始内容是什么?单片机复位操作使单片机进入初始化状态,初始化后PC=0000H 特殊功能寄存器的状态。

P0~P3为FFH,SP=07H,SBUF不定,IP、IE和PCON的有效位为0,其余特殊功能寄存器的状态均为00H。

4、MCS-51系列单片机的I/O口除了可以做输入输出口外还可以充当什么接口?其中哪组I/O口必须外接上拉电阻?地址/数据复用线P0口5、MCS-51系列单片机RST、EA、ALE、RD、WR引脚作用是什么?RST即为RESET,复位信号线;EA:中断允许总控位。

EA=0(低电平),屏蔽所有中断请求,EA=1(高电平),开放中断;ALE:地址锁存有效输出端;RD:读信号线;WR:写信号线。

6、MCS-51系列单片机的复位电平是高电平还是低电平?其复位电路应怎样设计?51是高电平复位。

当上电一瞬间,电容需要充电,认为电流可以流过电容,所以电容相当于短路,这是复位脚相当于接入高电平,进入上电复位状态。

当电容电量充满以后,电容不再有电流流过,相当于短路,这时复位脚就相当于通过电阻接地(低电平),单片机进入正常状态。

7、MCS-51系列单片机有几级中断?几个中断源?其优先级排序是什么?二级中断;5个中断源;排列从高到低为外部中断0;定时/计数器0;外部中断1;定时/计数器1;串行口。

8、MCS-51系列单片机的中断源标志位分别是什么?清零方式是什么样的?外中断标志是IF0,IF1 ;定时器中断标志是TF0,TF1;串口中断标志是RI,TITI,RI软件清零,其余硬件清零。

51单片机资料-C51常用语句讲解

51单片机资料-C51常用语句讲解

详细介绍。下面仅举一个例子加以说明:
• #include <stdio.h>
//头文件
• void myprint()
//定义函数
•{

printf("hello world.\n");
//输出字符串
•}
• int Add(int a)
//定义函数
•{

return a+1;
//返回值
•}

• void main()
行if语句后面的语句;当表达式为假时,就执行语 句2,执行完后,继续执行if语句后面的语句。
14
13.5.3 阶梯式if-else-if结构
• 阶梯式if-else-if结构是一种多分支结构,其可以 包含多个分支语句,其一般形式为:
• if (表达式1) 语句1; • else if (表达式2) 语句2; • else if (表达式3) 语句3; • else if (表达式n) 语句n; • else 语句n+1; • 这是由if-else语句组成的嵌套,可以实现多方向
条件分支。该语句从上到下逐个对条件进行判断, 一旦条件为真,就执行与其相关的分支语句,并跳 过剩余的阶梯;如果没有一个条件为真,则执行最 后一个else分支语句n+1。
1实现多个语句分支处理。在C51
程序中,开关语句以关键字switch和case来标识。开关语句
序示例如下:
• #include <stdio.h>
//头文件

• void main()
//主函数
•{
• char ch[]={'s','S','r','R','t'};

51入门笔记-(2)常见单片机的种类与简介

51入门笔记-(2)常见单片机的种类与简介

51⼊门笔记-(2)常见单⽚机的种类与简介常见单⽚机种类与简介单⽚机从当初的4位发展到8位、32位,甚⾄更⾼,到现在可以说种类繁多⽽且齐全,数量庞⼤,在不同的领域主流的单⽚机有不同,很多设计开发有时候要⾯临很多选择。

下⾯介绍⼏种常⽤的单⽚机:1、51系列单⽚机stc的51单⽚机51单⽚机最初是由Intel始创的8004单⽚机开始,这是8位的单⽚机,特点是:寄存器少,。

很多功能需要外部扩展,像AD转换、PWM专门输出信号等、I/O⼝输出能⼒不强、运⾏速度慢、抗⼲扰能⼒差、功耗⾼、不具备⾃编程能⼒。

但是它的外围电路相对简单,上⼿容易,适合⼊门级,很多⾼校单⽚机都是以51单⽚机教学为主,在⼯业测控系统应⽤很⼴泛。

⽬前⽣产51单⽚机的⼚家有:英特尔、艾德梅尔、西门⼦、华邦以及国产的宏晶等。

2、AVR系列单⽚机arduino nano开发板,芯⽚为avr单⽚机AVR单⽚机是由Atmel公司最初提出,也是8位单⽚机,后来也有16位的,但是与51不⼀样,它内部指令⼤⼤简化,同时内部结构精简,因此速度更快,功能更加强⼤,驱动能⼒⽐51的强,功耗也很低,抗⼲扰能⼒更强,内部有强劲的Flash程序存储器,烧录快捷⽅便,内部集成多种频率的RC振荡器、PWM输出、AD转换、看门狗、上电⾃动复位等功能。

AVR单⽚机有三种系列:1、tiny AVR,这种主要被⽤于需要性能不是很⾼、效率低下以及在⼩封装中使⽤2、mega AVR,这种主要是针对需要加额外外围电路设计的理想选择,⾃编程能⼒强3、Xmega AVR,这种主要是在⾼集成度和低功耗使⽤AVR单⽚机主要应⽤在打印机、空调、电表等控制电路板当中。

3、STM8系列stm8开发板STM8系列是意法半导体公司⽣产的8位的单⽚机。

该型号单⽚机分为STM8A、STM8S、STM8L三个系列。

从2008年STM8发布⾄今已有13年,截⽌到2018年底累计出货量已经超过40亿⽚。

4、STM32系列单⽚机stm32芯⽚STM32系列单⽚机是有ST公司推出的,表⽰ARM Cortex-M内核的32位微控制器,这个芯⽚功能就更强⼤了,光是学习起来就有厚厚的⼀本书,这还不包括实际操作实践,从事软件开发的⼯程师,特别是设计⼤型系统对这个芯⽚⼀定不陌⽣。

51单片机学习总结(史上最全版,自己总结)

51单片机学习总结(史上最全版,自己总结)

51单⽚机学习总结(史上最全版,⾃⼰总结)单⽚机学习总结Lesson1 预备知识与点亮⼀个⼆极管⼀、预备知识与流⽔灯1、CPU ROM RAM STC I/O⼝2、电平特性:⾼与低,TTL电平:⾼+5v,低0v;RS232电平:⾼-12v,低+12v,计算机与单⽚机通讯时要加电平转换芯⽚max232(实验板上左下⾓)3、⼆进制:遇⼆进⼀;⼗六进制:⼗进制中的0-15分别表⽰为⼗六进制的0、1....9、A、B、C、D、E、F,⼀般把四个⼆进制数放在⼀起转换为⼀个⼗六进制数,转换时先把⼆进制数转换成⼗进制数,再把⼗进制数转换成⼗六进制数。

0001B>1H;1010B>AH;0010 1100>2CH(这⾥B表⽰的是⼆进制,H表⽰的⼗六进制)。

0x表⽰⼗六进制。

4、⼆进制的逻辑运算:“与”、“?”、“&”;“或”、“+”、“|”;“⾮”“A”;“异或”“⊕”,相同为0,不同为1。

按位与&,按位或|,按位异或~,按位取反~5、芯⽚缺⼝⽅向,芯⽚插反会导致短路。

⼆、80C51系列介绍1、80C51的引脚封装:总线型:有4组⾮总线型:只有20个引脚,送数据时,数据在总线上跑2、C51知识:sfr,特殊功能寄存器声明;sfr16,sfr的16位数据声明;sbit,特殊功能位声明;bit,位变量声明。

例如sfr SCON=0X98,sfr16 T2=0xCC,sbit 0V=PSW^2(第2位定义为ov)。

单⽚机都是从0开始记值。

3、C-51的运算符:4、单⽚机掌握⼏点:5、stc-isp的使⽤就德飞莱单⽚机⽽⾔,单⽚机类型为stc90c516RD+,com类型为com4,在下载程序时,⼀定要先把开发板上的电源断掉,过2秒钟再打开,顺序不能颠倒。

如果此界⾯长期没有变化,考虑以下⼏点:6、Keil的使⽤:(1)、先建⼯程,⽂件名没有后缀名,保存,选择atmel中的80c52(2)、再建⽂件,有后缀名,后缀名.c(c语⾔)或.asm(汇编语⾔)(3)、将⽂件添加在⼯程⾥,在左⽅,右击(5)、先下载程序,后打开电源(6)、注释的⽅式有两种,⼀是//,换⾏⽆效;⼆是/* */,但是注释的语句不编译。

51单片机自学笔记(基础部分)

51单片机自学笔记(基础部分)

一、51单片机的硬件结构1. 硬件结构框图说明:○1微处理器(CPU):51单片机含一个8位CPU,与通用的CPU功能基本相同,含运算器和控制器,不仅可以字节处理,还可以位处理。

例如:未处理、查表、状态检测、中断处理等。

○2数据存储器(RAM):51为128B,52为256B;片外最大可扩展到64K。

○3程序存储器(ROM/EPROM):8031没有,8051有4K的ROM,8751有4K的EPROM;片外可扩展至64K。

○4中断系统:5个中断源,2级优先权。

○5定时器/计数器:2个16位定时/计数器,四种工作方式。

○6串行口:1个全双工串行口,四种工作方式。

可进行串口通信,扩展并行I/O口,多机通信等。

○7P1、P2、P3、P0口:四个8位并行I/O口。

○8特殊功能寄存器(SFR):共21个,对片内部件进行管理、控制、监视;实际上是一些控制寄存器和状态寄存器,是一个具有特殊功能的RAM区。

2. 引脚排列(1)电源及时钟引脚○1电源引脚:Vcc(40脚)解5V电源、Vss(20脚)接地。

○2时钟引脚:两个始终引脚XTAL1、XTAL2外接晶振,或接晶体与片内反相放大器构成振荡器。

XTAL1(19脚):内部反相放大器的输入端。

若接晶振则应接地;XTAL2(18脚):内部反相放大器的输出端。

若采用外部时钟振荡器,该引脚接收时钟振荡信号。

(2)控制引脚○1RST/Vpd(9脚):复位信号输入,高电平有效。

单片机运行时,此脚持续2个机器周期(24个时钟振荡周期)的高电平,就可复位。

平时应为0.5V低电平;Vpd为第二功能,备用电源输入端。

○2:ALE为地址锁存允许,正常工作时,ALE不断输出正脉冲信号。

当访问外部存储器时,ALE输出信号的负跳变沿用作低8位地址的锁存信号;PROG’为编程脉冲输入端。

○3PSEN’(Program Strobe Enable,29脚):程序存储器允许输出控制端。

低电平是外部程序存储器选通。

51单片机总结

51单片机总结

电源控制寄存器 PCON(97H)
PCON:SMOD — — — ;GF1 GF0 PD 1DL (只对SMOD一位进行操作:PCON=0x80(加 倍)/0x00(不加倍)) (SMOD=0/1;当=1时,倍增,16分频;=0时, 32分频) [采用八位自动封装模式]不能按位操作 晶振:11.0592 最大波特率:57600 误差:0 22.1184 115200 0 12 4800 0.16%
AT89S52单片机的最小系统
简单例子:
LED灯:
闪烁、流水灯、霹雳灯等等
继电器 喇叭、蜂鸣器 数码管
一个数码管显示、动态扫描
按键
独立按键、扫描法、线反转法
单片机的中断系统
单片机中断系统
中断的定义
所谓中断,是指CPU正在处理某些事务的时候,外
部又发生了某一事件,请求CPU及时处理。于是,
定时器T0/T1 中断申请过程
在T0/T1允许中断的情况下,TF0/TF1计数溢出时置 位1,供CPU查询,执行中断,然后自动清零,以备继 续计数; 在进入中断服务程序时会自动清零;但在查询方式时 必须软件清零。
定时器方式寄存器TMOD (89H)
(T1)
GATE C/T M1 M0; GATE C/T M1 M0
中断允许寄存器IE (0A8H)
IE:EA — ET2 ES ET1 EX1 ET0 EX0
ES:串行中断允许控制位 =0 时禁止中断; =1 时允许中断。 EA:总的中断允许控制位(总开关): =0 时禁止全部中断;=1 时允许中断
波特率 =
2SMOD fosc
32 12(2n - X)
AT89S52单片机结构
AT89S52单片机基本特性

单片机复习资料

单片机复习资料

51单片机内部结构:集成了中央处理器(CPU)、存储器系统(RAM和ROM)、定时/计数器、并行接口、串行接口、中断系统和一些特殊功能寄存器中央处理器:单片机cpu包含运算部件和控制部件算数逻辑ALU为8位运算器ALU有位计算器可以对一位二进制数据进行置位、清零、求反、测试转移及位逻辑与,或等处理累加器ACC为8位寄存器是CPU中使用最频繁的存储器程序计数器PC是16位寄存器,它存放下一条要执行的指令的地址堆栈指针SP用来控制堆栈段内容的入栈(输入)与出栈(输出),51单片机中SP始终指向栈底位置数据指针DPTR是16位寄存器,通常用DPTR实现对片外数据存储器64KB空间的访问程序存储器:程序存储器外部内部共用64KB存储空间8031,8032内部没有程序存储器,只能外部扩展64KB。

8051,8751内部有4KB程序存储器地址范围0000H-0FFFH;8052,8752内部有8KB程序存储器,地址范围0000H-1FFFH,外部最多可扩展64KBEA引脚接低电平从片外程序存储器取命令,高电平从片内程序存储器取命令8031,8032的EA只能保持低电平(指令只能从片外程序存储器取得)51单片机片内随机存储块128字节编址00H-7FH 特殊功能寄存器128字节编址80H-0FFH 工作寄存器组区:00H-1FH单位为工作寄存器组区共32字节工作寄存器有0,1,2,3四组,每组8个寄存器,依次用R0-R7表示和使用堆栈在存储器中按(先入后出,后入先出)原则进行管理的一段的存储区域,通过堆栈指针SP管理堆栈主要是为子程序调用和中断调用设立的,用于保护断点地址和保护现场状态根据入栈方向堆栈分为向上,向下生长型向上生长型堆栈入栈时SP指针先加1,指向下一个高地址单元,出栈时先把SP指针指向单元的数据送出,再把SP指针减1,数据是向高地址单元储存的;向下生长型堆栈入栈时SP 指针先减1,指向下一个低地址单元,再把数据送入当前SP指针指向的单元,出栈时先把SP指针指向单元的数据送出,再把SP指针加1,数据是向低地址单元储存的51单片机堆栈是向上生长型,位于片内随机储存块中,堆栈指针SP为8位51单片机当数据存储器不够时,可扩展外部数据存储器,扩展外部数据存储器最多为64KB 51单片机输入/输出接口:P0口是三态双向口,可作为地址/数据分时复用接口,也可作为通用I/O接口P1口是准双向口,它只能作为通用I/O接口使用P2口是准双向口,用途为:通用I/O接口和高8位地址线P3口作为通用I/O接口,第二功能输出线为高电平,与非门3的输出取决于锁存器状态,作为第二功能使用时,锁存器Q输出端必须高电平,否则V1管导通引脚将被钳位在低电平外部引脚:外接晶体引脚:XTAL1、XTAL2(19、18引脚) 控制线:ALE/PROG(30引脚)、PSEN(29引脚)、RST/Vpd(9引脚)、EA/Vpp(31引脚)51单片机工作方式:复位方式、程序执行方式、单步执行方式(调试)每一个机器周期包含12个时钟周期,每个机器周期ALE信号固定出现两次,分别在(S1P2、S4P2)每出现一次信号,CPU就进行一次取指令的操作51单片机的寻址方式按操作数的类型分为数的寻址和指令寻址,数的寻址根据数的种类有常数寻址(立即寻址)、寄存器数寻址(寄存器寻址)、存储器数寻址(直接寻址方式、寄存器间接寻址方式、变址寻址方式)和位数据寻址(位寻址)。

(最新整理)51单片机复习要点

(最新整理)51单片机复习要点

定时/计数器1低字节 TH0 8CH
定时/计数器1高字节 TH1 8DH
P1口
P1
90H
97
96 95 94
93
92 91 90
电源控制
PCON 87H SMOD
GF1 GF0 PD IDL
串行口控制
SCON 98H
SM0 SM1 SM2 REN TB8 RB8 TI RI
9F
9E 9D 9C 9B 9A 99 98
9
片内RAM的低128字节单元
分为三个区域:
①寄存器区( 00H~1FH )
4组寄存器区,0组~3组。每组8个寄
存单元(每单元8位),以R0~R7作寄存
单元名,用于暂存运算数据和中间结果。


用PSW中的两位PSW.4和PSW.3来选择其中一

组寄存器区。

位地址
② 位寻址区 ( 20H~2FH)
(最新整理)51单片机复习要点
2021/7/26
1
2021/7/26
2
8051的主要硬件资源有:
◆8位CPU; ◆片内带振荡器,频率范围为1.2~12MHz; ◆256字节片内数据存储器RAM; ◆4KB片内程序存储器ROM; ◆程序存储器的寻址范围为64KB; ◆片外数据存储器RAM的寻址范围64KB; ◆4个8位的并行I/O接口:P0、P1、P2、P3; ◆1个全双工的串行I/O接口,可多机通信; ◆2个16位定时器/计数器:T0、T1; ◆5个中断源。
14
MCS-51单片机的引脚及功能
2021/7/26
40个引脚可分为4部分:
2个主电源引脚 2个外接晶体引脚 4个控制引脚 32个I/O引脚
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《单片机原理与应用》复习提纲第一章第二章MCS-51系列单片机的硬件结构1. MCS-51单片机的总体结构MCS-51单片机的内部结构•8位的CPU;•128个字节的片内RAM;•4K字节的片内ROM程序存储器(8031无)•外部的RAM和ROM的寻址范围为64K•21个字节的专用寄存器•4个8位并行I/O口•1个全双工的串行口•2个16位的定时器/计数器•5个中断源、2个中断优先级MCS-51单片机的总线结构微处理器又称为CPU,是单片机内部的核心部件,它决定了单片机的重要功能特性。

它由运算器和控制器两大部分组成。

对CPU的使用就是对CPU中的寄存器的使用。

•累加器ACC•寄存器B•程序状态字PSW•布尔处理器C•程序计数器PC,16位•数据指针寄存器DPTR,16位DPTR寄存器中存放外部数据存储器地址•堆栈指针SP•2.程序存储器程序存储器通常存放程序指令、常数及表格等,系统在运行过程中不能修改其中的数据。

.程序的几个特殊地址:•复位0000H,PC复位指向该地址•外部中断0 0003H•定时器/计数器0溢出000BH•外部中断1 0013H•定时器/计数器1溢出001BH•串行口中断0023H3.数据存储器•数据存储器则存放缓冲数据,系统在运行过程中可修改其中的数据。

•包括:•1)编址与访问•2)片内数据存储器•3)特殊功能寄存器块片内128字节数据存储器要求熟悉4个工作寄存器区的使用方法RS0,RS1。

如:RS1,RS0=10 , R1的直接地址为11H。

00H~1FH :32个字节,内部RAM的寄存器区共有32个单元,分为4组,每组8单元。

•20H~2FH:16个字节,128位寻址区,128位寻址区的字节地址范围是20H~2FH。

•30H~7FH:通用寄存器区或数据缓冲区,堆栈区。

••堆栈:•使用片内RAM、初始化时SP=07H•51系列单片机的堆栈是向上生长的•一般程序中堆栈的开始:•MOV SP,#60H4.单片机的复位电路高电平复位,一般高电平保持2个机器周期以上有效复位5.时序•(1)振荡周期•(2)状态周期•(3)机器周期•(4)指令周期•外部晶振的2分频是MCS-51单片机的内部时钟周期,6个时钟周期构成了单片机的1个机器周期。

即1个机器周期是外部晶振频率的12分频。

例:单片机的晶振频率为6MHz,执行下列程序需要203 个机器周期和406 微秒时间。

(下列程序中注释的数字为执行该指令所需的机器周期数)MOV R3,#50 ;1LOOP:NOP ;1NOP ;1DJNZ R3,LOOP ;2•RET ;2•第三章MCS-51系列单片机指令系统1.寻址方式1)概述2)寻址就是寻找指令中操作数或操作数所在的地址。

3)所谓寻址方式就是如何找到存放操作数的地址,把操作数提取出来的方法。

它是计算机的重要性能指标之一,也是汇编语言程序设计中最基本的内容之一。

寻址方式说明立即寻址寄存器寻址直接寻址寄存器间接寻址基寄存器加变址寄存器间接寻址相对寻址位寻址2.数据传送类共29条。

按其操作方式,又可把它们分为三种:数据传送、数据交换和栈操作。

助记符:MOV、MOVX、MOVC、数据传输XCH、XCHD、SWAP、数据交换PUSH、POP。

栈操作应用举例:DPTR是数据指针,用于存放16数据,可以存放地址。

1)把片内RAM 6AH单元中的内容传送到片外RAM 3000H单元。

MOV A, 6AHMOV DPTR, #3000HMOVX @DPTR, A2)把片外I/O口地址为2000H的数据读入片内RAM 40H单元中。

MOV DPTR, #2000HMOVX A, @DPTRMOV 40H, A3)把片外I/O口地址为2000H的数据写入片外RAM 4000H单元中。

MOV DPTR, #2000HMOVX A, @DPTRMOV DPTR, #4000HMOVX @DPTR, A4)把外部数据存储器2040H单元内容和片外RAM 2230H单元互换。

MOV DPTR, #2040HMOVX A, @DPTRMOV R1, AMOV DPTR,#2230HMOVX A, @DPTRMOV DPTR,#2040HMOVX @DPTR,AMOV DPTR,#2230HMOV A,R1MOVX @DPTR,A5)已知片内RAM 50H单元中存放数据为0AAH,把此数据值压入堆栈,然后再弹回到40H单元中,设堆栈指针为60H。

MOV SP, #60HMOV 50H, #0AA HPUSH 50HPOP 40H3.算术运算类(24条)加、减、乘、除基本四则运算和增量(加1)、减量(减1)运算。

助记符:ADD、ADDC、INC、DAASUBB、DEC、MUL、DIV共8种操作助记符应用举例:1)将片内RAM 40H和41H单元内容相加,结果放42H。

MOV A,40HADD A, 41HMOV 42H,A2)将片外RAM 2000H和2001H两单元中的BCD码相加,结果放2002H。

MOV DPTR, #2000HMOVX A, @DPTRMOV R1, AMOV DPTR,#2001HMOVX A, @DPTRADD A, R1DA AMOV DPTR,#2002HMOVX @DPTR,A3)设被加数存入片内RAM30H~32H单元中,加数存入片内RAM40H~42H,低位在前,高位在后,各单元中均为压缩的BCD码。

将结果之和分别存入50H~52H单元中。

没有使用寄存器MOV A,30HADD A, 40HDA AMOV 50H ,AMOV A,31HADDC A, 41HDA AMOV 51H ,AMOV A,32HADDC A, 42HDA AMOV 52H ,ARET4)把R1R0和R3R2中的两个4位BCD码数相加,结果送R5R4中,如有进位,则进位位存入位地址20H中。

(这个是平时设计程序时应该想到的)MOV A, R0ADD A, R2DA AMOV R4,AMOV A, R1ADDC A, R3DA AMOV R5,A;假设高位相加有进位CLR 20HJNC L1;判断进位位是否为1,不为1转移。

SETB 20H;(寄存器置位是个什么概念?)L1: SJMP L14. 逻辑运算类(24条)包括清除、求反、移位及与、或、异或等操作。

这类指令有:CLR、CPL、RL、RLC、RR、RRC、ANL、ORL、XRL,共9种操作助记符。

应用举例:1)把累加器A中低4位(高4位清0)送入外部数据存储器的3000H单元。

MOV DPTR,#3000HANL A, #0FH;与命令,屏蔽高四位。

与零与为零,与1与不变MOVX @DPTR, A2)将累加器A的低4位的状态通过P1口的高4位输出。

ANL A, #0FH;屏蔽高四位SWAP A;高低四位交换ANL P1, #0FH;屏蔽高四位ORL P1,A ;两者或,低四位变成高四位输出3)编程将片内RAM 21H单元的低3位和20H单元的低5位合并为一个字节送片内RAM 30H,要求21H的低3位放在高位上。

MOV 30H, 20H ;先把20的低五位放在30中ANL 30H, #1FH;低五位保持不变,高三位为零MOV A, 21H ;把21移入A中SWAP A ;A的高低位互换RL A ;左移,使得原21中第三位变成高三位ANL A, #0E0H ;屏蔽低五位;ORL 30H,A ;或命令得到最终结果5. 控制转移类(17条)计算机在运行过程中,有时因为操作的需要或程序较复杂,程序指令往往不能按顺序逐条执行,需要改变程序运行的方向。

MCS-51的控制转移类指令包括无条件转移、条件转移、调用和返回指令等。

指令有AJMP绝对转移、LJMP长转移、SJMP短转移、JMP A+@DPTR、JZ、JNZ、CJNZ、DJNZ、ACALL、LCALL、RET、RETI、NOP共13种操作助记符。

LJMP、SJMP的转移范围应用举例1)将累加器A的低4位取反4次,高4位不变,每变换一次从P1口输出。

方法1: MOV R0, #0LL: XRL A, #0FH ;异或命令,高位不变,低位为1INC R0 ;加1MOV P1, A ;输出A,高四位不变,低四位输出CJNE R0, #04H,LLRET (这个程序没有看懂!!!)方法2: MOV R0, #04HLL: XRL A, #0FHMOV P1, ADJNZ R0,LLRET6. 位操作类(17条)以进位标志C作为累加器C在使用位操作类指令时要和字节操作类指令区别开来,因为它们的助记符是相同的。

这类指令的助记符有:MOV、CLR、CPL、SETB、ANL、ORL、JC、JNC、JB、JNB、JBC,共11种操作助记符。

应用举例:1)将累加器的ACC.5与00H位128位寻址相与后,通过P1.4输出。

MOV C, ACC.5ANL C,00HMOV P1.4, C7. 伪指令汇编程序对用汇编语言写的源程序进行汇编时,还要提供一些汇编用的指令,例如要指定程序或数据存放的起始地址;要给一些连续存放的数据确定单元等等。

但是,这些指令在汇编时并不产生目标代码,不影响程序的执行,所以称为伪指令。

ORG定位伪指令DB定义字节伪指令DW定义字伪指令EQU赋值伪指令END汇编结束伪指令说明以下指令的意义:1.MOV P1, #82H ;在P1口输出100000102.SWAP A ;A的高低四位互换3.ANL 30H,#20H ;用20H内容与30H内容相与4.DEC @R0 ;R0内容为地址的内容减15.CJNE A, #60H, NEG;A的内容与60H内容相同转移6.SETB C ;进位位置17.RL A ;A左移1位8.MOVX A,@DPTR ;以DPTR内容为地址,取其内容9.ORL 30H,A ;或命令,改变30H 内容10.MOV 30H, 20H ;20H内容转移到30H第四章汇编语言程序设计1.顺序结构的程序应用举例:1)将片外I/O口1000H数据读入片内RAM 30H单元中。

MOV DPTR #1000HMOV A @DPTRMOV 30H A2)把二个外部数据存储器2000H单元和2010H单元内容互换。

MOV DPTR #2000H ;读取2000内容MOV A @DPTR ;把内容放到A中MOV R0 A ;暂时保存2000内容MOV DPTR #2010H ;读取2010内容MOV A @DPTR ;送到A中方法一:MOV DPTR #2000H ;指向2000地址MOV @DPTR A ;把2010内容放到2000中MOV DPTR #2010H ;指向2010地址MOV A R0 ;把2000内容置入A中MOV @DPTR A ;把A中内容置入2010方法二:XCH A R0MOV DPTR #2010HMOV @DPTR AMOV A R0MOV DPTR #2000HMOV @DOTR A3)将31H、30H和41H、40H中的两个4位BCD码数相加,结果送31H、30H中,(低位在低字节,高位在高字节)方法一:MOV R0 #30HMOV R1 #40HMOV R2 #02HCLC CLOOP: MOV A R1ADDC A R0DA AMOV @R0 AINC R0INC R1DJNZ R2, LOOP(程序不确定)方法二:CLC CMOV A 30HADD A 40HDA AMOV 30H AMOV A 31HADDC A 41HDA AMOV 31H;假如高位相加有进位CLC 32HJNC L1判断进位位是否为1,不为1转移SETB 32H ???????(能否这样置位,置位只能是位置位,不可以寄存器置位)L1:SJMP L14) 将片内RAM 20H单元中的数拆成两段,每段4位,并将其分别存入21H、22H单元中。

相关文档
最新文档