资源预览内容
第1页 / 共17页
第2页 / 共17页
第3页 / 共17页
第4页 / 共17页
第5页 / 共17页
第6页 / 共17页
第7页 / 共17页
第8页 / 共17页
第9页 / 共17页
第10页 / 共17页
亲,该文档总共17页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
秒节拍显示器系统的设计马静芳2011 5ATmega16单片机的一些性能指标,特点及外部引脚 vAtmega16单片机介绍 ATmega16是基于增强的AVR RISC结构的低功耗8 位 CMOS微控制器。片内ISP Flash 允许程序存储器通过ISP 串行接口, 通过将8 位RISC CPU 与系统内可编程的Flash 集成在一 个芯片内, ATmega16 成为一个功能强大的单片机,为 许多嵌入式控制应用提供了灵活而低成本的解决方案。 ATmega16 具有一整套的编程与系统开发工具,包括:C 语言 编译器、宏汇编、 程序调试器/ 软件仿真器、仿真器 及评估板。 v ATmega16产品特性 高性能、低功耗的8位AVR微处理器 (1)先进的RISC 结构 (2)131条指令 (3)大多数指令执行时间为单个时钟周期 (4)32个8位通用工作寄存器 (5)全静态工作 (6)工作于16MHz时性能高达16MIPS (7) 只需两个时钟周期的硬件乘法器 (8)非易失性程序和数据存储器 (9)6K 字节的系统片内可编程Flash,擦写寿命: 10,000 次 (10) 具有独立锁定位的可选Boot代码区,通过片上Boot 程序实现系统内编程,真正的同时读写操作 (11)512 字节的EEPROM数据存储器,擦写寿命: 100,000次 (12)1K字节的片内SRAM数据存储器 (13)可以对锁定位进行编程以实现用户程序的加密 (14)JTAG 接口( 与IEEE 1149.1 标准兼容) (15)符合JTAG 标准的边界扫描功能 (16)支持扩展的片内调试功能 (17)通过JTAG 接口实现对Flash、EEPROM、熔丝位和 锁定位的编程 v外设特点 两个具有独立预分频器和比较器功能的8位定时器/计数器 (1)一个具有预分频器、比较功能和捕捉功能的16位定时 器/计数器 (2)具有独立振荡器的实时计数器RTC (3)四通道PWM (4) 8路10位ADC,8个单端通道,2个具有可编程增益的 差分通道 (5)面向字节的两线接口 (6)两个可编程的串行USART (7)可工作于主机/ 从机模式的SPI 串行接口 (8)具有独立片内振荡器的可编程看门狗定时器 (9)片内模拟比较器 v特殊的处理器特点 (1)上电复位以及可编程的掉电检测 (2)片内经过标定的RC振荡器 (3)片内/片外中断源 (4)6种睡眠模式: 空闲模式、ADC 噪声抑制模式、省电 模式、掉电模式、Standby 模式以及扩展的Standby模 式 v I/O和封装 (1) 32个可编程的I/O口 (2)40引脚PDIP封装, 44引脚TQFP封装, 与44引脚 MLF封装工作电压: ATmega16:4.5 - 5.5V v速度等级 0-16MHz ATmega16 v ATmega16 引脚功能 VCC :电源正 GND :电源地RESET 复位输入引脚。持续时间超过最小门限时间的 低电平将引起系统复位。持续时间小于门限间的脉冲不 能保证可靠复位。 XTAL1 :反向振荡放大器与片内时钟操作电路的输入端。 XTAL2 :反向振荡放大器的输出端。 AVCC:端口A与A/D转换器的电源。不使用ADC时,该引 脚应直接与VCC连接。使用ADC时应通过一个低通滤波 器与VCC 连接。 AREF: A/D 的模拟基准输入引脚。 vATmega16 I|O口介绍ATmega16有4个8位的双向I|O端口PA、PB、PC、 PD,它们对外对应32个I|O引脚,每一位都可以独立地用 于逻辑信号的输入和输出。在5V工作电压下输出高电平时 ,每个引脚可输出20mA的驱动电流;而输出低电平时, 每个引脚可吸收最大为40mA的电流,可直接驱动发光二 极管LED和小型继电器。AVR大部分的I|O端口都具备双重功能,可分别与片 内的各种不同功能的外围接口电路组合成一些可以完成特 殊功能的I|O口,如定时器、计数器、串行接口、模拟比 较器,捕捉器等ATmega16 内核介绍 为了获得最高的性能以及并行性, AVR 采用了 Harvard 结构,具有独立的数据和程序总线。程序存储器 里的指令通过一级流水线运行。CPU 在执行一条指令的同 时读取下一条指令( 在本文称为预取)。这个概念实现了指 令的单时钟周期运行。程序存储器是可以在线编程FLASH秒节拍显示器硬件设计v 通过对智能仪器课程的学习我将设计一个简易的“秒节 拍显示器”。这个秒节拍显示器就是用单片机控制一个LED发 光二极管,让它亮1s,暗1s,不间断的闪烁。图1是它的电 路原理图。v 秒节拍显示器的硬件电路使用一个AVR芯片和LED发光 二极管作为信号的显示。当ATmegal6的I/O引脚PC0口输出 为“0”时,LED导通发光;导通为“1”时LED截止熄灭。电阻 R3起保护限流作用,控制LED的导通电流。适当调整R3的 阻值,可以调节LED的亮度,并限制流过LED和PC0口的电 流,保护其不被大电流烧毁。 v从图中可以知道R1为引脚的上拉电阻,保证了该引脚可靠的 高电平。系统采用外接4MHz晶体和芯片内部的振荡电路组 成时钟电路,产生4MHz的脉冲作为系统的始终信号电容C1和C2应与石英晶体配合,改变C1,C2的值可 以对4MHz的频率进行微调。R2与晶体并联,其作用是稳 定晶体的阻抗,提高 振荡电路的稳定性。v图中的ISP编程下载口的2、3、4、5脚与芯片SPI接口的 MOSI(PB5)、MISO(PB6)、SCK(PB7)和引脚连接 。当需要改动AVR的熔丝位配置,或将编译好的运行代码 烧入AVR单片机的Flash ROM中时,就不需要将芯片从 PCB板上取下,只要将一根简单的编程线插在该编程下载 口上,利用PC机就可以方便地实现上面的操作。v当PC机对AVR编程时需要先将SCK和引脚拉低,使AVR 芯片进入SPI编程状态,然后通过SPI口进行下载操作。因 此,在设计AVR系统硬件时,如果考虑使用SPI口实ISP 的功能,所以图中的电阻R1不可以省略。此时R1起到了 上拉隔离作用,正是有了R1才能使用户在外部对引脚施 加 低电平(0V)。当编程下载完成后,外部一旦释放掉,该 引脚通过R1又被拉成高电平,AVR就直接进入了正常运 行工作状态,R1的阻值 在之间,太大和太小都不合适。秒节拍显示器软件设计思路v下图为秒节拍显示器的系统软件流程图。从图中可以看出 秒节拍显示器的软件设计重点是一个1s延时子程序。系统 程序每隔1s(调用1s延时子程序)将PC0口的输出电平取 反,同时也控制LED的亮与暗。系统初始化执行秒延时程序PC0口电平反向输出秒节拍显示器的高级C语言源程序v在这里给出一个通用软件延时的子程序,每调用一次该子 程序,其运行的时间为1s,每隔1s控制PC0口的输出逻辑 取反。这样LED就会亮1s,灭1s,实现了秒节拍的显示。v下面是使用高级语言编写的秒节拍发生器的C语言源程序 。在程序的初始化代码中仅仅对PORTC口进行了设置 ,而没有对AVR堆栈指针进行初始化设置,这是由于 CVAVR系统在编译时会首先帮助用户自动地设置堆栈指针 ,方便了用户的使用, 在C语言主程序中,由while(1) 构成无限死循环,循环中调用了延时函数delay-ms(), 延时1s后将PC0口的值取反输出,控制点亮和熄灭LED。 因此程序的运行效果是每隔1s后,控制PC口的第0位输出 “1”或“0”,使LED亮1s,暗1s,形成秒节拍显示指示。Demo_5_2.cChip type ATmega16Program type ApplicationClock frequency 4.000000MHzMemory model SmallExternal SRAM size 0Data Stack size 256#include /包括器件配置定义的头文件, 不能缺少#include /包括延时函数定义的头文件使用延 时函数时不能缺少 void main (void)/定义PortC口的工作方式PORTC=0x01; /PC口的第0位输出“1”,LED不亮DDRC=0x01; /定义PC口的第0位为输出方式/主循环While (1)delay_ms(1000); /调用CVAVR提供的毫秒延时函 数,延时1sPORTC.0= PORTC.0; /PC口第0位输出取反;
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号