internetofthings 2018-04-09
Hello,大家好,欢迎大家来到LIUSE网络。
说到单片机大家肯定都不陌生,用来做个小型自动化控制啊,解决个小问题啊,都是非常省事的办法。
现在市面上流行的诸如80C51系列ARM系列STM32等等实在不少。虽然原理都是差不多,但是在编程环境上却有差异。对于只是偶尔玩玩的朋友来讲,鄙人不推荐大家去玩(当然如果你果真是从头开始学,而不是玩玩,那推荐从80C51学起,效果会比较好一些)。
那如何用最低的成本,并且还适合小白写代码,去做出一个最小系统呢?那今天我们就来说一下。
考虑到以上因素,我们会选择arduino平台(好处太多,创客必备,简单轻便,更多有点请自行百度)。用的单片机呢型号是ATmega8A-PU,编程IED为arduino1.0接下来我们开始进行装箱。
ATmega8A-PU X1(某宝价格4-10元不等)
8MHz晶振 X1(几毛钱)
22pF电容 X2(几毛钱)
10K欧电阻
150欧电阻
USBASP烧录器 X1(15-35元不等)
LED小灯泡
面包版或者洞洞板一块
先来放一张ATmega8A-PU的引脚图,看一下各个引脚的作用:
接下来我们开始进行接线:
1先做一个震荡电路,将晶振连接ATM8A-PU的Pin9、Pin10也就是对应上图的PB6跟PB7,然后在此的基础上Pin9跟Pin10分别连接一个22pF的电容,最后引出一条线接地。请看下图:
2进行系统的下载与供电,将ICSP的D11/D12/D13分解接单片机的Pin17/Pin18/Pin19 5V接Pin7(VCC) GND接Pin22(GND)rest接Pin1。请看下图:
+5V → pin7(VCC)
GND → ping22(GND)
D11 → pin17(PB3)
D12 → pin18(PB4)
D13 → pin19(PB5)
reset → pin1(reset)
连接好线之后大概就是下图的样子啦(鄙人目前在老家,没办法上自己的实物图,先从网上找一张吧)
以上的硬件环境搭建好之后,我们就开始来进行烧录了。
打开我们的arduino IDE编写环境,这里我们测试LED灯闪烁所以直接打开官方给我们提供的示例就行(文件->示例->Basics->Blink)
然后找到文件->参数设置(首选项)输出显示详细信息打勾(后面有用到路径)
然后找到工具-选择开发板-选择ATmega8_8MHz这个板子(注意,IDE一定要用1.x的不然有些版本是找不到的)
然后点击左上角的“√”按钮开始进行编译。编译完成之后,IDE会生成一个HEX文件,并且会输出HEX文件所在的路径,你可以复制出来找到它。
做完上面的工作后,我们开始上传到我们的最小系统。在上传之前,我们还需要做一些准备工作,这包括配置一下文件、安装USBasp驱动、做一下熔丝位等。
1.打开arduino的boards.txt这个文件做一下改动(路径为arduino安装路径]\hardware\arduino\avr\boards.txt)
注:有的版本没有avr这个文件夹 boards.txt直接在arduino下
在最后一行加入下面的代码:
##############################################################
atmega8_8M.name=ATMega8L (8MHz, without external crystal)
atmega8_8M.upload.protocol=arduino
atmega8_8M.upload.maximum_size=7168
atmega8_8M.upload.speed=115200
atmega8_8M.bootloader.low_fuses=0xa4
atmega8_8M.bootloader.high_fuses=0xdc
atmega8_8M.bootloader.path=optiboot
atmega8_8M.bootloader.file=optiboot_atmega8_8M.hex
atmega8_8M.bootloader.unlock_bits=0x3F
atmega8_8M.bootloader.lock_bits=0x0F
atmega8_8M.build.mcu=atmega8
atmega8_8M.build.f_cpu=8000000L
atmega8_8M.build.core=arduino
atmega8_8M.build.variant=standard
2.我们将刚才编译生成的两个文件复制到arduino根路径\hardware\arduino\avr\bootloaders\optiboot文件夹下。
3.安装USBasp驱动(这个没啥可说的驱动随便搜一下就OK)安装完计算机管理里面的串口里面会有显示
4.打开客服给我们提供的烧写软件(推荐用智峰的progisp1.72,随便百度一下都可以下载)选择我们要烧录芯片的型号(ATmega8A)
然后确认选择是否正确,正确的话右边的PRG会点亮。
然后点右下角的...按钮进入熔丝位设置。然后点三个"读出"按钮,可读出当前芯片的熔丝设置,点击"向导方式",弹出向导对话框。
之后,点向导方式来设置熔丝向导,可通过直接勾选选项来设置熔丝,其它选项我们先不做说明,先看看晶振相关的选项,我们可以看到芯片默认是使用"内部RC振荡器(1MHz)",现在我们要用外部8M的晶振,我们可以选倒数第三个选项。点写入。
5.最后点击右上角的调入Flash,然后选择我们编译好的.hex文件 点自动就开始写入啦。
然后给你的系统通上电试试效果吧~