任务四 消防水箱水位的控制

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

程序设计
CLR P1.0 SETB P1.1 SETB P1.2
L1: JNB P1.2, L1 SETB P1.0
L2: JB P1.1, L2 CLR P1.0 SJMP L1 END
精品课件
相关知识
1、单片机如何控制单根I/O口线? 我们在上面任务中看到,P3口共有8根口线,现在我们
只要控制其中一根线,在单片机中能不能实现?答 案是肯定的。因为单片机中有一类位操作指令。
N

Y
A=0?
A←64H
N A←X+2
A←X




存数,(31H)←A

结束
精品课件


• NEG
• ZER0
• 求X+2
• 数据
• ZER0:MOV Y=100

ORG 2000H
MOV A,30H
;取数
JB ACC.7 , NEG ; 负 数 , 转
JZ ZER0
;为零,转
ADD A,#02H ; 为 正 数 ,
执行 MOV P1.3,C MOV P1.2,C
后 (P1)=?
(P1)=11001101B
例3 将P1.2送给P1.6
MOV C,P1.3 MOV P1.6,C
精品课件
返回本节
2 位清零和置位指令
CLR C ;C←0 CLR bit ;(bit)←0
SETB C ;C←1 SETB bit ;(bit)←1
1. 顺序结构

顺序程序是一种最简单,最基本的程
序。

特点:程序按编写的顺序依次往下执行
每一条指
• 96H
• 【+ 例4.1】 三7个5H 单
令,直到最后一条。 将单片机内部RAM40H、41H、42H
• 1 0BH
元内的无符号数相加,
+和1 F6存H 入R0(高)和R1
• 2 01H 4-1所示。

MOV B,A ;将X送入B寄存器

MUL AB ;求X2,结果在累加器中

MOV R1,A
;将结果暂存于R1寄存器中

MOV A,31H;取31H单元数据

MOV B,A ;将Y送入B寄存器

MUL AB ;求Y2,结果在累加器中

ADD A,R1
;求X2+ Y2

MOV 32H,A ;保存数据
精品课件
• 2.汇编语言的语句格式

汇编语言源程序是由汇编语句(即指令)
组其成典的型。的汇汇编编语语句言格语式句如一下般:由四部分组成。

[标号:]
操作码 [操作数][;注释]
例如 START:MOV A,30H ; ( A ) ←(30H)
精品课件
(1)标号
• 是指语句地址的名字。
• 命名规则:第一字符必须用英文字母;第 二个
(低)中。程序流程如图 精品课件
开始
(40H) (A)
(A)+(41H) (A)

4-1 4-1
(A) (R1)

C (R0)

(42H) (A)
序 流

(R1)+(A) (R1)

(R0)+C (R0)
结束
精品课件

ORG
1000H

MOV A,40H ;取值

ADD A,41H ;40H和41H单元相加
AJMP SAVE ;转到SAVE,保存
A,# 64H
精品课件
AJMP SAVE
;数据为零, 返回;本节转
3. 循环结构
• (1)循环程序的结构(如图4-5所示)
• ☆循环程序一般包括如下四个部分:
• ①初始化
精品课件
返回本节
3 位逻辑运算指令
ANL C,bit ANL C,/bit ORL C,bit ORL C,/bit CPL C CPL bit
;C←C∧(bit) ;C←C∧(bit) ;C←C∨(bit) ;C←C∨(bit)
;C←C ;(bit)←(bit)
精品课件
返回本节
综合举例与练习
例1 试编程完成 P1.0=(ACC.0∧P2.3)∨C
• 3.高级语言:是一种不依赖具体计算机的 语言,接近于人的自然语言,是面向过程或 问题而独立于机器的精品通课件用语言,必须要通过
返回本节
二、 汇编语言的语句格式
• 1.汇编语言的指令类型 • MCS-51单片机汇编语言,包含两类不同性质
的指令。 • (1)基本指令:即指令系统中的指令。它们都
是机器能够执行的指令,每一条指令都有对应 的机器码。 • (2)伪指令:汇编时用于控制汇编的指令。它 们都是机器不执行的指令,无机器码。

TAB: DB 45ቤተ መጻሕፍቲ ባይዱ,T4A9B=H8,0000HAH

