ATmega16开发板仿真教程——前言

发布者:丝语轻风最新更新时间:2022-01-06 来源: eefocus关键字:ATmega16  开发板  仿真教程 手机看文章 扫描二维码
随时随地手机看文章

1、基础知识

简单介绍单片机ATmega16的硬件资源,以及IAR软件使用,Proteus8.9仿真软件的基本操作。


AVR单片机分类:


ATtiny系列:tiny13/15/26属于低档,适合功能相对单一系统;

AT90S系列:AT90S8515,属于中档,适合一般系统开发;

ATmega系列:ATmega8/16/32/64/128/256,属于高档,适合各种高要求的系统。

此处学习使用高档ATmega系列中的ATmega16单片机。


1.1、ATmega16硬件简介

1.1.1、ATmega16单片机

ATmega16单片机的特征:


高性能、低功耗的8位AVR单片机MCU、采用RISC结构

16K Flash、512B EEPROM、1KB SRAM

JTAG接口

2个预分频器和比较器功能的8位定时/计数器

1个预分频器、比较功能和捕捉功能的16位定时/计数器

独立振荡器的RTC、4通道PWM

8路10位ADC、1路I2C、1路SPI、1路USART、32个I/O

工作电压4.5-5.5V、时钟频率0-16MHz

单片机实物如图1(具体引脚功能查看Datasheet):

图1- 1 ATmega16单片机实物图


那么AVR单片机有什么特点呢?


——速度快、片上资源丰富、驱动能力强、功耗低、型号多、性价比高。


在了解Atmega16编程前,还要熟悉其基本寄存器Register。

图1- 2 部分寄存器示意图


与51单片机相比,Atmega16相对而言会多一些,但丝毫不影响我们的学习,用到什么寄存器就学习什么,并了解其bit位表示含义。


1.1.2、时钟系统

图1- 3 时钟分布


AVR的时钟并不需要同时工作,为了降低功耗,可以通过不同的睡眠模式来禁止不实用的模块时钟。如图1-3中,有IO时钟、ADC时钟、CPU时钟、Flash时钟等。其输入源有内部高低速RC、外部高低速晶振。

图1- 4 时钟电路图


具体时钟源选择不多介绍,可以参看手册。


1.1.3、复位电路

外部复位由RST引脚低电平产生。

  

图1- 5 复位电路图


1.2、Proteus电路简介

根据Atmega16的硬件资源来绘制原理图,通过外围电路来验证其功能。

图1- 6 Atmega16开发板原理图


Proteus的使用就不多介绍了,这里主要介绍单片机的仿真时钟如何修改。双击原理图中的单片机,得到图1-7。


Program File是导入软件生成的hex文件;

CKOPT是晶体振荡器是否需要编程;

CKSEL Fuses:时钟选择,选择内外时钟,RC还是晶振等;

SUT Fuses:选择启动时间,即复位的延时时间

Clock Frequency:由于仿真无法对时钟进行编程,但可直接选择内部或外部时钟,当使用外部时钟时,可直接指定时钟大小,这里选用常用的11.0592MHz作为CPU时钟。

图1- 7 Proteus仿真时钟设置图


其它外围电路也不一一介绍了,等编程时一一解说。


1.3、IAR使用简介

新建工程可参考网上教程,这里主要提醒注意事项。

图1- 8 IAR基本设置图


以上是IAR所需要的基本设置,然后就可以开始添加头文件,进行编程,开启仿真之旅。

关键字:ATmega16  开发板  仿真教程 引用地址:ATmega16开发板仿真教程——前言

上一篇:ATmega16开发板教程(1)——LED点灯
下一篇:ATMEGA16定时器0

推荐阅读最新更新时间:2024-11-13 13:20

