單片機必讀,微控制器簡介– PIC16F84A入門
正如本文介紹嵌入式系統時所介紹的那樣,微控制器是嵌入式系統的大腦。因此,在本文中,我將解釋PIC16F84A - 來自Microchip的八位微控制器。你現在可能會問,"為什麼我們從這個特定的微控制器開始,難道沒有其他的嗎?好吧,很明顯,在介紹中討論的實體將很容易理解。除此之外,我選擇引入PIC16F84A還有一些強烈的原因,例如簡單的架構,較少的指令等,
是否存在比這更簡單的微控制器?– 是的。例如,PIC12F 系列。但它們太簡單了,一開始就太簡單了。因此,讓我們繼續購買我們的微控制器 - PIC16F84A。費用約為120盧比
在這裡,我無法解釋微控制器的所有功能,工作原理和規格,我將解釋啟動所需的內容(相信我,您可以利用這些知識完成很多項目)。好了,現在讓我們進入遊戲。
描述:
PIC16F84A是一款8位微控制器,這意味著它一次只能處理8位。它還提供各種包裝。但我們只關心PDIP(塑料雙列直插式封裝),它通常由業餘愛好者使用。以下是PIC16F84A的規格
·只有35個指令 - 這使其成為流行的RISC(精簡指令集計算機)。
·工作頻率 – 高達 20 MHz
·68 位元組數據內存
·64 位元組數據 EEPROM
·15 個特殊功能寄存器(SFR)
·工作電壓 – 2.0 至 5 V
特徵:
·13 個 I/O 引腳 – 您可以將 13 個引腳單獨配置為輸入或輸出。
·每個引腳可以拉/吸收 25mA 電流。
·支持ICSP(電路內串行編程)
·快閃記憶體可以擦除/寫入10,000次。
·EEPROM存儲器可擦除/寫入10,000,000次
·在內置的看門狗計時器中。
如果您不知道上面列出的功能/規格是什麼,請不要驚慌,我會在適當的時候介紹所有內容。
PIC16F84A 引腳圖:
如您所見,它是一個18引腳IC。以下是引腳說明:
引腳 5:Vss – 這是IC的接地引腳,必須連接到電池的負極。
引腳 14:Vdd – 這是IC的電源引腳,必須連接到電池的正極。(請記住,您可以使用5伏電池的最大值,電池額定值超過此值可能會損壞此夥伴)。
引腳 4:MCLR – 內存清除。這是一個低電平有效引腳。這意味著,當它保持低電平(連接到地面)時,它會執行其分配的功能。顯然,此引腳用於清除臨時 RAM 內存。當控制器處於工作狀態時,該引腳始終連接到正電源
引腳 15 和 16:振蕩器輸入/輸出 - 在這裡您連接一個晶體振蕩器。您可以使用的最大頻率為20MHz。您也可以使用4MHz晶體。使用的晶體頻率越高,控制器的工作速度就越快(但是他們已經為其設置了限制 - 最大20MHz,這對於使用此控制器的所有應用來說都足夠快。為了獲得圖片,如果您使用20MHz晶體振蕩器,它可以每秒執行20,000,000條指令!在這裡,我們將主要使用晶體振蕩器,因為它們非常便宜,易於使用,準確且體積小。
引腳 1,2,3,6,7,8,9,10,11,12,13,17 和 18:這些是 13 個 I/O 引腳。它們分為兩組。埠 A 包含 5 個引腳(17,18,1,2 和 3)和埠 B 包含 8 個引腳(6,7,8,9,10,11,12 和 13)
如前所述,這 13 個 I/O 引腳可以單獨配置為輸入或輸出,每個引腳可以提供(源)電流,也可以吸收(吸收)最大 25mA 的電流。因此,每個引腳都可以輕鬆驅動LED,但它不能直接驅動任何直流電機,為此,我們使用稱為電機驅動器的特殊IC。
看門狗計時器:
我已經列出了這個PIC包含一個稱為看門狗定時器的板載計時器。看門狗定時器是晶片內部的定時器。您可以通過編程來啟用或禁用計時器。定時器的主要用途是當微控制器的程序出現故障或進入無限循環時,重置微控制器。為了清楚地理解看門狗計時器,請將其視為倒計時計時器,然後說,它從1000開始倒計時並歸零。在程序開始時,監視程序計時器將啟動。在計時器達到零之前(在我們的示例中),程序必須再次將其重新分配給 1000。即,看門狗定時器在正常操作中絕不允許歸零。假設,對於每 3 條指令,我們將看門狗計時器重置為其初始值。因此,如果我們的程序中發生任何錯誤,或者當我們的程序進入任何無限循環時,它將無法重置看門狗定時器。因此,當定時器計數為零時,它會重置微控制器,程序從頭開始。因此,看門狗定時器監視程序的工作,並在發生任何故障時重置程序。此計時器用於高級應用程式。
寄存器:
這裡有兩種類型的寄存器 - 通用寄存器(GPR)和特殊功能寄存器(SFR)。從名稱中可以明顯看出,通用寄存器用於存儲要操作的任何任意值。特殊功能寄存器用於執行控制器件的某些功能。
在這裡,如您所見,寄存器被分成兩個銀行,銀行1和銀行2(在上圖中給出)。在這裡,從00H到0BH和80H到8BH的寄存器是剩餘的SFR是GPR。每個存儲體的長度為 128 個位元組,每個存儲體中的前 12 個位置是為 SFR 保留的,其餘的是作為靜態 RAM 實現的 GPR。在這裡,我們更關心的是 SFR 而不是 GFR。在這裡,我將詳細解釋5個SFR - STATUS,PORTA,PORTB,TRISA,TRISB。(請注意,所有寄存器都是 8 位寄存器)和 W 寄存器。
地位:我們主要將此寄存器用於一個目的 - 在銀行之間切換。當設置此寄存器的第五位時,我們在銀行1中,當第五位重置時,我們在銀行0
門:寄存器中8位中的5位對應於埠A的5個引腳(17,18,1,2和3個引腳)。此處,最低有效位對應於 RA0
埠:該寄存器的八位對應於埠 B 的 8 個引腳(6、7、8、9、10、11、12 和 13 個引腳)。這裡的情況也是如此 - LSB是RB0,MSB是RB7
特里薩:該寄存器用於設置(決定)埠A引腳是輸入還是輸出。1 表示輸入,零表示輸出。例如,寫入 TRISA 寄存器上的 10010 指定 RA0 配置為輸出,RA1 配置為輸入,RA2 配置為輸出,RA3 配置為輸出,RA4 配置為輸入。(很清楚嗎?
三分儀:TRISB寄存器的情況也是如此。它用於將埠 B 引腳配置為輸入/輸出。
W 寄存器:這是程序可訪問的通用寄存器。您只能將值直接寫入 W 寄存器。因此,當您要將值寫入任何寄存器時,例如TRISA或PORTA等,您必須首先將值寫入w寄存器,然後在下一步中使用另一條指令將其移動到目標寄存器。它對應於 8085 處理器中的 A 寄存器(累加器)。(註:W寄存器不在寄存器銀行中。它被發現與登記銀行分開。寄存器銀行中的所有寄存器都無法直接訪問,值只能通過W寄存器寫入它們。
關注我,我將向您展示如何將程序寫入此控制器。
說了這麼多,大家記得留意下方評論第一條(或者私信我)有乾貨全套入門課程~
文章來源: https://twgreatdaily.com/zh-cn/a008175fff40ae7ca4f57fb77deee9f4.html