当前位置:首页 > 单片机 > 单片机
[导读]前言:最近由于开始设计无刷直流电机电子调速器,参考网上的一些资料,选用了Atmega8A-AU单片机作为主控芯片。该芯片采用8位结构,最高主频16MHz(内部振荡器则8MHz),可实现2.7V-5.5V供电,单个IO口最大可支持40mA的

前言:

最近由于开始设计无刷直流电机电子调速器,参考网上的一些资料,选用了Atmega8A-AU单片机作为主控芯片。

该芯片采用8位结构,最高主频16MHz(内部振荡器则8MHz),可实现2.7V-5.5V供电,单个IO口最大可支持40mA的拉/灌电流,更难能可贵的是,价格十分便宜,我在淘宝上面购买才3块多一片。

之前从未使用过AVR系列的单片机,于是一开始编程也遇到了一些障碍,直至最终编写好第一个程序,整个过程在此记录下来,供以后参考。

一、下载器

首先我在百度上和阿莫论坛里面查询了一下AVR单片机的下载器,然后又在淘宝上面搜索对应的型号,发现目前国内主流的是ISP串口下载器,也就是和51单片机的下载器原理一样。于是乎在淘宝上面花了不到10块钱购买了一个,链接如下:

http://item.taobao.com/item.htm?spm=a1z10.3-c.w4002-5310596272.60.cLIhnZ&id=9726069282

准确的说这只是一个烧录器,不具备在线调试功能,只能把写好的程序烧录进单片机。

二、代码开发环境

一开始我在网上搜索的时候,发现AVR单片机的开发环境琳琅满目,比如ICC-AVR,AVR GCC,IAR For AVR,AVR Studio,Atmel Studio......

按照以往的经验,IAR支持的型号比较多,用的也比较多,于是我先在网上下载了一个IAR For AVR,后来在网上查询相关源代码,发现很少有基于IAR的,另外IAR还需要激活,搞了半天也没搞好,于是乎又卸载了。

后来再查询的时候,发现Atmel公司官方的开发环境Atmel Studio是免费的,而且同时用的人也不少,于是乎我又下载了一个Atmel Studio。安装好后,发现界面非常友好现代,不像IAR那样古老,后来又了解到这个开发环境是基于VisualStudio开发的,因此界面与VisualStudio非常相似,于是好感度一下就上升了。

Atmel Studio开发界面?

进入软件界面后的第一个问题是,如何创建第一个工程:

这个难不倒我,一般就是File->New->New Project,但是问题来了,一开始我建立工程,选择工程类型的时候,发现可供选择的对象和网上的不一样,少了好多,于是乎我又重新在官网上面下载了最新的版本,终于出现了网上所述的选项:

如上图所示,选择GCC C Executable Project即可,然后是选择器件,选择我们的Atmega8A即可。

点击OK后,熟悉的main函数骤然出现在屏幕上,AtmelStudio已经帮你把前期的繁琐工作都做好了,包括头文件的引用,头文件只有一个#include ,所有AVR单片机都引用同一个头文件,其余开发环境会自动处理。

下一步是如何编写中断程序,这个是参考百度文库的《AtmelStudio-6.0简易入门教程(精炼实用)》:

在AS6中,需加载头文件#include ,并且函数名为ISR,不可自定义函数名,格式如下:

ISR( TIMER0_OVF_vect ) {?} TIMER0_OVF_vect 含义同iv_TIMER0_OVF,是T0溢出中断号。不同型号mcu的中断向量号的名称不同,A6的中断向量号请从avr/iomXXX.h中查找。

有几个事情需要备注一下:1、中断函数不需要清除中断标志位,这个过程是由硬件实现的。2、中断使能有两个,一个是全局的asm("sei");//开启全局中断,一个是每个中断各自的寄存器使能位。

三、程序的下载

程序下载不是在AtmelStudio里面实现的,因为我们使用的不是Atmel官方的调试器,因此AtmelStudio在开发过程中起到的作用是将C语言或汇编源代码编译链接成bin二进制文件,然后使用第三方下载软件通过网上购买的ISP下载器将二进制文件下载进去。在这里,我使用淘宝上购买的下载器店家推荐的下载软件-progisp1.72 ,这是由智峰工作室开发的。使用了一段时间,发现挺好用的,没发现什么BUG。

这里有一个东西需要备注一下,就是熔丝位的问题,之前用的单片机从未有过熔丝位的概念,在网上搜索了一番,发现所谓熔丝位其实就相当于系统寄存器的功能,熔丝位中存储着系统最关键的设置,比如时钟来源选择,时钟频率选择等等,只不过熔丝位是与程序分开的,不受程序影响,只能由下载器直接对单片机进行读写,还好,progisp1.72可以完美的实现这一功能,并且还有向导模式,免去了查询寄存器手册的麻烦。

好像差不多了吧,就这些,有什么想到再补充。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

引言   现场总线作为生产过程自动化发展的重点,对推动自动化技术起到巨大的推动作用,是现代化工业的标志。MODBUS作为现场总线的一种通信协议,它实现了PLC控制器、工控仪表与设备间的通

关键字: avr单片机 智能控制系统 modbus协议

一、项目概述 1.1 引言 温室是一种可以改变植物生长环境、为植物生长创造最佳条件、避免外界四季变化和恶劣气候对其影响的场所。它以采光覆盖材料作为全部或部分结构材料,可在冬季或其

关键字: avr单片机

一、项目概述 1.1 引言 随着社会的发展,高层建筑和智能化建筑的不断出现,作为垂直运输工具的电梯得到了越来越广泛的应用,人们对电梯服务质量及可靠运行提出了越来越高的要求。在20

关键字: avr单片机 节能电梯

VR给人一种沉浸感,具有传统娱乐方式不可比拟的优势。理想的VR让人分不清现实和虚拟,VR领路人相信VR能够改变人们的生活方式。 过去的时间,那些VR领域的佼佼者们有两件事做得非常好:一是

关键字: avr单片机

什么是AVR单片机?应该如何取学习?学习单片机的小伙伴都知道,衡量单片机性能好坏的指标主要有:可靠性好、功能强、高速度、低功耗和低价位,依靠这几点,作为单片机家族中性能较高的AVR,你真的能理解吗?

关键字: AVR avr单片机 寄存器

单片机诞生于20世纪70年代末,它是指一个集成在一块芯片上的完整计算机系统。单片机具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存。同时集成诸如通讯接口、定时器,实时时钟等外...

关键字: avr单片机 单片机

pic单片机使用较多,因此学习pic单片机的人数也相对较多。对于pic单片机,它的优点众所皆知。此文对pic单片机的讲解在于介绍pic单片机的IO口操作。但本文不仅仅局限于pic单片机,同样将对51单片、AVR单片机IO...

关键字: avr单片机 pic单片机 io操作

对于pic单片机的学习,很多朋友总是能充满激情,不断利用闲余时间研究pic单片机的各类技术。而谈及pic单片机,必须牵扯至51、AVR单片机。因此本文中,将探讨pic单片机以及51、AVR单片机对于IO口的操作。对于本文...

关键字: 51单片机 avr单片机 pic单片机

单片机控制开关电源,单从对电源输出的控制来说,可以有几种控制方式。

关键字: avr单片机 开关电源

针对AT24Cxx系列eeprom存储器,写的时候有越页功能,不用考虑页边界,I2C用软件模拟实现,完善中…#define SDA1() PORTC|=1

关键字: at24c01 avr单片机 eeprom 读写程序
关闭
关闭