ello,大家好,歡迎大家來到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的引腳圖,看一下各個引腳的作用:
(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。請看下圖:
(ICSP示意圖)
(總電路原理圖)
+5V → pin7(VCC)
GND → ping22(GND)
D11 → pin17(PB3)
D12 → pin18(PB4)
D13 → pin19(PB5)
reset → pin1(reset)
連接好線之后大概就是下圖的樣子啦(鄙人目前在老家,沒辦法上自己的實物圖,先從網上找一張吧)
(實物接線圖)
以上的硬件環境搭建好之后,我們就開始來進行燒錄了。
打開我們的arduino IDE編寫環境,這里我們測試LED燈閃爍所以直接打開官方給我們提供的示例就行(文件->示例->Basics->Blink)
(Blink示例)
然后找到文件->參數設置(首選項)輸出顯示詳細信息打勾(后面有用到路徑)
然后找到工具-選擇開發板-選擇ATmega8_8MHz這個板子(注意,IDE一定要用1.x的不然有些版本是找不到的)
(選擇板卡)
然后點擊左上角的“√”按鈕開始進行編譯。編譯完成之后,IDE會生成一個HEX文件,并且會輸出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文件 點自動就開始寫入啦。
然后給你的系統通上電試試效果吧~
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的引腳圖,看一下各個引腳的作用:
(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。請看下圖:
(ICSP示意圖)
(總電路原理圖)
+5V → pin7(VCC)
GND → ping22(GND)
D11 → pin17(PB3)
D12 → pin18(PB4)
D13 → pin19(PB5)
reset → pin1(reset)
連接好線之后大概就是下圖的樣子啦(鄙人目前在老家,沒辦法上自己的實物圖,先從網上找一張吧)
(實物接線圖)
以上的硬件環境搭建好之后,我們就開始來進行燒錄了。
打開我們的arduino IDE編寫環境,這里我們測試LED燈閃爍所以直接打開官方給我們提供的示例就行(文件->示例->Basics->Blink)
(Blink示例)
然后找到文件->參數設置(首選項)輸出顯示詳細信息打勾(后面有用到路徑)
然后找到工具-選擇開發板-選擇ATmega8_8MHz這個板子(注意,IDE一定要用1.x的不然有些版本是找不到的)
(選擇板卡)
然后點擊左上角的“√”按鈕開始進行編譯。編譯完成之后,IDE會生成一個HEX文件,并且會輸出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文件 點自動就開始寫入啦。
然后給你的系統通上電試試效果吧~