在編寫了很多關于PIC16F系列微控制器的實驗教程之后,我想到了繼續發展到PIC18F的增強范圍的PIC系列微控制器系列PIC18F。盡管PIC16F系列是出色的通用單片機,但仍出現了某些限制,例如,程序和數據存儲器有限,堆棧尺寸小以及所有中斷源必須共享一個中斷向量。其有限的指令集也無法直接支持USB和CAN等更高級的外圍設備接口。 PIC18F系列的基礎是要解決限制PIC16F系列的問題。 PIC18F系列單片機具有更大的指令集,更多的內存,更大的堆棧,更多的外部中斷,更高的速度,增強的I/O端口架構以及我們將在接下來的教程中探索的更多功能。我已經決定,我不會像在PIC16F上那樣花很多時間在焊接和制作自己的PIC18F微控制器原型板上。我將使用mikroElektronika的PIC板的StartUSB編寫這些教程。
mikroElektronika的PIC板的StartUSB
那么PIC的StartUSB是什么?
PIC的StartUSB 是一個小型開發板,具有具有快速USB 2.0支持的PIC18F2550單片機。它具有用于所有MCU引腳的連接墊以及兩個用于放置附加組件的附加原型設計區域。該板的最大優點是,該微控制器已使用快速USB引導加載程序進行了預編程,因此無需任何外部編程器。您可以使用mikroBootloader將與應用程序相關的HEX文件從PC傳輸到PIC的程序存儲器。 MikroBootloader是mikroElektronika為其USB HID Bootloader開發的PC應用程序。板載miniUSB連接器,振蕩器(8.0 MHz晶體),復位電路,電源指示燈LED以及另外兩個LED提供了快速啟動所需的一切。另外兩個LED通過跳線連接到PIC18F2550的RA1和RB1引腳。上圖顯示了具有所有組件和其他原型制作區域的StartUSB for PIC板。
今天的教程很重要,因為我們將討論有關PIC板的StartUSB的完整設置,這將使您開始探索PIC18F系列單片機的世界。您需要安裝的第一件事是mikroC Pro for PIC,這是由mikroElektronika為PIC12,PIC16和PIC18系列微控制器開發的C編譯器。您可以下載該軟件的演示版本,該版本將允許您編譯最多2 K程序字的程序。安裝編譯器后,下載mikroBootloader,這是PC的應用程序,可與存儲在StartUSB板上PIC18F2550單片機中的Bootloader程序進行通信。可以從以下鏈接下載用于PIC和mikrobootloader的StartUSB用戶指南。
StartUSB板的用戶手冊提供了該板的電路圖以及有關如何將其連接到PC以便使用mikroBootloader下載應用程序HEX文件的說明。在繼續前進之前,請先閱讀手冊中的這些詳細信息。
用于USB的PIC板的StartUSB電路圖,其中兩個LED連接到RA1和RB1
使用“ Hello World”測試板
我們將通過一個簡單的測試程序開始我們的旅程,該程序將確保一切設置正確且我們將準備使用PIC18F2550進行更高級的實驗。該程序將以500 ms的持續時間交替閃爍兩個板上LED(連接到RA1和RB1引腳)。在mikroC Pro for PIC中,以項目形式開發應用程序。如果您以前從未使用過mikroC Pro for PIC,那么mikroElektronika的文件“在mikroC Pro for PIC中創建第一個項目”將指導您創建第一個項目。遵循這些步驟時,選擇單片機為PIC18F2550,將器件時鐘選擇為8.0 MHz。在主程序窗口中,鍵入以下程序。
/*
用于PIC板的StartUSB測試程序
說明:兩個板上LED交替閃爍500 ms
MCU:PIC18F2550,外部晶振= 8.0 MHz,PLL的實際時鐘= 48.0 MHz
版權@ Rajendra Bhatt
2011年3月29日
*/
//定義LED連接
sbit LED1 at RA1_bit;
sbit LED2 RB1_bit;
void main(){
CMCON = 0x07;//禁用比較器
TRISA = 0x00;
TRISB = 0x00;
LED1 = 0;
LED2 = 1;
做{
LED1 =?LED1;
LED2 =?LED2;
Delay_ms(500);
} while(1);
}
下載mikroC項目文件
編譯程序以獲取HEX文件,然后使用mikroBootloader應用程序將其加載到PIC18F2550單片機中。請按照StartUSB板用戶手冊中提到的說明進行操作。加載程序后,請重置板并等待5秒鐘,直到微控制器退出引導加載程序模式并開始執行新加載的應用程序。您將看到兩個板載LED交替閃爍。等一下,它們被編程為以0.5秒的持續時間閃爍,但是您會看到它們的運行速度快得多。看來微控制器時鐘比所應用的外部振蕩器(8.0 MHz)快得多。由于存在內置的PLL電路,因此在PIC18F2550中是可能的。
用于PIC板的StartUSB上的LED閃爍
PIC18F2550板上的USB模塊需要48.0 MHz的時鐘才能全速運行。該時鐘由內置96 MHz PLL模塊通過將其輸出除以2得到。PLL本身由來自主時鐘源的4 MHz輸入信號驅動,在本例中為8.0 MHz晶體。因此,可以通過使用PLL預分頻器值2從8.0 MHz的源中獲得驅動PLL所需的4.0 MHz。然后,將PLL(96 MHz)的輸出除以2,以獲得USB操作所需的48 MHz時鐘。微控制器內核和其他外設也可以使用此時鐘速度,但不是必須的。還有其他選項可以滿足USB模塊的時鐘要求,并且仍然為從主振蕩器源為其余器件提供時鐘提供了靈活性。這些詳細信息可在PIC18F2550的數據手冊中找到。但是,對于用于PIC板的StartUSB,由于需要USB自舉程序,USB模塊和微控制器內核,兩者都使用源自PLL的48.0 MHz時鐘。不幸的是,引導加載程序不允許用戶更改時鐘設置,因此,它始終為48.0 MHz,除非您先擦除引導加載程序,然后使用外部編程器修改時鐘設置的配置寄存器。因此,板載PIC18F2550單片機實際上以48.0 MHz而不是8.0 MHz運行。這就是LED閃爍快得多的原因。為了解決這個問題,請從mikroC的“項目”菜單中打開“編輯項目”窗口,并確保時鐘設置與下面顯示的匹配。
正確的時鐘下一步,保存項目,再次編譯,然后將HEX文件重新加載到PIC18F2550中。現在,您將看到LED以正確的速率閃爍。因此,您已經準備好使用PIC18F微控制器。請繼續關注有關PIC18F的更多高級實驗教程。
責任編輯:wv
-
單片機
+關注
關注
6061文章
44903瀏覽量
646402 -
PIC18F
+關注
關注
0文章
37瀏覽量
18065
發布評論請先 登錄
Microchip發布PIC16F17576系列單片機
普冉PY32F002A單片機特性介紹



PIC單片機的優勢和不足之處
32位M0核普冉單片機 PY32F003開發板20腳 快速入門 易于上手

十天學會單片機可能嗎?單片機入門需要多久?



評論