0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Atmega16单片机和51单片机有何区别?从软硬件两方面分析

电子设计 作者:电子设计 2018-09-03 08:23 次阅读

1. Atmega16单片机简介

今天我们的主题是单片机,说道单片机你可能最先想到的是51单片机,然后通过外接的数字电路模拟电路来控制外围的硬件,比如PWM,ADCI2C等等。那么今天我们所说的是什么那?其实你把Atmega16单片机当成51单片机来使用即可,只不过是Atmega16单片机的外围接口更丰富,那么它都有什么外设资源那?

ATmega16是基于增强的AVR RISC结构的低功耗8 位CMOS微控制器,由于其先进的指令集以及单时钟周期指令执行时间,ATmega16 的数据吞吐率高达1 MIPS/MHz。ATmega16常用片上资源有定时器、PWM、外部中断、SPI总线、两线串行接口TWI、EEPROM、USART、模拟比较器、ADC转换、IEEE(JTAG)边界扫描等。如何去学习Atmega16单片机那?我们从硬件和软件两方面分析。

2. Atmega16单片机硬件原理图(最小系统)

从上述的最小系统板子上们可以看到它分为如下几个部分:

电源电路:5V电源

复位电路:上电复位(电容),手动按键复位。

晶振电路:Atmega16单片机内部自带RC震荡电路,但是自带的震荡电路不够精确,所以这里就外接了一个8MHZ的晶振。

下载程序接口ISP:ISP串行的下载程序的接口

Atmega16单片机:8位avr单片机。

1. Atmega16单片机编程

AVR单片机的编译软件有GCC AVR和ICC AVR等,通常使用较多的是ICC AVR,也比较好用,本书以ICC AVR6.31版本为例介绍编译软件的使用。启动ICC AVR,界面如下图所示。如何使用avr单片机控制最小系统上的led灯那?代码如下:

AVR ATmega16 流水灯C程序

/**************************************************************************/

#include //包含单片机型号头文件

#include //包含“位”操作头文件

void delay(void) //自定义延时函数

{

unsigned char i,j;

for(i=0;i《255;i++)

for(j=0;j《10;j++)

;

}

void cpu_init(void) //单片机初始化函数

{

PORTA = 0x00; //PA口输出值都定义为0

DDRA = 0x00; //PA口输出允许关

PORTB = 0x00; //PB口输出值都定义为0

DDRB = 0x00; //PB口输出允许关

PORTC = 0x00; //PC口输出值都定义为0

DDRC = 0x00; //PC口输出允许关

PORTD = 0x00; //PD口输出值都定义为0

DDRD = 0x00; //PD口输出允许关

}

void main(void)

{

cpu_init(); //初始化单片机

while(1)

{

PORTA=0X00; /*点亮led灯,由最小系统的外部电路决定单片机输出

低电平时流水灯点亮*/

DDRA=0XFF; /*允许输出,此时PORTA的赋值才有效,这事AVR比51高级的地方*/

//由于其他端口没有接外围设备先不用定义

delay();

DDRA=0X00; //关闭led灯

delay();

}

}

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • adc
    adc
    +关注

    关注

    95

    文章

    5646

    浏览量

    539394
  • 51单片机
    +关注

    关注

    269

    文章

    5648

    浏览量

    120687
  • 定时器
    +关注

    关注

    23

    文章

    3146

    浏览量

    112028
  • ATmega16单片机

    关注

    1

    文章

    26

    浏览量

    20789
收藏 人收藏

    评论

    相关推荐

    AVR单片机软硬件设计教程入门篇

    AVR单片机软硬件设计教程入门篇单片机就是一台微型电脑。麻雀虽小,五脏俱全,单片机将微型电脑的所有基本部分都集成在一片硅片上。构成单片机的基
    发表于 12-09 15:22

    单片机课程的教学与实验改革

    单片机课程是电子信息类专业的重要课程,本文介绍了单片机课程的改革实践与体会,着重从教学方法,实验手段两方面阐述改革的方法,并以SPI模块为例介绍PROTEUS软件开发过程和设计分析过程
    发表于 03-07 15:12

    自制ATMEGA16单片机实验板,印刷PCB,程序

    周期指令执行时间,ATmega16 的数据吞吐率高达1 MIPS/MHz,从而可以减缓系统在功耗和处理速度之间的矛盾。51单片机、AVR单片机、PIC
    发表于 11-05 19:14

    51单片机

    Atmega16单片机及其IC插座 1.2 Atmega16特性及片上资源简介 • 单指令执行周期,工作于16MHz 时性能高达16 M
    发表于 07-07 16:23

    Atmega16 单片机

    对外部脉冲计数,Atmega16 单片机 怎么配置寄存器? 请各位大神帮忙?新手没分,还请谅解!!如果有例就更好了,C语言的。谢谢!!!!!!!
    发表于 11-17 17:40

    软硬件方面降低单片机系统功耗

    电子产品的低功耗问题经常让产品设计者头痛而又不得不面对。以单片机(MCU)为核心的系统,其功耗主要由单片机功耗和单片机外围电路功耗组成。要降低单片机系统的功耗,需要从
    发表于 06-20 08:06

    Atmega16单片机实用程序Atmega16单片机实用程序

    Atmega16单片机实用程序Atmega16单片机实用程序/************************************************/************
    发表于 07-13 09:14

    介绍一种Atmega16单片机串口通信

    Atmega16单片机串口通信Atmega16单片机串口通信串口通信需要使用到的内部寄存器程序代码Atmega16
    发表于 07-13 07:46

    如何实现Atmega16单片机串口通信呢

    串口通信需要使用到的内部寄存器哪些?如何实现Atmega16单片机串口通信呢?
    发表于 09-23 07:47

    MCS-51单片机温度控制系统的设计思路分享

                  摘要:   本文硬件和软件两方面介绍了MCS-51单片机温度控制系统的设计思路,对
    发表于 11-19 07:30

    用到ATMEGA16型号的AVR单片机代码

    用到ATMEGA16型号的AVR单片机代码#includevoid delay(void){int x=0;while(x
    发表于 11-23 06:42

    Atmega16 AVR单片机

    Atmega16 AVR 单片机 proteus 仿真 计算器
    发表于 11-23 06:23

    ATmega16单片机实用程序

    ATmega16单片机实用程序,共21个。可直接移植,添加应用。
    发表于 11-09 14:25 33次下载

    ATmega16单片机教程之ATmega16单片机定时器的分析与设计应用概述

    本文档的主要内容详细介绍的是ATmega16单片机教程之ATmega16单片机定时器的分析与设计应用概述主要内容包括了:1、
    发表于 12-07 08:00 13次下载
    <b class='flag-5'>ATmega16</b><b class='flag-5'>单片机</b>教程之<b class='flag-5'>ATmega16</b><b class='flag-5'>单片机</b>定时器的<b class='flag-5'>分析</b>与设计应用概述

    Atmega16单片机串口通信

    Atmega16单片机串口通信Atmega16单片机串口通信串口通信需要使用到的内部寄存器程序代码Atmega16
    发表于 11-15 13:21 13次下载
    <b class='flag-5'>Atmega16</b><b class='flag-5'>单片机</b>串口通信