首頁 > 應用 > 單片機應用
      [導讀]pic單片機,想必大家都比較熟悉。其中,pic單片機簡介、pic單片機優勢以及pic單片機不足等內容,皆是入門級知識。本文將向大家介紹pic單片機的高級應用——將pic單片機的數據存儲器RAM用作寄存器,本文存在一定難度,望大家用心研讀。

      pic單片機,想必大家都比較熟悉。其中,pic單片機簡介、pic單片機優勢以及pic單片機不足等內容,皆是入門級知識。本文將向大家介紹pic單片機的高級應用——將pic單片機的數據存儲器RAM用作寄存器,本文存在一定難度,望大家用心研讀。

      u=3907135797,3963024372&fm=26&gp=0.jpg

      PIC16C5X把數據存儲器RAM都當作寄存器來使用以使尋址簡單明潔,它們功能上可分為操作寄存器、I/O寄存器、通用寄存器和特殊功用寄存器。它們的組織結構如下圖所示:這些寄存器用代號F0~F79來表示。F0~F4是操作寄存器,F5-F7是I /O寄存器,其余為通用寄存器。特殊功用寄存器地址對用戶不透明。

      image1.jpg

      一、操作寄存器

      1、F0間址寄存器

      尋址F0實際上意味著間址尋址。實際地址為寄存器選擇寄存器F4的內容。

      例: MOVLW 10

      MOVWF  f4    ;10→f4

      MOVLW  55

      MOVWF  f0    ;55→f10

      2、F1實時時鐘/計數寄存器(RTCC)

      此寄存器是一個8位計數器。和其他寄存器一樣可由程序進行讀寫操作。它用于對外加在RTCC引腳上的脈沖計數,或對內部時鐘計數(起定時器作用)。

      image2.jpg

      上圖中可看出RTCC工作狀態由OPTION寄存器控制,其中OPTION寄存器的RTS位用來選擇RTCC的計數信號源,當RTS為“1”時,信號源為內部時鐘,RTS為“0”時,信號源為來自RTCC引腳的外部信號。OPTION寄存器的PSA位控制預分頻器(Prescaler)分配對象,當PSA位為“1”,8位可編程預分配給RTCC,即外部或內部信號經過預分頻器分頻后再輸出給RTCC。預分頻器的分頻比率由OPTION內的PS0~PS2決定。這時涉及寫f1(RTCC)寄存器的指令均同時將預分頻器清零。但要注意OPTION寄存器內容仍保持不變,即分配對象、分頻比率等均不變。OPTION的RTE位用于選擇外部計數脈沖觸發沿。當RTE為“1”時為下降沿觸發,為“0”時為上升沿觸發。

      RTCC計數器采用遞增方式計數,當計數至FFH時,在下一個計數發生后,將自動復零,重新開始計數,以此一直循環下去。RTCC對其輸入脈沖信號的響應延遲時間為2個機器周期,不論輸入脈沖是內部時鐘、外部信號或是預分頻器的輸出。

      RTCC對外部信號的采樣周期為2個振蕩周期。因此當不用預分頻器時,外加在RTCC引腳上的脈沖寬度不得小于2個振蕩周期,即1/2指令周期。同理,當使用預分頻器時,預分頻器的輸出脈沖周期不得小于指令周期,因此預分頻器最大輸入頻率可達N.fosc/4,N為預分頻器的分頻比,但不得大于50MHz。

      當RTCC使用內部時鐘信號時,如果沒有預分頻器,則RTCC值隨指令節拍增1。 當一個值寫入RTCC時,接下來的二個指令節拍RTCC的值不會改變,從第三個指令節拍才開始遞增,見下圖。

      image3.jpg

      應注意的是盡管PIC對外部加于RTCC信號端上的信號寬度沒有很嚴格的要求,但是如果高電平或低電平的維持時間太短,也有可能使RTCC檢測不到這個信號。一般要求信號寬度要大于是10nS。

      3、F2程序計數器(PC)

      程序計數器PC可尋址最多2K的程序存儲器。下表列出了PIC16C5X各種型號的PC長度和堆棧的長度。

      image4.jpg

      單片機一復位(RESET),F2的值全置為“1”。除非執行地址跳轉指令,否則當執行一條指令后,F2(PC)值會動加1指向下一條指令。

      下面這些指令可能改變PC的值:

      a、“GOTO”指令。它可以直接寫(改變)PC的低9位。對于PIC16C56/57/58,狀態寄存器F3的PA1、PAO兩位將置入PC的最高二位。所示“GOTO”指令可以跳轉到程序存儲器的任何地方。

      b、“CALL”指令。它可以直接寫PC 低8位,同時將PC的第9位清零。對于PIC16C56/57/58,狀態寄存器F3的PA1、PAO兩位將置入PC的最高二位(第10、11位)。

      c、“RETLW”指令。它把棧項(堆棧1)的值寫入PC。

      d、“MOVWF F2”指令。它把W寄存器的內容置入PC。

      e、“ADDWF F2”指令。它把PC值加1后再和W寄存器的值相加,結果寫入PC。

      在以上b、d和e中,PC的第9位總是被清為零。所以用這三條指令來產生程序跳轉時,要把子程序或分支程序放在每頁的上部地址(分別為000-0FF、200-2FF、400-4FF、600-6FF)。

      4、F3狀態寄存器(STATUS)

      F3包含了ALU的算術狀態、RESET狀態、程序存儲器頁面地址等。F3中除PD和TO兩位外,其他的位都可由指令來設置或清零。注意,當你執行一條欲改變F3 寄存器的指令后,F3中的情況可能出乎你的意料。

      例:CLRF F3 ;清F3為零

      你得到的結果是F3=000UU100(U為未變)而不是想像中的全零。UU兩位是PD和TO,它們維持不變,而2位由于清零操作被置成“1”。所以如果你要想改變F3的內容,建議你使用BCF、BSF和MOVWF這三條指令,因為它們的執行不影響其他狀態位。

      例:MOVLW 0;0→W

      MOVWF F3 ;把F3除PD和TO以外的位全部清零,則你可得到F3=000UU000。

      有關各條指令對狀態位的影響請看第二章介紹。

      在加法運算(ADDWF)時,C是進位位。在減法運算(SUBWF)時,C是借位的反(Borrow)。

      例:CLRF F10 ;F10=0

      MOVLW 1 ;1→W

      SUBWF F10 ;F10-W=0-1=FFH→F10

      C=0:運算結果為負

      例:MOVLW 1 ;1→W

      MOVWF F10 ;F10=1

      CLRW ;W=0

      SUBWF F10 ;F10-W=1-0=1→F10

      C=1:運算結果為正

      image5.jpg

      PD和TO兩位可用來判斷RESET的原因。例如判斷RESET是由芯片上電引起的,或是由看門狗WDT計時溢出引起的,或是復位端加低電平引起的,或是由WDT喚醒SLEEP引起的。

      表1.4列出了影響TO、PD位的事件。表1.5列出了在各種RESET后的TO、PD位狀態。

      image6.jpg

      判斷RESET從何處引起有時是很必要的。例如在對系統初始化時,經常需判斷這次復位是否是上電引起的。如果不是上電復位,則不再進行初始化。

      頁面選擇位PA1、PA0的作用前面已描述過,RESET時清PA0-PA2位為零,所以復位后程序區頁面自動選擇在0頁。

      5、F4 寄存器選擇寄存器(FSR)

      a、 PIC16C52/54/55/56

      F4的0-4位在間接尋址中用來選擇32個數據寄存器。5-7位為只讀位,并恒為1。請參考F0寄存器描述。

      b、PIC16C57/58

      FSR《6:5》位用來選擇當前數據寄存器體(Bank)。PIC16C57有80個數據寄存器,如圖1.4所示。80個寄存器分為4個體(Bank0~Bank3),每個體的低16個寄存器的物理位置是相同的(參考§1.5.3通用寄存器的描述)。當FSR的第4位為“1”時,則要根據FSR《6:5》位來選擇某個寄存器體中的某一個高16的寄存器。

      image7.jpg

      注意:當芯片上電復位時,FSR《6:5》是不定的,所以它可能指向任何一個Bank。而其他復位則保持原來的值不變。

       

      二、I/O 寄存器

      9-2.png

      PIC16C52/54/56/58有二個I/O口RA、RB(F5、F6),PIC16C55/57有三個I/O口RA、RB、RC(F5、F6、F7)。與其它寄存器一樣,它們皆可由指令來讀寫。它們是可編程雙向I/O口,可由程序來編程確定每一根I/O端的輸入/輸出狀態。

      RESET后所有的I/O口都置成輸入態(等于高阻態),即I/O控制寄存器(TRISA、TRISB、TRISC)都被置成“1”。

      1、F5(A口)

      4位I/O口寄存器。只能使用其低4位。高4位永遠定義為“0”。

      2、F6(B口)

      8位I/O口寄存器。

      3、F7(C口)

      對于PIC16C55/PIC16C57,它是一個8位I/O口寄存器。

      對于PIC16C54/56/58,它是一個通用寄存器。

      §1.5.3 通用寄存器

      PIC16C54/56:

      07H~1FH

      PIC16C55:

      08H~1FH

      PIC16C57/58:

      08H-0FH:共有通用寄存器(無須體選擇即可尋址)。

      10H-1FH:Bank0的通用寄存器

      20H-2FH:物理上等同于00H-0FH。

      30H-3FH:Bank1的通用寄存器

      40H-4FH:物理上等同于00H-0FH。

      50H-5FH:Bank2的通用寄存器

      60H-6FH:物理上等同于00H-0FH。

      70H-7FH:Bank3的通用寄存器。

       

      三、特殊功能寄存器

      1-1.jpg

      1、工作寄存器(W)

      W用來存放兩操作數指令中的第二個操作數,或用以進行內部數據傳送。算術邏輯單元ALU把W和寄存器連接起來,ALU的運算結果通過總據總線可以送到W保存。

      2、I/O控制寄存器(TRISA、TRISB、TRISC)

      TRISA、TRISB、TRISC分別對應I/O口A、B、C。其中TRISA只有4位,和A口對應。執行“TRIS f”指令可把W的值置入I/O控制寄存器,以此來定義各I/O端的輸入/輸出態。當寫入“1”時,將相應的I/O端置成輸入態(高阻態),當寫入“0”,則將相應的I/O端置成輸出態。I/O控制寄存器都是只寫寄存器,在RESET后自動置為全“1”,即所有I/O口都為輸入態。

      3、預設倍數/RTCC選擇寄存器(OPTION)

      OPTION可用于:

      a、定義預分頻器的預分頻參數。

      b、分配預分頻器(Prescaler)給RTCC或WDT。注意預分頻器只能分配給RTCC或WDT其中之一使用,不能同時分配。

      c、定義RTCC的信號源。

      d、定義RTCC信號源的觸發沿(上升沿觸發或下降沿觸發)。

      當預分頻器分配給RTCC后,所有寫RTCC寄存器的指令如CLRF 1、MOVWF 1等都會清除預分頻器。同理,分配給WDT時,諸如CLRWDT和SLEEP指令將清除預分頻器里已有的值使其歸零。

      通過執行“OPTION”指令可將W值置入OPTIOW寄存器,RESET后OPTION被置成全“1”。

      換一批

      延伸閱讀

      [單片機應用] pic單片機高手過招,pic單片機復位系統模塊+pic單片機中斷模塊介紹

      pic單片機高手過招,pic單片機復位系統模塊+pic單片機中斷模塊介紹

      pic單片機在生活中存在諸多應用,這是大多朋友學習pic單片機的主要原因之一。對于pic單片機,小編曾帶來大量介紹。而本文中,將為大家介紹pic單片兩大方面內容:pic單片機復位系統模塊+pic單片機中斷模塊。如果你對這部分內容存在疑惑,不......

      關鍵字:pic單片機 復位系統模塊 中斷模塊

      [單片機應用] pic單片機學習筆記,搞懂pic單片機二三事

      pic單片機學習筆記,搞懂pic單片機二三事

      pic單片機的學習并非一蹴而就,每位學習pic單片機的朋友可能都有屬于自身的知識圖譜、筆記等。為促進大家在pic單片機學習道路上更進一步,小編特此獻上一篇pic單片機學習筆記。青春不老,pic單片機學無止境。......

      關鍵字:pic單片機 尋址 學習筆記

      [單片機應用] 大佬談pic單片機,再話pic單片機選型問題

      大佬談pic單片機,再話pic單片機選型問題

      pic單片機是常用器件之一,每位學習pic單片機的朋友在學習過程中總會遇見各種難題,如pic單片機選型問題。對于pic單片機選型,小編曾帶來過簡單介紹。而在本文中,將對pic單片機選型進行詳細闡述,以幫助大家掃清選型難點。......

      關鍵字:pic單片機 單片機 選型

      [半導體] DRAM內存芯片價格暫時平穩:四季度或進一步下跌

      DRAM內存芯片價格暫時平穩:四季度或進一步下跌

      連續經歷N個月下跌后,DRAM內存芯片的價格在8月和9月份保持了基本穩定。DRAMeXchange采集的數據顯示,DDR4-2133 8Gb(1GB)PC芯片在9月結束后的均價為2.94美元,和上月完全持平(約合21元)。不過,業內專家認......

      關鍵字:DRAM 內存 芯片

      [智能硬件] 劃重點!!realme X2明日發布

      劃重點!!realme X2明日發布

      不知道最近有沒有需要購買手機的朋友呢?如果你有換機的想法,不妨再等等哦。......

      關鍵字:realme X2 realme SuperAMOLED

      [產業新聞] 長鑫存儲亮相閃存技術峰會 引領中國DRAM技術突破

      長鑫存儲亮相閃存技術峰會 引領中國DRAM技術突破

      在今日舉辦的中國閃存技術峰會(CFMS)上,長鑫存儲副總裁、未來技術評估實驗室負責人平爾萱博士做了題為《DRAM技術趨勢與行業應用》的演講,披露了DRAM技術發展現狀和未來趨勢。......

      關鍵字:長鑫存儲 DRAM 閃存

      [新聞速報] 長鑫存儲亮相閃存技術峰會 引領中國DRAM技術突破

      長鑫存儲亮相閃存技術峰會 引領中國DRAM技術突破

      在今日舉辦的中國閃存技術峰會(CFMS)上,長鑫存儲副總裁、未來技術評估實驗室負責人平爾萱博士做了題為《DRAM技術趨勢與行業應用》的演講,披露了DRAM技術發展現狀和未來趨勢。作為中國DRAM產業的領導者,長鑫存儲正......

      關鍵字:長鑫存儲 DRAM 閃存

      [單片機應用] pic單片機也可以很簡單,搞定pic單片機IO口操作

      pic單片機也可以很簡單,搞定pic單片機IO口操作

      對于pic單片機的學習,很多朋友總是能充滿激情,不斷利用閑余時間研究pic單片機的各類技術。而談及pic單片機,必須牽扯至51、AVR單片機。因此本文中,將探討pic單片機以及51、AVR單片機對于IO口的操作。對于本文,希望大家認真研讀,......

      關鍵字:pic單片機 51單片機 AVR單片機

      [單片機應用] 搞定pic單片機奇葩事,pic單片機分類大講解

      搞定pic單片機奇葩事,pic單片機分類大講解

      對于pic單片機,大家或多或少均有所耳聞。但是,大家對pic單片機有多少了解呢?是否熟知不同類型的pic單片機呢?本文中,將探討pic單片機的類型分類以及特征。此外,本文的探討基于pic 8位單片機而進行。......

      關鍵字:pic單片機 分類 單片機

      [單片機應用] 大佬探討pic單片機,pic單片機更實用

      大佬探討pic單片機,pic單片機更實用

      pic單片機是當前最實用工具之一,而對于pic單片機的探討往往與其他類型單片機相聯系。本文中,將討論pic單片機和51單片機誰更易于學習,以此幫助大家增進對pic單片機的理解。......

      關鍵字:pic單片機 51單片機 單片機

      [單片機新聞] 美光宣布量產第3代10納米級制程DRAM

      美光宣布量產第3代10納米級制程DRAM

      根據國外科技媒體報導指出,日前美系存儲器大廠美光科技(Micron)正式宣布,將采用第3代10納米級制程(1Znm)來生產新一代DRAM。而首批使用1Znm制程來生產的DRAM將會是16GB的DDR4及LPDDR4X存儲器。對此,市場預估,......

      關鍵字:美光 10納米 DRAM

      [智能硬件] ROG Rampage VI Extreme Encore:華碩最新主板來襲

      ROG Rampage VI Extreme Encore:華碩最新主板來襲

      華碩今天宣布推出ROG Rampage VI Extreme Encore主板(以下簡稱R6EE),相當于此前Rampage VI Extreme(R6E)的升級增強版,不過整體設計、規格和定位仍略低于Rampage VI Extreme ......

      關鍵字:ROG Rampage VI Extreme Encore 主板 華碩

      [單片機應用] pic單片機入門篇,3大方面了解pic單片機

      pic單片機入門篇,3大方面了解pic單片機

      據調查,pic單片機是相關人員使用的最多硬件之一。因此,凡入門者需對pic單片機保持一定的了解。為此,本文為大家帶來三部分內容:1.pic單片機簡介,2.pic單片機特點,3.pic單片機不足之處。通過本文,希望大家對pic單片機存在一個簡......

      關鍵字:pic單片機 特點 不足

      [單片機應用] pic單片機選型 + pic單片機INT0中斷原理

      pic單片機選型 + pic單片機INT0中斷原理

      pic單片機在實際應用中使用廣泛,對pic單片機各類型特點了熟于心十分必要。只有對每款pic單片機的特點有所把握的情形下,才能在依據項目需求而選擇最合適的pic單片機。本文中,將為大家介紹兩部分內容:一、pic單片機選型參考,二、pic單片......

      關鍵字:pic單片機 選型 中斷原理

      [行業觀察] 新型存儲器大規模量產在即,一臺Endura系統搞定30層原子薄膜沉積

      新型存儲器大規模量產在即,一臺Endura系統搞定30層原子薄膜沉積

      摩爾定律已經趨緩,現在的增長每年只有幾個百分點,所以芯片計算系統的性能也不再能延續過去30多年內的高速增長。工藝節點的突破之外,還可以在整體計算架構上來想辦法。很多新的概念被提了出來,其中有一種思路就是提高存儲器與計算芯片之間的數據交換效率......

      關鍵字:新型存儲器 Endura系統 應用材料 MRAM

      我 要 評 論

      網友評論

      技術子站

      更多

      項目外包

      更多

      推薦博客

      天天啪久久爱精品视频15