色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

單片機的寄存器類型及操作教程

dytfki8u8yql ? 來源:電子技術控 ? 2023-04-08 09:17 ? 次閱讀

大家都認為計算機可以做任何事,對我們的生活有巨大的作用,尤其是在學習單片機的過程中。學習計算機可以教會我們分析和解決問題,而學習單片機可以幫助我們更好地理解計算機如何根據我們的想法解決問題。本文帶你了解寄存器,它將伴隨學習單片機的全過程。寄存器是連接硬件和軟件的重要紐帶。計算機的任何功能都離不開寄存器。中央處理器也有寄存器。總線通信、通過注冊、內存分頁等一切都基于寄存器。電子洞和多彩的計算機世界之間有更多的寄存器,如鏈接。它們看起來很復雜,但它們很清楚。即便所有的計算機一夜之間突然消失,人類也可以從電子管和打孔紙帶開始,一層一層地構建計算機世界。我們所知道的只是這個龐大系統中的滄海一粟。

1.什么是寄存器

寄存器是CPU內部的一種存儲器,分為通用寄存器和特殊功能寄存器(8086也細分為特殊功能寄存器)。通用寄存器,顧名思義是通用的。它們可以存儲操作數、運算結果、內存地址等數據,在用C語言編程時,編譯器一般負責安排通用寄存器的使用,無需直接聯系它們。特殊功能寄存器具有特定功能,其中一些作用于CPU,比如PC存放下一條指令的地址,SP記錄棧頂在內存中的位置,其中一些與IO模塊相連,單片機程序通過這些寄存器控制各種外設。

我們通常使用的單片機是atmega324pa,它的封裝種類很多,管腳數量不同,但通用輸入輸出(GPIO)管腳有32個。由于AVR架構是8位字長,因此CPU一次處理1位數據和8位數據所需的時間相同。32個引腳被組織成4個端口,即PA、Pb、PC和PD。在微型和微型微控制器的AVR架構中,每個端口都有三個寄存器來控制數字信號IO,分別是portx、ddrx和PINX。這里的X是a、B、C或D。由于四個端口在數字IO方面是相同的,我們將它們組合起來。因此,對于每個引腳Pxn,有3個位,portxn、ddxn(不帶R)和pinxn,來控制其數字io。

ddxn控制引腳方向:ddxn為1時,輸出Pxn;當ddxn為0時,輸入Pxn。

當輸入Pxn時,如果portxn為1,則該引腳通過上拉電阻連接到VCC;否則,引腳懸空。

輸出Pxn時,若portxn為1,引腳輸出高電平;否則,引腳輸出低電平。

pinxn的值是Pxn引腳的電平。如果將1寫入pinxn,則portxn的值會翻轉。

寄存器還有很多細節,比如MCUCR寄存器中PUD位的作用、復位后寄存器的值、輸入/輸出切換的方法、讀取引腳電平的延遲、未連接引腳的處理方法等。

2.什么是單片機寄存器

寄存器是內存階層中的最頂端,也是系統獲得操作資料的最快速途徑。寄存器通常都是以他們可以保存的位元數量來估量,舉例來說,一個“8位元寄存器”或“32位元寄存器”。寄存器現在都以寄存器檔案的方式來實作,但是他們也可能使用單獨的正反器、高速的核心內存、薄膜內存以及在數種機器上的其他方式來實作出來。寄存器通常都用來意指由一個指令之輸出或輸入可以直接索引到的暫存器群組。更適當的是稱他們為“架構寄存器”。例如,x86指令集定義八個32位元寄存器的集合,但一個實作x86指令集的CPU可以包含比八個更多的寄存器。寄存器是CPU內部的元件,寄存器擁有非常高的讀寫速度,所以在寄存器之間的數據傳送非常快。

3.單片機寄存器的類型

3.1累加器A

累加器A是微處理器中使用最頻繁的寄存器。在算術和邏輯運算時它有雙功能:運算前,用于保存一個操作數;運算后,用于保存所得的和、差或邏輯運算結果。

3.2數據寄存器DR

數據寄存器通過數據總線向存儲器和輸入/輸出設備送(寫)或取(讀)數據的暫存單元。它可以保存一條正在譯碼的指令,也可以保存正在送往存儲器中存儲的一個數據字節等等。

3.3指令寄存器IR和指令譯碼器ID

指令包括操作碼和操作數。指令寄存器是用來保存當前正在執行的一條指令。當執行一條指令時,先把它從內存中取到數據寄存器中,然后再傳送到指令寄存器。當系統執行給定的指令時,必須對操作碼進行譯碼,以確定所要求的操作,指令譯碼器就是負責這項工作的。其中,指令寄存器中操作碼字段的輸出就是指令譯碼器的輸入。

3.4程序計數器PC

PC用于確定下一條指令的地址,以保證程序能夠連續地執行下去,因此通常又被稱為指令地址計數器。在程序開始執行前必須將程序的第一條指令的內存單元地址(即程序的首地址)送入PC,使它總是指向下一條要執行指令的地址。

3.5地址寄存器AR

用來保存當前CPU所訪問的內存單元的地址。由于在內存和CPU之間存在著操作速度上的差別,所以必須使用地址寄存器來保持地址信息,直到內存的讀/寫操作完成為止址寄存器(Address Register,AR)用來保存當前CPU所訪問的內存單元的地址。由于在內存和CPU之間存在著操作速度上的差別,所以必須使用地址寄存器來保持地址信息,直到內存的讀/寫操作完成為止。數據寄存器DR用來暫存微處理器與存儲器或輸人/輸出接口電路之間待傳送的數據。地址寄存器AR和數據寄存器DR在微處理器的內部總線和外部總線之間,還起著隔離和緩沖的作用。

4.單片機寄存器的使用教程

要使用寄存器,需要寫#include,然后就可以使用PORTA、DDRB、PINC等寄存器。它們是宏定義。不必探索它們是如何擴展的。只需要知道這些宏是可以讀、賦值和位操作的,就像uint8_t類型變量一樣。但是像PORTA0SumDDB7宏定義這樣的東西并不代表寄存器上的位。它們實際上是字面常量,比如PORTAx寄存器表示寄存器PORTA的第x位(0為最低位,7為最高位),其值為X。因此,直接復制這些宏是不正確的(不僅意思不對,編譯也不會通過)。

在開發板的庫函數中提供包含多個位操作的宏函數。可以拿出存儲器的手冊來,看看后面是怎么實現的。

讓我們舉個例子,點亮一個LED,首先打開紅色LED。原理圖第2頁左上角紅色LED通過電阻與網絡LED0相連,第1頁LED0與單片機PC4引腳相連,所以我們需要讓PC4腳輸出高電平。回到三個寄存器的功能。輸出高電平要求ddxn和portxn同時為1。我們把X和N分別用C和4取進去,也就是我們希望ddc4和portc4為1。

如果寄存器的一個位置為1,則set_bit實現。它需要兩個參數,要操作的整數變量和表示第一個數字的整數。將ddc4設置為1應該寫入set_bit(DDRC,4);4可以用DDC4替換,就是這樣定義的。同理,portc4可以設置為1。點亮紅色LED的整個過程如下:

c8f1ba46-d561-11ed-bfe3-dac502259ad0.jpg

接下來是存儲器的數字輸入。使用第一個按鍵相關的例子,保持LED狀態與按鍵一致,即按下點亮。

要讀取寄存器中的一位,可以使用read_bit。如果引腳上的電平為高電平,則read_bit的運算結果不為0(但不一定是布爾值1)。注意按鍵時引腳電平是低的,所以讀取引腳電平的結果是你是否按下該鍵。

原理圖中,key的一端接btn0網絡,再接單片機的PA4引腳。所以按鍵是否按下應該寫成:!read_bit(PINA,4)。

引腳應在讀取前配置為輸入。雖然是reset后默認輸入的,在這個例子中沒有必要給dda4寫0,但是寫清楚是一個好習慣,讓看這段代碼的人(可能是別人也可能是自己)明白PA4是輸入。對于porta4,由于該引腳外接了上拉電阻,因此無需使能內部上拉電阻。

c8ff8950-d561-11ed-bfe3-dac502259ad0.jpg

結合按鍵動作的知識,應該知道如何直接通過寄存器操作來判斷按鍵動作。值得注意的是,這些程序都不需要在項目屬性中將libee1庫添加到鏈接器。雖然代碼使用,但它們都是宏定義,獨立于鏈接器。

5.關于單片機寄存器的常見問題

5.1什么是單片機寄存器?

簡單地說,寄存器是一種內存。通常寄存器位于 CPU 或 MCU(微控制器)內,非常靠近算術單元或直接連接到各種 I/O 端口。由于這個位置或特殊設計,與其他類型的存儲器相比,寄存器在讀/寫速度方面要快得多。

5.2單片機寄存器有什么作用?

寄存器的單片機(計算機)的存儲單元,是存取數據較為方便、快速地方寄存器常用于存放使用比較頻繁的數據,再參與運算,都很容易。

5.3哪些計算機使用單芯片處理器?

單芯片云計算機(SCC) 是英特爾實驗室開發的一種實驗性微處理器,SCC 微處理器包括集成在單個硅芯片上的 48 個內核,SCC 具有雙核 SCC 磁貼、內存控制器和 24 路由器網狀網絡。

5.4什么是單芯片CPU?

大部分微機的ALU和控制單元都是在一塊硅片上組合制造的。大多數現代 CPU 都是微處理器,這意味著它們包含在單個集成電路 (IC) 芯片中。

以上就是單片機的寄存器類型及操作教程的介紹了,單片機一種集成電路芯片,廣泛用于各大行業中。單片機寄存器其實就相當于一個變量,只不過這個變量在固定的地址,有一個特殊的名稱(當然也不強制)。初學者對寄存器的操作比較困難的原因不是匯編語言或C語言使用的不熟,而是對寄存器的陌生。單片機中存儲器的資源是非常寶貴和有限的,任何產品都有使用說明書,要想最好的使用一款產品也是去閱讀說明書。單片機或者芯片的說明書就是數據手冊。數據手冊中往往都是對寄存器如何操作的描述,只不過要耐下心來一點一點的去理解去消化手冊所介紹的功能,這樣才能用好。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 處理器
    +關注

    關注

    68

    文章

    19259

    瀏覽量

    229653
  • 單片機
    +關注

    關注

    6035

    文章

    44554

    瀏覽量

    634653
  • 寄存器
    +關注

    關注

    31

    文章

    5336

    瀏覽量

    120230
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10854

    瀏覽量

    211585
  • 計算機
    +關注

    關注

    19

    文章

    7488

    瀏覽量

    87852

原文標題:單片機的寄存器類型及操作教程

