项目4 单片机控制LED灯的设计_第1页
项目4 单片机控制LED灯的设计_第2页
项目4 单片机控制LED灯的设计_第3页
项目4 单片机控制LED灯的设计_第4页
项目4 单片机控制LED灯的设计_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

电子工业出版社 单片机控制技术项目式教程 C语言版 电子工业出版社 项目4单片机控制LED灯的设计 能了解51单片机I O口的结构 能掌握51单片机I O口的特点及应用 能掌握51单片机控制LED灯的硬件设计方法 能熟练编写单片机控制LED灯闪烁的程序 学习目标 工作任务 叙述51单片机I O口的结构和特点 设计单片机控制单个LED灯闪烁的电路和工作软件 设计单片机控制多个循环LED灯的电路和工作软件 任务4 1单片机控制单个LED灯任务4 2单片机控制多个循环LED灯项目小结 项目4单片机控制LED灯的设计 任务4 1单片机控制单个LED灯 4 1 1MCS 51单片机的I O口介绍 MCS 51系列单片机有4个8位的并行I O接口 P0 P1 P2和P3口 它们是特殊功能寄存器中的4个 这4个口 既可以作输入 也可以作输出 既可按8位处理 也可按位方式使用 输出时具有锁存能力 输入时具有缓冲功能 1 P0口 P0口是一个三态双向口 包括一个输出锁存器 两个三态缓冲器 输出驱动电路和输出控制电路组成 它的一位结构如图 输出驱动器 控制电路 P0口功能 1 通用I O接口 不需要外部扩展时 内部控制信号将使MUX开关接通到锁存器 此时 由于P0口没有内部上拉电阻 通常要在外部加一个上拉电阻来提高驱动能力 2 地址 数据分时复用 需要进行外部扩展时 内部控制信号将使MUX开关接通到内部地址 数据线 此时 P0口在ALE信号的控制下 分时输出低8位地址和8位数据信号 P0口的工作原理 1 通用I O口 作为通用I O使用 是一个准双向口 在输入数据时应先把口置1 使V1 V2都截止 引脚处于悬浮状态 可作高阻抗输入 2 地址 数据总线口 输出 地址 数据为1 P0 x 高地址 数据为0 P0 x 低 输入 经缓冲器1读入 1 P0口既可作地址 数据总线使用 也可作通用I O口使用 当P0口作地址 数据总线使用时 就不能再作通用I O口使用了 2 P0口作输出口使用时 输出级属漏极开路 必须外接上拉电阻 才有高电平输出 3 P0口作输入口读引脚时 应先向锁存器写1 使V1 V2截止 不影响输入电平 P0口特点 2 P1口 P1口是准双向口 它只能作通用I O接口使用 结构与P0口不同 它的输出只由一个场效应管V1与内部上拉电阻组成 1 P1口是唯一的单功能口 仅能作为通用I O口使用 因在其输出端接有上拉电阻 可以直接输出而无需外接上拉电阻 2 同P0口一样 当作输入口时 必须先向锁存器写 1 使场效应管V1截止 P1口特点 3 P2口 P2口也是准双向口 它有两种用途 通用I O接口和高8位地址线 P2口作I O端口使用时 内部控制信号使MUX开关接通到锁存器 此时P2口的用法与P1口相同 P2口作外部地址总线使用时 内部控制信号使MUX开关接通到内部地址线 此时P2口的引脚状态由所输出的地址决定 需要特别指出的是 由于对片外地址的操作是连续不断的 只要进行了外部系统扩展 此时P0口和P2口就不能再用作I O端口了 4 P3口 P3口用作通用I O口时 其工作原理同P1口类似 此外 它的每一根线还具有第二种功能 在真正的应用电路中 P3口的第二功能显得更为重要 4 1 2单片机控制单个LED灯闪烁的设计 1 任务要求设计一个电路 AT89C52单片机的P1 7引脚连接一个LED灯 控制LED闪烁 2 任务分析 以单片机为核心的电子设计 硬件设计 软件设计 单片机最小系统加上最简单的输出电路来驱动LED 编程控制P1 7引脚的电平状态 使其持续一段时间的高电平 再持续一段时间的低电平 3 任务设计 1 器件的选择 发光二极管 发光二极管 单向导电性 通过5mA左右电流即可发光 电流越大 亮度越强 但若电流过大会烧毁二极管 一般控制在3 20mA 工作电压 红色发光二极管1 7 2 5V绿色发光二极管2 0 2 4V黄色发光二极管1 9 2 4V蓝 白色发光二极管3 0 3 8V 限流电阻 二极管串联电阻的目的是为了防止发光二极管和P1 7引脚流过的电流过大 烧毁二极管或单片机 所以该电阻也称为 限流电阻 限流电阻的选择 假设电源电压为VCC 发光二极管的导通压降为VDD 导通时流过二极管的电流为I 则限流电阻R为 R VCC VDD I例如 若二极管的导通压降为2 2V 导通时流过的电流为5mA 则限流电阻为560 器件清单 2 硬件原理图设计 再次强调 图中的单片机元件没有 VCC 和 GND 引脚 这是因为Proteus软件中 元件模型中的 电源 和 地 已经进行了连接 VCC 接到了 5V 电源 GND 接到了 地 所以隐藏了这两个引脚 3 软件程序设计 include 宏定义sbitled P1 7 用sbit关键字定义P1 7引脚 延时子函数voidDelay unsignedintt while t 主函数 控制P1 7引脚的LED灯闪烁voidmain void while 1 主循环 led 0 将P1 7引脚置0 对外输出低电平Delay 20000 调用延时程序led 1 将P1 7引脚置1 对外输出高电平Delay 20000 调用延时程序 在软件编程中 通常使用空循环来达到延时的效果 延时时间的长短可以在KeilC51的调试状态下分析 4 软硬件联合调试 1 任务要求设计一个电路 AT89C52单片机的P1口连接8只LED灯 首先控制P1 0到P1 7连接的8只LED灯逐个点亮 接下来再从P1 0到P1 7连接的8只LED依次全部点亮 然后控制从P1 7到P1 0连接的8只LED灯逐个点亮 最后再从P1 7到P1 0连接的8只LED依次全部点亮 形成流水灯的效果 任务4 2单片机控制多个LED灯 2 任务分析任务要求单片机控制8个LED灯 当需要对某个I O口的八位一起操作时 一般采用整体操作的方式 即总线的方式 在软件设计时可以定义一个变量来给P1口赋值 赋的值不同点亮的LED灯不同 由于8只LED灯要按一定规律点亮 这就要求对给P1口赋的变量进行移位 移位操作既可以用标准C中的左移 右移运算符来实现 也可以用C51库自带的函数来实现 移位运算符 循环移位函数 注意 循环移位函数 crol 和 cror 包含在intrins h头文件中 因此如果在程序中要用到这类函数 就必须在程序的开头处包含intrins h这个头文件 由于用到的发光二极管较多 每个发光二极管都需要限流电阻 硬件电路会显得比较复杂 所以这里使用了排阻 排阻 就是若干个参数完全相同的电阻 它们的一个引脚都连到一起 作为公共引脚 其余引脚正常引出 如果一个排阻是由n个电阻构成的 那么它就有n 1个引脚 一般来说最左边的那个是公共引脚 它在排阻上一般用一个色点标出来 直插式排阻贴片式排阻 排阻一般用在数字电路上 比如作为某个并行口的上拉或者下拉电阻用 使用排阻比用若干只固定电阻更方便 3 任务设计 1 器件的选择 器件清单 2 硬件原理图设计 3 软件程序设计 include 宏定义 52单片机头文件 include 包含 crol cror 函数所在的头文件 defineuintunsignedint defineucharunsignedchar 延时子函数voidDelay unsignedintt while t 主函数 循环点亮LED灯voidmain uchark recy while 1 大循环 recy 0 xfe for k 1 k 8 k 8只LED灯从P1 0到P1 7逐个点亮 P1 recy 先点亮P1 0的LED灯Delay 50000 延时一段时间recy crol recy 1 将recy循环左移1位后再赋给recy recy 0 xfe for k 1 k 1 将recy右移1位后再赋给recy P1 0 xff 全部熄灭Delay 50000 4 软硬件联合调试 将编写的程序在KeilC51中编译成 hex后调入Proteus硬件电路图的AT89C52中运行 八只LED灯从P1 0到P1 7逐个点亮 接下来再从P1 0到P1 7依次全部点亮 然后全部熄灭后又从P1 7到P1 0逐个点亮 最后再从P1 7到P1 0依次全部点亮 如此反复形成流水灯 项目小结 本项目主要介绍了51单片机I O口结构和应用 通过两个任务实现了单片机对单个LED灯闪烁和多个循环LED灯的控制 51单片机有4个8位的并行I O

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论