内核裁剪,arm_mini2440开发板中增删自己写的驱动
1、把编译通过的buttons1711.c文件放入 /home/mini2440/linux-2.6.32.2/drivers/char/ 2、修改Makefile 在同一个目录下(第1步中放入.c文件的目录/home/mini2440/linux-2.6.32.2/drivers/char/)打开Makefile: (法1)(不推荐):在obj-y += 后面加上buttons1711.o 然后重新在/home/mini2440/linux-2.6.32.2/中make zImage,再把生成的zImage烧写进开发板就可以用了。 (法2)在底下添加(可找原来类似的位置) obj-$(CONFIG_
[单片机]
tiny4412开发板icache操作程序
首先,来介绍关于cache的概念。 cache的作用: 基于程序访问的局限性,在主存和CPU通用寄存器之间设置了一个高速的、容量相对较小的存储器,把正在执行的指令地址附近的一部分指令或数据从主存调入这个存储器,供CPU在一段时间内使用,这对提高程序的运行速度有很大的作用。这个介于主存和CPU之间的高速小容量存储器称作高速缓存存储器(Cache)。 启用Cache后,CPU读取数据时,如果Cache中有这个数据的复本则直接返回,否则从主存中读入数据,并存入Cache中,下次再使用(读/写)这个数据时,可以直接使用Cache中的复本。 启用Cache后,CPU写数据时有写穿式和回写式两种方式。 (1)写穿式(Wri
[单片机]
NUC980开发板应用 基于NK-980IoT的国学唐诗学习机
1 项目背景 最近一直在陪小孩学习国学精髓,比如唐诗、宋词这些经典国学常识;恰好看到RT-Thread官方社区有开展一个DIY活动,并且这个板子刚好带有音频相关的外设接口,于是想着试着玩一玩,没准后面可以把功能再升级一下,给小孩做个高级”玩具”(这个成本可不低啊)。 2 开发板简介 开发板简单的介绍,参考如下: 整体上板子的外设情况还是非常不错的,可以做很多有用、好玩的东西。由于我本次的DIY项目主要关于音频,所以我也就重点看了这块的介绍。 音频芯片型号为NAU8822L,其中I2C接口用于配置(MODE引脚低),I2S接口用于传输数据。 I2S_LRCK接FS,用于区分左右通道数据。 I2S_BCLK接BCLK 数据传
[嵌入式]
NUC980<font color='red'>开发板</font>应用 基于NK-980IoT的国学唐诗学习机
分析ARM开发板哪家好
目前市场上有许多ARM开发板生产商,市面上也有许许多多不同系列。不免有时候面对开发板的选择时犯难,阿么ARM开发板该如何选择呢?下面针对几家厂商进行分析? 广州友善之臂 产品的不更新,不断的发布新的开发板块,产品线丰富这是友善之臂的一大特点。也是国内开发板的先驱商,也属于一家注重技术的公司。但是产品也伴随这稳定性方面的问题,时常出现漏洞。如果是出于想最先体验新产品的目的的话,就是一个不错的选择。 保定飞凌 保定飞凌旗下的产品以稳健著称,飞凌的开发板在2440时代和6410时代是很火的,板也做的非常好。相对性能各个方面都比较晚稳定的,还有飞凌推出了教程,还有视频教程,初学者易于接收。如果是初学者和看重产品稳定性的,则可以
[单片机]
分析ARM<font color='red'>开发板</font>哪家好
OK6410A 开发板 (三) 23 u-boot-2021.01 boot 解析 U-boot 镜像运行部分 DM 的一次实例分析 - 串口
串口相关的 UCLASS DRIVER DEVICE UCLASS ./drivers/serial/serial-uclass.c L504 504 UCLASS_DRIVER(serial) = { 505 .id = UCLASS_SERIAL, 506 .name = serial , 507 .flags = DM_UC_FLAG_SEQ_ALIAS, 508 .post_prob
[单片机]
TX2440 ARM开发板Uboot移植(三、添加Nand Flash的有关操作支持)
在上一节中我们说过,通常在嵌入式bootloader中,有两种方式来引导启动内核:从Nor Flash启动和从Nand Flash启动,但不管是从Nor启动或者从Nand启动,进入第二阶段以后,两者的执行流程是相同的。当u-boot的start.S运行到“_start_armboot: .word start_armboot”时,就会调用lib_arm/board.c中的start_armboot函数,至此u-boot正式进入第二阶段。此时注意:以前较早的u-boot版本进入第二阶段后,对Nand Flash的支持有新旧两套代码,新代码在drivers/nand目录下,旧代码在drivers/nand_legacy目录下,CFG_
[单片机]
PIC单片机开发板之独立键盘扫描C语言代码
/* 为自已写的独立键盘扫描 犯的错:unsigned密写成了unsigner一直提示找不到a,b PORTD0=1;不行,要写成PORTD=0x01;才可以,如果一定要写,应写为RD0=1; PORTD=0x03;不是第三个灯亮,而是0000 0011是两个灯亮 PORTD=0x8则是0000 1000是第4个灯亮。。。。。出错因原进制转化,刚开始写程序进制转化混掉了。 */ #include pic.h #define uchar unsigned char #define uint unsigned int __CONFIG(0x3B31); const unsigned char table = {0x3f,0
[单片机]
PIC单片机<font color='red'>开发板</font>之独立键盘扫描C语言代码
ATmega16 复位与中断处理
AVR有不同的中断源。每个中断和复位在程序空间都有独立的中断向量。所有的中断事件都有自己的使能位。当使能位置位,且状态寄存器的全局中断使能位I 也置位时,中断可以发生。根据程序计数器PC 的不同,在引导锁定位BLB02 或BLB12 被编程的情况下,中断可能被自动禁止。这个特性提高了软件的安全性。详见 P247“ 存储器编程” 的描述。 程序存储区的最低地址缺省为复位向量和中断向量。完整的向量列表请参见 P43“中断”。列表也决定了不同中断的优先级。向量所在的地址越低,优先级越高。RESET 具有最高的优先级,第二个为INT0 – 外部中断请求0。通过置位MCU 控制寄存器 (MCUCR) 的IVSEL,中断向量可以移至引导Fl
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved