没有合适的资源?快使用搜索试试~ 我知道了~
一、计数概念的引入 二、计数器的容量 三、定时 四、溢出 五、任意定时及计数的办法 刚才已研究过,计数器的容量是 16 位,也就
资源详情
资源评论
资源推荐
51 单片机汇编语言教程:15 课:单片机位操作指令
前面那些流水灯的例程,我们已经习惯了“位”一位就是一
盏灯的亮和灭,而我们学的指令却全都是用“字节”来介绍的:字节的移动、加
法、减法、逻辑运算、移位等等。用字节来处理一些数学问题,比如说:控制冰
箱的温度、电视的音量等等很直观,能直接用数值来表在。可是如果用它来控制
一些开关的打开和合上,灯的亮和灭,就有些不直接了,记得我们上次课上的流
水灯的例程吗?我们知道送往 P1 口的数值后并不能马上知道哪个灯亮和来灭,
而是要化成二进制才知道。工业中有很多场合需要处理这类开关输出,继电器吸
合,用字节来处理就显示有些麻烦,所以在 8031 单片机中特意引入一个位处理
机制。
位寻址区
在 8031 中,有一部份 RAM 和一部份 SFR 是具有位寻址功能的,也就是说这些 RAM
的每一个位都有自已的地址,能直接用这个地址来对此进行操作。
内部 RAM 的 20H-2FH 这 16 个字节,就是 8031 的位寻址区。看图 1。可见这里面
的每一个 RAM 中的每个位我们都可能直接用位地址来找到它们,而不必用字节地
址,然后再用逻辑指令的方式。
能位寻址的特殊功能寄存器
8031 中有一些 SFR 是能进行位寻址的,这些 SFR 的特点是其字节地址均可被 8
整除,如 A 累加器,B 寄存器、PSW、IP(中断优先级控制寄存器)、IE(中断
允许控制寄存器)、SCON(串行口控制寄存器)、TCON(定时器/计数器控制寄
存器)、P0-P3(I/O 端口锁存器)。以上的一些 SFR 我们还不熟,等我们讲解
相关内容时再作详细解释。
位操作指令
MCS-51 单片机的硬件结构中,有一个位处理器(又称布尔处理器),它有一套
位变量处理的指令集。在进行位处理时,CY(就是我们前面讲的进位位)称“位
累加器”。有自已的位 RAM,也就是我们刚讲的内部 RAM 的 20H-2FH 这 16 个字
节单元即 128 个位单元,还有自已的位 I/O 空间(即
P0.0…..P0.7,P1.0…….P1.7,P2.0……..P2.7,P3.0……..P3.7)。当然在物理
实体上它们与原来的以字节寻址用的 RAM,及端口是完全相同的,或者说这些 RAM
及端口都能有两种使用办法。
位传送指令
MOV C,BIT
MOV BIT,C
这组指令的功能是实现位累加器(CY)和其它位地址之间的数据传递。
例:MOV P1.0,CY ;将 CY 中的状态送到 P1.0 管脚上去(如果是做算术运算,我
们就能通过观察知道现在 CY 是多少啦)。
MOV P1.0,CY ;将 P1.0 的状态送给 CY。
位修正指令
位清 0 指令
CLR C ;使 CY=0
CLR bit ;使指令的位地址等于 0。例:CLR P1.0 ;即使 P1.0 变为 0
位置 1 指令
SETB C ;使 CY=1
SETB bit ;使指定的位地址等于 1。例:SETB P1.0 ;使 P.0 变为 1
位取反指令
CPL C ;使 CY 等于原来的相反的值,由 1 变为 0,由 0 变为 1。
CPL bit ;使指定的位的值等于原来相反的值,由 0 变为 1,由 1 变为 0。
例:CPL P1.0
以我们做过的实验为例,如果原来灯是亮的,则执行本指令后灯灭,反之原来灯
是灭的,执行本指令后灯亮。
位逻辑运算指令
位与指令
ANL C,bit ;CY 与指定的位地址的值相与,结果送回 CY
ANL C,/bit ;先将指定的位地址中的值取出后取反,再和 CY 相与,结果送回 CY,
但注意,指定的位地址中的值本身并不发生变化。
例:ANL C,/P1.0
设执行本指令前,CY=1,P1.0 等于 1(灯灭),则执行完本指令后 CY=0,而 P1.0
也是等于 1。
可用下列程序验证:
ORG 0000H
AJMP START
ORG 30H
START: MOV SP,#5FH
MOV P1,#0FFH
SETB C
ANL C,/P1.0
MOV P1.1,C ;将做完的结果送 P1.1,结果应当是 P1.1 上的灯亮,而 P1.0 上的灯
还是不亮
位或指令
ORL C,bit
ORL C,/bit
这个的功能大家自行分析吧,然后对照上面的例程,编一个验证程序,看看你相
得对吗?
位条件转移指令
判 CY 转移指令
JC rel
JNC rel
第一条指令的功能是如果 CY 等于 1 就转移,如果不等于 1 就次序执行。那么转
移到什么地方去呢?我们能这样理解:JC 标号,如果等于 1 就转到标号处执行。
这条指令我们在上节课中已讲到,不再重复。
第二条指令则和第一条指令相反,即如果 CY=0 就转移,不等于 0 就次序执行,
当然,我们也同样理解: JNC 标号
判位变量转移指令
JB bit,rel
JNB bit,rel
第一条指令是如果指定的 bit 位中的值是 1,则转移,不然次序执行。同样,我
们能这样理解这条指令:JB bit,标号
第二条指令请大家先自行分析
下面我们举个例程说明:
ORG 0000H
LJMP START
ORG 30H
START:MOV SP,#5FH
MOV P1,#0FFH
MOV P3,#0FFH
L1: JNB P3.2,L2 ;P3.2 上接有一只按钮,它按下时,P3.2=0
JNB P3.3,L3 ;P3.3 上接有一只按钮,它按下时,P3.3=0
LJM P L1
L2: MOV P1,#00H
LJMP L1
L3: MOV P1,#0FFH
LJMP L1
END
把上面的例程写入片子,看看有什么现象………
按下接在 P3.2 上的按钮,P1 口的灯全亮了,松开或再按,灯并不熄灭,然后按
下接在 P3.3 上的按钮,灯就全灭了。这像什么?这不就是工业现场经常用到的
“启动”、“停止”的功能吗?
怎么做到的呢?一开始,将 0FFH 送入 P3 口,这样,P3 的所有引线都处于高电
平,然后执行 L1,如果 P3.2 是高电平(键没有按下),则次序执行 JNB P3.3,L3
语句,同样,如果 P3.3 是高电平(键没有按下),则次序执行 LJMP L1 语句。
这样就不停地检测 P3.2、P3.3,如果有一次 P3.2 上的按钮按下去了,则转移到
L2,执行 MOV P1,#00H,使灯全亮,然后又转去 L1,再次循环,直到检测到 P3.3
为 0,则转 L3,执行 MOV P1,#0FFH,例灯全灭,再转去 L1,如此循环不已。大
家能否稍加改动,将本程序用 JB 指令改写?
51 单片机汇编语言教程:16 课:单片机定时器与计数器
一、计数概念的引入
从选票的统计谈起:画“正”。这就是计数,生活中计数的例程处处可见。
例:录音机上的计数器、家里面用的电度表、汽车上的里程表等等,再举一个工
业生产中的例程,线缆行业在电线生产出来之后要计米,也就是测量长度,怎么
测法呢?用尺量?不现实,太长不说,要一边做一边量呢,怎么办呢?行业中有
很巧妙的办法,用一个周长是 1 米的轮子,将电缆绕在上面一周,由线带轮转,
这样轮转一周不就是线长 1 米嘛,所以只要记下轮转了多少圈,就能知道走过的
线有多长了。
二、计数器的容量
从一个生活中的例程看起:一个水盆在水龙头下,水龙没关紧,水一滴滴地滴入
盆中。水滴持续落下,盆的容量是有限的,过一段时间之后,水就会逐渐变满。
录音机上的计数器最多只计到 999….那么单片机中的计数器有多大的容量呢?
8031 单片机中有两个计数器,分别称之为 T0 和 T1,这两个计数器分别是由两个
8 位的 RAM 单元组成的,即每个计数器都是 16 位的计数器,最大的计数量是
65536。
三、定时
8031 中的计数器除了能作为计数之用外,还能用作时钟,时钟的用途当然很大,
如打铃器,电视机定时关机,空调定时开关等等,那么计数器是如何作为定时器
来用的呢?
一个闹钟,我将它定时在 1 个小时后闹响,换言之,也能说是秒针走了(3600)
次,所以时间就转化为秒针走的次数的,也就是计数的次数了,可见,计数的次
数和时间之间的确十分相关。那么它们的关系是什么呢?那就是秒针每一次走动
的时间正好是 1 秒。
<单片机定时器记数器结构>
剩余37页未读,继续阅读
阿汝娜老师
- 粉丝: 22
- 资源: 309
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Picasso_v3.1 2.ipa
- chromedriver-mac-arm64.zip
- 蓝zapro.apk
- chromedriver-linux64.zip
- UCAS研一深度学习实验-MNIST手写数字识别python源码+详细注释(高分项目)
- 基于Python和PyTorch框架完成的一个手写数字识别实验源码(带MINIST手写数字数据集)+详细注释(高分项目)
- 基于Matlab在MNIST数据集上利用CNN完成手写体数字识别任务,并实现单层CNN反向传播算法+源代码+文档说明(高分项目)
- NVIDIA驱动、CUDA和Pytorch及其依赖
- 基于SVM多特征融合的微表情识别python源码+项目说明+详细注释(高分课程设计)
- html动态爱心代码一(附源码)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0