AVR单片机轻松入门ppt课件_第1页
AVR单片机轻松入门ppt课件_第2页
AVR单片机轻松入门ppt课件_第3页
AVR单片机轻松入门ppt课件_第4页
AVR单片机轻松入门ppt课件_第5页
已阅读5页,还剩134页未读 继续免费阅读

下载本文档

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

文档简介

AVR单片机软硬件设计教程 入门篇 学单片机就要学AVR 主讲 尹延辉学习板 LT Mini M16力天电子版权所有技术交流QQ群 316463462008年9月 主讲人简介 尹延辉 本科就读于哈尔滨工程大学信息与通信工程学院电子信息工程专业 2007年获得创新保研资格 现在攻读哈尔滨工程大学通信与信息系统专业硕士学位精通51汇编语言程序设计 AVR 430单片机C语言程序设计 CPLD FPGA电路设计与VHDL语言程序设计 擅长各种数字 模拟与高频电路设计技术 做过的项目涉及传感器 机电控制 射频通信等领域 本科阶段获奖情况 2005 10全国大学生电子设计竞赛黑龙江赛区三等奖2005 10获校二等奖学金2006 5获校二等奖学金2006 9校 五四杯 科技作品竞赛三等奖2项 鼓励奖2项2006 10黑龙江省大学生电子设计竞赛一等奖2007 5获校三等奖学金2007 6 挑战杯 黑龙江省大学生课外学术科技作品竞赛一等奖2007 7黑龙江省航空航天模型锦标赛航拍伞翼机三等奖2007 7黑龙江省航空航天模型锦标赛线操纵伞翼机第六名2007 5 2008 5校 五四杯 科技作品竞赛二等奖2项2007 9全国大学生电子设计竞赛国家二等奖2007 10获得个性化保研免试攻读研究生资格2007 11校创新奖学金二等奖2008 3获校三等奖学金2008 8英特尔杯嵌入式设计竞赛国家三等奖 无线数据传输系统 06年省赛一等奖作品 无线数据传输系统FSK接收机部分 无线数据传输系统 06年省赛一等奖作品 无线数据传输系统FSK发射机部分 无线数据传输系统 06年省赛一等奖作品 无线数据传输系统高频功放部分 无线数据传输系统 06年省赛一等奖作品 无线数据传输系统汉字输入部分 无线识别装置 07年全国电子大赛二等奖作品 无线识别装置 探路者I号水下机器人 省挑战杯一等奖 探路者I号水下机器人 教程安排 第一讲 单片机及其开发工具简介第二讲 AVR硬件电路设计教程第三讲 AVR开发环境的建立 数字逻辑与C语言程序设计基础知识第四讲 流水灯 蜂鸣器 数码管的程序设计第五讲 普通按键与矩阵键盘的程序设计第六讲 外部中断 定时器的应用第七讲 USART的应用第八讲 ADC的应用第九讲 项目应用实例 循迹小车 第一讲单片机及其开发工具简介 本讲内容 单片机是什么单片机能做什么单片机开发工具AVR单片机简介 学单片机就要学AVR 新手入门的第一个例子 闪烁灯 单片机是什么 单片机就是一台微型电脑 麻雀虽小 五脏俱全 单片机将微型电脑的所有基本部分都集成在一片硅片上 构成单片机的基本要素 CPU核ROMRAM片上外设总线 CPU核 相当于电脑的CPU 执行从ROM中取出指令性能指标 主频 CPU时钟的频率 类似于电脑的主频 指令集 复杂指令集CISC与精简指令集RISC 后者比前者执行效率高很多 字长 一次处理的二进制数据位数 ROM 只读存储器 目标代码存储器 相当于硬盘 用于存储运行在单片机上的程序代码目前大多数单片机为Flash结构基本性能指标 容量 单位一般为KB 千字节 高级的指标 自编程能力 RAM 随机存储器 数据存储器 相当于内存 ROM中的程序在运行时快速的存取数据目前大多数单片机为SRAM结构性能指标 容量 单位一般为B 字节 或KB 千字节 片上外设 相当于电脑的键盘鼠标接口 显示器接口等常见的片上外设模块有外部中断 定时 计数器 UART SPI IIC ADC 模拟比较器等 总线 用于在以上四部分之间传输数据的通道 相当于硬盘IDE线 光驱线等 单片机能做什么 单片机无所不能 所谓 微电脑控制 场合的核心就是单片机涵盖工业生产 日常生活 军事设备 科研仪表仪器等所有智能化应用场合 智能洗衣机 定时完成洗衣 脱水等功能可以判断衣服的干净程度 实现 洗净即停 的功能蒸汽熨烫的功能刷卡 投币洗衣更加智能 LG公司的 iPod洗衣机 一边洗衣一边听歌 LED显示屏 LED发光二极管构成显示屏的像素点单片机负责逐点或逐行扫描 并与电脑通信获取图片信息 PH ORP仪表 用于环境监测 工矿企业 科学研究 水产养殖场等场合的pH值的测定读取pH传感器的模拟信号 内部处理后显示在LCD上 各种数码产品 智能小车 巡线避障电视机遥控器遥控LCD显示 单片机的开发工具 编程器 烧写器 将编译出来的目标代码固化到单片机的ROM内下载线 作用与编程器相同 但可以在线下载仿真器 对单片机的程序进行单步调试 设置断点等 便于查找程序中的错误 其中Jtag仿真器可以在线仿真调试 AVR单片机简介 AVR的性价比远高于51 高速 RISC 主频最高达20MHz低功耗 宽电压 1 8V 5 5V 最低全速运行功耗 300uAIO口驱动能力强 推拉电流能力均达30mA 可以直接驱动蜂鸣器 继电器等片内资源丰富 外部中断 定时 计数器 UART SPI IIC ADC 模拟比较器型号齐全 而且40脚以下的AVR均具有DIP的封装形式 精彩的AVR世界 8脚系列 ATtiny13 25 45 85 14脚系列 ATtiny2420脚系列 AtTiny26 2313 28脚系列 ATmega8 48 88 168 32脚系列 AT90PWM3 40脚系列 ATmega16 32 162 163 169 8515 8535 以上几个系列均有DIP双列直插封装64脚系列 ATmega64 128 100脚系列 ATmega1280 2560 精彩的AVR世界 AVR单片机的开发工具 软件开发环境编辑与编译软件 WinAVR仿真调试软件 AVRStudio下载软件 MuCodeISP硬件开发环境仿真调试工具 JtagICE下载线工具 STK200 300学习板一块 LT Mini M16技术手册AVR官方中文版技术手册 AVR单片机与GCC编程 从零开始学习AVR 学单片机就要学AVR 选择AVR作为单片机入门的几点理由 最小系统设计容易 只需要连接电源 焊接晶振就可以工作很多概念初学者理解起来更容易 例如AVR的时钟源 晶振 内部RC等 不经过分频直接提供给CPU使用 而51的CPU主频等于晶振的12分频AVR既具有简单的 可以自制的ISP下载线和Jtag仿真器 又有DIP直插的封装形式AVR的C语言编程与C语言教科书上学习的标准C语言语法是几乎一样的 不像51的C语言 一些bit srf之类的变量定义在教科书中是找不到的 有利于后续嵌入式系统的学习 新手入门入门第一个例子闪烁的灯 请观看视频演示 新手入门入门第一个例子闪烁的灯 例程源代码 includeintmain void inti 0 j 0 DDRD 0 xff while 1 PORTD 0b11100110 for j 0 j 10 j for i 0 i 10000 i PORTD 0b00011001 for j 0 j 10 j for i 0 i 10000 i AVR单片机软硬件设计教程 入门篇 学单片机就要学AVR 主讲 尹延辉策划 张勇学习板 LT Mini M16力天电子版权所有技术交流QQ群 316463462008年9月 第二讲AVR硬件电路设计教程 本讲内容 ATmega16简介构建ATmega16最小系统构建LT Mini M16学习板单片机常用外围器件简介PCB技术与ProtelAltiumDesigner6简介实战 用AD6 7设计AVR学习板 ATmega16简介 高速 16MHz RISCAVR内核1KBSRAM 16KBFlashROM512字节EEPROM 方便数据存储4个8位并行IO口 驱动能力强具有Jtag仿真接口与ISP下载接口低功耗 宽电压 2 7V 5 5V 丰富的片上外设 3个外部中断 3个定时器 USART SPI IIC ADC片内上电复位电路片内RC振荡器 可以省去外部晶振 构建最小系统 电源 数字电源VCC 任何场合必选模拟电源AVCC 使用片上ADC或模拟比较器时必选晶振 对时钟要求严格的场合 如使用USART时必选复位按键 需要手动复位时必选ISP下载线接口 需要进行ISP下载时必选Jtag仿真器接口 需要进行Jtag仿真调试时必选 ISP下载线 构建最小系统全功能的最小系统 Jtag仿真器 电源座 晶振与稳频电容 数字电源 数字地 模拟电源 模拟地 参考电压源退偶电容 ATmega16单片机 构建最小系统Mega16最小系统1 此最小系统适合于对时钟要求不严格 不使用片上ADC与模拟比较器而且不需要ISP下载与Jtag仿真的场合 只需要接通电源 构建最小系统Mega16最小系统2 此最小系统适合于对时钟要求不严格 不使用片上ADC与模拟比较器 需要ISP下载但不需要Jtag仿真的场合 构建最小系统Mega16最小系统3 此最小系统适合于对时钟要求不严格 不使用片上ADC与模拟比较器 需要ISP下载与Jtag仿真的场合 构建LT Mini M16学习板 初学者应该学习的内容IO口输出操作 流水灯 蜂鸣器 数码管IO口输入操作 普通按键 4X4矩阵键盘外部中断 按键触发中断定时器溢出功能的操作 闪烁灯初学者进阶内容USART 与PC机通讯SPI 时钟芯片DS1302ADC 电位器调整电压 单次采样IIC EEPROM芯片AT24C02LCD1602 LCD12864 相当于普通IO口的输出操作 单片机常用外围器件简介学习板元件逐个数 40脚IC座排针电阻电容排阻电位器晶振按键电源开关BD9串口座 LED发光二极管4位数码管蜂鸣器稳压芯片ASM1117 3 3MAX232DS1302DS18B20AT24C02 PCB技术与Protel简介 PCB是印刷电路板 PrintedCircuitBoard 的缩写 顾名思义 就是把导线印刷在板子上 覆铜板 印刷感光胶 曝光 钻孔 化学腐蚀 金属化过孔 喷绝缘漆 印刷丝印层 切割Protel软件是最流行的PCB设计软件 可以在电脑上完成PCB的设计 然后送到PCB加工厂出板 常用版本 Protel99SE ProtelDXP2004 AltiumDesigner6 AD6 AD6是最新版本 风格与ProtelDXP2004区别不大 本教程采用AD6环境进行演示 实战 用AD6 7设计AVR学习板 Protel设计PCB步骤如下 1 绘制元件的PCB封装库 pcblib 2 绘制元件的原理图库 schlib 3 绘制原理图 schdoc 4 将原理图导入PCB文件 pcbdoc 5 元件布局6 布线7 敷铜 AVR单片机软硬件设计教程 入门篇 学单片机就要学AVR 主讲 尹延辉策划 张勇学习板 LT Mini M16力天电子版权所有2008年9月 第三讲AVR开发基础知识 本讲内容 AVR开发工具简介及开发环境的建立计算机原理基础知识讲解C语言基础知识讲解 AVR开发工具简介 软件开发工具编译环境 WinAVR下载软件 MuCodeISP仿真环境 AVRStudio集成环境 AVRStudio 可以内联WinAVR成为一个具有编译 仿真 下载功能的集成环境硬件开发工具 下载线仿真器学习板 或手工焊接的系统板 工具手册 WinAVR技术手册ATmega16官方中文版技术手册 WinAVR Linux系统的GCC工具链在Windows环境的移植请观看安装与使用过程 下载软件MuCodeISP下载线 下载线的作用 修改熔丝位向单片机Flash中下载程序代码下载软件MuCodeISP下载软件有很多 但推荐初学者使用MuCodeISP 优点是熔丝位设置很清晰 不至于设错而锁死芯片下载线有很多种 最常用的是插在计算机并口上的STK200 300可以使用力天电子出品的STK200 300下载线请观看使用方法 AVRStudio仿真器JtagICE AVRStudio是Atmel公司官方的汇编 下载与仿真软件可以内联WinAVR获得C语言编译能力JtagICE是Atmel公司官方的仿真调试器 但已经被仿制 价格比官方版本要便宜十倍可以使用力天电子出品的JtagICE请观看安装过程与使用方法 计算机原理基础知识 数制存储器 RAM与ROMCPU 数制 数制就是一位数字能够表示的数的数量 N进制数的进位规则是 冯N进1 常用的数制有十进制 二进制 十六进制人类有十个指头 所以习惯采用十进制计算机只能识别0和1 采用二进制为了计算机学中的数据书写方便 采用十六进制位与字节的概念 位 bit 简写为b 表示二进制数的一位 字节 Byte 简写为B 8位为一字节 数制转换工具 Windows自带的计算器 三种数制的转换表 十进制 冯十进一二进制 冯二进一十六进制 冯十六进一 位和字节 1Byte 8bit1字节 2位十六进制数例 0 x55 0b01010101 850 xA3 0b10100011 163 存储器 RAM与ROM 对于8位单片机 其内部存储器均为8位 RAM与ROM的模型 CPU CPU即为中央处理器取指令 执行 C语言基础知识讲解 变量运算符语句函数顺序语句选择语句循环语句数组和指针 变量 运算符 语句 变量 变量就是存储于RAM或ROM中的数据变量的分类 单片机中比较常用的是字符型 char 和整型 int 实型 float 变量在单片机C语言中一般用不到运算符 类似于数学运算中的运算符号语句 C语言中以分号作为一条语句的结束习惯上每条语句单独占用一行 但也可以每行有多条语句 用分号隔开即可 字符型变量 占用存储器中的1个字节空间 即8位二进制数取值范围 0 28 1 即0 255可以赋值为整数或ASCII码charzifu 97 charzifu a 举例 请观看演示 整型变量 占用存储器中的2个字节 即16位二进制数有无符号子类型 unsignedint 无符号整型 取值范围0 216 1 即0 65535signedint 有符号整型 signed可以省略 取值范围 215 215 1 即 32768 32767举例 请观看演示 长整型 取值范围更大的int子类型 longint 长整形 长度为32位 即4个字节longlongint 长度为64位 即8个字节举例 请观看演示 常用的运算符 赋值 加 减 乘 除 括号 求余 与 或 取反 异或 左移 逻辑与 逻辑或 AVR单片机软硬件设计教程 入门篇 学单片机就要学AVR 主讲 尹延辉策划 张勇学习板 LT Mini M16力天电子版权所有技术交流QQ群 316463462008年9月 第四讲C语言的流水灯验证 本讲内容 AVR的IO口简介与寄存器的概念IO口设置为输出状态循环语句 C语言的流水灯验证蜂鸣器 基本概念 何谓 寄存器 寄存器就是RAM中的一些特殊单元 映射片上外设的特殊功能何谓 IO口 可以将 0 与 1 转换为电压信号的端口单片机中最常用的TTL电平 0V代表 0 5V代表 1 Mega16有4个IO口 PA PB PC PDIO口的性能指标灌电流能力 能够流入IO口的最大电流拉电流能力 能够从IO口流出的最大电流上拉电阻与下拉电阻最大输入电压 IO口的两种状态 IO口的两种状态 输入口模型 输出口模型 IO口的输出性能指标 AVR的IO口灌电流能力与拉电流能力均达30mA51的拉电流能力 100uA 灌电流能力10mA 灌电流能力 能够流入IO口的最大电流 拉电流能力 能够从IO口流出的最大电流 IO口的输入性能指标 能够承受的最大输入电压范围 是否有上拉电阻 AVR的IO口输入状态时可配置上拉电阻 值为100k数量级最大输入电压范围 0 5V Vcc 0 5V IO 寄存器与变量 IO口与IO寄存器的映射 x代表A D 方向寄存器 DDRx数据寄存器 PORTx输入寄存器 PINxC语言变量与寄存器的映射io h这个文件中将所有寄存器映射为同名的变量 对这些变量的读写相当于对寄存器的读写输出状态IO寄存器设置DDRx某一位置1 相应位的IO口被设置为输出PORTx某一位置1或0 对应IO口相应位的电平高低 C语言与硬件环境的映射 C语言的流水灯验证 8位流水灯可用于指示8位二进制数对IO寄存器进行移位运算 即可实现流水灯效果循环语句while语句for语句各种运算符的流水灯验证赋值 加 减 乘 除 括号 求余 与 或 取反 异或 左移 逻辑与 逻辑或 逻辑非 位运算 将某一位置1 置0 取反置1 相应位与1进行按位或 运算置0 相应位与0进行按位与 运算取反 相应位与1进行按位异或 运算移位运算符 左边为最高位 右边为最低位左移 右移n位相当于乘2 n运算 右侧n位丢弃 左侧补n个0 蜂鸣器 有源蜂鸣器加上电源电压即可发出鸣叫声 消耗电流20mA左右 AVR的蜂鸣器驱动电路IO口直接驱动 传统的蜂鸣器驱动电路三极管驱动 IO口输出操作总结 第一步 IO设置为输出DDRB 0 xff DDRB 1 5 第五位设为输出第二步 对应位输出数据输出1 PORTB 1 5 第五位输出高电平输出0 PORTB 第五位取反 AVR单片机软硬件设计教程 入门篇 学单片机就要学AVR 主讲 尹延辉策划 张勇学习板 LT Mini M16力天电子版权所有技术交流QQ群 316463462008年9月 第五讲按键与数码管的程序设计 本讲内容 AVRIO口的输入模式与上拉电阻选择结构语句与按键的查询方式程序设计数码管基本原理扫描方式显示多位数码管 输入状态IO寄存器设置 输入状态IO寄存器设置DDRx某一位置0 相应位的IO口被设置为输入PORTx某一位置1 使能对应IO口相应位的上拉电阻PINx的对应位是输入的数据 0或1 选择结构语句 关系运算符和关系表达式小于大于或等于 等于 不等于 逻辑运算符和逻辑表达式逻辑与 逻辑或 逻辑非 if语句结构if 表达式1 语句1elseif 表达式2 语句2else语句3 switch语句结构switch 表达式 case常量1 表达式1case常量2 表达式2 default 表达式n 按键的查询方式程序设计 PIND 1 6 1 6 1左移6位 即 0b01000000PIND 1 6 将除第6位之外其他位清零第6位保持输入的值与选择结构语句的结合判断PIND 1 6 的值 执行相应代码 八段数码管 八段数码管由八段LED构成各LED阴极或阳极并在一起 称为 位选线 共阴 共阳其余8个引脚各自引出 称为 段选线 各段可以分别控制 多位合一的数码管 多位合一的数码管将多个八段数码管的段选线分别并在一起 位选线引出 数码管扫描原理 数码管扫描原理多位数码管的各个位均可以单独显示不同的数据 但一个时刻只能点亮一位依次点亮多位数码管中的各个位 由于人眼的视觉暂留效应 看起是来多位同时点亮请观看程序演示 AVR单片机软硬件设计教程 入门篇 学单片机就要学AVR 主讲 尹延辉策划 张勇学习板 LT Mini M16力天电子版权所有技术交流QQ群 316463462008年9月 第六讲中断与定时器 本讲内容 中断的概念M16的外部中断定时器的概念M16的定时器中断方式使用定时器 中断的概念 在程序运行期间 发生非预期的紧急事件通常是为了避免查询方式的程序设计用得最多的是外部中断与定时器中断外部中断 按键程序定时器中断 定时与循环扫描等应用场合中断服务程序中断发生时 主程序暂停 跳转到中断服务程序 称为 响应中断 执行完毕后返回主程序继续运行 M16的外部中断 M16具有3个外部中断INT0 INT1 支持4种触发模式 同步触发INT2支持2种触发模式 异步触发中断相关库函数的头文件avr interrupt h中断服务程序SIGNAL SIG INTERRUPT0 此处添加中断服务代码 中断有关的寄存器MCUCRMCUCSRGICR 外部中断使用步骤 第1步 包含头文件 include第2步 设置中断触发方式任意逻辑电平变化 MCUCR 1 ISC10 下降沿触发 MCUCR 1 ISC10 1 ISC11 上升沿触发 MCUCR 1 ISC11 第3步 使能响应相应外部中断GICR 1 INT0 第4步 使能全局中断sei 第5步 编写中断服务程序SIGNAL SIG INTERRUPT0 定时器的概念 8位定时 计数器的模型1个8位长度计数寄存器 可以对其进行读写1个时钟输入端口 计数寄存器对时钟输入端口的时钟脉冲个数进行加1计数 即每来一个时钟脉冲 寄存器的数值自加1如何实现精确定时 给计数寄存器设定初值n0给时钟输入端口输入一个频率精确的方波方波周期为t0计数器计数到256时定时器溢出 时间间隔为 T 256 n0 t0定时器溢出时可以产生中断 定时器溢出方式的应用 M16的定时器08位定时器具有PWM功能定时器0相关寄存器T C控制寄存器 TCCR0设置时钟源频率T C寄存器 TCNT0计数寄存器T C中断屏蔽寄存器 TIMSK需要使用溢出中断时T C中断标志寄存器 TIFR查询是否溢出 定时器0溢出方式查询模式使用步骤 第1步 设置TC寄存器初值TCNT0 55 第2步 开启时钟 同时TC0启动TCCR0 1 CS01 第3步 查询TIFR寄存器的TOV0位while TIFR 定时器0溢出方式中断模式使用步骤 第1步 包含中断函数头文件 include第2步 设置TC寄存器初值TCNT0 55 第3步 使能TC0溢出中断TIMSK 1 TOIE0 第4步 编写TC0溢出中断服务程序SIGNAL SIG SIG OVERFLOW0 此处添加中断服务程序代码 第5步 开启时钟 同时TC0启动TCCR0 1 CS01 第6步 使能全局中断sei AVR单片机软硬件设计教程 入门篇 学单片机就要学AVR 主讲 尹延辉策划 张勇学习板 LT Mini M16力天电子版权所有技术交流QQ群 316463462008年9月 第七讲异步串行口UART 本讲内容 串行通讯技术概述异步串行通讯原理UART与电脑的通讯M16的USART中断方式使用USART步骤 串行通讯技术概述 串行通讯的通俗定义 一次发送一位串行通讯的分类 同步串行通讯时钟线 数据线 通过时钟保持数据同步SPI IIC异步串行通讯只有一根数据线 通过波特率保证数据同步UART无线通信一般均为异步串行通信 异步串行通讯原理 波特率每秒发送码元的位数 单位bps9600bps 每个码元时间宽度为 1 9600 S发送方按照波特率发出数据接收方按照波特率确定的码元时间宽度对数据进行采样帧格式8位数据格式接线图发送端 TXD接收端 RXD交叉连接 串口与PC机的通讯 RS232电平标准逻辑1 15V逻辑0 15VDB9接口定义TXD RXD GND三根线即可满足绝大多数应用场合 M16的USART 特点全双工操作 独立的串行接收和发送寄存器 异步或同步操作支持5 6 7 8 或9个数据位和1个或2个停止位硬件支持的奇偶校验操作三个独立的中断源噪声滤波 包括错误的起始位检测 以及数字低通滤波器 USART寄存器UDRUCSRAUCSRBUCSRCUBRRL与UBRRH 中断方式使用USART步骤 第1步 设置波特率 defineF CPU16000000 defineBAUD9600UBRRH F CPU BAUD 16 1 256 UBRRL F CPU BAUD 16 1 256 第2步 使能发送 接收 接收完成中断UCSRB 1 RXEN 1 TXEN 1 RXCIE 第3步 使能全局中断sei 第4步 查询方式发送 中断方式接收发送 while UCSRA AVR单片机软硬件设计教程 入门篇 学单片机就要学AVR 主讲 尹延辉策划 张勇学习板 LT Mini M16力天电子版权所有技术交流QQ群 316463462008年9月 第八讲SPI串行口与DS1302 本讲内容 同步串行口SPI的基本原理DS1302的接口时序图DS1302的使用M16的SPI的使用 SPI基本原理 同步串行口利用时钟线对串行数据进行同步上升沿或者下降沿锁存数据4线SPI 全双工SS SCLK MOSI MISO3线SPI 半双工SS SCLK DIOSPI时序图 按照时序图编写IO程序上升沿 PORTB DS1302的接口时序图与AVR的接线图 时序图见DS1302的官方技术文档与AVR之间的接线图3线SPI与4线SPI的互联 DS1302的使用 等效于一部电子万年历可以读出年月日时分秒星期等时间信息可以对上述信息进行设置 校表 外围元器件32768Hz晶振备份电池数据传输模式单字节传输模式突发传输模式IO口模拟SPI时序 M16的SPI 功能强大的AVRSPI全双工支持全部四种SPI模式主机或从机模式可配置的SPI位速率 最高达8MHzSPI寄存器设置SPI控制寄存器 SPCRSPI状态寄存器 SPSRSPI数据寄存器 SPDRSPI初始化函数与读写1字节函数 AVR单片机软硬件设计教程 入门篇 学单片机就要学AVR 主讲 尹延辉策划 张勇学习板 LT Mini M16力天电子版权所有技术交流QQ群 316463462008年9月 第九讲IIC TWI 接口与AT24C02 本讲内容 IIC总线定义与特点I2C总线的工作原理AVR的TWI模块的使用方法AT24C02 I2C总线定义 I2C Inter IntegratedCircuit 总线是一种由PHILIPS公司开发的两线式串行总线 用于连接微控制器及其外围设备 I2C总线产生于在80年代 最初为音频和视频设备开发 如今主要在服务器管理中使用 其中包括单个组件状态的通信 例如管理员可对各个组件进行查询 以管理系统的配置或掌握组件的功能状态 如电源和系统风扇 可随时监控内存 硬盘 网络 系统温度等多个参数 增加了系统的安全性 方便了管理 TWI ATMega系列单片机片内集成两线制串行接口模块 Atmel文档称它为TWI接口 事实上TWI与PHILIPS的I2C总线是同一回事 之所以叫它TWI是因为这样的命名可使Atmel避免交术语版税 所以 TWI是兼容I2C的一种说法 I2C总线的特点 I2C总线最主要的优点是其简单性和有效性 由于接口直接在组件之上 因此I2C总线占用的空间非常小 减少了电路板的空间和芯片管脚的数量 降低了互联成本 总线的长度可高达25英尺 并且能够以10Kbps的最大传输速率支持40个组件 I2C总线的另一个优点是 它支持多主控 multimastering 其中任何能够进行发送和接收的设备都可以成为主总线 一个主控能够控制信号的传输和时钟频率 当然 在任何时间点上只能有一个主控 I2C总线多机通讯 I2C总线的工作原理 I2C总线是由数据线SDA和时钟SCL构成的串行总线 可发送和接收数据 在CPU与被控IC之间 IC与IC之间进行双向传送 最高传送速率100kbps 各种被控制电路均并联在这条总线上 但就像电话机一样只有拨通各自的号码才能工作 所以每个电路和模块都有唯一的地址 在信息的传输过程中 I2C总线上并接的每一模块电路既是主控器 或被控器 又是发送器 或接收器 这取决于它所要完成的功能 CPU发出的控制信号分为地址码和控制量两部分 地址码用来选址 即接通需要控制的电路 确定控制的种类 控制量决定该调整的类别 如对比度 亮度等 及需要调整的量 这样 各控制电路虽然挂在同一条总线上 却彼此独立 互不相关 I2C总线的工作原理 I2C总线在传送数据过程中共有三种类型信号 它们分别是 开始信号 结束信号和应答信号 开始信号 SCL为高电平时 SDA由高电平向低电平跳变 开始传送数据 结束信号 SCL为高电平时 SDA由低电平向高电平跳变 结束传送数据 应答信号 接收数据的IC在接收到8bit数据后 向发送数据的IC发出特定的低电平脉冲 表示已收到数据 CPU向受控单元发出一个信号后 等待受控单元发出一个应答信号 CPU接收到应答信号后 根据实际情况作出是否继续传递信号的判断 若未收到应答信号 由判断为受控单元出现故障 这些信号中 起始信号是必需的 结束信号和应答信号 都可以不要 I2C总线的时序图 AVR的TWI模块 本部分结合ATmega16的技术文档讲解 AT24C02 AT24C02是由ATMEL公司提供的 I2C总线串行EEPROM 其容量为2Kbit 256B 工作电压在2 7V 5 5V之间 生产工艺是CMOS工艺 各引脚功能如下 A2 A0 器件地址选择引脚 将这3个引脚配置成不同的编码值 在同一串行总线上最多可扩充8片同一容量或不同容量的24系列串行EEPROM芯片 SDA 串行数据输入输出口 是一个双向的漏极开路结构的引脚 容量扩展时可以将多片24系列的SDA引脚直接相连 SCL 串行移位时钟控制端 写入时上升沿起作用 读出时下降沿起作用 WP 硬件写保护控制引脚 当其为低电平时 正常写操作 高电平时 对EEPROM部分存储区域提供硬件写保护功能 即对被保护区域只能读不能写 GND 接地 VCC 接 5V电压 电路设计 程序流程 容量计算方法AT24Cxx 01 1024容量 xxX1Kbit型号系列列表AT24C011K 128X8 AT24C022K 256X8 AT24C044K 512X8 AT24C088K 1KX8 AT24C1616K 2KX8 AT24C512512K 64KX8 AT24C10241M 128KX8 AVR单片机软硬件设计教程 入门篇 学单片机就要学AVR 主讲 尹延辉策划 张勇学习板 LT Mini M16力天电子版权所有技术交流QQ群 316463462008年9月 第十讲ATmega16的ADC 本讲内容 模数转换技术概述性能指标 速度与精度AVR的模数转换器 模数转换技术概述 所谓模数转换 就是将模拟信号 电压或电流 通过模数转换器 ADC 转换成数字电路 例如单片机 可以处理的数字量形象的说 ADC就是一个单片机可以对其进行读取的数字电压表 电流表 性能指标 速度与精度 转换速率 每秒钟采样的次数 常用单位 SPS 每秒次 KSPS 每秒千次 MSPS 每秒百万次 越快越好 转换精度 转换结果的有效位数 二进制 单位 位AVR的片上ADC 最高转换速率 15kSPS最高转换精度 10位 AVR的模数转换器 AVR片上ADC的特点 10位精度0 5LSB的非线性度 2LSB的绝对精度65 260 s的转换时间最高分辨率时采样率高达15kSPS8路复用的单端输入通道7路差分输入通道2路可选增益为10 x与200 x的差分输入通道可选的左对齐ADC读数0 VCC的ADC输入电压范围可选的2 56VADC参考电压连续转换或单次转换模式通过自动触发中断源启动ADC转换ADC转换结束中断基于睡眠模式的噪声抑制器 使用流程 1 初始化相关寄存器2 读取转换结果3 平滑滤波4 进行单位制变换 AVR单片机软硬件设计教程 入门篇 学单片机就要学AVR 主讲 尹延辉策划 张勇学习板 LT Mini M16力天电子版权所有技术交流QQ群 316463462008年9月 第十一讲液晶显示模块的使用 本讲内容 液晶显示技术概述LCD显示的原理LCD控制器与LCD模块LCD模块使用方法 液晶显示技术概述 液晶 LiquidCrystal 是一种高分子材料 因为其特殊的物理 化学 光学特性 20世纪中叶开始被广泛应用在轻薄型的显示技术上 人们熟悉的物质状态 又称相 为气 液 固 较为生疏的是电浆和液晶 LiquidCrystal 简称LC 液晶相要具有特殊形状分子组合始会产生 它们可以流动 又拥有结晶的光学性质 液晶的定义 现在以放宽而囊括了在某一温度范围可以是现液晶相 在较低温度为正常结晶之物质 而液晶的组成物质是一种有机化合物 也就是以碳为中心所构成的化合物 同时具有两种物质的液晶 是以分子间力量组合的 它们的特殊光学性质 又对电磁场敏感 极有实用价值 特点 轻薄低功耗 LCD显示的原理 液晶显示材料最常见的用途是电子表和计算器的显示板 这种液态光电显示材料 利用液晶的电光效应把电信号转换成字符 图像等可见信号 液晶在正常情况下 其分子排列很有秩序 显得清澈透明 一旦加上直流电场后 分子的排列被打乱 一部分液晶变得不透明 颜色加深 因而能显示数字和图象 液晶显示器的英文缩写为LCD LCD显示的原理 两片玻璃片分别镀有透明的导电铝箔 上下表面两条铝条加电压 其交叉点上的液晶会变得浑浊 LCD控制器与LCD模块 LCD控制芯片专门用于LCD的驱动与控制 在单片机与LCD屏之间提供一个良好的接口LCD模块 将LCD控制芯片与LCD屏集成在一起 方便单片机等可编程芯片对其进行控制LCD模块的种类 笔段型字符型 显示字符位数 常见的有1602 16字符X2行 点阵型 图形液晶 点数 X Y 常见的有12864 128点X64点 LCD模块使用方法 结合技术文档讲解 AVR单片机软硬件设计教程 入门篇 学单片机就要学AVR 主讲 尹延辉策划 张勇学习板 LT Mini M16力天电子版权所有技术交流QQ群 316463462008年9月 第十二讲项目实例 多功能电子钟 本讲内容 项目设计要求项目规划DS18B20的使用方法程序流程 项目设计要求 设计要求 设计制作一个多功能电子钟 具备年月日时分秒显示功能 掉电后时钟信息不会丢失 具备显示当前环境温度功能 显示器可以在字符液晶与数码管之间切换选择 电子钟通过USART与PC机通讯 通过串口调试助手设置时间 通过四个按键切换显示模式与数码管显示内容 具有数字电压表功能 能够测量0 2 5V范围内的电压并在字符型液晶上显示 采用AVR单片机ATmega16 项目规划 时钟功能的实现 AVR单片机自带RTC功能 但C语言实现日历功能比较复杂 且ATmega16的功耗不够低 ATmega48V是典型的低功耗AVR 而时钟芯片DS1302掉电功耗很低 操作方便 因此时钟功能选择DS1302 备份电池实现 字符液晶的选择 选择最常用的字符型液晶1602 上位机通讯 采用TTL 232电平转换芯片MAX232A DB9接口 温度测量功能 采用常用的温度测量芯片DS18B20电压表功能 片上自带的10位ADC 片内2 56V参考电压源 测量电压直接输入 DS18B20简介 DS18B20简介美国美信 Maxim 公司生产的单线数字温度传感器DS1820 可把温度信号直接转换成串行数字信号供微机处理 DS18B20的主要特性适应电压范围更

温馨提示

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

评论

0/150

提交评论