1 / 12

AVR 单片机软硬件设计教程 - 入门篇 —— 学单片机就要学 AVR !

AVR 单片机软硬件设计教程 - 入门篇 —— 学单片机就要学 AVR !. 主 讲 : 尹延辉 策 划:张 勇 学习板: LT-Mini-M16 力天电子版权所有 技术交流 QQ 群: 31646346 www.lt430.com 2008年 9 月. 第四讲 C 语言的流水灯验证. 本讲内容: AVR 的 IO 口简介与寄存器的概念 IO 口设置为输出状态 循环语句、 C 语言的流水灯验证 蜂鸣器. 基本概念. 何谓 “ 寄存器 ” 寄存器就是 RAM 中的一些特殊单元,映射片上外设的特殊功能 何谓 “ IO 口 ”

kaori
Download Presentation

AVR 单片机软硬件设计教程 - 入门篇 —— 学单片机就要学 AVR !

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. AVR单片机软硬件设计教程-入门篇——学单片机就要学AVR!AVR单片机软硬件设计教程-入门篇——学单片机就要学AVR! 主 讲: 尹延辉 策 划:张 勇 学习板:LT-Mini-M16 力天电子版权所有 技术交流QQ群:31646346 www.lt430.com 2008年9月

  2. 第四讲C语言的流水灯验证 • 本讲内容: • AVR的IO口简介与寄存器的概念 • IO口设置为输出状态 • 循环语句、C语言的流水灯验证 • 蜂鸣器

  3. 基本概念 • 何谓“寄存器” • 寄存器就是RAM中的一些特殊单元,映射片上外设的特殊功能 • 何谓“IO口” • 可以将“0”与“1”转换为电压信号的端口 • 单片机中最常用的TTL电平:0V代表“0”,+5V代表“1” • Mega16有4个IO口:PA,PB,PC,PD • IO口的性能指标 • 灌电流能力:能够流入IO口的最大电流 • 拉电流能力:能够从IO口流出的最大电流 • 上拉电阻与下拉电阻 • 最大输入电压

  4. IO口的两种状态 • IO口的两种状态 • 输出口模型 • 输入口模型

  5. IO口的输出性能指标 • AVR的IO口灌电流能力与拉电流能力均达30mA • 51的拉电流能力<100uA,灌电流能力10mA • 拉电流能力: • 能够从IO口流出的最大电流 • 灌电流能力: • 能够流入IO口的最大电流

  6. IO口的输入性能指标 • AVR的IO口输入状态时可配置上拉电阻,值为100k数量级 • 最大输入电压范围:-0.5V~Vcc+0.5V • 是否有上拉电阻 • 能够承受的最大输入电压范围

  7. IO、寄存器与变量 • IO口与IO寄存器的映射(x代表A~D) • 方向寄存器:DDRx • 数据寄存器:PORTx • 输入寄存器:PINx • C语言变量与寄存器的映射 • io.h这个文件中将所有寄存器映射为同名的变量,对这些变量的读写相当于对寄存器的读写 • 输出状态IO寄存器设置 • DDRx某一位置1,相应位的IO口被设置为输出 • PORTx某一位置1或0,对应IO口相应位的电平高低

  8. C语言与硬件环境的映射

  9. C语言的流水灯验证 • 8位流水灯可用于指示8位二进制数 • 对IO寄存器进行移位运算,即可实现流水灯效果 • 循环语句 • while语句 • for语句 • 各种运算符的流水灯验证 • 赋值= 加+ 减–乘* 除/ 括号() 求余% • 与& 或| 取反~ 异或^ 左移<< 右移>> • 逻辑与&& 逻辑或||逻辑非!

  10. 位运算 • 将某一位置1、置0、取反 • 置1: • 相应位与1进行按位或|运算 • 置0: • 相应位与0进行按位与&运算 • 取反: • 相应位与1进行按位异或^ 运算 • 移位运算符:左边为最高位,右边为最低位 • 左移<<: • 左移n位相当于乘2n运算,左侧n位丢弃,右侧补n个0 • 右移>> • 右移n位相当于乘2-n运算,右侧n位丢弃,左侧补n个0

  11. 蜂鸣器 • 有源蜂鸣器 • 加上电源电压即可发出鸣叫声,消耗电流20mA左右 • 传统的蜂鸣器驱动电路 • 三极管驱动 • AVR的蜂鸣器驱动电路 • IO口直接驱动

  12. IO口输出操作总结 • 第一步:IO设置为输出 • DDRB = 0xff; • DDRB |= (1 << 5);//第五位设为输出 • 第二步:对应位输出数据 • 输出1: PORTB |= (1 << 5);//第五位输出高电平 • 输出0: PORTB &= ~(1 << 5);//第五位输出低电平 • 对应位取反:PORTB ^= (1 << 5);//第五位取反

More Related