TAB1:DB 07H TAB1=8003H
精品课件
8000H
45H
8001H
49H
8002H
0AH
8003H
07H
8004H
4.DW ——字数据定义伪指令
• 格式:[标号:] DW 16位字 数据表

• 功能:从ROM某一地址单元开始,

存入一组规定好的
16位二进制数。
• 例:ORG 3000H

TAB: DW 5678H,1234H

DW 3CH
精品课件

3000H 56H 3001H 78H 3002H 12H 3003H 34H
3004H 00H 3005H 3CH
5.DS ——空间定义伪指令
• 格式:[标号:] DS 表达式
MOV 10H,C MOV C,ACC.0 ANL C,P2.3 ORL C,10H MOV P1.0,C
例2 已知A、B、C、D代表位地址,试编程实现
D=A B+A B
答:MOV C,B ANL C,A MOV D,C
MOV C,A ANL C,B ORL C,D MO精V 品D课,件C
例3 用软件实现下图所示的P10 ~ P13间的逻辑运算。
精品课件
• 【例4.4】 设X存在30H单元中,根据下式

X+2 X>0
• Y = 100 X=0

X X<0

求出Y值,将Y值存入31H单元。
• 解:根据数据的符号位判别该数的正负, 若最高位为0,再判别该数是否为0。程序
流程如图4-4所示。
精品课件
4-4 4.3
开始
取数,A←(30H)

Y A为负数?
• 二、 结构化程序设计

1. 顺序结构

2. 分支结构

3. 循环结构

4. 子程序结构
精品课件
返回本章首页
一、 汇编语言程序设计步骤
• 1.分析问题 • 2.确定算法 • 3.绘制程序流程图 • 4.分配内存单元 • 5.编写汇编语言源程序 • 6.调试程序
精品课件
返回本节
二、 结构化程序设计

MOV R1,A ;和送R1中
• CLR A
• ADDC A,#00H
• MOV R0,A
• MOV A,42H
• ADD A,R1
• MOV R1,A
• CLR A
• ADDC A,R0
• MOV R0,A • SJMP $
精品课件
• 【例4.2】 设X、Y两个小于10的整数分别存 于片内

30H、31H单元,试求两
精品课件
返回本章首页
一、 程序设计语言
• 按照语言的结构及其功能可以分为三种:
• 1.机器语言:机器语言是用二进制代码0和 1表示指令和数据的最原始的程序设计语言, 计算机可以直接识别和执行。
• 2.汇编语言:是一种符号化语言,用助记 符代替“0”、“1”,计算机不能直接执行, 要通过汇编程序汇编成机器语言后再执行。 不同的计算机汇编语言是不同的。
数的平方和并将结

果存于32H单元。
• 解:两数均小于10,故两数的平方和小于 100,可利用

乘法指令求平方。程序流程如图4-2
所示。

精品课件
开始
取数据X

求X2
4-2 4.2
暂存X2

取数据Y
求Y2


求X2+Y2


保存平方和

结束
精品课件

ORG
2000H

MOV A,30H
;取30H单元数据
K=0 K=1 A0 A1
K=? … K=n
……
(b) An
N B
(c)
图4-3 分支程序结构流程图
返回
精品课件
(2)分支结构程序设计举例
• 【例4.3】根据下列程序段,画出程序 流程图。

JZ L1

MOV R1,Y#0FFH
N

SJMP L2 (A)=0
• L1:MOV R1,#00H
• L2:SJMP L2 (R1) 00H (R1) FFH
格式:符号名 EQU(或=)表达式
给指定的符号名赋予一个确定的数值。
例如:SUM EQU 22H MOV A,SUM
(A)=22H
精品课件
3.DB ——字节数据定义伪指令
• 格式:[标号:] DB 8位字节数 据表

• 功能:从ROM某一地址单元开始,

存入一组规定好的8
位二进制数。
• 例:ORG 8000H
• 综合举例与练习
精品课件
返回本章首页
1 位变量传送指令
MOV C,bit ;C←(bit) MOV bit,C ;bit←C
精品课件
例1 以知片内RAM 的(2FH)=10110101B 执行 MOV C,2FH.7或MOV C,7FH 结果 C=?
C=1 例2 若C=1,(P1)=11000101B
• 功能:从标号指定的地址单元开
00H
始,
2000H
00H

