歡迎您光臨本站 登入註冊首頁

PIC單片機的應用設計技巧

admin @ 2014-03-14 , reply:0

概述

美國微芯公司(Microch{pTechnologyInc.)開發的CM0S工藝PIC系列8位單片機(RISC微控制器),特別是採用內置第二代Flash存儲器(40年存儲壽命)的微控制器在快速應用方面……

美國微芯公司(Microch{p Technology Inc.)開發的CM0S工藝PIC系列8位單片機(RISC微控制器),特別是採用內置第二代Flash存儲器(40年存儲壽命)的微控制器在快速應用方面具有獨到之處。由於其易用性和高可靠性,該系列微控制器穩居8位單片機全球出貨量之首。PIC系列單片機具有指令集簡潔、簡單易學、速度高、功能強、功耗低、價格低廉、體積小巧、適用性好及抗干擾能力強等特點,大量應用於汽車電氣控制、電機控制、工業控制儀錶和儀錶、通信、家電、玩具、低功耗的測控應用等領域,在國內越來越受到廣大設計者的歡迎,微芯公司的單片機已經成為目前單片機世界的主流產品。

    PIC 8位單片機內已經包含運算器、存儲器、A/D、PWM、輸入和輸出I/O(灌電流可達25mA)、通信等常用介面,自由靈活的定義功能可以適應不同的控制要求。而不必增加額外的IC晶元。這樣電路結構很簡單,開發周期將大為縮短。

    PICl6系列單片機屬於PIC8位單片機的中級型產品,採用14位的RISC指令系統。筆者使用PICl6F716單片機設計了一個電動機保護器,在設計過程中遇到很多問題,通過多方查找資料以及向Microchip公司技術人員尋求支持,問題一一得到解決。現將部分問題記錄如下,與大家一起探討。
 

1 ICD2作為程序燒寫的使用
1.1 ICD2簡介
    MPLAB ICD2在線調試器是一款低價位的PIC開發工具。它利用Flash工藝晶元的程序區自讀寫功能來實現模擬器調試功能;使用的軟體平台是Microchip的MPLAB IDE(集成開發環境軟體包),兼容Windows NT、Windows 2000和Windlows XP等操作系統。其通信介面方式可以是USB(最高可達2Mb/s)或RS-232串列介面方式;工作電壓範圍為2.O~5.5V,可支持最低2.0V的低壓調試。

    MPLABICD2可以支持大部分Flash工藝的晶元。它不僅可以用作調試器,同時還可以作為開發型的燒寫器使用。

1.2 ICD2作為燒寫器時的配置

    燒寫晶元的方式有兩種:普通燒寫和在線燒寫。在線燒寫是適合大批量生產方式的燒寫辦法。使用在線燒寫時通常用戶都已經把晶元焊到了板上,此時就要求用戶板上有預留的燒寫介面。用戶板上的介面是通過一條6芯的扁平電纜與ICD2主機上同樣的介面一一對應連接的。圖1顯示了MPLAB ICD2與目標板上模塊連接插座的互連狀況。

     

ICD連接插座有6個引腳,但只使用了其中的5個引腳,分別是VDD(電源)、VSS(地)、VPP(編程電壓)、PGC(同步時鐘)和PGD(數據)。

1.3 ICD2作為燒寫器時容易出現的問題及解決方法

    儘管MPLAG ICD2與目標板的互連非常簡單,但是一不小心就會出現問題,基本上每一個PIC的入門者都會碰到類似的問題。下面就一些常見問題作簡要敘述。

    如圖l所示,在VPP與VDD之間通常要串接一個上拉電阻(通常約為lOkΩ),這樣VPP線可置為低電平來手動複位PICmicro單片機。但是對一般設計者來說,都是採用上電自動複位。如果在這裡採用集成器件DMP809,那麼就會導致連接不上,程序沒有辦法燒入。



    但是,對PGC和PGD來說,在單片機上同時復用為普通I/O口,而有些使用上必須要接對地電容或者是串接二極體。對於這種情況,唯一的處理方式就是在燒寫時從晶元的PGC和PGD埠直接跳線到程序燒寫口。
 

2 A/D轉換通道切換問題
   


    這種做法比較麻煩,也很佔用時間,並且從調試結果來看,問題並沒有解決。在反覆進行調試中,最後得到的優化解決辦法是:對於通道間轉換以及同一通道信號轉換,要對每一個信號至少進行兩次A/D轉換;第一次的轉換結果,捨棄不予超理,只取第二次A/D轉換的結果。從調試結果來看,很好地解決了這一問題。

3 軟體開發小技巧
    PIC單片機採用精簡指令集,例如對於PICl6F716單片機,只有35條單位元組指令。要用這麼少的指令實現複雜的控制或計算,顯然要在軟體設計上多下功夫,並且PIC的指令系統與51系列單片機有很大不同,這讓PIC初學者很不適應。下面筆者就自己的體會,談一些軟體設計需要注意的問題。

3.1 指令的大小寫問題

    編寫PIC單片機的源程序,除了源程序的開始處需要嚴格的列表指令外,還須注意源程序中字母符號的大小寫規則,否則在PC機上彙編程序時不會成功。在源程序中都會使用偽指令INCLUDE。這條指令將列表中指定的單片機文件(在MPLAB中)讀入源程序作為源程序的一部分,所以凡是MPLAB中有關該單片機已有的寄存器在源程序中無需再用賦值指令(EQU)賦值,這就使所建立的源程序大為簡化。

    此外,由於有了偽指令INCLUDE,所以根據MPLAB軟體中的格式,在源程序中的操作數凡是涉及MPLAB已規疾的寄存器名稱的,其字母一律只能大寫,不能小寫。其餘操作碼、符號字母可任意大小寫,但0x中的x應小寫。否則彙編不會成功。鑒於上述原因,為了書寫方便,在使用MPLAB軟體時,PIC單片機的源程序均用大寫字母為宜(0x例外)。

[admin via 研發互助社區 ] PIC單片機的應用設計技巧已經有19049次圍觀

http://cocdig.com/docs/show-post-868.html