项目一蜂鸣器的单片机控制

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

若MCS-51单片机外接晶振为12MHz时, 则单片机的四个周期的具体值为:
振荡周期=1/12MHz=1/12μs=0.0833μs 状态周期=1/6μs=0.167μs 机器周期=1μs 指令周期=1~4μs
项目预备知识:汇编语言指令格式
指令的表示方式称为指令格式,汇编语言指令格 式如下:
[标号:]操作码 [目的操作数][,源操作数][;注释]
所需的操作数. 例如: MOV R1,#30H ;(R1)← 立即数30H
MOV @R1,#0FH ;(30H)←立即数0FH
MOV A,@R1 ;(A)←((30H))=#0FH 注意: “间接”表示某寄存器中的“内容”只是一个“单
项目一:蜂鸣器的鸣叫控制
❖项目目标 ❖项目任务 ❖项目分析 ❖项目预备知识 ❖项目实施 ❖知识点链接
☼项目目标
通过单片机控制蜂鸣器鸣叫,学会分 析单片机最小系统的电路结构及各部分的 功能,初步学习汇编程序的分析方法,并 能熟练运用MOV、LJMP、SETB、CPL、 DJNZ、LCALL、RET基本指令。
指令中每个部分之间必须用空格分隔,空格数可以 不止一个。在用键盘录入程序时,可以使用<Tab>键 将两个部分分开。其中,带[ ]为可选项,可以根据具体 指令和编程需要给出。
例如
START : MOV A , #20H ; 把数20H送入累加器A 中
项目预备知识:汇编语言指令格式
1、标 号
标号是语句地址的标志符号,代表该语句指令代码第 一个字节的地址。 (1) 标号由1~8个ASCII字符组成,但头一个字符必须是字 母,其余字符可以是字母、数字或其它特定字符。 (2) 不能使用本汇编语言已经定义了的符号作为标记,如 指令助记符、伪指令记忆符以及寄存器的符号名称等 (3) 标号后边必须跟以冒号。 (4) 同一标号在一个程序中只能定义一次,不能重复定义。
Βιβλιοθήκη Baidu
2 、操作码:表示指令的操作功能。
① 操作码用助记符表示, 它代表了指令 的操作功能。
② 操作码是指令的必需部分, 是指令的核心,不可缺少。
3 、 操作数:参加操作的数据或数据地址。
① 操作数可以是数据,也可以是数据的地址、 数据地址的地址或操作数的其他信息。
② 操作数可分为目的操作数和源操作数。
机器周期
指令周期
机器周期
XTAL2 (OSC)
S1
S2
S3
S4
S5
S6
S1
S2
S3
S4
S5
S6
P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2
振荡周期(时钟周期)
状态周期
MCS-51单片机各种周期的相互关系
3、立即数寻址 指令操作码后面紧跟的是一字节或两字节操作数,
用 # 号表示,以区别直接地址。例如: MOV A, #3AH ;3AH→A
MCS-51系列单片机有一条指令,要求操作码后 面紧跟的是两个字节立即数,即
MOV DPTR, #DATA16
目的地
速递快信
MOV A,#30H
30H A
4、寄存器间接寻址。 寄存器中的内容是一个地址,由该地址单元寻址到
寄存器名,就能得到操作数。寄存器可以使用寄存器组R0~R7 中某一个或其它寄存器(A,B,DPTR等)。例如:
MOV A,R0 ;(R0 )→A MOV P1,A ;(A)→P1 ADD A, R0 ;(A)+(R0) →A
目的地
MOV A,R1
寄存器
R0~R7 A B
DPTR
2、直接寻址
在指令中直接给出操作数所在的存储单元的地址, 称为直接寻址方式。在8051中,使用直接寻址方式可 访问片内RAM的128个单元以及所有的特殊功能寄存 器(SFR),对于特殊功能寄存器,既可以使用他们 的地址,也可以使用他们的名字。例如:
寻址就是寻找指令中操作数或操作数所在 的地址。所谓寻址方式,就是如何找到存放操 作数的地址,把操作数提取出来的方法。通常 指源操作数的寻址方式。
MCS-51系列单片机寻址方式共有七种:寄 存器寻址、直接寻址、立即数寻址、寄存器间 接寻址、变址寻址、相对寻址、位寻址。
1、寄存器寻址 寄存器寻址是指操作数存放在某一寄存器中,指令中给出
☼项目任务 要求应用AT89C51芯片,控制一只蜂鸣器
发声。设计单片机控制电路并编程实现此操作。
☼项目分析 本项目是单片机最小系统的简单应用。设
计一个单片机的最小系统,利用P1.0引脚输出 电位的变化,控制蜂鸣器的鸣叫,P1.0引脚的 电位变化可以通过指令来控制。
项目预备知识:CPU的时序
CPU总是按照一定的时钟节拍与时序工作: ➢ 振荡周期/时钟周期:Tc=晶振频率fosc的倒数 ➢ 状态周期:Ts=2个时钟周期(Tc)(很少用到此概念) ➢ 机器周期:Tm=6个状态周期(Ts)=12个振荡周期(Tc) ➢ 指令周期: Ti:执行一条指令所需的机器周期(Tm)数 ➢ 1个机器周期 = 12个振荡周期; ➢ 1个指令周期 = 1、2、4个机器周期
MOV A, 3AH ;(3AH) →A
又如:
MOV A, P1 ;(P1口) →A
也可写为: MOV A, 90H ; 90H是P1口的地址。
目的地
MOV A,3AH
XXH
内部RAM SFR XXH
内部 RAM
A
88 H
88H 3AH
例如,指令MOV A,3AH执行的操作是将内部 RAM 中地址为3AH的单元内容传送到累加器A 中,其操作数3AH就是存放数据的单元地址.
③ 操作数可用二进制数、十进制数或十六进制 数表示。
④ 操作数的个数可以是0~3个。
⑤ 操作数与操作码之间用空格分隔,操作数与 操作数之间用逗号“,”分隔。
4 、注释:指令功能说明。
① 注释属于非必需项,是为便于阅读, 对 指令功能作的说明和注解。
② 注释必须以“;”开始。
5 、分界符(分隔符)
汇编程序在上述每段的开头或结尾使用分界符把各 段分开,以便于区分。分界符可以是空格、冒号、 分号等。这些分界符在MCS-51汇编语言中使用 情况如下: (1)冒号(:)用于标号之后。 (2)空格( )用于操作码和操作数之间。 (3)逗号(,)用于操作数之前。 (4)分号(;)用于注释之前。
项目预备知识:寻址方式
相关文档
最新文档