2001H
在ROM中保留由表达 2002H
00H 00H
式所指定
2003H
00H

个数的存储单元作 2004H
00H
为备用的空
2005H

间,并均填以零。 2006H
• 例:ORG 2000H

AB:DS 06H

TAB:MOV A,B
2006H
位地址的四种表示: 1)使用直接位地址表示;如20H、30H、33H等; 2)使用位寄存器名来表示;如C、OV、F0等; 3)用字节寄存器名后加位数来表示;如PSW.4、P0.5ACC.3等; 4)字节地址加位数来表示;如20.0、30.4、50.7等。
精品课件
• 位变量传送指令 • 位清零和置位指令 • 位逻辑运算指令
P1.0
&
P1. 1P1.2
1
P1.3
解:
MOV C,P1.1
ORL C,P1.2
ANL C,P1.0
MOV P13,C
精品课件
第四章 MCS—51单片机的程序 设计
汇编语言基本概念
汇编语言程序设计
本章思考题与作业
精品课件
汇编语言基本概念
• 一、 • 二、 • 三、
程序设计语言 汇编语言的语句格式 伪指令
要求:水位<A 放水;水位>B停放 电路中:
1)输出:P1.0=1时,M放水; P1.0=0时,M关
2)输入:水位<A, T1、T2截止 → P1.1=1,P1.2=1
水位>B, T1、T2导通 → P1.1=0, P1.2=0
A<水位<B, T1止,T2通→ P1.1=1,
P1.2=0
中断方式可提高CPU的效率 精品课件
• SJMP $
;暂停精品课件
返回本节
2. 分支结构
• (1)分支结构的基本形式

分支结构有三种基本形式,如图
4-3所示。

分支结构程序的设计要点如下:

①先建立可供条件转移指令测试的
条件。

②选用合适的条件转移指令。

③在转移的目的地址处设定标号。
精品课件
条件满足? Y
A
(a)
N
条件满足?
Y A
三、 伪指令
精品课件
返回本节
1.ORG —汇编起始伪指令
• 格式:ORG m
1000H 74H
20H
• 功能:用来规定程序段在存储器中存放的起始地址。
• 例如:ORG
1000H

START: MOV 说A明,:#2该0H程序段是从地址是1000H
• • 2.EQU——赋值伪指令
MOV B,#单30元H 开始存放的 。 ﹍
3.5 单片机控制水箱水位
〖学习目标〗: 通过学习任务的完成方法,学 习MCS-51单片机的位操作指令。
〖任务描述〗: 消防水箱总是要保证有一 定的水位,以防火灾发生,如果单纯靠人 工操作,时间不允许,而且还会有险情发 生。如果用单片机来代替人工就可以解决 这个问题。
精品课件
硬件电路
精品课件
水池水位自动控制装置
• 母或数字0~9;组
字符以后可以用字
• 超过6个字X 符。
成标号的字符不能
X
• 注:特殊X功能寄存器名(SFR)、X 伪指令、

精品课件
(2)操作码
• 规定了语句执行的具体操作。
(3)操作数
提供了操作所需要的数据或地 址。 (4)注释
对语句进行解释或说明,增加可读性。
精品课件
返回本节
ORG EQU DB DW DS BIT END
精品课件
6.BIT—位地址符号定义伪指令
格式:符号名 BIT 表达式 功能:将位地址赋给指定的符号名。
例: A1 BIT P1.0
MOV C,MAO1V C,P1.0
• 7.END—汇编结束伪指令
格式: [标号:] END [ 表达式]
功能:结束汇编。
精品课件
返回本节
汇编语言程序设计
• 一、 汇编语言程序设计步骤
2、MCS-51单片机有哪些位操作指令? MCS-51单片机有一个位处理机,它以进位标志做为位
累加器,以内部RAM可寻址的128个为存储位 。 既然有位处理机功能,所以也就有相应的位操作指令
集,下面我们分别谈论。
精品课件
位操作:布尔操作,以二进制位为单位进行运算,由 布尔处理器实现。 操作数范围: C,位寻址区的位,11个可位寻址的寄存器
相关文档
最新文档