120 likes | 362 Views
AVR 单片机软硬件设计教程 - 入门篇 —— 学单片机就要学 AVR !. 主 讲 : 尹延辉 策 划:张 勇 学习板: LT-Mini-M16 力天电子版权所有 技术交流 QQ 群: 31646346 www.lt430.com 2008年 9 月. 第四讲 C 语言的流水灯验证. 本讲内容: AVR 的 IO 口简介与寄存器的概念 IO 口设置为输出状态 循环语句、 C 语言的流水灯验证 蜂鸣器. 基本概念. 何谓 “ 寄存器 ” 寄存器就是 RAM 中的一些特殊单元,映射片上外设的特殊功能 何谓 “ IO 口 ”
E N D
AVR单片机软硬件设计教程-入门篇——学单片机就要学AVR!AVR单片机软硬件设计教程-入门篇——学单片机就要学AVR! 主 讲: 尹延辉 策 划:张 勇 学习板:LT-Mini-M16 力天电子版权所有 技术交流QQ群:31646346 www.lt430.com 2008年9月
第四讲C语言的流水灯验证 • 本讲内容: • AVR的IO口简介与寄存器的概念 • IO口设置为输出状态 • 循环语句、C语言的流水灯验证 • 蜂鸣器
基本概念 • 何谓“寄存器” • 寄存器就是RAM中的一些特殊单元,映射片上外设的特殊功能 • 何谓“IO口” • 可以将“0”与“1”转换为电压信号的端口 • 单片机中最常用的TTL电平:0V代表“0”,+5V代表“1” • Mega16有4个IO口:PA,PB,PC,PD • IO口的性能指标 • 灌电流能力:能够流入IO口的最大电流 • 拉电流能力:能够从IO口流出的最大电流 • 上拉电阻与下拉电阻 • 最大输入电压
IO口的两种状态 • IO口的两种状态 • 输出口模型 • 输入口模型
IO口的输出性能指标 • AVR的IO口灌电流能力与拉电流能力均达30mA • 51的拉电流能力<100uA,灌电流能力10mA • 拉电流能力: • 能够从IO口流出的最大电流 • 灌电流能力: • 能够流入IO口的最大电流
IO口的输入性能指标 • AVR的IO口输入状态时可配置上拉电阻,值为100k数量级 • 最大输入电压范围:-0.5V~Vcc+0.5V • 是否有上拉电阻 • 能够承受的最大输入电压范围
IO、寄存器与变量 • IO口与IO寄存器的映射(x代表A~D) • 方向寄存器:DDRx • 数据寄存器:PORTx • 输入寄存器:PINx • C语言变量与寄存器的映射 • io.h这个文件中将所有寄存器映射为同名的变量,对这些变量的读写相当于对寄存器的读写 • 输出状态IO寄存器设置 • DDRx某一位置1,相应位的IO口被设置为输出 • PORTx某一位置1或0,对应IO口相应位的电平高低
C语言的流水灯验证 • 8位流水灯可用于指示8位二进制数 • 对IO寄存器进行移位运算,即可实现流水灯效果 • 循环语句 • while语句 • for语句 • 各种运算符的流水灯验证 • 赋值= 加+ 减–乘* 除/ 括号() 求余% • 与& 或| 取反~ 异或^ 左移<< 右移>> • 逻辑与&& 逻辑或||逻辑非!
位运算 • 将某一位置1、置0、取反 • 置1: • 相应位与1进行按位或|运算 • 置0: • 相应位与0进行按位与&运算 • 取反: • 相应位与1进行按位异或^ 运算 • 移位运算符:左边为最高位,右边为最低位 • 左移<<: • 左移n位相当于乘2n运算,左侧n位丢弃,右侧补n个0 • 右移>> • 右移n位相当于乘2-n运算,右侧n位丢弃,左侧补n个0
蜂鸣器 • 有源蜂鸣器 • 加上电源电压即可发出鸣叫声,消耗电流20mA左右 • 传统的蜂鸣器驱动电路 • 三极管驱动 • AVR的蜂鸣器驱动电路 • IO口直接驱动
IO口输出操作总结 • 第一步:IO设置为输出 • DDRB = 0xff; • DDRB |= (1 << 5);//第五位设为输出 • 第二步:对应位输出数据 • 输出1: PORTB |= (1 << 5);//第五位输出高电平 • 输出0: PORTB &= ~(1 << 5);//第五位输出低电平 • 对应位取反:PORTB ^= (1 << 5);//第五位取反