第二讲 流水灯 数码管等_第1页
第二讲 流水灯 数码管等_第2页
第二讲 流水灯 数码管等_第3页
第二讲 流水灯 数码管等_第4页
第二讲 流水灯 数码管等_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

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

文档简介

联睿科技 杨永利 光盘资料介绍 联睿科技 单片机究竟能干什么 导弹的导航装置飞机上各种仪表的控制MP3 MP4 数码相机等电子设备工业自动化过程的实时控制和数据处理全国大学生电子设计竞赛 联睿科技 单片机编程前的准备工作 开发板介绍开发环境介绍下载线介绍 联睿科技 单片机开发应具备的素质 基本电路知识 数字电路 模拟电路 基本计算机操作C语言 重要 独立解决问题的能力 联睿科技 AVR单片机的封装 联睿科技 51和AVR的比较 联睿科技 电平特性 数字电路中只有两种电平 高和低 本课程中 定义单片机为TTL电平 高 5V低0VRS232电平 计算机的串口电平 高 12V低 12V所以计算机与单片机之间通讯时需要加电平转换芯片max232 max3232 联睿科技 二进制的逻辑运算 与 运算 类似于数值 X 运算0 0 00 1 1 0 01 1 1 联睿科技 2 或 运算 或 运算是实现 只要其中之一有 就有 这种逻辑关系的一种运算 其运算符为 或 运算规则如下 0 0 0 0 1 1 0 1 1 1 1 联睿科技 3 异或 运算 异或 运算是实现 必须不同 否则就没有 这种逻辑的一种运算 运算符为 其运算规则是 相同为0 不同为1 联睿科技 4 非运算 非 运算是实现 求反 这种逻辑的一种运算 如变量A的 非 运算记作 其运算规则如下 联睿科技 AVR单片机常用的C语言的运算符 1 位右移 1 0XA1 0X50 2 位左移 0XA1 1 0X42 3 按位与 0XA1 0X51 0X01 0XA1 0X51 0X01 联睿科技 4 按位或 0XA1 0X51 0XF1 0XA1 0X51 0XF1 联睿科技 5AVR单片机常用位操作指令 BIT x 定义为1 x BIT 0 00000001BIT 3 00001000 BIT 3 11110111 AVR单片机最小系统 1 电源2 时钟电路 晶振 3 复位电路 联睿科技 时钟电路及相关概念 时钟周期 外接晶振频率的倒数机器周期 CPU完成一个基本操作所需要的时间 对于AVR单片机 是时钟周期的8倍指令周期 执行一条指令所需要的时间 联睿科技 时钟原理图 联睿科技 熔丝位的配置 联睿科技 复位电路 AVR单片机的复位电路可以省略 只要上电就能工作 类似51单片机的复位电路不能省略AVR单片机是低电平复位 联睿科技 复位电路 联睿科技 AVR单片机的I O口 端口为具有可选上拉电阻的双向I O口输入引脚最大可以吸收20mA的电流 能够直接驱动LED显示输出电流能力比输入电流能力弱 联睿科技 程序编译过程 C语言 汇编语言 机器语言最终生成 HEX文件或 BIN文件 可以烧写到单片机中运行 联睿科技 AVR单片机的引脚配置 1 端口寄存器及配置 作为通用数字I O口使用时 每个引脚都具有3个寄存器位 DDRx PORTx PINx 联睿科技 联睿科技 上拉电阻 上拉就是将不确定的信号通过一个电阻嵌位在高电平 电阻同时起限流作用 下拉同理 数字电路有三种状态 高电平 低电平 和高阻状态 有些应用场合不希望出现高阻状态 可以通过上拉电阻或下拉电阻的方式使处于稳定状态 具体视设计要求而定 高阻态 联睿科技 高阻态这是一个数字电路里常见的术语 指的是电路的一种输出状态 既不是高电平也不是低电平 如果高阻态再输入下一级电路的话 对下级电路无任何影响 和没接一样 如果用万用表测的话有可能是高电平也有可能是低电平 随它后面接的东西定 高阻态的实质 电路分析时高阻态可做开路理解 你可以把它看作输出 输入 电阻非常大 他的极限可以认为悬空 也就是说理论上高阻态不是悬空 它是对地或对电源电阻极大的状态 而实际应用上与引脚的悬空几乎是一样的 2 设置DDRx寄存器和PORTx寄存器 DDRB 0 xFF 此语句将PB端口的PB0 PB7位设为输出PORTB 0 x55 PB端口输出0101 0101DDRB 0 x00 此语句将PB端口的PB0 PB7位设为输入PORTB 0 xF0 PB0 PB3位不设上拉电阻 无信号输入时处于高阻态 PB4 PB7位设为上拉 无信号输入时处于高电平 联睿科技 3 PINx寄存器的配置 DDRB 0 x00 此语句将PB端口的PB0 PB7位设为输入PORTB 0 xFF 将PB口设为上拉 无信号输入时处于高电平temp PINB 将PB口引脚信号读入到变量temp中 联睿科技 1 按位与运算符 1 清零某一端口 其他位保持不变 例如将PA7清零 可以用 PORTA 0X7F PORTA PORTA 0X7F 如要清零PA5 PA6 PA7端口 2 保留某位的状态 PORTA 0X80 2 按位或运算符置位某一端口 其他不变 PORTA 0 x80 联睿科技 位操作技巧 I O口配置技巧 PA1357输入 2468输出 即DDRA 0X55 然后第1位设置为输出 然后又要将第2位设置为输入 其他不变 你们想 DDRA 0X55 DDRA 0X57 DDRA 0X53 DDRA BIT 5 DDRA DDRA BIT 5 0B00010000DDRA c语言结构特点 C语言必须有一个主函数 且只能有一个 主函数分两部分 声明部分和执行部分 声明部分指变量的类型声明 函数中得变量都必须声明之后才能使用 在程序声明中 不仅可以有变量声明 还可以有函数声明 执行部分是函数的主体 是由一批可执行的语句组成的 用于实现开发者的主观意图 C语言的结构特点 1 一个C语言源文件程序可以由一个或多个源文件组成 可能包括一些C源文件 即扩展名为 C的文件 和头文件 即扩张名为 h的文件 有些编译器支持C语言和汇编语言混合编程 还可以包括一些汇编程序 即扩张名为 asm的文件 2 每个源文件可由一个或多个函数组成 头文件中声明一些函数 变量或预定义一些特定值 而函数的实现是在C源文件中 3 一个源程序不论由多少个文件组成 都有一个且只能有一个main函数 即主函数 C语言程序执行是从主函数即main函数开始执行的 4 源程序中可以预处理命令 如include命令 预处理命令通常放在源文件或源程序的最前面 5 每一个声明 每一个语句都必须以分号结尾 但预处理命令 函数头和花括号 之后不能加分号 6 标示符 关键字之间必须至少加一个空格以示间隔 若已有明显的间隔符 也可不再加空格来间隔 7 C语言规定 源程序中所有用到的变量都必须先声明后使用 否则会出错 这一点是编译型高级程序设计语言的一个特点 与解释型的BASIC语言是不同的声明部分是C源程序结构中很重要的组成部分 流水灯详解 流水灯样式 从左向右 从右向左等编写延时函数流水灯程序的编写 用PB口控制8个LED发光二极管 编译调试 找错 烧写现象 联睿科技 编程练习 编写程序 用PB口控制LED8路发光二极管 使LED实现从左右两个方向向中间流水 联睿科技 数码管原理 联睿科技 LED数码管字型编码 联睿科技 单位数码管编程 理解数码管原理 结合单片机实现数码管显示0 9 板子上的为共阳极数码管 联睿科技 C语言译码 字模 共阳 0 x03 0 x9F 0 x25 0 x0D 0 x99 0 x49 0 x41 0 x1F 0 x01 0 x09 0 x11 0 xC1 0 x63 0 x85 0 x61 0 x71编写 一位 数码管显示程序 显示数字0 9 联睿科技 外加7447的数码管显示 联睿科技 集成显示译码 驱动器7447 共阳极 7448 共阴极 7448功能框图 联睿科技 7447的真值表 联睿科技 编写程序用7447驱动数码管 显示0 9A D 0 x00 0 x08 0 x04 0 x0C 0 x02 0 x0A 0 x06 0 x0E 0 x01 0 x09 联睿科技 带有74LS138的数码显示 联睿科技 74LS138 3 8译码器 联睿科技 74LS138译码器真值表 联睿科技 多位数码管的编程 LED显示器工作方式有两种 静态显示方式和动态显示方式 联睿科技 多位数码管的显示方法 静态显示 静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码 当送入一次字形码后 显示字形可一直保持 直到送入新字形码为止 这种方法的优点是占用CPU时间少 显示便于监测和控制 缺点是硬件电路比较复杂 成本较高 联睿科技 静态驱动也称直流驱动 静态驱动是指每个数码管的每一个段码都由一个单片机的I O口进行驱动 静态驱动的优点是编程简单 显示亮度高 缺点是占用I O口多 如驱动5个数码管静态显示则需要5 8 40根I O埠来驱动 要知道一个AVRmege16单片机可用的I O口才32个 故实际应用时必须增加驱动器进行驱动 增加了硬体电路的复杂性 动态显示 动态显示的特点是将所有位数码管的段选线并联在一起 由位选线控制是哪一位数码管有效 选亮数码管采用动态扫描显示 所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选 利用发光管的余辉和人眼视觉暂留作用 使人的感觉好像各位数码管同时都在显示 动态显示的亮度比静态显示要差一些 所以在选择限流电阻时应略小于静态显示电路中的 联睿科技 数码管动态显示介面是单片机中应用最为广泛的一种显示方式之一 动态驱动是将所有数码管的8个显示笔划 a b c d e f g dp 的同名端连在一起 另外为每个数码管的公共极COM增加位选通控制电路 位选通由各自独立的I O线控制 当单片机输出字形码时 所有数码管都接收到相同的字形码 但究竟是那个数码管会显示出字形 取决于单片机对位元选通COM端电路的控制 所以我们只要将需要显示的数码管的选通控制打开 该位就显示出字形 没有选通的数码管就不会亮 通过分时轮流控制各个LED数码管的COM端 就使各个数码管轮流受控显示 这就是动态驱动 在轮流显示过程中 每位元数码管的点亮时间为1 2ms 由于人的视觉暂留现象及发光二极体的余辉效应 尽管实际上各位数码管并非同时点亮 但只要扫描的速度足够快 给人的印象就是一组稳定的显示资料 不会有闪烁感 动态显示的效果和静态显示是一样的 能够节省大量的I O口 而且功耗更低 联睿科技 加138显示接线方法 将数码管显示程序做成头文件 联睿科技 开发板说明 蜂鸣器 联睿科技 通过程序控制让蜂鸣器响一秒停两秒 联睿科技 控制蜂鸣器 继电器 联睿科技 继电器是一种电控制器件 它具有控制系统

温馨提示

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

评论

0/150

提交评论