AVR单片机简单介绍(基于atmega128)

这篇具有很好参考价值的文章主要介绍了AVR单片机简单介绍(基于atmega128)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

学前准备:

1.C语言:至少学会学入门级的程序,能看懂别人写的函数代码,熟悉其原理。熟练使用关系运算符和位运算。
2.电路:至少能看懂电路图,熟悉各种常用电子元器件的原理和使用,会使用示波器和万用表。


一、单片机的简单介绍:

        作为电子爱好者或者电子行业硬件工程的开发者,单片机技术的掌握是必须的,但是目前很多的初学者选择入门的单片机都是基于MCS-51内核的单片机,虽然此类单片机学习简单,使用方便,但是其性能在很多场合却是大打折扣,要么速度欠缺,要么存储空间欠缺或者耗电量大,因此,由于MCS-51自身的结构所限制,与目前的新技术有明显的脱节。 AVR单片机是近10年来发展起来的新型的、基于增强型 RISC结构的单片机。AVR 在运行速度,低功耗,存储器空间,内部功 能模块的集成性成,高保密度,多种外围接口(I2C,PWM,ISP,IAP,AD)等,以 及在开发技术和仿真,下载调试方面都比 MCS-51 内核的单片机有明显的优势。TS8900-M128 型单片机学习开发板采用 ATMEGA128 芯片作为主控芯片,是专门 针对 AVR 单片机初中高级开发者和电子工程师开发设计的一套多功能系统实验板, 它工作稳定,模块化设计,开发资料齐全,可为学习者提供一个较好的实验开发平台。本文就以此学习板带初学者了解此单片机。

        一个AVR单片机的最小系统电路应包括:1、保证有一个给单片机工作的正确的电源(3.3V 或者 5V);如图的 VCC 电压。2、时钟振荡电路,也就是通常说的晶振电路;(AVR 单片机总体分为内部时钟和外部时钟); 时钟涉及到单片机一个非常重要的问题,熔丝位的配置问题。(初学者应先尽量避免设置熔丝位)3、一个正确的连接下载口或者 JTAG 口, 用来为单片机下载程序或者更新程序,当然,如果是在产品中使用编程器事先给单片机写好程序的话除外。4、一个正确的复位电路。(在实际应用中也可以直接接一个 10K 的上拉电阻。)

        

AVR单片机简单介绍(基于atmega128)


二、ICCAVR的基础使用:

        初学者如果真的想入手这个领域,作者是非常希望您能购买一块学习板上手操作;购买学习板的话,商家会提供相应的视频、中文资料和配套编译和烧写的软件,按照对应的流程安装即可。这里使用的编译软件是ICCAVR。

        打开ICCAVR,建立一个New Project,建立一个New File(点击File--Save As...来保存一个.c文件);右键点击右边工作栏中的Files,点击Add  File(s)添加前面保存好的.c文件;接下来就可以在工作区开始编写你的程序了。

        如图,PA0~PA7控制着8个流水灯的电路,PE2起到了限流的作用;解读:1、PA0~PA7输出低电平;2、PE2输出高电平。满足这两个条件,灯就可以亮了。PORTX(X代表电路中对应的字母)为数据寄存器,控制对应端口的高低电平("1"为高电平,"0"是低电平);DDRX(X代表电路中对应的字母)为数据方向控制寄存器,控制对应端口的输入输出("1"为输出,"0"是输入)。

    AVR单片机简单介绍(基于atmega128)

        在C语言里,我们至少要使用一个为<stdio.h>的头文件;在这里,我们至少需要一个为<iom128v.h>的头文件(目前我所了解到常用的头文件还有<macros.h>),然后就开始编写主函数了。

        首先,我们要对学习板进行初始化设置(用到什么端口就调什么端口)。

unsigned int i;

//初始化代码
DDRA = 0xFF;
PORTA = 0xFE;
DDRE |= (1<<2);
PORTE |= (1<<2);

        然后,编写流水灯的循环程序。

while(1)
 {
  if(i<8)
  PORTA = (~(~PORTA)<<1);
  delay_nms(1000);
  if(i==8)
  {
  i=0;
  delay_nms(1000);
  }
 }

         延迟函数的编写

void delay_1ms(void)                 //1ms延时函数
  {
   unsigned int i;
   for (i=0;i<1250;i++);
  }
  
void delay_nms(unsigned int n)       //N ms延时函数
  {
   unsigned int i=0;
   for (i=0;i<n;i++)
   delay_1ms();
  }
  

        至此,简单的流水灯程序就编写完成了。附上完整代码:

#include<iom128v.h>

void main(void)
{
 unsigned int i=0;

 DDRA = 0xFF;   //0b1111 1111    全输出//数据方向控制寄存器
 PORTA =0xFE;    // 0b11111110   0号位低电平//数据寄存器
 DDRE |= (1<<2);    //0b0000 0100  2号位置1
 PORTE |= (1<<2);    //0b0000 0100  2号位置1 

 while(1)
 {
  if(i<8)
    PORTA = (~(~PORTA)<<1);
  delay_nms(1000);
   if(i==8)
    {
     i=0;
     delay_nms(1000);
    }
 }

}