文章出處:【微信號:電子技術控,微信公眾號:電子技術控】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    51單片機寄存器如何賦值

    單片機在電學里面,屬于很簡單的一種器件,外表看,就是一個芯片,長著很多的腳。內部,就是一堆寄存器。不同的單片機,外部表現就是形狀和引腳數量和引腳名稱可能不一樣,內部,就是寄存器名稱不一
    的頭像 發表于 12-31 08:32 ?2.4w次閱讀
    51<b class='flag-5'>單片機</b>的<b class='flag-5'>寄存器</b>如何賦值

    單片機寄存器編程與位運算

    這次一起來學習一下單片機開發時必備技術——位運算和寄存器編程。
    發表于 06-21 11:11 ?1672次閱讀
    <b class='flag-5'>單片機</b>的<b class='flag-5'>寄存器</b>編程與位運算

    單片機教程七:單片機的特殊功能寄存器

    單片機教程七:單片機的特殊功能寄存器 通過前面的學習,我們已知單片機的內部有ROM、有RAM、有并行I/O口,那么,除了這些東西之外,單片機
    發表于 05-15 23:01 ?2279次閱讀
    <b class='flag-5'>單片機</b>教程七:<b class='flag-5'>單片機</b>的特殊功能<b class='flag-5'>寄存器</b>

    51單片機匯編語言教程_單片機的特殊功能寄存器

    51單片機匯編語言教程:7課單片機的特殊功能寄存器
    發表于 01-19 15:26 ?0次下載

    51單片機寄存器說明

    本資料主要對51單片機常用寄存器配置作了說明
    發表于 11-18 17:59 ?15次下載

    51單片機經常使用的寄存器功能總結

    本文檔的主要內容詳細介紹的是51單片機經常使用的寄存器功能總結。
    發表于 08-29 17:29 ?12次下載
    51<b class='flag-5'>單片機</b>經常使用的<b class='flag-5'>寄存器</b>功能總結

    51單片機的一些特殊寄存器資料說明

    本文檔的主要內容詳細介紹的是51單片機的一些特殊寄存器資料說明。包括了:中斷使能寄存器,中斷優先級寄存器,電源控制PCON,PSW處理狀態
    發表于 07-26 17:36 ?2次下載
    51<b class='flag-5'>單片機</b>的一些特殊<b class='flag-5'>寄存器</b>資料說明

    單片機寄存器

    單片機寄存器其實就相當于一個變量,只不過這個變量在固定的地址,有一個特殊的名稱(當然也不強制)。初學者對寄存器操作比較困難的原因不是匯編語言或C語言使用的不熟,而是對
    發表于 11-10 18:35 ?11次下載
    <b class='flag-5'>單片機</b><b class='flag-5'>寄存器</b>

    MSP430單片機寄存器

    電子發燒友網站提供《MSP430單片機寄存器.pdf》資料免費下載
    發表于 11-19 15:36 ?3次下載
    MSP430<b class='flag-5'>單片機</b><b class='flag-5'>寄存器</b>

    32單片機 C語言 寄存器(四)

    32單片機C語言相關知識以及寄存器地址名稱映射分析
    發表于 11-29 10:06 ?12次下載
    32<b class='flag-5'>單片機</b> C語言 <b class='flag-5'>寄存器</b>(四)

    STM32的寄存器操作

    STM32的寄存器操作在使用STM32單片機編程時一般都用ST給的庫函數編程,庫函數編程的底層就是對單片機寄存器
    發表于 01-13 15:43 ?19次下載
    STM32的<b class='flag-5'>寄存器</b><b class='flag-5'>操作</b>

    單片機定時寄存器

    標準的 51 單片機內部有 T0 和 T1 這兩個定時,T 就是 Timer 的縮寫,現在很多 51 系列單片機還會增加額外的定時,在這里我們先講定時
    發表于 02-10 12:10 ?1次下載
    <b class='flag-5'>單片機</b>定時<b class='flag-5'>器</b>的<b class='flag-5'>寄存器</b>

    單片機寄存器和存儲哪個好

    單片機寄存器和存儲哪個好 單片機的運用在生活中是很常見的,隨著科技的發展,單片機更新速度和發展速度也非常快。對于
    發表于 03-21 15:18 ?655次閱讀

    單片機寄存器有哪些 單片機寄存器怎么理解 寄存器單片機的關系

    單片機寄存器是一種特殊的存儲器件,用于存儲和處理程序中的數據和指令。可以將單片機寄存器看作是CPU內部的工作區域,類似于人的大腦,用于暫時存儲和處理當前的任務和信息。
    發表于 04-01 15:47 ?6272次閱讀

    單片機工作寄存器作用 單片機常用專用寄存器

    除了通用寄存器(如累加、通用寄存器等),單片機中還會有特定功能的寄存器,如定時
    的頭像 發表于 04-08 14:46 ?7517次閱讀
    主站蜘蛛池模板: 久久妇女高潮几次MBA| 又大又硬又爽免费视频| 四房播播开心五月| 色戒床震视频片段| 性派对xxxhd| 一品探花论坛| 97成人免费视频| 啊轻点啊再深点视频免费| 德国xxxx| 国内精品久久久久影院老司| 快播电影频道| 日本精品卡一卡2卡3卡四卡三卡| 我的美女奴隶| 征服丝袜旗袍人妻| 芭乐视频免费资源在线观看| 国产精品无码人妻在线| 久久婷婷国产五月综合色啪最新| 欧美性暴力变态xxxx| 小草观看免费高清视频| 中文字幕午夜乱理片| 不卡一区二区高清观看视频| 国产欧美一区二区精品久久久| 久久久久久久久亚洲| 秋霞网韩国理伦片免费看| 亚洲AV久久无码高潮喷水| 综合伊人久久| 国产99视频精品免费播放| 久久www成人看片| 日本视频中文字幕一区二区| 亚洲精品婷婷无码成人A片在线| 97草碰在线视频免费| 国产日韩欧美高清免费视频| 美女被爆插| 鸭子玩富婆流白浆视频| 60老妇性xxxxhd| 国产精品婷婷五月久久久久| 两个人看的www免费高清直播| 网友自拍成人在线视频| 最新黄色在线| 国产一区二区在线免费观看| 欧美末成年videos丨|