蔡正科秋单片机教学第三次课课件

上传人:痛*** 文档编号:241748770 上传时间:2024-07-20 格式:PPT 页数:84 大小:498.50KB
返回 下载 相关 举报
蔡正科秋单片机教学第三次课课件_第1页
第1页 / 共84页
蔡正科秋单片机教学第三次课课件_第2页
第2页 / 共84页
蔡正科秋单片机教学第三次课课件_第3页
第3页 / 共84页
点击查看更多>>
资源描述
单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系项目一项目一 发光二极管发光二极管LED点亮控制点亮控制 教学目的u掌握掌握P0、P1、P2和和P3功能及应用技能;功能及应用技能;u掌握内部数据存储器的地址分配及特殊功掌握内部数据存储器的地址分配及特殊功能寄存器;能寄存器;u掌握掌握C语言数据类型、常量和变量;语言数据类型、常量和变量;u会利用单片机会利用单片机I/O口实现开关控制口实现开关控制LED循环循环点亮和步进电机控制。点亮和步进电机控制。1ARM嵌入式系统单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系项目一项目一 发光二极管发光二极管LED点亮控制点亮控制 工作模块一点亮一个发光二极管u工作任务工作任务使用使用AT89S52单片机,单片机,P1.0引脚接发光二极引脚接发光二极管(管(LED)的阴极,)的阴极,通过通过C语言程序控制,语言程序控制,从从P1.0引脚输出低电引脚输出低电平,使发光二极管点平,使发光二极管点亮。亮。2ARM嵌入式系统单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系项目一项目一 发光二极管发光二极管LED点亮控制点亮控制 PROTEUS简介uPROTEUS是英国是英国Labcenter Electronics公司开发公司开发的多功能的多功能EDA软件。软件。PROTEUS不仅是模拟电路、不仅是模拟电路、数字电路、模数混合电路的设计与仿真平台,也数字电路、模数混合电路的设计与仿真平台,也是目前较先进的单片机和嵌入式系统的设计与仿真是目前较先进的单片机和嵌入式系统的设计与仿真平台。平台。u它实现了在计算机上完成从原理图与电路设计、电它实现了在计算机上完成从原理图与电路设计、电路分析与仿真、单片机代码级调试与仿真、系统测路分析与仿真、单片机代码级调试与仿真、系统测试与功能验证到形成试与功能验证到形成PCB的完整的电子设计、研发的完整的电子设计、研发过程。过程。3ARM嵌入式系统单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系项目一项目一 发光二极管发光二极管LED点亮控制点亮控制 LED控制电路u按照工作任务要求,点亮一个按照工作任务要求,点亮一个LED电路是由电路是由AT89S52单片机和单片机和1个个LED电路构成。电路构成。uAT89S52单片机是美国单片机是美国ATMEL公司生产的低电压、公司生产的低电压、高性能高性能8位单片机,具有丰富的内部资源位单片机,具有丰富的内部资源,使用使用AT89S52单片机无须外部存储器。单片机无须外部存储器。4ARM嵌入式系统单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系项目一项目一 发光二极管发光二极管LED点亮控制点亮控制 用PROTEUS设计第一个LED控制电路u新建设计文件新建设计文件u保存设计文件保存设计文件u选取元器件选取元器件u放置元器件放置元器件u编辑元器件编辑元器件 u放置终端放置终端 u连线连线 u属性设置属性设置 u电气规则检测电气规则检测5ARM嵌入式系统单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系项目一项目一 发光二极管发光二极管LED点亮控制点亮控制 工作过程uP1.0引脚接发光二极管(引脚接发光二极管(LED)的阴极,)的阴极,P1.0引脚引脚输出低电平时,发光二极管点亮。输出低电平时,发光二极管点亮。问题问题:为什么为什么P1.0引脚输出低电平,发光二极管点亮?引脚输出低电平,发光二极管点亮?u通过程序控制,使通过程序控制,使P1.0引脚输出低电平,使发光二引脚输出低电平,使发光二极管点亮。极管点亮。问题:问题:程序怎么使程序怎么使P1口的引脚输出低电平?口的引脚输出低电平?下面我们来看一下程序,就可以找到答案。下面我们来看一下程序,就可以找到答案。6ARM嵌入式系统单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系项目一项目一 发光二极管发光二极管LED点亮控制点亮控制 LED点亮程序1.#include /包包含含AT89X52.H头文件头文件2.sbit LED=P10;/定义定义LED是是P1.0引脚对应的变量名引脚对应的变量名3.void main(void)4.5.LED=0;/P1.0=0,LED点亮点亮 6.while(1);7.P1.0=0,点亮信号灯P1.0=1,熄灭信号灯开始延时延时结束7ARM嵌入式系统单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系项目一项目一 发光二极管发光二极管LED点亮控制点亮控制 P1.0=0,点亮信号灯P1.0=1,熄灭信号灯开始延时延时结束3)流程图)流程图8ARM嵌入式系统单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系项目一项目一 发光二极管发光二极管LED点亮控制点亮控制 KEILC51(P32)uKeil C51 是德国是德国Keil软件公司开发的基于软件公司开发的基于8051 内内核的微控制器软件开发平台,是核的微控制器软件开发平台,是51系列单片机系列单片机C语语言软件开发系统,是目前开发言软件开发系统,是目前开发8051 内核单片机的主内核单片机的主流工具。流工具。uKeil C51软件提供丰富的库函数和功能强大的集成软件提供丰富的库函数和功能强大的集成开发调试工具,全开发调试工具,全Windows界面。界面。Vision2 集成集成开发环境可以完成从工程建立和管理、编译、连接、开发环境可以完成从工程建立和管理、编译、连接、目标代码的生成、软件仿真和硬件仿真等完整的开目标代码的生成、软件仿真和硬件仿真等完整的开发流程。发流程。9ARM嵌入式系统单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系项目一项目一 发光二极管发光二极管LED点亮控制点亮控制 用KEILC51编写第一个C语言程序u建立第一个建立第一个C程序项目程序项目u建立工程文件建立工程文件u建立源文件建立源文件u加载源文件加载源文件u设置工程的配置参数设置工程的配置参数u进行编译和连接进行编译和连接u进入调试模式进入调试模式u全速运行程序全速运行程序10ARM嵌入式系统单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系项目一项目一 发光二极管发光二极管LED点亮控制点亮控制 用PROTEUS仿真运行调试u加载加载“点亮一个点亮一个LED.hex”目标代码文件目标代码文件u打开打开Proteus“点亮一个点亮一个LED”电路。电路。u双击单片机双击单片机“AT89S52”,在弹出的,在弹出的“编辑元件编辑元件”对话框对话框中单击中单击“Program File”栏的打开按钮,在弹出的栏的打开按钮,在弹出的“选择选择文件名文件名”对话框找到前面编译生成的对话框找到前面编译生成的“点亮一个点亮一个LED.hex”HEX文件文件,单击单击“打开打开“按钮,完成按钮,完成“点亮一点亮一个个LED.hex”HEX文件加载。文件加载。u将将“Clock Frequency”栏中的频率设为栏中的频率设为12MHz,单击,单击“确定确定”,即可完成加载目标代码文件。,即可完成加载目标代码文件。u仿真运行调试仿真运行调试 u单击仿真工具栏单击仿真工具栏“运行运行”按钮,单片机全速运行程序。按钮,单片机全速运行程序。11ARM嵌入式系统单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系项目一项目一 发光二极管发光二极管LED点亮控制点亮控制 工作模块一点亮一个发光二极管u工作任务工作任务使用使用AT89S52单片机,单片机,P1.0引脚接发光二极引脚接发光二极管(管(LED)的阴极,)的阴极,通过通过C语言程序控制,语言程序控制,从从P1.0引脚输出低电引脚输出低电平,使发光二极管点平,使发光二极管点亮。亮。12ARM嵌入式系统单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系项目一项目一 发光二极管发光二极管LED点亮控制点亮控制 C语言程序#include sbit LED=P10;void Delay()unsigned char i,j;for(i=0;i255;i+)for(j=0;j0;Delay-)for(i=0;i0;j-)for(i=100;i0;i-);/在12M晶振中,这里定义约1ms延时66ARM嵌入式系统单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系项目一项目一 发光二极管发光二极管LED点亮控制点亮控制 2重入函数声明重入函数关键字为reentrant。声明格式为:函数说明函数名(形式参数表)reentrant如下例:intcalc(chari,intb)reentrantintx;x=tablei;return(x*b);67ARM嵌入式系统单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系项目一项目一 发光二极管发光二极管LED点亮控制点亮控制 3中断函数vC51单片机的中断系统可以用C51语言来声明中断和编写中断服务程序,当然也可以用汇编语言来写。中断过程通过使用interrupt关键字和中断编号04来实现。使用该扩展属性的函数声明语法如下:返回值 函数名 interrupt nvn对应中断源的编号。v中断编号告诉编译器中断程序的入口地址,它对应着IE寄存器中的使能位,IE寄存器中的0位对应着外部中断0,相应的外部中断0的中断编号。68ARM嵌入式系统单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系项目一项目一 发光二极管发光二极管LED点亮控制点亮控制 LED控制电路u控制八只发光二极管按一定的规律循环点亮控制八只发光二极管按一定的规律循环点亮69ARM嵌入式系统单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系项目一项目一 发光二极管发光二极管LED点亮控制点亮控制 工作过程vP1口接发光二极管(口接发光二极管(LED)的阴极,)的阴极,P1口的管脚输出低口的管脚输出低电平时对应的发光二极管点亮。电平时对应的发光二极管点亮。问题:问题:LED采用的是共阴极接法还是共阳极接法?采用的是共阴极接法还是共阳极接法?为什么为什么P1口的管脚输出低电平,对应的发光二极管点亮?口的管脚输出低电平,对应的发光二极管点亮?v通过程序按一定的规律向通过程序按一定的规律向P1口的管脚输出低电平和高电口的管脚输出低电平和高电平平,控制八只发光二极管循环点亮。控制八只发光二极管循环点亮。问题:问题:程序怎么使程序怎么使P1口的管脚循环输出低电平和高电平?口的管脚循环输出低电平和高电平?70ARM嵌入式系统单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系项目一项目一 发光二极管发光二极管LED点亮控制点亮控制 LED循环点亮功能实现分析u由于由于LEDLED循环点亮电路的循环点亮电路的LEDLED是采用共阳极接法,这样我们就可以通过是采用共阳极接法,这样我们就可以通过“0 0”和和“1 1”来控制来控制LEDLED的亮和灭。的亮和灭。u例如:在例如:在P1P1口输出十六进制数口输出十六进制数0 xfe0 xfe(二进制(二进制11111110B11111110B),),D1D1被点亮。被点亮。uLEDLED循环点亮功能实现过程如下:循环点亮功能实现过程如下:1.1.8 8个个LEDLED全灭,控制码为全灭,控制码为0 xff0 xff;2.2.D1D1点亮,点亮,P1P1口输出口输出0 xfe0 xfe,取反为,取反为0 x010 x01(二进制(二进制00000001B00000001B),初始控制码为),初始控制码为0 x010 x01;3.3.D2D2点亮,点亮,P1P1口输出口输出0 xfd0 xfd,取反为,取反为0 x020 x02(二进制(二进制00000010B00000010B),控制码为控制码为0 x020 x02;4.4.D3D3点亮,点亮,P1P1口输出口输出0 xfb0 xfb,取反为,取反为0 x040 x04(二进制(二进制00000100B00000100B),控制码为控制码为0 x040 x04;5.5.6.6.D8D8点亮,点亮,P1P1口输出口输出0 x7f0 x7f,取反为,取反为0 x800 x80(二进制(二进制10000000B10000000B),控制码为控制码为0 x800 x80;7.7.重复第二步,这样就可以实现重复第二步,这样就可以实现LEDLED循环点亮。循环点亮。71ARM嵌入式系统单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系项目一项目一 发光二极管发光二极管LED点亮控制点亮控制 LED控制程序(C语言)Void main()unsigned char i;unsigned char temp;P1=0 xff;/十六进制全十六进制全1,熄灭所有熄灭所有LED while(1)temp=0 x01;/第一位为第一位为1 for(i=0;i8;i+)P1=temp;/temp值取反送值取反送P1口口 Delay();temp=temp 1;/temp值左移一位值左移一位 72ARM嵌入式系统单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系项目一项目一 发光二极管发光二极管LED点亮控制点亮控制 思考如何改变循环点亮的方向?如何改变循环点亮的方向?73ARM嵌入式系统单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系项目一项目一 发光二极管发光二极管LED点亮控制点亮控制 并行I/O端口电路u单片机有单片机有4 4组组8 8位并行位并行I/OI/O端口,称为端口,称为P0P0口、口、P1P1口、口、P2P2口和口和P3P3口;口;u每个端口都各有每个端口都各有8 8条条I/OI/O口线,每条口线,每条I/OI/O口线都能独立口线都能独立地用作输入或输出;地用作输入或输出;uP0P0口负载能力为口负载能力为8 8个个TTLTTL门电路,门电路,P1P1口、口、P2P2口和口和P3P3口口负载能力为负载能力为4 4个个TTLTTL门电路;门电路;u归入特殊功能寄存器之列,具有字节寻址和位寻址归入特殊功能寄存器之列,具有字节寻址和位寻址功能。功能。74ARM嵌入式系统单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系项目一项目一 发光二极管发光二极管LED点亮控制点亮控制 P0口的结构u由由1 1个数据输出锁存器(个数据输出锁存器(D D触发器)、触发器)、2 2个三态数据输入缓个三态数据输入缓冲器、冲器、1 1个输出控制电路和个输出控制电路和1 1个输出驱动电路组成。个输出驱动电路组成。u输出控制电路由输出控制电路由1 1个转换开关个转换开关MUXMUX、1 1个与门及个与门及1 1个非门组成;个非门组成;u输出驱动电路由一对场效应管输出驱动电路由一对场效应管(V1(V1和和V2)V2)组成,其工作状态受输组成,其工作状态受输出控制端的控制。出控制端的控制。uP0口有两种功能口有两种功能u通用通用I/O口口u地址地址/数据数据 分时复用总线分时复用总线75ARM嵌入式系统单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系项目一项目一 发光二极管发光二极管LED点亮控制点亮控制 P0口作通用I/O口使用u作为通用的作为通用的I/OI/O口使用时,内部的控制信号为低电平,封口使用时,内部的控制信号为低电平,封锁与门,将输出驱动电路的上拉场效应管(锁与门,将输出驱动电路的上拉场效应管(V1V1)截止,同)截止,同时使多路转接电路时使多路转接电路MUXMUX接通锁存器接通锁存器Q Q端的输出通路。端的输出通路。76ARM嵌入式系统单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系项目一项目一 发光二极管发光二极管LED点亮控制点亮控制 注意u当当P0P0口进行一般的口进行一般的I/OI/O输出时,由于输出电路是漏极开路电路,因此输出时,由于输出电路是漏极开路电路,因此必须外接上拉电阻才能有高电平输出;必须外接上拉电阻才能有高电平输出;u当当P0P0口进行一般的口进行一般的I/OI/O输入时,必须先向电路中的锁存器写入输入时,必须先向电路中的锁存器写入“1 1”,使场效应管(使场效应管(V2V2)截止,以避免锁存器为)截止,以避免锁存器为“0 0”状态时对引脚读入的状态时对引脚读入的干扰,因为如果干扰,因为如果V2V2管是导通的,不论管是导通的,不论P0.XP0.X引脚上的状态如何,输入都引脚上的状态如何,输入都会是低电平,将导致输入错误。会是低电平,将导致输入错误。77ARM嵌入式系统单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系项目一项目一 发光二极管发光二极管LED点亮控制点亮控制 P0口作地址/数据分时复用总线使用u当输出地址或数据时,由内部发出控制信号,打开上面的与门,并使多当输出地址或数据时,由内部发出控制信号,打开上面的与门,并使多路转接电路路转接电路MUXMUX将内部地址将内部地址/数据线与驱动场效应管(数据线与驱动场效应管(V2V2)接通。)接通。u若地址若地址/数据线为数据线为1 1,则,则V1V1导通,导通,V2V2截止,截止,P0P0口输出为口输出为1 1;反之;反之V1V1截止,截止,V2V2导通,导通,P0P0口输出为口输出为0 0。而当输入数据时,读引脚使三态数据输入缓冲器打。而当输入数据时,读引脚使三态数据输入缓冲器打开,数据信号则直接从引脚通过数据输入缓冲器进入内部总线。开,数据信号则直接从引脚通过数据输入缓冲器进入内部总线。78ARM嵌入式系统单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系项目一项目一 发光二极管发光二极管LED点亮控制点亮控制 P1口的结构uP1P1口通常作为通用口通常作为通用I/OI/O口使用的,在电路结构上与口使用的,在电路结构上与P0P0口有口有一些不同之处:一些不同之处:u首先它不再需要多路转接电路首先它不再需要多路转接电路MUXMUX;u其次是电路的内部有上拉电阻,与场效应管共同组成输出驱动电其次是电路的内部有上拉电阻,与场效应管共同组成输出驱动电路。路。79ARM嵌入式系统单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系项目一项目一 发光二极管发光二极管LED点亮控制点亮控制 P1口工作过程u当作为输出口时,当作为输出口时,1 1写入锁存器,写入锁存器,Q(Q(非非)=0)=0,场效应管截止,场效应管截止,内部上拉电阻将电位拉至内部上拉电阻将电位拉至“1 1”,此时该口输出为,此时该口输出为1 1,当,当0 0写入锁存器,写入锁存器,Q(Q(非非)=1,)=1,场效应管导通,输出则为场效应管导通,输出则为0 0。当作。当作为输入口时,必须先向锁存器写为输入口时,必须先向锁存器写1 1,Q(Q(非非)=0)=0,场效应管截,场效应管截止,此时该位既可以把外部电路拉成低电平,也可由内部止,此时该位既可以把外部电路拉成低电平,也可由内部上拉电阻拉成高电平。上拉电阻拉成高电平。80ARM嵌入式系统单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系项目一项目一 发光二极管发光二极管LED点亮控制点亮控制 P2口的结构u它由一个数据输出锁存器(它由一个数据输出锁存器(D D触发器)、两个三态数据输入触发器)、两个三态数据输入缓冲器、一个转换开关缓冲器、一个转换开关MUXMUX、一个数据输出驱动电路和控制、一个数据输出驱动电路和控制电路组成。电路组成。81ARM嵌入式系统单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系项目一项目一 发光二极管发光二极管LED点亮控制点亮控制 P3口u当作为当作为I/OI/O使用时,第二功能信号引线应保持高电平,与使用时,第二功能信号引线应保持高电平,与非门开通,以维持从锁存器到输出端数据输出通路的畅通。非门开通,以维持从锁存器到输出端数据输出通路的畅通。u当输出第二功能信号时,该位的锁存器应置当输出第二功能信号时,该位的锁存器应置“1 1”,使与,使与非门对第二功能信号的输出是畅通的,从而实现第二功能非门对第二功能信号的输出是畅通的,从而实现第二功能信号的输出。信号的输出。82ARM嵌入式系统单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系项目一项目一 发光二极管发光二极管LED点亮控制点亮控制【技能训练2-1】P0口外接上拉电阻u本电路设计和模块三本电路设计和模块三LEDLED循环点亮电路基本一样,差别是:循环点亮电路基本一样,差别是:使用了排阻、使用了排阻、P0P0口接口接LEDLED的阴极以及在的阴极以及在P0P0口和口和LEDLED阴极之间外阴极之间外接了上拉电阻接了上拉电阻 83ARM嵌入式系统单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系项目一项目一 发光二极管发光二极管LED点亮控制点亮控制 排阻u八个电阻的功能是完全一样的,加工到一个器件里八个电阻的功能是完全一样的,加工到一个器件里面,这个器件通常称之为排阻。为了在电路板上占面,这个器件通常称之为排阻。为了在电路板上占很小的地方,方便安装和生产,在电路设计时常常很小的地方,方便安装和生产,在电路设计时常常选择排阻。选择排阻。uPR1PR1和和PR2PR2都是排阻都是排阻,阻值分别为阻值分别为4.7K*84.7K*8和和220*8220*8。PR1PR1排阻是上拉电阻,其功能是在这个引脚没有信号排阻是上拉电阻,其功能是在这个引脚没有信号的时候,起到电位上拉的作用。的时候,起到电位上拉的作用。PR2PR2和普通的电阻用和普通的电阻用途没有任何不同,在这里面起到限流作用,使通过途没有任何不同,在这里面起到限流作用,使通过LEDLED的电流被限制在十几个毫安左右。的电流被限制在十几个毫安左右。84ARM嵌入式系统
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!