void delay_1ms(void)                 //1ms延时函数
  {
   unsigned int i;
   for (i=0;i<1250;i++);
  }
  
void delay_nms(unsigned int n)       //N ms延时函数
  {
   unsigned int i=0;
   for (i=0;i<n;i++)
   delay_1ms();
  }

好了,学会了的话就赶紧去试试吧!文章来源地址https://www.toymoban.com/news/detail-406511.html

到了这里,关于AVR单片机简单介绍(基于atmega128)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用Atmel Studio开发Arduino的ATmega328P单片机

    摘要 :我们知道Arduino开发板常用的芯片是Atmel公司生产的AVR微控制器系列。最常见的是ATmega328P,被广泛用于Arduino Uno开发板。其他常用的AVR芯片包括ATmega2560和ATmega32U4。使用Arduino平台开发AVR的单片机非常方便。Arduino IDE提供了一个非常简洁、易于使用的开发环境,使编写和上

    2024年02月05日
    浏览(42)
  • 移植LVGL到单片机的一个demo简单介绍

    背景 : 本文使用的是主控IC为stm32f103zet6, 显示IC为ST7735s,它是128*160的像素,色深为RGB565颜色。 官方虽然说LVGL移植平台只需 64kB 闪存和 8kB RAM 就足以满足简单的用户界面。但我移植到stm32f103c8t6,不管怎么修改配置,一直显示内存不够。 LVGL 可以驱动单色OLED、TFT 显示器、监视

    2024年01月17日
    浏览(45)
  • s9keaz128 UART Bootloader 单片机篇(上)

    网络上充斥着各种各样的串口升级方案,基本都是基于Y-Mode协议下载。采用这种升级方案学习还是可以,用在产品上还是有点欠缺。如下载完成后,需要把时间发送到设备就不好搞了。如下这个设备返回的信息,最后一项就是固件更新时间。 固件名称 : KEA128 编译时间 : 2022

    2024年02月22日
    浏览(38)
  • 51单片机基于时间片轮转的简单rtos

    早就想写写这个了,正好赶上有点时间,写了一下基于51单片机的时间片轮转调度系统,简单的rtos,呵呵。直接上代码。 虽然简单,也可以继续学习了。

    2024年02月02日
    浏览(39)
  • STM32单片机初学8-SPI flash(W25Q128)数据读写

            当使用单片机进行项目开发,涉及大量数据需要储存时(例如使用了屏幕作为显示设备,常常需要存储图片、动画等数据),单靠单片机内部的Flash往往是不够用的。         如STM32F103系列,内部Flash最多只能达到512KByte,假设要储存240*240分辨率、64K彩色图片,

    2024年02月03日
    浏览(46)
  • 单片机2:单片机介绍

    Single Chip Microcomputer 将以下部件全部做到一块集成电路芯片中:CPU(进行运算和控制)、RAM(数据存储)、ROM(程序存储)及输入输出设备。 RAM:主要存储数据,掉电会丢失数据。 ROM:掉电不丢失 51单片机是所有兼容Intel 8031指令系统的单片机的统称。 我的单片机板子参数:

    2024年02月06日
    浏览(60)
  • 51单片机(一)软硬件环境和单片机介绍

    ❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分;建议先学习51单片机,其是STM32等高级单片机的基础;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 :适用于想要从零基础开始学习入门单片机,且有一定C语言基础的的童鞋

    2024年02月11日
    浏览(50)
  • 单片机-LED介绍

    LED 即发光二极管。它具有单向导电性,通过 5mA 左右电流即可发光 电流 越大,其亮度越强,但若电流过大,会烧毁二极管,一般我们控制在 3 mA-20mA 之间,通常我们会在 LED 管脚上串联一个电阻,目的就是为了限制通过发光二极 管的电流不要太大,因此这些电阻又可以称为“

    2024年02月09日
    浏览(63)
  • 51单片机介绍

    大家好,我是泽奀,这篇博客我将说说关于 51单片机 知识介绍。在第一篇的时候我概述过C语言,没看的可以去看看[C语言]概述_打打酱油desu-CSDN博客(1) https://blog.csdn.net/weixin_52632755/article/details/119791540(2),分别是《C语言概述1》《C语言概述2》。之所以要讲下51单片机介绍,是

    2023年04月09日
    浏览(30)
  • 单片机LED灯闪烁的简单代码

    目录 前言 一、定义LED灯 二、设置延迟函数 三、让LED闪烁 四、总结 本文将介绍普中51单片机多功能LED灯闪烁的概念、原理、硬件设计、实验测试以及总结展望。 工作原理 1.在LED点亮、LED闪烁实验的基础之上。 2.移位函数 crol (a,b):循环左移函数,a为左移的值,b为左移的位数

    2024年03月22日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包