學(xué)單片機(jī)那么久了,感覺(jué)想要深入,還得看匯編語(yǔ)言,至少得了解單片機(jī)內(nèi)部結(jié)構(gòu)。
下面就以ATmega16為例,介紹一下AVR單片機(jī)結(jié)構(gòu)和匯編語(yǔ)言。
AVR單片機(jī)的CPU內(nèi)核結(jié)構(gòu)
如上兩圖,左圖是虛線框內(nèi)AVR CPU的內(nèi)核結(jié)構(gòu),右圖是AVR單片機(jī)內(nèi)核結(jié)構(gòu)的方框圖,可以看出AVR單片機(jī)的數(shù)據(jù)總線(CPU字長(zhǎng))是8位的,也就說(shuō)它是8位單片機(jī)。
AVR采用了Harvard結(jié)構(gòu),具有獨(dú)立的數(shù)據(jù)和程序總線,CPU在執(zhí)行一條指令的同時(shí),就將PC中指定的下一條指令取出,構(gòu)成了一級(jí)流水線運(yùn)行方式,實(shí)現(xiàn)了一個(gè)時(shí)鐘周期執(zhí)行一條指令,數(shù)據(jù)吞吐量高達(dá)1MIPS/MHz。
AVR CPU內(nèi)核由幾個(gè)重要的部分組成,它們分別是:
A.算數(shù)邏輯單元ALU(Arithmetic Logic Unit)
AVR ALU與32個(gè)通用工作寄存器直接相連。寄存器與寄存器之間、寄存器與立即數(shù)之間的ALU運(yùn)算只需要一個(gè)時(shí)鐘周期。ALU操作分為3類:算術(shù)、邏輯和位操作,此外還提供了支持無(wú)/有符號(hào)數(shù)和分?jǐn)?shù)乘法的乘法器,操作結(jié)果的狀態(tài)將影響到狀態(tài)寄存器SREG(Status Register)。
B.程序計(jì)數(shù)器PC、指令寄存器和指令譯碼器
程序計(jì)數(shù)器PC用來(lái)存放下一條需要執(zhí)行指令在程序存儲(chǔ)器(ROM)空間的地址(指向FlashROM空間),取出的指令存放在指令寄存器中,然后送入指令譯碼器中產(chǎn)生各種控制信號(hào),控制CPU的運(yùn)行(執(zhí)行指令)。
AVR一條指令的長(zhǎng)度大多數(shù)為16位,還有少部分為32位,因此AVR的程序存儲(chǔ)器結(jié)構(gòu)實(shí)際上是以字(16位)為一個(gè)存儲(chǔ)單元的。
ATmega16單片機(jī)的程序計(jì)數(shù)器為13位,正好滿足了對(duì)片內(nèi)8K字(及16K字節(jié))的Flash程序存儲(chǔ)器空間直接尋址的需要。
C.通用寄存器General Purpose Registers
在AVR中,由命名為R0~R31的32個(gè)8位通用工作寄存器構(gòu)成一個(gè)“通用快速工作寄存器組”,為ALU提供操作數(shù)。它們的在RAM的映射空間地址是$0000~$001F,其中有6個(gè)寄存器($001A-$001F)可以合并為3個(gè)16位間接尋址寄存器指針,分別被稱為X寄存器,Y寄存器,和Z寄存器,用于對(duì)數(shù)據(jù)存儲(chǔ)器(SRAM)進(jìn)行間接尋址。
D.狀態(tài)寄存器-SREG
狀態(tài)寄存器SREG是一個(gè)8位標(biāo)志寄存器,用來(lái)存放指令執(zhí)行后的有關(guān)狀態(tài)和結(jié)果的標(biāo)志,各位狀態(tài)通常是在指令執(zhí)行過(guò)程中自動(dòng)產(chǎn)生的,但也可以由用戶根據(jù)需要用專用指令加以改變。
位7-I:全局中斷使能位
當(dāng)I位被置位時(shí),表示CPU可以響應(yīng)中斷請(qǐng)求,反之,則所有中斷被禁止。I位可以通過(guò)SEI和CLI指令來(lái)置位和清零,在中斷發(fā)生后,I位由硬件清除,并由RETI(中斷返回)指令置位。
位6-T:位拷貝存儲(chǔ)
位拷貝指令BLD和BST利用T作為目的或源地址。BST把寄存器的某一位拷貝到T,而B(niǎo)LD把T拷貝到寄存器的某一位。
位5-H:半進(jìn)位標(biāo)志 半進(jìn)位標(biāo)志H表示算術(shù)操作發(fā)生了半進(jìn)位,此標(biāo)志對(duì)于BCD運(yùn)算非常有用。
位4-S:符號(hào)位 S=N⊕V,S為負(fù)數(shù)標(biāo)志N與2的補(bǔ)碼溢出標(biāo)志V的異或
位3-V:2的補(bǔ)碼溢出標(biāo)志,支持2的補(bǔ)碼運(yùn)算
位2-N:負(fù)數(shù)標(biāo)志 表明算術(shù)或邏輯操作結(jié)果為負(fù)
位1-Z:零標(biāo)志 表明算術(shù)或邏輯操作結(jié)果為零
位0-C:進(jìn)位標(biāo)志 表明算術(shù)或邏輯操作發(fā)生了進(jìn)位
E.堆棧指針寄存器SP(Stack Point)
堆棧指針主要用來(lái)保存臨時(shí)數(shù)據(jù)、局部變量和中斷/子程序的返回地址。堆棧指針總是指向堆棧的頂部,AVR的堆棧是向下生長(zhǎng)的,即新的數(shù)據(jù)推入堆棧時(shí),堆棧指針的數(shù)值將減小。
處在I/O地址空間的&3E($005E)和$3D($005D)的兩個(gè)8位寄存器構(gòu)成了AVR單片機(jī)的16位堆棧指針寄存器SP,分別為SPH,SPL。
堆棧指針指向數(shù)據(jù)SRAM堆棧區(qū),必須指向高于0x60的地址空間,所以通常初始化時(shí)將SP的指針設(shè)在SRAM最高處。
使用PUSH指令將數(shù)據(jù)推入堆棧時(shí)指針減一;而子程序或中斷返回地址推入堆棧時(shí)指針將減二。
使用POP指令將數(shù)據(jù)彈出堆棧時(shí),堆棧指針加一;而用RET或RETI指令從子程序或中斷返回時(shí)堆棧指針加二。
上一篇:AVR的指令與匯編器系統(tǒng)及宏指令
下一篇:avr宏匯編和表達(dá)式
推薦閱讀
史海拾趣
對(duì)于能判斷障礙物的機(jī)器人電路,網(wǎng)友可能還有以下幾個(gè)問(wèn)題及其相應(yīng)回答:
問(wèn)題一:機(jī)器人通常使用哪些傳感器來(lái)判斷障礙物?
回答:
機(jī)器人通常使用多種傳感器來(lái)判斷障礙物,主要包括但不限于以下幾種:
-
超聲波傳感器:這是最常見(jiàn)的一種傳感器,通過(guò)發(fā)射超聲波并接收其反射回來(lái)的信號(hào),根據(jù)信號(hào)的時(shí)間差和波速計(jì)算障礙物的距離。超聲波傳感器在檢測(cè)大范圍、非接觸式的障礙物時(shí)非常有效。
-
紅外傳感器:紅外傳感器通過(guò)發(fā)射紅外光并接收其反射光來(lái)判斷障礙物的存在和距離。紅外傳感器在近距離和快速檢測(cè)中表現(xiàn)優(yōu)異,且成本相對(duì)較低。
-
激光傳感器:激光傳感器利用激光束進(jìn)行測(cè)距,具有高精度、長(zhǎng)距離測(cè)量的特點(diǎn)。但相比超聲波和紅外傳感器,激光傳感器的成本更高,適用于對(duì)精度要求極高的應(yīng)用場(chǎng)景。
-
視覺(jué)傳感器:一些高級(jí)的機(jī)器人還配備了視覺(jué)傳感器,如攝像頭,通過(guò)圖像處理技術(shù)來(lái)識(shí)別并判斷障礙物。這種方法可以實(shí)現(xiàn)更復(fù)雜的場(chǎng)景理解和避障策略。
問(wèn)題二:如何設(shè)計(jì)能判斷障礙物的機(jī)器人電路?
回答:
設(shè)計(jì)能判斷障礙物的機(jī)器人電路需要考慮以下幾個(gè)關(guān)鍵步驟:
-
選擇合適的傳感器:根據(jù)機(jī)器人的應(yīng)用場(chǎng)景、成本預(yù)算和精度要求選擇合適的傳感器。
-
設(shè)計(jì)信號(hào)處理電路:將傳感器采集到的原始信號(hào)(如電壓、電流等)進(jìn)行放大、濾波等處理,以便于后續(xù)的數(shù)字處理或微控制器讀取。
-
微控制器編程:根據(jù)傳感器的輸出信號(hào)編寫(xiě)微控制器的程序,實(shí)現(xiàn)障礙物的判斷、避障策略的制定和執(zhí)行。
-
執(zhí)行機(jī)構(gòu)控制:通過(guò)微控制器控制機(jī)器人的執(zhí)行機(jī)構(gòu)(如電機(jī)、舵機(jī)等),實(shí)現(xiàn)機(jī)器人的移動(dòng)和避障動(dòng)作。
-
整體調(diào)試與優(yōu)化:對(duì)整個(gè)電路進(jìn)行調(diào)試和優(yōu)化,確保機(jī)器人能夠準(zhǔn)確、穩(wěn)定地判斷障礙物并執(zhí)行避障動(dòng)作。
問(wèn)題三:如何提高機(jī)器人判斷障礙物的準(zhǔn)確性和穩(wěn)定性?
回答:
提高機(jī)器人判斷障礙物的準(zhǔn)確性和穩(wěn)定性可以從以下幾個(gè)方面入手:
-
選用高質(zhì)量的傳感器:高質(zhì)量的傳感器具有更高的精度和穩(wěn)定性,能夠減少誤判和漏判的情況。
-
優(yōu)化信號(hào)處理電路:通過(guò)合理的電路設(shè)計(jì)和元器件選擇,減少信號(hào)噪聲和干擾,提高信號(hào)的信噪比和可靠性。
-
算法優(yōu)化:對(duì)微控制器的算法進(jìn)行優(yōu)化,采用更先進(jìn)的算法或策略來(lái)提高障礙物的判斷精度和避障效果。
-
多傳感器融合:利用多種傳感器進(jìn)行融合處理,可以彌補(bǔ)單一傳感器的不足,提高整個(gè)系統(tǒng)的魯棒性和可靠性。
-
實(shí)驗(yàn)驗(yàn)證與迭代優(yōu)化:通過(guò)大量的實(shí)驗(yàn)驗(yàn)證和迭代優(yōu)化,不斷調(diào)整和優(yōu)化機(jī)器人的參數(shù)和算法,以提高其判斷障礙物的準(zhǔn)確性和穩(wěn)定性。
在國(guó)內(nèi)市場(chǎng)取得一定成功后,Avasem公司開(kāi)始實(shí)施國(guó)際化戰(zhàn)略,以進(jìn)一步拓展全球市場(chǎng)份額。公司首先在歐洲和北美等成熟市場(chǎng)設(shè)立了研發(fā)中心和銷售網(wǎng)點(diǎn),以便更好地了解當(dāng)?shù)厥袌?chǎng)需求和消費(fèi)者偏好。隨后,Avasem公司通過(guò)與當(dāng)?shù)睾献骰锇榻?zhàn)略聯(lián)盟,共同推廣其產(chǎn)品和技術(shù)。這一戰(zhàn)略不僅提升了公司在全球市場(chǎng)的知名度,還為其帶來(lái)了可觀的收益增長(zhǎng)。
A/D Electronics Inc深知人才是企業(yè)發(fā)展的核心力量。因此,公司高度重視研發(fā)團(tuán)隊(duì)的建設(shè)和人才培養(yǎng)。通過(guò)引進(jìn)國(guó)內(nèi)外優(yōu)秀人才和加大研發(fā)投入,公司不斷提升研發(fā)團(tuán)隊(duì)的實(shí)力和創(chuàng)新能力。同時(shí),公司還建立了完善的培訓(xùn)體系,為員工提供持續(xù)的學(xué)習(xí)和成長(zhǎng)機(jī)會(huì),激發(fā)了員工的創(chuàng)造力和工作熱情。
EOS POWER INDIA Pvt公司成立于1991年,由美國(guó)加利福尼亞州幾位電力電子領(lǐng)域的先驅(qū)創(chuàng)立。成立之初,EOS就致力于電力電子技術(shù)的研發(fā)與應(yīng)用,特別是在電源解決方案方面。通過(guò)引進(jìn)先進(jìn)的技術(shù)和工藝,EOS在印度市場(chǎng)上逐步建立起自己的品牌形象,并開(kāi)始為本地客戶提供優(yōu)質(zhì)的電源產(chǎn)品和服務(wù)。
隨著產(chǎn)品技術(shù)的不斷成熟,致強(qiáng)科技開(kāi)始積極尋求市場(chǎng)拓展。2016年,致強(qiáng)科技攜手上海晟霆電子科技有限公司,共同致力于致強(qiáng)品牌合金電阻在中國(guó)內(nèi)地市場(chǎng)的推廣與銷售。這一合作不僅擴(kuò)大了致強(qiáng)產(chǎn)品的市場(chǎng)覆蓋范圍,還通過(guò)本地化服務(wù)提升了客戶滿意度。通過(guò)精準(zhǔn)的市場(chǎng)定位和高效的營(yíng)銷策略,致強(qiáng)電阻迅速在內(nèi)地市場(chǎng)占據(jù)了一席之地,成為眾多電子企業(yè)信賴的合作伙伴。
面對(duì)電子行業(yè)的快速發(fā)展和市場(chǎng)需求的不斷變化,致強(qiáng)科技始終保持敏銳的市場(chǎng)洞察力。公司積極尋求與上下游企業(yè)的跨界合作,共同推動(dòng)產(chǎn)業(yè)升級(jí)和技術(shù)創(chuàng)新。通過(guò)與知名電子廠商、科研機(jī)構(gòu)及高校等建立緊密的合作關(guān)系,致強(qiáng)科技不斷引入新技術(shù)、新工藝和新材料,為產(chǎn)品的升級(jí)換代提供了有力支持。同時(shí),公司還積極拓展新業(yè)務(wù)領(lǐng)域,如車聯(lián)網(wǎng)、物聯(lián)網(wǎng)等新興領(lǐng)域,為公司的未來(lái)發(fā)展開(kāi)辟了更廣闊的空間。
下面是小蝦我寫(xiě)的個(gè)代碼,主要是測(cè)量電流和溫度,溫度轉(zhuǎn)換函數(shù)我還沒(méi)最后確定就沒(méi)寫(xiě)出來(lái),P1口是采集端,用P37控制采集端(采集電流/溫度),P0和P0口是復(fù)用端口,P36控制數(shù)碼管(顯示溫度/電流),由于我采集的溫度不可能超過(guò)200度,所以我的百位 ...… 查看全部問(wèn)答∨ |
我重新發(fā)一個(gè)protues7.12與keil3聯(lián)調(diào) 以前的不知為甚沒(méi)能上傳附件,現(xiàn)在再試一次,方便初學(xué)者!… 查看全部問(wèn)答∨ |
作者:華清遠(yuǎn)見(jiàn)嵌入式學(xué)院 或許是由于近一段時(shí)間以來(lái),3G的呼聲是一浪高過(guò)一浪,或許是因?yàn)榇蠹覍?duì)新一代手機(jī)的關(guān)注熱度節(jié)節(jié)攀升,也許是在許多文章中,Symbian的出現(xiàn)始終和3G息息相關(guān)的緣故,在和許多來(lái)華清遠(yuǎn)見(jiàn)咨詢培訓(xùn)課程的朋友交流溝通的過(guò)程 ...… 查看全部問(wèn)答∨ |
基于ARM7 和ZigBee 的短距離無(wú)線通信系統(tǒng)的設(shè)計(jì) 摘要:隨著無(wú)線通信技術(shù)的迅速發(fā)展, 新的技術(shù)不斷出現(xiàn)。短距離無(wú)線通信技術(shù)已成為無(wú)線通信技術(shù)的新熱點(diǎn),作為IEEE802.15.4 標(biāo)準(zhǔn)的ZigBee技術(shù)是一種新興的近距離、低復(fù)雜度、低功耗、低數(shù)據(jù)速率、低成本的無(wú)線網(wǎng)絡(luò)技術(shù), 主要用于近距離無(wú)線連接。而A ...… 查看全部問(wèn)答∨ |
關(guān)于tornado 調(diào)試工具,采用tornado的命令行編譯的(make)帶有調(diào)試信息的執(zhí)行文件都可以跟蹤嗎?謝謝… 查看全部問(wèn)答∨ |
關(guān)于aduc7026(ARM7) 一直進(jìn)中斷的問(wèn)題 我用keil+ULINK調(diào)的aduc7026,一塊板子沒(méi)問(wèn)題,另一塊板子還沒(méi)跳進(jìn)main,就一直往中斷的handler里跳,程序和設(shè)置都一樣,就是硬件有些不同? 這會(huì)是什么原因? PLL? 不能正常reset ? 誰(shuí)有遇到過(guò)的指點(diǎn)一下謝謝了! … 查看全部問(wèn)答∨ |
大蝦們幫小弟看下這個(gè)小電路怎么控制的 P1.1=1時(shí),P1.0=? 分析一下 http://www.liuguo.net/bbs/ShowPost.asp?ThreadID=430… 查看全部問(wèn)答∨ |
|
430的輸入邏輯高電平是0.8Vcc,0.8*3.3=2.64V,我用的器件的輸出邏輯高電平是4.5V,電平是匹配了,可這樣會(huì)不會(huì)燒壞430呢,430管腳最大允許電壓是多少呢?我查的信息不統(tǒng)一。麻煩你了各位了!謝謝!… 查看全部問(wèn)答∨ |
設(shè)計(jì)資源 培訓(xùn) 開(kāi)發(fā)板 精華推薦
- 【ESP32】通過(guò)串口控制直流電機(jī)
- ESP32 spi 驅(qū)動(dòng)使用 dummy 方式支持設(shè)備驅(qū)動(dòng)
- ESP32系列CPU支持差分升級(jí)
- ESP32驅(qū)動(dòng)MFRC522 RFID模塊讀寫(xiě)IC卡數(shù)據(jù)
- 人形機(jī)器人馬拉松背后的思考,兆易創(chuàng)新如何賦能機(jī)器人產(chǎn)業(yè)
- 一種基于STM32的智能柜控制器設(shè)計(jì)
- 小型傾轉(zhuǎn)旋翼機(jī)的無(wú)刷直流電機(jī)驅(qū)動(dòng)器設(shè)計(jì)
- 超高速攝影機(jī)電控系統(tǒng)設(shè)計(jì)
- 基于GPS自動(dòng)授時(shí)的無(wú)線智能控制器的設(shè)計(jì)
- 小鵬華為聯(lián)手終結(jié)AR-HUD“三大痛”
- 英特爾攜手香港大學(xué)“菁英聚·港大”,推動(dòng)中學(xué)人工智能教育普及
- 奔馳,國(guó)軒高科固態(tài)電池正式裝車,續(xù)航超1000km!
- 高功耗芯片如何設(shè)計(jì)滿足散熱需求?
- 智能駕駛仿真研究:仿真走向跨域融合,世界模型應(yīng)用提速
- 國(guó)投招商投資景略半導(dǎo)體,加速車載芯片國(guó)產(chǎn)替代進(jìn)程
- 正極材料知多少:LFP仍是市場(chǎng)主流,三元體系將持續(xù)滲透30萬(wàn)元以上車型
- 擺脫中國(guó)電池鏈?特斯拉欲自建電池生產(chǎn)體系
- 人形機(jī)器人新賽道,湖北想贏
- 大陸集團(tuán)開(kāi)發(fā)出全新傳感器技術(shù) 可減少稀土元素的使用
- 找小伙伴們一起去闖 STM32 F7英雄聯(lián)盟設(shè)計(jì)大賽
- 有獎(jiǎng)直播:8月21上午10:00 泰克助您應(yīng)對(duì)現(xiàn)在及未來(lái)的測(cè)試挑戰(zhàn)!
- 捉蟲(chóng)行動(dòng)二:爭(zhēng)做EE下載中心黑貓警長(zhǎng)!
- 有獎(jiǎng)活動(dòng)“庖丁”解智能睡眠監(jiān)測(cè)儀,一波“水軍”來(lái)圍觀
- 西門子精彩視頻限時(shí)免費(fèi)|利用電子產(chǎn)品生命周期管理 (PLM) 更快地交付更多產(chǎn)品
- TI 中國(guó)大學(xué)計(jì)劃20周年官網(wǎng)“幸運(yùn)雨”了,你還不來(lái)?yè)專?/a>
- 解鎖 TE 掌上信息智庫(kù),獲取一站式資源!
- Microchip有獎(jiǎng)直播:如何充分利用零漂移運(yùn)算放大器
- 恩智浦開(kāi)發(fā)板交流火熱進(jìn)行中
- 參加世界智能大會(huì),Graphcore要傳遞哪些信息
- “缺芯”困局難破 第三季度恐最缺貨
- 人工智能芯片產(chǎn)業(yè)面面觀 誰(shuí)將成就最強(qiáng)大腦
- “缺芯”浪潮下 全球芯片廠商一季度收入創(chuàng)歷史新高
- 究竟哪種手機(jī)的黑色才是我們想要的
- 5G時(shí)代醫(yī)院長(zhǎng)成這樣子
- 隨著人工智能的發(fā)展 CTA認(rèn)為需要建立統(tǒng)一的智能醫(yī)療標(biāo)準(zhǔn)
- NTU和JTC共同開(kāi)發(fā)智能車測(cè)試中心
- 納雷科技發(fā)布77GHz汽車前向170米毫米波雷達(dá)
- 無(wú)PCB(PCB-less)的霍爾鎖存器在汽車座椅電機(jī)定位的解決方案