【02358单片机原理及应用】第三、四、五章考试复习自考复习

第3章 80C51单片机指令系统

考试知识点:

1、寻址方式    

(1)立即寻址(#data,#data16)例:MOV A,#00H

(2)直接寻址(direct)内部RAM:00~7FH、特殊功能寄存器 例:MOV A,00H

(3)寄存器寻址(A、B、Rn、DPTR)

(4)寄存器间接寻址(@Ri、@DPTR)例:MOVX A,@DPTR

(5)变址寻址(@A+DPTR,@A+PC)例:MOVC A,@A+DPTR

(6)位寻址(bit)20~2FH:00~7FH、特殊功能寄存器 例:MOV C,00H

(7)相对寻址(rel)例:JZ rel

2、数据传送类指令

(1)内部RAM数据传送指令

    MOV 目的,源;目的→源

    交换指令:

    XCH A,direct/Rn/@Ri;A和源交换

    XCHD A,@Ri;只换低4位

    SWAP A;A的高低4位交换

注意:A作目的操作数会影响P。

    PUSH direct

    POP direct

(2)外部RAM数据传送指令

    MOVX A,@Ri/@DPTR;外部地址内容→A

    MOVX@Ri/@DPTR,A;A→外部地址内容

(3)ROM数据传送指令

    MOVC A,@A+DPTR/@A+PC;查表指令

3、算术运算指令

(1)加法指令

    ADD/ADDC A,#data/ direct/ Rn/@Ri;会影响CY、AC、OV、P

    INC A/ direct/ Rn/@Ri/DPTR;加1,P

    DA  A;十进制调整,大于9加6

(2)减法指令

    SUBB A,#data/ direct/ Rn/@Ri;会影响CY、AC、OV、P

    DEC A/ direct/ Rn/@Ri;减1

(3)乘除指令

    MUL  AB;(A)*(B)→BA,会影响CY=0,OV,P

    DIV  AB;(A)/(B)的商→A,余数→B

4、逻辑运算及移动指令

(1)逻辑运算指令

    ANL/ORL/XRL A,#data/ direct/ Rn/@Ri

    ANL/ORL/XRL direct,A/#data

与→清0,或→置1,异或→取反

CLR/CPL  A;清0和取反

(2)移位指令

    RL/RR/RLC/RRC A

注意:每左移一位相当于乘2,每右移一位相当于除2,带进位的移会影响CY和P。

5、控制转移类指令

(1)无条件转移指令

    LJMP addr16;addr16→PC,64KB

    AJMP addr11;(PC)+2→PC,addr11→PC10~0,2KB

    SJMP rel;(PC)+2+rel→PC,256B

    JMP @A+DPTR;(A)+(DPTR)→PC,64KB

(2)条件转移指令

    累加器A判0转移指令

JZ rel;A为0

    JNZ rel;A不为0

    比较不相等转移指令

    CJNE A/Rn/@Ri,#data,rel

    CJNE A,direct,rel

注意:第一操作数和第二操作数不相等,程序转移,若第一大于第二,CY=0,第一小于第二,CY=1。第一操作数和第二操作数相等,程序顺序执行,CY=0。

减1不为0转移指令

    DJNZ Rn/direct,rel;(Rn/direct)-1不为0,程序转移。

(3)调用和返回指令

    LCALL addr16;(PC)+3→PC,先入低8位,再入高8位,addr16→PC

    ACALL addr11;(PC)+2→PC,先入低8位,再入高8位,addr11→PC10~0

    RET;先出高8位,再出低8位

6、位操作类指令

(1)位传送指令

    MOV C,bit

    MOV bit,C

(2)位赋值指令

    CLR C/bit

    SETB C/bit

(3)位逻辑运算指令

    ANL/ORL C,bit或/bit

    CPL C/bit

注意:实现逻辑表达式

(4)位控制转移指令

    JC rel;(CY)=1

    JNC rel;(CY)=0

    JB bit,rel;(bit)=1

    JNB bit,rel;(bit)=0

    JBC bit,rel;(bit)=1,转移,清0

第4章 80C51单片机汇编语言程序设计

考试知识点:

1、汇编语言的语句格式

【标号:】 操作码  【操作数】  【;注释】

标号:语句地址的标志符号。

操作码:语句执行的操作内容,用指令助记符表示。

操作数:为指令操作提供数据。

注释:对语句的解释说明。

2、伪指令

    起始地址ORG、结束END、赋值EQU、字节DB、字DW、空DS、位BIT

3、汇编语言程序的基本结构形式

(1)顺序结构

(2)分支结构

(3)循环结构:数据传送问题、求和问题

4、定时程序

例:延时100ms的子程序,设晶振频率6MHZ。

   DELAY:MOV  R5,#250

   LOOP2:MOV  R4,#49

   LOOP1:NOP

           NOP

           DJNZ  R4,LOOP1

           DJNZ  R5,LOOP2

           RET

5、查表程序

(1)要查找的数据在表中的位置给A

(2)表的首地址给DPTR

(3)MOVC A,@A+DPTR

(4)数据表

第5章 80C51单片机的中断与定时

考试知识点:

1、中断源和中断请求标志位

中断名称

中断请求标志

中断向量

外部中断0

IE0

0003H

T0中断

TF0

000BH

外部中断1

IE1

0013H

T1中断

TF1

001BH

串行发送中断

TI

0023H

串行接收中断

RI

0023H

2、和中断相关的寄存器的设置

(1)定时器控制寄存器TCON

格式如下:

D7

D6

D5

D4

D3

D2

D1

D0

TCON

TF1

TR1

TF0

TR0

IE1

IT1

IE0

IT0

位地址

8F

8E

8D

8C

8B

8A

89

88

IT0=0,为电平触发方式。      低电平有效。

IT0=1,为边沿触发方式。      输入脚上电平由高到低的负跳变有效。

IE0=1,说明有中断请求,否则IE0=0。

(2)中断允许控制寄存器IE

 其各位的定义如下:

D7

D6

D5

D4

D3

D2

D1

D0

代号

EA

ES

ET1

EX1

ET0

EX0

EA: 开放或禁止所有中断。ES:开放或禁止串行通道中断。ET1:开放或禁止定时/计数器T1溢出中断。EX1:开放或禁止外部中断源1。ET0:开放或禁止定时/计数器T0溢出中断。EX0:开放或禁止外部中断源0。

(3)中断优先级控制寄存器IP

    各位的定义如下:

D7

D6

D5

D4

D3

D2

D1

D0

代号

PS

PT1

PX1

PT0

PX0

1为高优先级、0为低优先级。如果同级的多个中断请求同时出现,则按CPU查询次序确定哪个中断请求被响应。查询次序为:外部中断0、T0中断、外部中断1、T1中断、串行中断。

3、响应中断的必要条件

(1)有中断源发出中断请求。

(2)中断允许寄存器IE相应位置“1”,CPU中断开放(EA=1)。

(3)无同级或高级中断正在服务。

(4)现行指令执行到最后一个机器周期且已结束。若现行指令为RETI或需访问特殊功能寄存器IE或IP的指令时,执行完该指令且其紧接着的指令也已执行完。

中断响应的主要内容是由硬件自动生成一条长调用指令,指令格式为“LCALL addr16”。这里的addr16就是程序存储器中断区中相应中断的入口地址。

4、中断程序设计

(1)在0000H处存放一条无条件转移指令转到主程序。

(2)在入口地址处存放一条无条件转移指令转到中断服务子程序。

(3)设置触发方式(IT0/IT1)

(4)设置IE和IP。

(5)设置SP。

(6)原地踏步。

(7)中断服务子程序。最后RETI。

5、定时计数的基本原理

(1)定时功能:每个机器周期计数器加1。

(2)计数功能:T0(P3.4)和T1(P3.5)输入计数脉冲,每一来一个脉冲计数器加1。

6、用于定时计数的寄存器的设置

(1)定时器控制寄存器TCON

格式如下:

D7

D6

D5

D4

D3

D2

D1

D0

TCON

TF1

TR1

TF0

TR0

IE1

IT1

IE0

IT0

位地址

8F

8E

8D

8C

8B

8A

89

88

TF1、TF0——计数溢出标志位。当计数器产生计数溢出时,由硬件置1。采用查询方式,它是供查询的状态位。采用中断方式,作为中断请求信号。

TR1、TR0——计数运行控制位。为1时,启动定时器/计数器工作;为0时,停止定时器/计数器工作。

(2)工作方式控制寄存器TMOD

其格式如下:

GATE:门控位。当GATE=1时,同时INTx为高电平,且TRx置位时,启动定时器,外部启动。当GATE=0时,每当TRx置位时,就启动定时器,是内部启动方式。 

C/T:选择定时器功能还是计数器功能。该位置位时选择计数器功能;该位清零时选择定时器功能。 

M1M0:这两位指定定时/计数器的工作方式,可形成四种编码,对应四种工作方式: 

M1

M0

方式

说明

0

0

0

TLx低5位与THx中8位构成13位计数器

0

1

1

TLx与THx构成16位计数器

1

0

2

可自动再装入的8位计数器,当TLx计数溢出时,THx内容自动装入TLx。

1

1

3

对定时器0,分成两个8位的计数器;对定时器1,停止计数。

7、各种工作方式计数初值计算公式

方式0:

定时时间T=(8192-计数初值)×机器周期

计数次数C=8192-X

方式1:

定时时间T=(65536-计数初值)×机器周期

计数次数C=65536-X

方式2:

定时时间T=(256-计数初值)×机器周期

计数次数C=256-X

8、定时器程序设计

查询方式:

(1)在0000H处存放一条无条件转移指令,转到主程序。

(2)设置工作方式TMOD。

(3)设置计数初值。

(4)启动定时计数。

(5)等待时间到或计数计满。

     LOOP:JBC  TF0/TF1,LOOP1

            SJMP  LOOP

     LOOP1:……

(6)重新设置计数初值(除方式2),再转第5步。

中断方式:

(1)在0000H处存放一条无条件转移指令,转到主程序。

(2)在入口地址处存放一条无条件转移指令转到中断服务子程序。

(3)设置工作方式TMOD。

(4)设置计数初值。

(5)启动定时计数。

(6)设置IE和IP。

(7)设置SP。

(8)原地踏步。

(9)中断服务子程序。重新设置计数初值(除方式2),最后RETI。

例  选用定时器/计数器T1工作方式0产生500µS定时,在P1.1输出周期为1ms的方波,设晶振频率=6MHZ。

    (1)根据定时器/计数器1的工作方式,对TMOD进行初始化。

    按题意可设:GATE=0(用TR1位控制定时的启动和停止),  C/T  =0(置定时功能),M1M0=00(置方式0),因定时器/计数器T0不用,可将其置为方式0(不能置为工作方式3),这样可将TMOD的低4位置0,所以(TMOD)=00H。

(2)计算定时初值

(  2^13  - X)×2=500  

X=7942D=1111100000110B

将低5位送TL1,高8位送TH1得:(TH1)=F8H,(TL1)=06H

(3) 编制程序(查询方式)

         ORG  0000H

         LJMP  MAIN

         ORG  0300H

 MAIN: MOV  TMOD,#00H    ;TMOD初始化

         MOV  TH1,#0F8H    ;设置计数初值

         MOV  TL1,#06H

         SETB  TR1          ;启动定时

 LOOP: JBC  TF1,LOOP1      ;查询计数溢出

         AJMP  LOOP

 LOOP1:CPL  P1.1            ;输出取反

MOV  TL1,#06H     ;重新置计数初值

         MOV  TH1,#0F8H

         AJMP  LOOP         ;重复循环

         END

例  用定时器/计数器T1以工作方式2计数,要求每计满100次进行累加器加1操作。

(1)TMOD初始化

     M1M0=10(方式2),C/T  =1(计数功能),GATE=0(TR1启动和停止),因此(TMOD)=60H。

    (2)计算计数初值

          2^8  -100=156D=9CH   所以 TH1=9CH

(3)编制程序(中断方式)

       ORG  0000H

       AJMP  MAIN     ;跳转到主程序

       ORG  001BH     ;定时/计数器1中断服务程序入口地址

       AJMP  INSERT1

       ORG  0030H

MAIN:MOV  TMOD #60H  ;TMOD初始化

       MOV  TL1,#9CH  ;首次计数初值

       MOV  TH1,#9CH  ;装入循环计数初值

       SETB  TR1       ;启动定时/计数器1 

SETB  EA        ;开中断

       SETB  ET1

       SETB  PT1       ;T1为高优先级

       MOV  SP,#40H

 SJMP  ﹩        ;等待中断

INSERT1:INC  A

          RETI

          END

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/831750.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

古典密码学简介

目录 C. D. Shannon: 一、置换密码 二、单表代替密码 ① 加法密码 ② 乘法密码 ③密钥词组代替密码 三、多表代替密码 代数密码 四、古典密码的穷举分析 1、单表代替密码分析 五、古典密码的统计分析 1、密钥词组单表代替密码的统计分析 2、英语的统计规…

电商核心技术揭秘四十七:社会化营销中的社区建设

相关系列文章 电商技术揭秘相关系列文章合集(1) 电商技术揭秘相关系列文章合集(2) 电商技术揭秘相关系列文章合集(3) 电商技术揭秘四十一:电商平台的营销系统浅析 电商技术揭秘四十二&#…

【业务场景】京东实际场景,频繁GC引起的CPU飙高问题的解决

目录 1.业务介绍 2.判断任务类型 3.CPU飙高的原因 1.业务介绍 本文的业务场景是京东零售线公开的一篇文章,文章内容详细介绍了京东零售线如何将广告相关的定时任务从半小时优化到秒级的,原文链接: 半小时到秒级,京东零售定时…

登封授牌,花落郑州

近日,“大禹故里故都”授牌仪式在河南省登封市隆重举行,河南省社科院有关单位将匾牌授予登封市。报道称:至此,千百年来备受争议的大禹故里、故都问题,终于尘埃落定,华夏立国始祖大禹终于魂归故里。 略有微词…

QT+串口调试助手+基本版

一、创建串口调试助手UI界面 1、首先生成串口连接必要参数界面,删除关闭串口控件 2、给参数下拉框添加常见的选项,删除关闭串口控件 3、将串口调试助手参数界面布局整齐,删除关闭串口控件 4、更改控件名字,方便后续编程&#xff…

OpenHarmony实战开发-动画曲线、如何实现动画衔接

UI界面除了运行动画之外,还承载着与用户进行实时交互的功能。当用户行为根据意图变化发生改变时,UI界面应做到即时响应。例如用户在应用启动过程中,上滑退出,那么启动动画应该立即过渡到退出动画,而不应该等启动动画完…

特斯拉FSD落地分析

再续前缘 媒体的神经从马斯克的湾流私人飞机起飞那一刻开始,就开始被牵动着。28/4 号的突然访华,在大多数人看来其实已经早已是计划之中,从摆在台面上的消息来看,主要目的是为了在大陆推广FSD的落地,也为8月份FSD 的正式版本做预热,和中国上海的第一次联姻造就了特斯拉m…

孪生网络、匹配网络和原型网络:详解与区分

孪生网络、匹配网络和原型网络 孪生网络、匹配网络和原型网络:详解与区分孪生网络(Siamese Networks)核心概念工作原理 匹配网络(Matching Networks)核心概念工作原理 原型网络(Prototypical Networks&…

基于yolov2深度学习网络模型的鱼眼镜头中人员检测算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 load yolov2.mat% 加载训练好的目标检测器 img_size [448,448]; imgPath test/; % 图像…

2023第十四届蓝桥杯国赛C/C++ 大学 A 组 圆上的连线

思路:很显然总的方案数等于挑选偶数点的方案数乘以对应偶数点的连线方案数之和,挑选偶数点的方案数靠组合数得出,偶数点的连线方案数就是个卡特兰数。具体为什么是卡特兰数,可以任选一个点,枚举这个点所连边的位置&…

第五篇:通信脉络:探索计算机外设与总线体系的精髓

通信脉络:探索计算机外设与总线体系的精髓 1 引言 在这个技术日新月异的时代,理解计算机系统的基本构成要素 —— 总线和外设 —— 对于每个从事技术工作的人来说都是至关重要的。这些组件不仅是计算机通信的基石,也直接影响着系统的性能、效…

Enum,你学会了吗?

大家后,我是小七。 今天给大家分享下java.lang包下面Enum类的面试点,本文阅读需3分钟。 Java轮子 分享程序员日常、职场、互联网项目、开发经验,专注技术提升 12篇原创内容 公众号 在 Java 编程中,枚举类型(Enum&…

水仙花数问题

问题描述: 求出0~100000之间的所有“水仙花数”并输出。 “水仙花数”是指一个n位数,其各位数字的n次方之和确好等于该数本身,如:153=1^3+5^3+3^3,则153是一个“水仙花数”。 #in…

一个完全免费、私有且本地运行的搜索聚合器-FreeAskInternet

什么是 FreeAskInternet FreeAskInternet 是一个完全免费、私有且本地运行的搜索聚合器,使用 LLM 生成答案,无需 GPU。用户可以提出一个问题,系统将使用 searxng 进行多引擎搜索,并将搜索结果组合到 ChatGPT3.5 LLM 中&#xff0…

如何优雅的分析你的微信朋友圈和聊天记录

微信朋友圈、个人聊天记录、微信群聊天记录: 蓝奏云:链接:​www.lanzoub.com/b00rn0g47e 密码:9hww

Pytorch基础:torch.load_state_dict()方法在加载时不会检查类型

相关阅读 Pytorch基础https://blog.csdn.net/weixin_45791458/category_12457644.html?spm1001.2014.3001.5482 笔者在使用torch.nn.module的load_state_dict中出现了一个问题,一个被注册的张量在加载后居然没有变化,一开始以为是加载出现了问题&#…

漏洞挖掘之某厂商OAuth2.0认证缺陷

0x00 前言 文章中的项目地址统一修改为: a.test.com 保护厂商也保护自己 0x01 OAuth2.0 经常出现的地方 1:网站登录处 2:社交帐号绑定处 0x02 某厂商绑定微博请求包 0x02.1 请求包1: Request: GET https://www.a.test.com/users/auth/weibo?…

SpringCloud微服务:Eureka 和 Nacos 注册中心

共同点 都支持服务注册和服务拉取都支持服务提供者心跳方式做健康检测 不同点 Nacos 支持服务端主动检测提供者状态:临时实例采用心跳模式,非临时(永久)实例采用主动检测模式Nacos 临时实例心跳不正常会被剔除,非临时实…

深度学习中权重初始化的重要性

深度学习模型中的权重初始化经常被人忽略,而事实上这是非常重要的一个步骤,模型的初始化权重的好坏关系到模型的训练成功与否,以及训练速度是否快速,效果是否更好等等,这次我们专门来看看深度学习中的权重初始化问题。…

my-room-in-3d中的电脑,电视,桌面光带发光原理

1. my-room-in-3d中的电脑,电视,桌面光带发光原理 最近在github中,看到了这样的一个项目; 项目地址 我看到的时候,蛮好奇他这个光带时怎么做的。 最后发现,他是通过,加载一个 lightMap.jpg这个…