02 单片机应用技术基本功课件

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

项目二单片机输出控制电路的制作项目基本技能广告灯电路的制作任务一继电器控制电路的制作任务三音频控制电路的制作任务二程序调试任务四程序烧写任务四项目基本知识知识点一MCS-51单片机I/O口简介知识点一MCS-51单片机常用输出接口电路知识点一MCS-51单片机内部硬件资源知识点一程序编写及相关指令项目二单片机输出控制电路的制作项目学习目标任务一广告灯电路的制作任务要求单片机的I/O口作输出口,接8个LED发光二极管,通过编程实现发光二极管的点亮、闪烁和流水灯效果。项目基本技能1.硬件电路制作(1)电路原理图(2)制作要点及元器件清单通电之前,先用万用表检查各种电源线与地线之间是否有短路现象。然后给硬件系统加电,检查所有插座或器件的电源端是否有符合要求的电压值、接地端电压是否为0V。在不插上单片机时,模拟单片机输出低电平,检查相应的外部电路是否正常。方法是:用一根导线将低电平(接地端)分别引到P1.0到P1.7相对应的集成电路插座的管脚上,观察相应的发光二极管是否正常发光。(3)电路的调试2.程序编写(1)发光二极管的点亮欲点亮某只二极管,只需使与之相连的口线输出低电平即可。点亮从高位到低位的第1、3、5、7只二极管,实现的方法有字节操作和位操作两种。方法一(字节操作):ORG0000H;复位入口地址LJMPMAIN;转移到主程序MAINMAIN:MOVP1,#55H;将立即数55H(即二进制数01010101B)送到P1口LJMPMAIN;循环执行主程序(2)发光二极管的闪烁欲使某位二极管闪烁,可先点亮该位,再熄灭,然后循环。方法二(位操作):ORG0000H;复位入口地址LJMPMAIN;转移到主程序MAINMAIN:CPLP1.7;P1.7取反LCALLDELAY;调延时子程序LJMPMAIN;循环执行主程序DELAY:MOVR0,#0FFH;延时子程序LOOP2:MOVR1,#0FFHLOOP1:DJNZR1,LOOP1DJNZR0,LOOP2RET(3)流水灯效果ORG0000H;复位入口地址LJMPSTART;转移到程序初始化部分STARTSTART:MOVA,#7FH;初始化A值,使最高位为“0”MAIN:MOVP1,A;A值送P1口LCALLDELAY;调延时子程序RRA;循环右移LJMPMAIN;循环执行主程序DELAY:MOVR0,#0FFH;延时子程序LOOP2:MOVR1,#0FFHLOOP1:DJNZR1,LOOP1DJNZR0,LOOP2RET任务二音频控制电路的制作任务要求单片机的P1.0驱动扬声器发出不同频率、不同长短的声音。项目基本技能1.硬件电路制作(1)电路原理图(2)制作要点及元器件清单通电之前先用万用表检查各种电源线与地线之间是否有短路现象。给硬件系统加电,检查所有插座或器件的电源端是否有符合要求的电压值,接地端电压是否为0V。不插入单片机,用一根导线,导线的一端接+5V电源,另一端碰触IC插座的1脚,听扬声器是否发出“咔咔”声。(3)电路的调试2.程序编写(1)单频率声音ORG0000H;复位入口地址LJMPMAIN;转移到主程序MAINMAIN:CPLP1.0;P1.0取反LCALLDELAY;调延时子程序LJMPMAIN;循环执行主程序DELAY:MOVR0,#07H;延时子程序LOOP2:MOVR1,#1FHLOOP1:DJNZR1,LOOP1DJNZR0,LOOP2RET请读者修改延时时间,听音调的变化。2)双音报警声(本程序可模拟出非常急促的双音报警声。)ORG0000HLJMPMAINMAIN:MOVR0,#0FFHLOOP1:CPLP1.0LCALLDELAY1DJNZR0,LOOP1MOVR0,#0FFHLOOP2:CPLP1.0LCALLDELAY2DJNZR0,LOOP2LJMPMAINDELAY1:MOVR6,#07HD1:MOVR7,#20HDJNZR7,$DJNZR6,D1RETDELAY2:MOVR4,#07HD2:MOVR5,#50HDJNZR5,$DJNZR4,D2RET任务三继电器控制电路的制作任务要求单片机的P1.0使继电器吸合和释放。项目基本技能1.硬件电路制作(1)电路原理图(2)制作要点及元器件清单通电之前先用万用表检查各种电源线与地线之间是否有短路现象。然后给硬件系统加电,检查所有插座或器件的电源端是否有符合要求的电压值,接地端电压是否为0V。不插入单片机,用一根导线,导线的一端接+5V电源,另一端碰触IC插座的1脚,听继电器是否有吸合声。(3)电路的调试2.程序编写实现继电器周期性的吸合和释放的程序ORG0000H;复位入口地址LJMPMAIN;转移到主程序MAINMAIN:CPLP1.0;P1.0取反,继电器交替吸合和释放LCALLDELAY;调延时子程序LJMPMAIN;循环执行主程序DELAY:MOVR0,#0FFH;延时子程序LOOP2:MOVR1,#0FFHLOOP1:DJNZR1,LOOP1DJNZR0,LOOP2RET知识点一MCS-51单片机I/O口简介项目基本知识知识点二MCS-51单片机常用输出接口电路1.LED接口电路LED发光二极管是几乎所有的单片机系统都要用到的,最常见的LED发光二极管,主要有红色、绿色、蓝色等单色发光二极管,另外还有一种能发红色和绿色光的双色二极管,如图2-9所示。图2-9单色和双色LED发光二极管驱动LED,可分为低电平点亮和高电平点亮两种。2.继电器接口电路继电器通常用于驱动大功率电器并起到隔离作用,由于继电器所需的驱动电流较大,一般都要由三极管驱动电路驱动。图2-11继电器驱动电路3.光电耦合器接口电路光电耦合器接口在单片机驱动强电系统的大功率电器时,能有效起到电气隔离、提高抗干扰能力、保障电器和人身安全的作用.图2-12光电耦合器接口电路4.音频接口电路在单片机系统中经常使用蜂鸣器或扬声器作为声音提示、报警及音乐输出等。图2-13音频接口电路知识点三MCS-51单片机内部硬件资源片内数据存储器(内部RAM)和片内程序存储器(内部ROM)是供用户使用的重要单片机硬件资源。1.片内数据存储器片内数据存储器即所谓的内部RAM,主要用于数据缓冲和中间结果的暂存。其特点是掉电后数据即丢失。图2-14内部RAM低128单元结构图(1)寄存器区地址为00H~1FH的空间为寄存器区,共32个单元,分成4个组,每个组8个单元,符号为R0~R7,通过RS1和RS0的状态选定当前寄存器组,如图2-14中表格所示。任一时刻,CPU只能使用其中的一组寄存器。(2)位寻址区地址为20H~2FH的16个单元空间称为位寻址区,这个区的单元既可以进行字节操作,也可以对每1位单独操作(置“1”或清零),所以每一位都有自己的位地址。(3)用户RAM区地址为30H~7FH的80个单元空间是供用户使用的一般RAM区,对于该区,只能以单元的形式来使用(即字节操作)。(4)特殊功能寄存器区内部数据存储器的高128单元的地址为80H~FFH,在这128个单元中离散地分布着若干个特殊功能寄存器(简称SFR),也就是说,其中有很多地址是无效地址,空间是无效空间。①累加器Acc。累加器Acc简称A,常用于存放参加算术或逻辑运算的两个操作数中的一个,运算结果最终都存在A中,许多功能也只有通过A才能实现。②B寄存器。B寄存器也是CPU内特有的一个寄存器,主要用于乘法和除法运算。也可以作为一般寄存器使用③程序状态字寄存器PSW。程序状态字寄存器有时也称为“标志寄存器”,由一些标志位组成,用于存放指令运行的状态。表2-7MCS-51中PSW寄存器各位功能CY:进位标志。在进行加法运算且当最高位(第7位)有进位时,或执行减法运算且最高位有借位时,CY为1;反之为0。AC:辅助进位标志。在进行加法运算且当第3位有进位,或执行减法运算且第3位有借位时,AC为1;反之为0。F0:用户标志位,可通过位操作指令将该位置1或清零。RS1、RS0:工作寄存器组选择位,前面已介绍过。PSW的第1位B1:保留位。OV:溢出标志。在计算机内,带符号数一律用补码表示。在8位二进制中,补码所能表示的范围是−128~+127,而当运算结果超出这一范围时,OV标志为1,即溢出;反之,为0。P:奇偶标志。该标志位始终体现累加器Acc中“1”的个数的奇偶性。④数据指针DPTR。数据指针DPTR是单片机中唯一一个用户可操作的16位寄存器,由DPH(数据指针高8位)和DPL(数据指针低8位)组成,既可以按16位寄存器使用,也可以将两个8位寄存器分开使用。⑤I/O端口寄存器。P0、P1、P2、P3口寄存器实际上就是P0口~P3口对应的I/O端口锁存器,用于锁存通过端口输出的数据。2.片内程序存储器程序存储器主要用来存放程序,但有时也会在其中存放数据表(如数码管段码表等)。地址为0003H~002AH的40个单元被均匀地分为5段,每段8个单元,分别作为5个中断源的中断地址区。具体划分如下:0003H~000AH外部中断0中断地址区,0003H为其入口地址000BH~0012H定时器/计数器0中断地址区,000BH为其入口地址0013H~001AH外部中断1中断地址区,0013H为其入口地址001BH~0022H定时器/计数器1中断地址区,001BH为其入口地址0023H~000AH串行中断地址区,0023H为其入口地址知识点四程序编写及相关指令1.程序编写(1)指令的基本格式MCS-51单片机指令主要由标号、操作码、操作数和注释4个部分组成,其中方括号括起来的是可选部分,可有可无,视需要而定。START:MOVA,#7FH;将立即数送累加器A[标号]操作码[操作数][注释](2)汇编程序的基本结构为了使程序结构清晰明了,方便修改、维护,一般可按下面结构书写程序。ORG0000H;复位入口地址LJMPSTART;转移到程序初始化部分STARTORG0003H;外部中断0入口地址LJMPWAIBU0;转移到外部中断0的服务程序WAIBU0ORG000BHRETI……START:MOVA,#7FH;初始化程序部分……MAIN:MOVP1,A;主程序部分……LJMPMAIN;循环执行主程序DELAY:MOVR0,#0FFH;子程序……RETWAIBU0:PUSHA;中断服务程序……RETI2.相关指令本项目相关指令主要有:MOV、RR、RL、SETB、CLR、CPL、LJMP、DJNZ、LCALL、RET、ORG。(1)数据传送指令:MOV通用格式:MOV目的操作数,源操作数举例:MOVA,#30H;将立即数30H送入累加器AMOVP1,#0FH;将立即数0FH送到P1口(2)移位指令:RR、RL循环右移:RRA;将A中的各位循环右移一位循环左移:RLA;将A中的各位循环左移一位图2-15循环移位指令示意图(3)置位、清零、取反指令:SETB、CLR、CPL举例:SETBC;将进位标志C置“1”SETBP1.0;将端口P1.0置“1”CLRC;将进位标志C清零CLRP1.0;将端口P1.0清零CPLC;位标志C取反CPLP1.0;端口P1.0取反(4)无条件转移指令:LJMP通用格式:LJMP十六位程序存储器地址或以标号表示的十六位地址举例:LJMPMAIN;转移到标号为“MAIN”处执行其他无条件转移指令请参看相关内容。(5)减1非0条件转移指令:DJNZ通用格式:DJNZ寄存器,相对地址举例:DJNZR0,LOOP;先对R0中的数减1,若R0≠0,转移到LOOP处执行;若R0=0,则顺序执行下面的循环程序可作为软件延时程序。MOVR0,#0FFH;延时程序LOOP2:DJNZR0,LOOP2该程序循环次数为255次,如果延时时间不够,可以编写如下循环嵌套程序,以增加循环次数,达到更长时间的延时。MOVR0,#0FFH;延时程序LOOP2:MOVR1,#0FFHLOOP1:DJNZR1,LOOP1DJNZR0,LOOP2(6)子程序调用和返回指令:LC

1 / 41
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功