历史上的今天
今天是:2024年12月24日(星期二)
2019年12月24日 | Atmega16单片机和51单片机有何区别?从软硬件两方面分析
2019-12-24 来源:eefocus
1. Atmega16单片机简介
今天我们的主题是单片机,说道单片机你可能最先想到的是51单片机,然后通过外接的数字电路和模拟电路来控制外围的硬件,比如PWM,ADC,I2C等等。那么今天我们所说的是什么那?其实你把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();
}
}

史海拾趣
|
关于STM32,TI,NXP的ARM Cortex-m3学习板申请体会 这三家的都申请过,有一些想法 ST最大方,板子,光盘,连接线一应俱全。 并且ST搞过好几次免费申请活动,每次免费送的套件数量还比较大。 拿到套件后就能直接上手练习了。 TI其次,申请的TI套件,使用手册里明明说的是有两块板子,可是我只收到 ...… 查看全部问答> |
|
代码如下: SOCKET Sock = INVALID_SOCKET; // Datagram window socket SOCKADDR_IN source_sin; &n ...… 查看全部问答> |
|
在CRC8中出现了误码但没发现的概率是1/256,CRC16的概率是1/65536,而CRC32的概率则是1/2^32,那已经是非常小了,所以一般在数据不多的情况下用CRC16校验就可以了,而在整个文件的校验中一般用CRC32校验。 如何理解,是否要用概率论的模型去解释? ...… 查看全部问答> |
|
之前关于EVC下图形编程画二维曲线问题已经有了进展,现在刚画出简单的二维曲线,就是随机折线那样的,主要通过两个随机数nRandomX = rand() % 10;nRandomY = rand() % 10; 主要代码如下: BOOL CDraw2DGraphDlg::OnInitDialog() {   ...… 查看全部问答> |
|
我的解决方法是用1117-3.3,相信这个芯片大家都有。它的引脚和BL相同,但板上封装是sot89,我手头只有sot223,我把1脚和3脚向里折了一下,注意不要折断,然后再焊上就可以了。这时板子上D2不要焊,L1用焊锡直接连上就可以了。 现在板子的电压是3.3V ...… 查看全部问答> |
|
Ver 0.1 - Jeffrey1.MSP430 入门2.如何为我的应用选择最合适的MSP430 芯片?3.与MSP430 的引导加载程序通信的开发工具4.MSP430 需配合何种晶振工作?5.使用哪款MSP430 编程器可以用来烧断JTAG 熔丝?6.要实现MSP430 编程,应如何连接JTAG?7 ...… 查看全部问答> |
|
1设计要求 2设计方案 3选便宜的看看,效率和下边那个是什么 4原理图 在选择方案时会出现相关LED厂家产品的选择很方便,可以参考修改设计,找到更加合适方案 … 查看全部问答> |




