项目一_____蜂鸣器单片机控制(精品).ppt
《项目一_____蜂鸣器单片机控制(精品).ppt》由会员分享,可在线阅读,更多相关《项目一_____蜂鸣器单片机控制(精品).ppt(71页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、v项目目标项目目标v项目任务项目任务v项目分析项目分析v项目预备知识项目预备知识v项目实施项目实施v知识点链接知识点链接项目目标项目目标通过单片机控制蜂鸣器鸣叫,学会分通过单片机控制蜂鸣器鸣叫,学会分析析单片机最小系统单片机最小系统的电路结构及各部分的的电路结构及各部分的功能,初步学习汇编程序的分析方法,并功能,初步学习汇编程序的分析方法,并能熟练运用能熟练运用MOV、LJMP、SETB、CPL、DJNZ、LCALL、RET基本指令。基本指令。项目任务项目任务要求应用要求应用AT89C51芯片,控制一只蜂鸣器芯片,控制一只蜂鸣器发声。设计单片机控制电路并编程实现此操作。发声。设计单片机控制电路
2、并编程实现此操作。项目分析项目分析本项目是本项目是单片机最小系统单片机最小系统的简单应用。设的简单应用。设计一个单片机的最小系统,利用计一个单片机的最小系统,利用P1.0引脚输出引脚输出电位的变化,控制蜂鸣器的鸣叫,电位的变化,控制蜂鸣器的鸣叫,P1.0引脚的引脚的电位变化可以通过指令来控制。电位变化可以通过指令来控制。CPUCPU总是按照一定的时钟节拍与时序工作:总是按照一定的时钟节拍与时序工作:振荡周期振荡周期/时钟周期:时钟周期:TcTc=晶振频率晶振频率foscfosc的倒数的倒数状态周期:状态周期:Ts=2Ts=2个时钟周期个时钟周期(TcTc)(很少用到此概念)很少用到此概念)机器
3、周期:机器周期:Tm=6Tm=6个状态周期个状态周期(Ts)=12(Ts)=12个振荡周期个振荡周期(TcTc)指令周期指令周期:Ti:Ti:执行一条指令所需的机器周期执行一条指令所需的机器周期(Tm)(Tm)数数 1 1个机器周期个机器周期 =12=12个振荡周期;个振荡周期;1 1个指令周期个指令周期 =1=1、2 2、4 4个机器周期个机器周期P1P2S1P2振荡周期(时钟周期)振荡周期(时钟周期)状态周期状态周期机器周期机器周期机器周期机器周期指令周期指令周期XTAL2(OSC)S2S3S4S5S6S1S2S4S5S3S6P1P1P1P1P1P1P1P1P1P1P1P2P2P2P2P2
4、P2P2P2P2P2MCS-51MCS-51单片机各种周期的相互关系单片机各种周期的相互关系若若MCS-51单单片片机机外外接接晶晶振振为为12MHz时时,则单片机的四个周期的具体值为:则单片机的四个周期的具体值为:振荡周期振荡周期1/12MHz1/12s0.0833s状态周期状态周期1/6s0.167s机器周期机器周期1s指令周期指令周期14s 指令的表示方式称为指令格式,汇编语言指令格指令的表示方式称为指令格式,汇编语言指令格式如下:式如下:标号标号:操作码操作码目的操作数目的操作数,源操作数源操作数;注释注释指令中每个部分之间必须用空格分隔,空格数可以不指令中每个部分之间必须用空格分隔,
5、空格数可以不止一个。在用键盘录入程序时,可以使用止一个。在用键盘录入程序时,可以使用键将键将两个部分分开。其中两个部分分开。其中,带带为可选项为可选项,可以根据具体可以根据具体指令和编程需要给出。指令和编程需要给出。例如例如START:MOVA,#20H;把数把数20H送入累加器送入累加器A中中标号是语句地址的标志符号,代表该语句指令代码第标号是语句地址的标志符号,代表该语句指令代码第一个字节的地址。一个字节的地址。(1)标号由标号由18个个ASCII字符组成字符组成,但头一个字符必须是但头一个字符必须是字母字母,其余字符可以是字母、数字或其它特定字符。其余字符可以是字母、数字或其它特定字符。
6、(2)不能使用本汇编语言已经定义了的符号作为标记,不能使用本汇编语言已经定义了的符号作为标记,如指令助记符、伪指令记忆符以及寄存器的符号名称等如指令助记符、伪指令记忆符以及寄存器的符号名称等(3)标号后边必须跟以冒号。标号后边必须跟以冒号。(4)同一标号在一个程序中只能定义一次,不能重复定同一标号在一个程序中只能定义一次,不能重复定义。义。1、标 号2、操作码:表示指令的操作功能。、操作码:表示指令的操作功能。操作码用助记符表示,操作码用助记符表示,它它代表了指令代表了指令 的操作功能的操作功能。操作码是指令的必需部分,操作码是指令的必需部分,是指令的核心,不可缺少。是指令的核心,不可缺少。3
7、、操作数:参加操作的数据或数据地址。操作数:参加操作的数据或数据地址。操作数与操作码之间用空格分隔,操作数与操作数与操作码之间用空格分隔,操作数与操作数之间用逗号操作数之间用逗号“,”分隔。分隔。操作数可以是操作数可以是数据数据,也可以是,也可以是数据的地址数据的地址、数数据地址的地址据地址的地址或或操作数的其他信息操作数的其他信息。操作数可分为目的操作数和源操作数。操作数可分为目的操作数和源操作数。操作数可用二进制数、十进制数或十六进制操作数可用二进制数、十进制数或十六进制数表示。数表示。操作数的个数可以是操作数的个数可以是0 03 3个。个。4 4、注释:指令功能说明。注释:指令功能说明。
8、注释属于非必需项,是为便于阅读,注释属于非必需项,是为便于阅读,对对指令功能作的说明和注解。指令功能作的说明和注解。注释必须以注释必须以“;”开始。开始。汇编程序在上述每段的开头或结尾使用分界符把各汇编程序在上述每段的开头或结尾使用分界符把各段分开,以便于区分。分界符可以是空格、冒号、段分开,以便于区分。分界符可以是空格、冒号、分号等。这些分界符在分号等。这些分界符在MCS51汇编语言中使用汇编语言中使用情况如下:情况如下:(1)冒号(:)用于标号之后。)冒号(:)用于标号之后。(2)空格()空格()用于操作码和操作数之间。)用于操作码和操作数之间。(3)逗号(,)用于操作数之前。)逗号(,)
9、用于操作数之前。(4)分号(;)用于注释之前。)分号(;)用于注释之前。5、分界符(分隔符)分界符(分隔符)寻址就是寻找指令中操作数或操作数所在寻址就是寻找指令中操作数或操作数所在的地址。所谓寻址方式,就是如何找到存放操的地址。所谓寻址方式,就是如何找到存放操作数的地址,把操作数提取出来的方法。通常作数的地址,把操作数提取出来的方法。通常指源操作数的寻址方式。指源操作数的寻址方式。MCS-51系列单片机寻址方式共有七种:寄系列单片机寻址方式共有七种:寄存器寻址、直接寻址、立即数寻址、寄存器间存器寻址、直接寻址、立即数寻址、寄存器间接寻址、变址寻址、相对寻址、位寻址。接寻址、变址寻址、相对寻址、
10、位寻址。1、寄存器寻址、寄存器寻址寄存器寻址是指操作数存放在某一寄存器中,指令中给出寄存器寻址是指操作数存放在某一寄存器中,指令中给出寄存器名,就能得到操作数。寄存器可以使用寄存器组寄存器名,就能得到操作数。寄存器可以使用寄存器组R0R7中某一个或其它寄存器(中某一个或其它寄存器(A,B,DPTR等)。例如:等)。例如:MOVA,R0;(R0)AMOVP1,A;(;(A)P1ADDA,R0;(A)+(R0)A寄存器寄存器目的地目的地R0R7ABDPTRMOV A,R1 2、直接寻址、直接寻址在指令中直接给出操作数所在的存储单元的地址,在指令中直接给出操作数所在的存储单元的地址,称为直接寻址方式
11、。在称为直接寻址方式。在8051中,使用直接寻址方式可中,使用直接寻址方式可访问片内访问片内RAM的的128个单元以及所有的特殊功能寄存器个单元以及所有的特殊功能寄存器(SFR),对于特殊功能寄存器,既可以使用他们的地),对于特殊功能寄存器,既可以使用他们的地址,也可以使用他们的名字。例如:址,也可以使用他们的名字。例如:MOVA,3AH;(3AH)A又如:又如:MOVA,P1;(P1口口)A也可写为:也可写为:MOVA,90H;90H是是P1口的地址。口的地址。XXH目的地目的地内部RAMSFRXXHMOV A,3AH例如,指令例如,指令MOV AMOV A,3AH3AH执行的操作是将内部执
12、行的操作是将内部RAM RAM 中地址为中地址为3AH3AH的单元内容传送到累加器的单元内容传送到累加器A A中,中,其操作数其操作数3AH3AH就是存放数据的单元地址就是存放数据的单元地址.3、立即数寻址、立即数寻址指令操作码后面紧跟的是一字节或两字节操作数,指令操作码后面紧跟的是一字节或两字节操作数,用用#号表示,以区别直接地址。例如号表示,以区别直接地址。例如:MOVA,#3AH;3AHAMCS-51系列单片机有一条指令,要求操作码后面系列单片机有一条指令,要求操作码后面紧跟的是两个字节立即数,即紧跟的是两个字节立即数,即MOVDPTR,#DATA16目的地目的地MOV A,#30H速递
13、快信速递快信A4、寄存器间接寻址。、寄存器间接寻址。寄寄存存器器中中的的内内容容是是一一个个地地址址,由由该该地地址址单单元元寻寻址址到到所需的操作数所需的操作数.例如:例如:MOV R1MOV R1,#30H;(R1)#30H;(R1)立即数立即数30H 30H MOV R1 MOV R1,#0FH;(30H)#0FH;(30H)立即数立即数0FH0FH MOV A MOV A,R1 ;(A)(30H)=#0FHR1 ;(A)(30H)=#0FH注意注意:“间间接接”表表示示某某寄寄存存器器中中的的“内内容容”只只是是一一个个“单单元元地地址址”,这这个个地地址址单单元元中中存存放放的的数数
14、据据才才是是要要找找的的“操作数操作数”。例如,指令例如,指令MOVA,R0执行的操作是将执行的操作是将R0的内的内容作为内部容作为内部RAM的地址,再将该地址单元中的内的地址,再将该地址单元中的内容取出来送到累加器容取出来送到累加器A中,中,如图所示。如图所示。.内部内部4765H65HR0.A如图所示:(R0)=65H (65H)=47H5、变址寻址、变址寻址也称为也称为:基址寄存器基址寄存器+变址寄存器变址寄存器间接寻址间接寻址以以16位的地址指针寄存器位的地址指针寄存器DPTR或或16位的位的PC寄存器为寄存器为基址寄存器,以累加器基址寄存器,以累加器A为变址寄存器,两者中的为变址寄存
15、器,两者中的“内容内容”形成一个形成一个16位的位的“地址地址”,该,该“地址地址”所指所指的存储单元中的内容才是操作数。用变址寻址方式只的存储单元中的内容才是操作数。用变址寻址方式只能访问程序存储器,访问的范围为能访问程序存储器,访问的范围为64KB,当然,这,当然,这种访问只能从种访问只能从ROM中读取数据而不能写入。例如:中读取数据而不能写入。例如:MOVCA,A+DPTR;(A)+(DPTR)A 基址寄存器基址寄存器基址寄存器基址寄存器1000H1000HPCDPTRA程序存储器程序存储器65H65H.1000H+30H1030H3065H设:设:A中已存有中已存有#30H,DPTR中
16、已存有中已存有#1000HMOVCA,A+DPTR;(;(A)(A)+(DPTR)操作:将操作:将30H+1000H=1030H单元中的数放进累加器单元中的数放进累加器A6、相对寻址、相对寻址 相对寻址只出现在相对转移指令中。相对转移相对寻址只出现在相对转移指令中。相对转移指令执行时,是以当前的指令执行时,是以当前的PC值加上指令中规定的偏值加上指令中规定的偏移量移量rel而形成实际的转移地址。这里所说得而形成实际的转移地址。这里所说得PC的当的当前值是执行完相对转移指令后的前值是执行完相对转移指令后的PC值,一般将相对值,一般将相对转移指令操作码所在的地址称为源地址,转移后的转移指令操作码所
17、在的地址称为源地址,转移后的地址称为目的地址。于是有:地址称为目的地址。于是有:目的地址目的地址=源地址源地址+2(相对转移指令字节数)(相对转移指令字节数)+rel51单片机指令系统中相对转移指令既有双字节的,单片机指令系统中相对转移指令既有双字节的,也有三字节的。也有三字节的。例如:例如:SJMPrel以以当当前前的的PC值值加加上上指指令令中中给给出出的的相相对对偏偏移移量量rel而而形形成成转转移移目目的的地地址的寻址方式。址的寻址方式。2000H+2H+28HSJMP 28H202AH程序存储器程序存储器2000H2002H源源地地址址目的地址rel转移指令本身字节数rel是有符号的
18、8位二进制数,用补码表示。相对偏移在127128字节单元之间。7、位寻址、位寻址采用位寻址方式的指令,操作数是采用位寻址方式的指令,操作数是8位二进制数中的某位二进制数中的某一位。指令中给出的是位地址,是片内一位。指令中给出的是位地址,是片内RAM某个单元中的某某个单元中的某一位的地址。位地址在指令中用一位的地址。位地址在指令中用bit表示。表示。例:例:CLRP1.0;(P1.0)0SETBACC.7;(ACC.7)1CPLC;(C)NOT(C)位地址常用下列三种方式表示;位地址常用下列三种方式表示;(1)直接使用位地址表示。对于)直接使用位地址表示。对于20H2FH的的16个单元共个单元共
19、128位,位地址分布是位,位地址分布是00H7FH。(2)对于特殊功能寄存器,可以直接用寄存器名字加位数)对于特殊功能寄存器,可以直接用寄存器名字加位数表示,如表示,如PSW.3、ACC.5等。等。(3)对于定义了位名字的特殊位,可以直接用其位名表示,)对于定义了位名字的特殊位,可以直接用其位名表示,例如:例如:CY、AC等。等。寻址方式寻址方式寻址空间寻址空间立即数寻址立即数寻址程序存储器程序存储器ROM、数据存储器、数据存储器RAM直接寻址直接寻址片内片内RAM低低128B,特殊功能寄存器,特殊功能寄存器寄存器寻址寄存器寻址通用寄存器通用寄存器R0-R7,其他寄存器,其他寄存器A、B、DP
20、TR寄存器间接寻址寄存器间接寻址片内片内RAM低低128B【R0、R1、SP(仅(仅PUSH、POP)】片外片外RAM(R0、R1、DPTR)变址寻址变址寻址程序存储器、数据存储器、(程序存储器、数据存储器、(A+PC、A+DPTR)相对寻址相对寻址程序存储器程序存储器256B(PC+偏移量)偏移量)位寻址位寻址片内片内RAM的的20H-2FH字节地址、部分特殊功能寄存器字节地址、部分特殊功能寄存器寻址方式及对应存储器空间寻址方式及对应存储器空间(1)Rn(n=07)当前选中的工作寄存器当前选中的工作寄存器R0R7。(2)Ri(i=0,1)当前选中的工作寄存器组中,可作为间址寄存器当前选中的工
21、作寄存器组中,可作为间址寄存器的两个工作寄存器的两个工作寄存器R0、R1。(3)#data8位立即数。位立即数。(4)#data1616位立即数。位立即数。(5)direct8位片内位片内RAM单元(包括单元(包括SFR)的直接地址。)的直接地址。(6)addr1111位目的地址,用于位目的地址,用于ACALL和和AJMP指令中。指令中。(7)addr1616位目的地址,用于位目的地址,用于LCALL和和LJMP指令中。指令中。(8)rel补码形成的补码形成的8位地址偏移量。位地址偏移量。(9)bit片内直接寻址位地址。片内直接寻址位地址。(10)间接寻址方式中,表示间址寄存器的符号。间接寻址
22、方式中,表示间址寄存器的符号。(11)/位操作指令中,表示对该位先取反再参与操作,但位操作指令中,表示对该位先取反再参与操作,但不影响该位原值。不影响该位原值。(12)()(X)表示表示X中的内容。中的内容。(13)(X)由由X指出的地址单元中的内容。指出的地址单元中的内容。(14)指令操作流程,将箭头左边的内容送入箭头右边的单元指令操作流程,将箭头左边的内容送入箭头右边的单元。寻址方式中常用符号注释寻址方式中常用符号注释练练习习说明下列指令中源操作数采用的寻址方式。说明下列指令中源操作数采用的寻址方式。51系列单片机指令系统由系列单片机指令系统由111条指令条指令组成。可分为五大类:数据传送
23、指令(组成。可分为五大类:数据传送指令(28条),算术运算指令(条),算术运算指令(24条),逻辑运算条),逻辑运算及移位指令(及移位指令(25条),控制转移指令(条),控制转移指令(17条),位操作指令或布尔操作(条),位操作指令或布尔操作(17条)。条)。1、数据传送指令、数据传送指令CPU在进行算术和逻辑运算时,总需要有操作数。在进行算术和逻辑运算时,总需要有操作数。所以,数据的传送是一种最基本,最主要的操作。在通所以,数据的传送是一种最基本,最主要的操作。在通常的应用程序中,传送指令占有很大的比例。数据传送常的应用程序中,传送指令占有很大的比例。数据传送是否灵活,迅速,对整个程序的编写
24、和执行都起着很大是否灵活,迅速,对整个程序的编写和执行都起着很大的作用。的作用。2、算术运算指令、算术运算指令算术运算指令主要是执行加、减、乘、除法四则算术运算指令主要是执行加、减、乘、除法四则运算。另外运算。另外MCS-51指令系统中有相当一部分是进行加指令系统中有相当一部分是进行加1、减减1操作,操作,BCD码的运算和调整等,都归类为算术运算码的运算和调整等,都归类为算术运算指令。需要指出的是,除加、减指令。需要指出的是,除加、减1指令外,这类指令大多指令外,这类指令大多数都会对数都会对PSW(程序状态字)有影响。(程序状态字)有影响。3、逻辑运算及移位指令、逻辑运算及移位指令逻辑运算和移
25、位指令有与、或、异或、求反、左右移位、逻辑运算和移位指令有与、或、异或、求反、左右移位、清清0等逻辑操作,有直接寻址、寄存器寻址和寄存器间址寻等逻辑操作,有直接寻址、寄存器寻址和寄存器间址寻址等寻址方式。这类指令一般不影响程序状态字(址等寻址方式。这类指令一般不影响程序状态字(PSW)标)标志。志。4、控制转移类指令、控制转移类指令控制转移指令用于控制程序的流向,所控制的范围即为控制转移指令用于控制程序的流向,所控制的范围即为程序存储器区间。程序存储器区间。MCS-51系列单片机的控制转移指令相对系列单片机的控制转移指令相对丰富,有可对丰富,有可对64kB程序空间地址单元进行访问的长调用、长程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 项目 _ 蜂鸣器 单片机 控制 精品
限制150内