PIC单片机入门笔记(新手学PIC必看)——基于PIC16F886
學習PIC單片機的目的是打算做一款433M無線開關,之前學習過51與AVR單片機,對8位單片機有一些基礎,不過PIC單片機還是第一次接觸,先從入門開始吧!入門實驗最經典的是點亮一只LED了,這次也它為例走一遍PIC開發的整個流程。雖然C語言已成主流,由于PIC單片機匯編指令只有35條,記憶容易,這次就從非主流開始!
一、準備工作
1. 在二手市場買來一本【PIC單片機原理與應用】第4版。
2. 在淘寶買來一個PIC的下載仿真器【PICkit3】。
3. 從廢舊設備上面拆下一片PIC16F886的28腳單片機,用覆銅板制作了一個簡單的PIC最小系統板,可以用來下載仿真、按鍵輸入、LED指示燈、AD輸入。
4. PIC開發環境MPLAB X IDE V3.6。
5. 連接好硬件,如下圖
PIC仿真下載器的引腳說明如下圖
1腳連接到單片機的1腳;4腳連接到單片機的28腳;5腳連接到單片機的27腳;6腳空。
二、新建項目
三、配置位
PIC單片機配置位很重要,相當于AVR單片機的熔絲位,以下是官方文檔對于配置位的說明,如下圖
因為最小系統板沒有外接晶振,所以要選擇使用內部晶振,看門狗也關閉,還有一個是LVP這個要設置為OFF,否則下載后不運行,下面貼設置方法
四、編寫程序
這里有幾點需要注意的
1. 使用的IO口是否有上拉電阻功能,因為有的IO口沒有,在設計電路時需要的話就要加上拉電阻
2. 操作相應的寄存器時可能需要先選擇該寄存器所在的存儲體,設置由狀態寄存器【STATUS】的RP0和RP1位控制,或IRP(間接尋址)來進行選擇。
以下是控制LED間隔1秒閃爍的程序
---------------------------------------------------------------------------------------------------------------------------------
#include"p16f886.inc"
; CONFIG1
;__config 0x2FE4
__CONFIG _CONFIG1, _FOSC_INTRC_NOCLKOUT &_WDTE_OFF & _PWRTE_ON & _MCLRE_ON & _CP_OFF & _CPD_OFF &_BOREN_ON & _IESO_ON & _FCMEN_ON & _LVP_OFF
; CONFIG2
;__config 0x3FFF
__CONFIG _CONFIG2, _BOR4V_BOR40V &_WRT_OFF
; 使用配置位生成器在這里插入配置代碼
RES_VECT CODE 0x0000 ; 處理器復位向量
GOTO START ; 轉到程序的開始
; 在這里添加中斷如果使用
MAIN_PROGCODE ; 讓連接器放置主程序
START BSF STATUS,RP0 ;選擇體1
BSF OSCCON,SCS
MOVLW H'EF' ;向TRISC寫入0x0F
MOVWF TRISC
BCF STATUS,RP0 ;返回體0
LOOP BCF PORTC,RC4 ;將PORTC的RC4位清零
CALL DELAY_1S ;調用延時1秒子程序
BSF PORTC,RC4 ;將PORTC的RC4位置位
CALL DELAY_1S
CALL LOOP ;循環執行
;-------------------------------------------------------------------------------
;延時1S子程序
;-------------------------------------------------------------------------------
DELAY_1S MOVLW H'06' ;向20H寫入0x06
MOVWF 20H
LOOP1 MOVLW H'EB' ;向21H寫入0xEB
MOVWF 21H
LOOP2 MOVLW H'EC' ;向22H寫入0xEC
MOVWF 22H
LOOP3 DECFSZ 22H ;22H自減一,不為0則繼續循環,為0則間跳
GOTO LOOP3
DECFSZ 21H ;21H自減一,不為0則繼續循環,為0則間跳
GOTO LOOP2
DECFSZ 20H ;20H自減一,不為0則繼續循環,為0則間跳
GOTO LOOP1
RETURN ;子程序返回
END
下圖是PIC16F886特殊功能寄存器,每個型號的特殊功能寄存器不太一樣,需要查看芯片數據手冊
總結:學單片機,不只需要時間,還需要資金的投入,應該控制好資金和時間的投入,信心要滿滿的,我入門PIC的過程中遇到很多問題,有想買個現成的開發板的沖動,后來問題解決了,也學到了不少,開發板雖然是現成的,但是對于硬件開發相當不利,技術應該更多的去嘗試,別人的理論要通過實驗來驗證正確性,技術更是積累,時間久了,自然感到懂得多了,開發項目才能得心應手。關于單片機的選擇,可以選擇你手上擁有的任何一款PIC的芯片來學習,因為功能在強的芯片,和功能在差的芯片,基本的架構和程序編寫邏輯是相同的,學好一款,其它大同小異。
總結
以上是生活随笔為你收集整理的PIC单片机入门笔记(新手学PIC必看)——基于PIC16F886的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 人工神经网络算法实战教程
- 下一篇: 真格投资汇总