亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

蟲蟲首頁| 資源下載| 資源專輯| 精品軟件
登錄| 注冊

循環(huán)語句

  • MCS-96單片機(jī)的應(yīng)用系統(tǒng)設(shè)計(jì)基礎(chǔ)

    內(nèi)容提要: MCS-96單片機(jī)的應(yīng)用系統(tǒng)設(shè)計(jì)基礎(chǔ)            硬件電路設(shè)計(jì),語言的設(shè)計(jì)基礎(chǔ),程序分析            PL/M-96可執(zhí)行語句和程序等等.... 第一章 概述   1.1 單片機(jī)應(yīng)用系統(tǒng)的結(jié)構(gòu)   1.2 MCS-96單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)基礎(chǔ)       1.2.1 引腳功能及外部擴(kuò)展特性       1.2.2 儲存器及管理       1.2.3 芯片組態(tài)寄存器    1.3 MCS-96單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)與調(diào)試       1.3.1 總體設(shè)計(jì)       1.3.2 硬件電路設(shè)計(jì)       1.3.3 基本硬件電路調(diào)試       1.3.4 軟件設(shè)計(jì)    1.4 PL/M-96語言特點(diǎn) 第二章 PL/M-96簡單程序分析     2.2 PL/M-96字符集 標(biāo)示符 注釋         2.2.1 字符集         2.2.2 標(biāo)示符 保留字和預(yù)說明符         2.2.3 注釋     2.3 數(shù)據(jù)類型和類型說明         2.3.1 數(shù)據(jù)類型         2.3.2 簡單說明句     2.4 變量         2.4.1 字節(jié) 字 和雙字變量         2.4.2 整型 短整型 和長整型變量         2.4.3 實(shí)型變量         2.4.4 地址型變量和運(yùn)算符的地址應(yīng)用         2.4.5 變量的Fast和Slow屬性及說明         2.4.6 隱含類型轉(zhuǎn)換     2.5 常數(shù)         2.5.1 純數(shù)常數(shù)         2.5.2 浮點(diǎn)常數(shù)         2.5.3 字符串     2.6 表達(dá)式及運(yùn)算規(guī)則         2.6.1 操作數(shù)         2.6.2 算術(shù)運(yùn)算及其表達(dá)式         2.6.3 關(guān)系運(yùn)算及其表達(dá)式         2.6.4 邏輯運(yùn)算及其表達(dá)式         2.6.5 表達(dá)式的運(yùn)算順序         2.6.6 常數(shù)表達(dá)式計(jì)算     2.7 數(shù)據(jù)和結(jié)構(gòu)         2.7.1 數(shù)組         2.7.2 結(jié)構(gòu)           .........           .........

    標(biāo)簽: MCS 96 單片機(jī) 應(yīng)用系統(tǒng)

    上傳時間: 2013-11-19

    上傳用戶:chenbhdt

  • 循跡小車詳細(xì)資料

    挺好的

    標(biāo)簽: 循跡小車

    上傳時間: 2014-01-10

    上傳用戶:suoyuan

  • 基于51單片機(jī)循跡小車的設(shè)計(jì)

    en

    標(biāo)簽: 51單片機(jī) 循跡小車

    上傳時間: 2013-10-08

    上傳用戶:lalalal

  • 周立功寫給學(xué)單片機(jī)的年輕人

    寫給學(xué)單片機(jī)的年輕人:周立功 珍惜求學(xué)機(jī)會 作為過來人思前想后,我感到完全有責(zé)任將發(fā)自心底的感受傳遞給年輕一代,“一個企業(yè)家心靈深處渴望優(yōu)秀人才的卓越追求和深層次的嘆息、痛苦和感受”。您們千萬不要等到畢業(yè)求職時才覺得自己能力太差,世界上從來就沒有后悔藥。當(dāng)然,如果您現(xiàn)在看了我寫的這篇文章可能還不算晚,因?yàn)槟€有機(jī)會在以后的歲月里奮起直追——“亡羊補(bǔ)牢,尤未為晚”。對于現(xiàn)在剛進(jìn)入大學(xué)的學(xué)生,您應(yīng)該更加珍惜這美好的求學(xué)機(jī)會,因?yàn)檎Q壑g幾年就過去了,您很快就會感到來自全社會生存競爭的壓力,您面臨的對手再也不僅僅是您身邊的同學(xué),今天您在班上的成績的確是前幾名,但一走到社會上去才感到是多么地脆弱而又多么地不堪一擊。 面試本科生   在面試大多數(shù)本科生時,我僅僅是詢問了一些有關(guān)MCS-51 系列單片機(jī)的基本原理,但卻幾乎很少有人能夠完全答對,簡直是五花八門。很多作為一個即將畢業(yè)的自動化專業(yè)本科生,至今還不知道單片機(jī)是這個專業(yè)的核心基礎(chǔ),難道不可悲嗎?您的水平不高我完全心中有底,其實(shí)我只要求這些學(xué)生能夠掌握單片機(jī)應(yīng)用開發(fā)的基本技能,用匯編和C51 寫過一些基本的程序,真正動手做過一些簡單的項(xiàng)目,然后將自己做過的項(xiàng)目寫成比較規(guī)范的文檔。我想,這種形式的“自我介紹”肯定要比讓別人看您那寫的千遍一律的“八股文”簡歷不知要強(qiáng)多少倍,古人言:“一葉知秋”其實(shí)講的就是這個道理。平心而論只有具備這樣基礎(chǔ)的學(xué)生才配得上企業(yè)花錢對您進(jìn)行二次“開發(fā)” 事實(shí)上,很多學(xué)生根本就不管老師平時是多么地勸導(dǎo)都聽不進(jìn)去,我認(rèn)為您只要平時善于做一個有心人,主動一些多找老師請教,然后從大三開始幫老師打打下手干一些活。還有一個途徑就是自己花錢購買一些學(xué)習(xí)開發(fā)實(shí)驗(yàn)板,加強(qiáng)動手能力的訓(xùn)練。但也有很多學(xué)生說沒有錢,可事實(shí)上并非如此,現(xiàn)在的學(xué)生購買手機(jī)成風(fēng),我不知道手機(jī)對您們現(xiàn)在來說到底有多大的用途?事實(shí)上,現(xiàn)在的學(xué)生家庭條件普遍都不太好,可這些孩子們的攀比心里卻十分地嚴(yán)重和可怕。到今天即將畢業(yè)之際才感到找工作太難。父母一個子兒地?cái)€下一些辛苦錢給您購買電腦容易嗎?“望子成龍――可憐天下父母心”!他們是希望您能夠?qū)W到一些真本事,而您可能很多時間都在玩游戲,上網(wǎng)聊天,實(shí)際上對于您來說僅僅是舉手之勞,只要花幾百元買一塊實(shí)驗(yàn)板,辛苦一個暑假的時間強(qiáng)化實(shí)踐,可能您就會與眾不同。與此同時,可能您的信心大增,前途一片光明。俗話說得好:倉庫有糧,心中不慌!如果您平時沒有準(zhǔn)備,那么臨時匆匆忙忙地上陣面試肯定是要敗下來的。從2003 年開始是全國第一次擴(kuò)招之后畢業(yè)人數(shù)最多的第一年,以后的畢業(yè)生還會更多,同時還有更多的研究生與本科生搶飯碗,面對就業(yè)的困境壓力不能說不大,痛苦在其中。還有就是我每天都要面臨那些看不完的自我介紹簡歷,很可惜幾乎都是清一色的“八股文”令人討厭。其實(shí)只要您的成績不是太差,分?jǐn)?shù)不是應(yīng)聘成功的關(guān)鍵,重要的是做人要踏實(shí),不要有水分,實(shí)際上,只要將您平時做過的小制作寫成一篇心得,再帶上您的作品,“事實(shí)勝于雄辯”這樣更能打動人。還有很多經(jīng)歷了四年本科又三年研究生階段學(xué)習(xí)行將畢業(yè)的碩士生,不僅不知道嵌入式操作系統(tǒng)是什么東西,而且連C++都不能熟練掌握,驅(qū)動程序開發(fā)的能力就更不容提了,僅僅做了一個單片機(jī)的應(yīng)用設(shè)計(jì)就拿到碩士文憑了,術(shù)業(yè)缺乏專攻泛泛而談,說句實(shí)在話,怎么樣也教人無法接受??!對于我來說,如果您沒有特別的才能,我寧愿用三年時間培養(yǎng)一個好的本科生給更高的待遇,他肯定不比一般的碩士生差。所以,考上了研究生之后,您要時刻明白加強(qiáng)動手能力的培養(yǎng)和前沿科學(xué)技術(shù)的學(xué)習(xí)至關(guān)重要的,這是您將來面試的“殺手澗”,因?yàn)槟厴I(yè)之后要求的工資待遇起碼是一般本科生的兩倍,但是這個錢不是那么好拿的。頂多3-5 年的時間,大家肯定能夠看到一個現(xiàn)實(shí),那就是如果您還不能熟練地掌握嵌入式操作系應(yīng)用開發(fā)技術(shù)的話,您只能拿2000 元的月薪。即便您是研究生或是博士,那又有什么稀奇的呢?鄧伯伯有句名言,不管白貓還是黑貓,抓住老鼠就是好貓!我們知道企業(yè)家是要賺錢的,否則這個企業(yè)就留不住人才,無情的市場競爭機(jī)制將會毫不猶豫地將這個老板淘汰出局。一個可持續(xù)發(fā)展的企業(yè),如果離開了富有聰明才智的優(yōu)秀人才,那是不可想象的。光有幾個還不行,而是要有一個卓越的軍團(tuán)。 就業(yè)問題   其實(shí)就業(yè)的問題,對于一個努力的人來說是何等地簡單,我面試了300 多本科生,我只對其中幾個成績中等的本科生感興趣,他們主要是參加過2001 年全國電子大賽,有的是平時業(yè)余時間,暑假及其寒假都在跟老師干活的學(xué)生,與他們聊天真是一種莫大的享受和欣慰,對于我來說真的是如獲至寶。于是,我就立即勸他們,您的成績中等確實(shí)難以考上好的學(xué)校和導(dǎo)師還不如不考研究生以免浪費(fèi)時間,同時也充滿自信告訴他們,“我就是伯樂!我愿意給您機(jī)會和花錢培養(yǎng)您”。事實(shí)上,即便您考上研究生,如果沒有遇上具有超前眼光和經(jīng)費(fèi)充足的導(dǎo)師,您讀了也白讀,更何況現(xiàn)在的研究生擴(kuò)招的這么多?一個導(dǎo)師帶那么多研究生,有那么多課題嗎?即便有的話,他應(yīng)付得過來嗎?可能殘酷的現(xiàn)實(shí)將會讓您看到,畢業(yè)之后回頭一看還遠(yuǎn)遠(yuǎn)不如當(dāng)年同您一道畢業(yè)的同班同學(xué)。確實(shí)也是,人家的機(jī)會比您好得多,關(guān)鍵是人家對待機(jī)會比您把握得好,可以說:恰到火候。難道非要讀研究生理論水平才高嗎?這是何等地荒謬?。∥覀冎离娮优c計(jì)算機(jī)技術(shù)的發(fā)展日新月異。大學(xué)的更新速度一定就要快嗎?回答是否定的,比如說推廣PHILIPS 的最新單片機(jī)和USB 技術(shù)吧!他們的更新速度肯定比一個可持續(xù)發(fā)展的企業(yè)要慢得多,難道說我們的人才水平不夠高嗎?我們公司就有一批這樣在各個領(lǐng)域里出類拔萃的“年輕專家”從 2003 年開始,我們將會有一系列的專著在北京航空航天大學(xué)出版社出版,大多數(shù)的著作都來自于我們長期的基礎(chǔ)研究和應(yīng)用開發(fā),可以毫不夸張地說這些都是我們這個年輕團(tuán)隊(duì)合作的結(jié)晶。他們是優(yōu)秀和卓越的人才,他們沒有就業(yè)的壓力,他們不怕炒魷魚,相反我倒時刻要想盡辦法加強(qiáng)公司的管理,從工資,獎金,福利,生活和事業(yè)成就感等各個方面絞盡腦汁善待人才和留住人才,這么努力的人才根本就不需要過多地為工作和生活發(fā)愁,對于這個問題當(dāng)然是仁者見仁智者見智,也就是下面我要講到的問題,一個人如何根據(jù)自己的特點(diǎn)、條件和機(jī)遇對自己如何定位的問題,也是至關(guān)重要的。 定位問題   比如說,如果您對單片機(jī)的理解僅僅是入門水平的話,那么您首先就應(yīng)該低調(diào)一些,因?yàn)槟饕娜蝿?wù)是為了尋找一個可以學(xué)習(xí)的機(jī)會,說句實(shí)在話,此刻此刻您一定要清醒地意識到:尋找伯樂比眼前的利益更加重要!因?yàn)槟F(xiàn)在確實(shí)還沒有可以驕傲的資本,您一定要想盡辦法取得第一次正式踏入社會的入場卷,這對您來說是何等地重要??!俗話說得好,“萬丈高樓從地起”您一定要尋找機(jī)會通過業(yè)績表現(xiàn)出您的能力,您確實(shí)與眾不同之處。這樣您就可能在一個公司里樹立您的“信用”,有了信用之后隨之而來的機(jī)會將會越來越多,到那時您根本就不用不愁自己的待遇和地位問題了。所以對于一個剛剛步入社會的年輕人來說,您能夠做到以“誠信” 打天下,您將來的前途肯定是無限光明。千萬不要感到自己在班上的成績是前幾名或者相對來說自己的動手能力相比之下比同學(xué)強(qiáng)多少、多少,或者自己在讀書期間貸了多少款,或者家里是多么地缺錢,因?yàn)楫?dāng)您加入整個社會的競爭之后,這些都不是您要求高薪的理由,這個時候您的心態(tài)將可能會決定您的命運(yùn),因此對自己要有充分的認(rèn)識和正確的估價,經(jīng)常是很多學(xué)生用這些理由向我開出高價,我無話可說只好“搖頭和嘆息”。   如果您的水平還不夠,我認(rèn)為也不要自卑,要知道機(jī)會是時刻屬于有準(zhǔn)備的年輕人,但也不可掉以輕心,此時此刻,您應(yīng)該振作起來,立即拿起書本努力學(xué)習(xí)和加強(qiáng)實(shí)戰(zhàn)的訓(xùn)練,待到羽翼豐滿之時大膽地走出去闖蕩,讓社會來對您做一個恰當(dāng)?shù)脑u價,然后再根據(jù)現(xiàn)實(shí)的情況不斷地調(diào)整自己,繼續(xù)學(xué)習(xí)和實(shí)踐,由于電子和計(jì)算機(jī)科學(xué)的高速發(fā)展呈現(xiàn)日新月異的變化局勢,您一定要明白:您距離失敗永遠(yuǎn)只有6 個月!

    標(biāo)簽: 單片機(jī)

    上傳時間: 2013-11-02

    上傳用戶:vodssv

  • 基于OMAP1510的mp3播放器設(shè)計(jì)

      第一章 序論……………………………………………………………6   1- 1 研究動機(jī)…………………………………………………………..7   1- 2 專題目標(biāo)…………………………………………………………..8   1- 3 工作流程…………………………………………………………..9   1- 4 開發(fā)環(huán)境與設(shè)備…………………………………………………10   第二章 德州儀器OMAP 開發(fā)套件…………………………………10   2- 1 OMAP介紹………………………………………………………10   2-1.1 OMAP是什麼?…….………………………………….…10   2-1.2 DSP的優(yōu)點(diǎn)……………………………………………....11   2- 2 OMAP Architecture介紹………………………………………...12   2-2-1 OMAP1510 硬體架構(gòu)………………………………….…12   2-2.2 OMAP1510軟體架構(gòu)……………………………………...12   2-2.3 DSP / BIOS Bridge簡述…………………………………...13   2- 3 TI Innovator套件 -- OMAP1510 ……………………………..14   2-2.1 General Purpose processor -- ARM925T………………...14   2-2.2 DSP processor -- TMS320C55x …………………………15   2-2.3 IDE Tool – CCS …………………………………………15   2-2.4 Peripheral ………………………………………………..16   第三章 在OMAP1510上建構(gòu)Embedded Linux System…………….17   3- 1 嵌入式工具………………………………………………………17   3-1.1 嵌入式程式開發(fā)與一般程式開發(fā)之不同………….….17   3-1.2 Cross Compiling的GNU工具程式……………………18   3-1.3 建立ARM-Linux Cross-Compiling 工具程式………...19   3-1.4 Serial Communication Program………………………...20   3- 2 Porting kernel………………………………………………….…21   3-2.1 Setup CCS ………………………………………….…..21   3-2.2 編譯及上傳Loader…………………………………..…23   3-2.3 編譯及上傳Kernel…………………………………..…24   3- 3 建構(gòu)Root File System………………………………………..…..26   3-3.1 Flash ROM……………………………………………...26   3-3.2 NFS mounting…………………………………………..27   3-3.3 支援NFS Mounting 的kernel…………………………..27   3-3.4 提供NFS Mounting Service……………………………29   3-3.5 DHCP Server……………………………………………31   3-3.6 Linux root 檔案系統(tǒng)……………………………….…..32   3- 4 啟動及測試Innovator音效裝置…………………………..…….33   3- 5 建構(gòu)支援DSP processor的環(huán)境…………………………...……34   3-5.1 Solution -- DSP Gateway簡介……………………..…34   3-5.2 DSP Gateway運(yùn)作架構(gòu)…………………………..…..35   3- 6 架設(shè)DSP Gateway………………………………………….…36   3-6.1 重編kernel……………………………………………...36   3-6.2 DEVFS driver…………………………………….……..36   3-6.3 編譯DSP tool和API……………………………..…….37   3-6.4 測試……………………………………………….…….37   第四章 MP3 Player……………………………………………….…..38   4- 1 MP3 介紹………………………………………………….…….38   4- 2 MP3 壓縮原理……………………………………………….….39   4- 3 Linux MP3 player – splay………………………………….…….41   4.3-1 splay介紹…………………………………………….…..41   4.3-2 splay 編譯………………………………………….…….41   4.3-3 splay 的使用說明………………………………….……41   第五章 程式改寫………………………………………………...…...42   5-1 程式評估與改寫………………………………………………...…42   5-1.1 Inter-Processor Communication Scheme…………….....42   5-1.2 ARM part programming……………………………..…42   5-1.3 DSP part programming………………………………....42   5-2 程式碼………………………………………………………..……43   5-3 雙處理器程式開發(fā)注意事項(xiàng)…………………………………...…47   第六章 效能評估與討論……………………………………………48   6-1 速度……………………………………………………………...48   6-2 CPU負(fù)載………………………………………………………..49   6-3 討論……………………………………………………………...49   6-3.1分工處理的經(jīng)濟(jì)效益………………………………...49   6-3.2音質(zhì)v.s 浮點(diǎn)與定點(diǎn)運(yùn)算………………………..…..49   6-3.3 DSP Gateway架構(gòu)的限制………………………….…50   6-3.4減少IO溝通……………….………………………….50   6-3.5網(wǎng)路掛載File System的Delay…………………..……51   第七章 結(jié)論心得…

    標(biāo)簽: OMAP 1510 mp3 播放器

    上傳時間: 2013-10-14

    上傳用戶:a471778

  • 單片機(jī)初學(xué)者教程

    拿到這本教程您首先就會想,什么是IAP教學(xué)法?是不是一種什么全新的教學(xué)方法?當(dāng)然不是,我可沒有那么大的本事,其實(shí)這只是我杜撰的一個新名詞,意思就是InApplicationsProgram(在應(yīng)用中編程),當(dāng)然這只是針對單片機(jī)教學(xué),說法是否正確,還得您說了算。 至于為什么要提這種說法,那我倒想說幾句。大家都知道,學(xué)習(xí)電子技術(shù)是一件非常無聊和枯燥的事情,為什么會有這種想法,就是因?yàn)槲覀儌鹘y(tǒng)的教學(xué)方法只重理論而忽略了實(shí)踐,要一個人記住那些空洞而有無聊的理論知識實(shí)在不是一件容易的事,好在我們總算熬過來了,不管如何,也多多少少的學(xué)習(xí)了一些電子基礎(chǔ)知識。 接下來我們應(yīng)該進(jìn)一步掌握些什么知識呢,凡涉足此行的朋友都知道,那就是單片機(jī)。不過這可不是一件容易的事,倒不是因?yàn)閱纹瑱C(jī)很難學(xué),而實(shí)在是我們身邊很難找到一本專為單片機(jī)入門者而編寫的教材。翻一下傳統(tǒng)的單片機(jī)教材,都好象是為已經(jīng)懂單片機(jī)的人而寫的,一般總是以單片機(jī)的結(jié)構(gòu)為主線,先講硬件原理,然后是指令,接著講軟件編程,再是系統(tǒng)擴(kuò)展和外圍器件,最后舉一些實(shí)例(隨便說一點(diǎn):很多書中的實(shí)例都是有錯誤的),很少涉及單片機(jī)的基礎(chǔ)知識,如果按照此種學(xué)習(xí)方法,想進(jìn)行產(chǎn)品開發(fā),就必須先把所有的知識全部掌握了才可以進(jìn)行實(shí)際應(yīng)用。孰不知,單片機(jī)不象模擬電路和數(shù)字電路那樣,只要搞懂了電路原理,再按照產(chǎn)品要求設(shè)計(jì)好相應(yīng)的電路就可以了。它是一種以簡單的硬件結(jié)構(gòu),復(fù)雜而有靈活的軟件系統(tǒng)來完成設(shè)計(jì)的通用性產(chǎn)品,不同的設(shè)計(jì)者只會使用其不同的功能,幾乎沒有人會把它的全部指令都使用起來,所以學(xué)習(xí)使用單片機(jī)只能靠循序漸進(jìn)的積累,而不可能先把它全部掌握了再去做產(chǎn)品開發(fā)(當(dāng)然天才就例外了*_*)。 基于以上原因,本人想嘗試一種全新的單片機(jī)教學(xué)方法,打破傳統(tǒng)的循序漸進(jìn)式的教學(xué)方法,以單片機(jī)的應(yīng)用為藍(lán)本,結(jié)合基本的工業(yè)控制系統(tǒng)和實(shí)踐工作中的具體應(yīng)用,不分先后順序,將各條指令貫串于一個又一個的實(shí)驗(yàn)中,通過所見即所得的實(shí)驗(yàn)來講解各種指令的編程方法,順便講解相關(guān)的基本概念,使您盡快地熟悉單片機(jī)應(yīng)用的基本步驟,掌握軟件編程的基本方法。

    標(biāo)簽: 單片機(jī) 初學(xué)者 教程

    上傳時間: 2014-02-27

    上傳用戶:shen_dafa

  • 學(xué)習(xí)單片機(jī)總結(jié)寶典

    學(xué)習(xí)單片機(jī)總結(jié)寶典 基于本人學(xué)習(xí)單片機(jī)的痛苦經(jīng)歷,特編寫本教程,以此獻(xiàn)給廣大 的單片機(jī)初學(xué)者,希望您能從中受益。 作者提示:本教程乃最通俗易懂之單片機(jī)教材也,如果您還是看 不懂,請千萬不要涉足此行,以免誤入歧途,耽誤您的前程*_* 拿到這本教程您首先就會想,什么是 IAP 教學(xué)法?是不是一種什么全新的教學(xué)方法?當(dāng)然不是, 我可沒有那么大的本事,其實(shí)這只是我杜撰的一個新名詞,意思就是In Applications Program(在應(yīng) 用中編程),當(dāng)然這只是針對單片機(jī)教學(xué),說法是否正確,還得您說了算。 至于為什么要提這種說法,那我倒想說幾句。大家都知道,學(xué)習(xí)電子技術(shù)是一件非常無聊和枯燥 的事情,為什么會有這種想法,就是因?yàn)槲覀儌鹘y(tǒng)的教學(xué)方法只重理論而忽略了實(shí)踐,要一個人記住那 些空洞而有無聊的理論知識實(shí)在不是一件容易的事,好在我們總算熬過來了,不管如何,也多多少少的 學(xué)習(xí)了一些電子基礎(chǔ)知識。 接下來我們應(yīng)該進(jìn)一步掌握些什么知識呢,凡涉足此行的朋友都知道,那就是單片機(jī)。不過這可 不是一件容易的事,倒不是因?yàn)閱纹瑱C(jī)很難學(xué),而實(shí)在是我們身邊很難找到一本專為單片機(jī)入門者而編 寫的教材。翻一下傳統(tǒng)的單片機(jī)教材,都好象是為已經(jīng)懂單片機(jī)的人而寫的,一般總是以單片機(jī)的結(jié)構(gòu) 為主線,先講硬件原理,然后是指令,接著講軟件編程,再是系統(tǒng)擴(kuò)展和外圍器件,最后舉一些實(shí)例(隨 便說一點(diǎn):很多書中的實(shí)例都是有錯誤的),很少涉及單片機(jī)的基礎(chǔ)知識,如果按照此種學(xué)習(xí)方法,想 進(jìn)行產(chǎn)品開發(fā),就必須先把所有的知識全部掌握了才可以進(jìn)行實(shí)際應(yīng)用。孰不知,單片機(jī)不象模擬電路 和數(shù)字電路那樣,只要搞懂了電路原理,再按照產(chǎn)品要求設(shè)計(jì)好相應(yīng)的電路就可以了。它是一種以簡單 的硬件結(jié)構(gòu),復(fù)雜而有靈活的軟件系統(tǒng)來完成設(shè)計(jì)的通用性產(chǎn)品,不同的設(shè)計(jì)者只會使用其不同的功能, 幾乎沒有人會把它的全部指令都使用起來,所以學(xué)習(xí)使用單片機(jī)只能靠循序漸進(jìn)的積累,而不可能先把 它全部掌握了再去做產(chǎn)品開發(fā)(當(dāng)然天才就例外了*_*)。

    標(biāo)簽: 單片機(jī) 寶典

    上傳時間: 2013-10-15

    上傳用戶:小碼農(nóng)lz

  • 單片機(jī)指令系統(tǒng)原理

    單片機(jī)指令系統(tǒng)原理 51單片機(jī)的尋址方式 學(xué)習(xí)匯編程序設(shè)計(jì),要先了解CPU的各種尋址法,才能有效的掌握各個命令的用途,尋址法是命令運(yùn)算碼找操作數(shù)的方法。在我們學(xué)習(xí)的8051單片機(jī)中,有6種尋址方法,下面我們將逐一進(jìn)行分析。 立即尋址 在這種尋址方式中,指令多是雙字節(jié)的,一般第一個字節(jié)是操作碼,第二個字節(jié)是操作數(shù)。該操作數(shù)直接參與操作,所以又稱立即數(shù),有“#”號表示。立即數(shù)就是存放在程序存儲器中的常數(shù),換句話說就是操作數(shù)(立即數(shù))是包含在指令字節(jié)中的。 例如:MOV  A,#3AH這條指令的指令代碼為74H、3AH,是雙字節(jié)指令,這條指令的功能是把立即數(shù)3AH送入累加器A中。MOV  DPTR,#8200H在前面學(xué)單片機(jī)的專用寄存器時,我們已學(xué)過,DPTR是一個16位的寄存器,它由DPH及DPL兩個8位的寄存器組成。這條指令的意思就是把立即數(shù)的高8位(即82H)送入DPH寄存器,把立即數(shù)的低8位(即00H)送入DPL寄存器。這里也特別說明一下:在80C51單片機(jī)的指令系統(tǒng)中,僅有一條指令的操作數(shù)是16位的立即數(shù),其功能是向地址指針DPTR傳送16位的地址,即把立即數(shù)的高8位送入DPH,低8位送入DPL。 直接尋址 直接尋址方式是指在指令中操作數(shù)直接以單元地址的形式給出,也就是在這種尋址方式中,操作數(shù)項(xiàng)給出的是參加運(yùn)算的操作數(shù)的地址,而不是操作數(shù)。例如:MOV  A,30H  這條指令中操作數(shù)就在30H單元中,也就是30H是操作數(shù)的地址,并非操作數(shù)。 在80C51單片機(jī)中,直接地址只能用來表示特殊功能寄存器、內(nèi)部數(shù)據(jù)存儲器以及位地址空間,具體的說就是:1、內(nèi)部數(shù)據(jù)存儲器RAM低128單元。在指令中是以直接單元地址形式給出。我們知道低128單元的地址是00H-7FH。在指令中直接以單元地址形式給出這句話的意思就是這0-127共128位的任何一位,例如0位是以00H這個單元地址形式給出、1位就是以01H單元地址給出、127位就是以7FH形式給出。2、位尋址區(qū)。20H-2FH地址單元。3、特殊功能寄存器。專用寄存器除以單元地址形式給出外,還可以以寄存器符號形式給出。例如下面我們分析的一條指令 MOV  IE,#85H 前面的學(xué)習(xí)我們已知道,中斷允許寄存器IE的地址是80H,那么也就是這條指令可以以MOV  IE,#85H 的形式表述,也可以MOV  80H,#85H的形式表述。 關(guān)于數(shù)據(jù)存儲器RAM的內(nèi)部情況,請查看我們課程的第十二課。 直接尋址是唯一能訪問特殊功能寄存器的尋址方式! 大家來分析下面幾條指令:MOV  65H,A       ;將A的內(nèi)容送入內(nèi)部RAM的65H單元地址中MOV  A,direct    ;將直接地址單元的內(nèi)容送入A中MOV  direct,direct;將直接地址單元的內(nèi)容送直接地址單元MOV  IE,#85H      ;將立即數(shù)85H送入中斷允許寄存器IE 前面我們已學(xué)過,數(shù)據(jù)前面加了“#”的,表示后面的數(shù)是立即數(shù)(如#85H,就表示85H就是一個立即數(shù)),數(shù)據(jù)前面沒有加“#”號的,就表示后面的是一個地址地址(如,MOV 65H,A這條指令的65H就是一個單元地址)。 寄存器尋址 寄存器尋址的尋址范圍是:1、4個工作寄存器組共有32個通用寄存器,但在指令中只能使用當(dāng)前寄存器組(工作寄存器組的選擇在前面專用寄存器的學(xué)習(xí)中,我們已知道,是由程序狀態(tài)字PSW中的RS1和RS0來確定的),因此在使用前常需要通過對PSW中的RS1、RS0位的狀態(tài)設(shè)置,來進(jìn)行對當(dāng)前工作寄存器組的選擇。2、部份專用寄存器。例如,累加器A、通用寄存器B、地址寄存器DPTR和進(jìn)位位CY。 寄存器尋址方式是指操作數(shù)在寄存器中,因此指定了寄存器名稱就能得到操作數(shù)。例如:MOV A,R0這條指令的意思是把寄存器R0的內(nèi)容傳送到累加器A中,操作數(shù)就在R0中。INC R3這條指令的意思是把寄存器R3中的內(nèi)容加1 從前面的學(xué)習(xí)中我產(chǎn)應(yīng)可以理解到,其實(shí)寄存器尋址方式就是對由PSW程序狀態(tài)字確定的工作寄存器組的R0-R7進(jìn)行讀/寫操作。 寄存器間接尋址 寄存間接尋址方式是指寄存器中存放的是操作數(shù)的地址,即操作數(shù)是通過寄存器間接得到的,因此稱為寄存器間接尋址。 MCS-51單片機(jī)規(guī)定工作寄存器的R0、R1做為間接尋址寄存器。用于尋址內(nèi)部或外部數(shù)據(jù)存儲器的256個單元。為什么會是256個單元呢?我們知道,R0或者R1都是一個8位的寄存器,所以它的尋址空間就是2的八次方=256。例:MOV  R0,#30H  ;將值30H加載到R0中    MOV  A,@R0    ;把內(nèi)部RAM地址30H內(nèi)的值放到累加器A中    MOVX A,@R0    ;把外部RAM地址30H內(nèi)的值放到累加器A中 大家想想,如果用DPTR做為間址寄存器,那么它的尋址范圍是多少呢?DPTR是一個16位的寄存器,所以它的尋址范圍就是2的十六次方=65536=64K。因用DPTR做為間址寄存器的尋址空間是64K,所以訪問片外數(shù)據(jù)存儲器時,我們通常就用DPTR做為間址寄存器。例:MOV   DPTR,#1234H  ;將DPTR值設(shè)為1234H(16位)    MOVX  A,@DPTR      ;將外部RAM或I/O地址1234H內(nèi)的值放到累加器A中 在執(zhí)行PUSH(壓棧)和POP(出棧)指令時,采用堆棧指針SP作寄存器間接尋址。例:PUSH  30H    ;把內(nèi)部RAM地址30H內(nèi)的值放到堆棧區(qū)中堆棧區(qū)是由SP寄存器指定的,如果執(zhí)行上面這條命令前,SP為60H,命令執(zhí)行后會把內(nèi)部RAM地址30H內(nèi)的值放到RAM的61H內(nèi)。 那么做為寄存器間接尋址用的寄存器主要有哪些呢?我們前面提到的有四個,R0、R1、DPTR、SP 寄存器間接尋址范圍總結(jié):1、內(nèi)部RAM低128單元。對內(nèi)部RAM低128單元的間接尋址,應(yīng)使用R0或R1作間址寄存器,其通用形式為@Ri(i=0或1)。 2、外部RAM 64KB。對外部RAM64KB的間接尋址,應(yīng)使用@DPTR作間址尋址寄存器,其形式為:@DPTR。例如MOVX A,@DPTR;其功能是把DPTR指定的外部RAM的單元的內(nèi)容送入累加器A中。外部RAM的低256單元是一個特殊的尋址區(qū),除可以用DPTR作間址寄存器尋址外,還可以用R0或R1作間址寄存器尋址。例如MOVX  A,@R0;這條指令的意思是,把R0指定的外部RAM單元的內(nèi)容送入累加器A。 堆棧操作指令(PUSH和POP)也應(yīng)算作是寄存器間接尋址,即以堆棧指針SP作間址寄存器的間接尋址方式。 寄存器間接尋址方式不可以訪問特殊功能寄存器!! 寄存器間接尋址也須以寄存器符號的形式表示,為了區(qū)別寄存器尋址我寄存器間接尋址的區(qū)別,在寄存器間接尋址方式式中,寄存器的名稱前面加前綴標(biāo)志“@”。 基址寄存器加變址寄存器的變址尋址 這種尋址方式以程序計(jì)數(shù)器PC或DPTR為基址寄存器,累加器A為變址寄存器,變址尋址時,把兩者的內(nèi)容相加,所得到的結(jié)果作為操作數(shù)的地址。這種方式常用于訪問程序存儲器ROM中的數(shù)據(jù)表格,即查表操作。變址尋址只能讀出程序內(nèi)存入的值,而不能寫入,也就是說變址尋址這種方式只能對程序存儲器進(jìn)行尋址,或者說它是專門針對程序存儲器的尋址方式。例:MOVC  A,@A+DPTR這條指令的功能是把DPTR和A的內(nèi)容相加,再把所得到的程序存儲器地址單元的內(nèi)容送A假若指令執(zhí)行前A=54H,DPTR=3F21H,則這條指令變址尋址形成的操作數(shù)地址就是54H+3F21H=3F75H。如果3F75H單元中的內(nèi)容是7FH,則執(zhí)行這條指令后,累加器A中的內(nèi)容就是7FH。 變址尋址的指令只有三條,分別如下:JMP    @A+DPTRMOVC   A,@A+DPTRMOVC   A,@A+PC 第一條指令JMP @A+DPTR這是一條無條件轉(zhuǎn)移指令,這條指令的意思就是DPTR加上累加器A的內(nèi)容做為一個16位的地址,執(zhí)行JMP這條指令是,程序就轉(zhuǎn)移到A+DPTR指定的地址去執(zhí)行。 第二、三條指令MOVC   A,@A+DPTR和MOVC   A,@A+PC指令這兩條指令的通常用于查表操作,功能完全一樣,但使用起來卻有一定的差別,現(xiàn)詳細(xì)說明如下。我們知道,PC是程序指針,是十六位的。DPTR是一個16位的數(shù)據(jù)指針寄存器,按理,它們的尋址范圍都應(yīng)是64K。我們在學(xué)習(xí)特殊功能寄存器時已知道,程序計(jì)數(shù)器PC是始終跟蹤著程序的執(zhí)行的。也就是說,PC的值是隨程序的執(zhí)行情況自動改變的,我們不可以隨便的給PC賦值。而DPTR是一個數(shù)據(jù)指針,我們就可以給空上數(shù)據(jù)指針DPTR進(jìn)行賦值。我們再看指令MOVC   A,@A+PC這條指令的意思是將PC的值與累加器A的值相加作為一個地址,而PC是固定的,累加器A是一個8位的寄存器,它的尋址范圍是256個地址單元。講到這里,大家應(yīng)可明白,MOVC   A,@A+PC這條指令的尋址范圍其實(shí)就是只能在當(dāng)前指令下256個地址單元。所在,這在我們實(shí)際應(yīng)用中,可能就會有一個問題,如果我們需要查詢的數(shù)據(jù)表在256個地址單元之內(nèi),則可以用MOVC   A,@A+PC這條指令進(jìn)行查表操作,如果超過了256個單元,則不能用這條指令進(jìn)行查表操作。剛才我們已說到,DPTR是一個數(shù)據(jù)指針,這個數(shù)據(jù)指針我們可以給它賦值操作的。通過賦值操作。我們可以使MOVC   A,@A+DPTR這條指令的尋址范圍達(dá)到64K。這就是這兩條指令在實(shí)際應(yīng)用當(dāng)中要注意的問題。 變址尋址方式是MCS-51單片機(jī)所獨(dú)有的一種尋址方式。 位尋址 80C51單片機(jī)有位處理功能,可以對數(shù)據(jù)位進(jìn)行操作,因此就有相應(yīng)的位尋址方式。所謂位尋址,就是對內(nèi)部RAM或可位尋址的特殊功能寄存器SFR內(nèi)的某個位,直接加以置位為1或復(fù)位為0。 位尋址的范圍,也就是哪些部份可以進(jìn)行位尋址: 1、我們在第十二課學(xué)習(xí)51單片機(jī)的存儲器結(jié)構(gòu)時,我們已知道在單片機(jī)的內(nèi)部數(shù)據(jù)存儲器RAM的低128單元中有一個區(qū)域叫位尋址區(qū)。它的單元地址是20H-2FH。共有16個單元,一個單元是8位,所以位尋址區(qū)共有128位。這128位都單獨(dú)有一個位地址,其位地址的名字就是00H-7FH。這里就有一個比較麻煩的問題需要大家理解清楚了。我們在前面的學(xué)習(xí)中00H、01H。。。。7FH等等,所表示的都是一個字節(jié)(或者叫單元地址),而在這里,這些數(shù)據(jù)都變成了位地址。我們在指令中,或者在程序中如何來區(qū)分它是一個單元地址還是一個位地址呢?這個問題,也就是我們現(xiàn)在正在研究的位尋址的一個重要問題。其實(shí),區(qū)分這些數(shù)據(jù)是位地址還是單元地址,我們都有相應(yīng)的指令形式的。這個問題我們在后面的指令系統(tǒng)學(xué)習(xí)中再加以論述。 2、對專用寄存器位尋址。這里要說明一下,不是所有的專用寄存器都可以位尋址的。具體哪些專用寄存器可以哪些專用寄存器不可以,請大家回頭去看看我們前面關(guān)于專用寄存器的相關(guān)文章。一般來說,地址單元可以被8整除的專用寄存器,通常都可以進(jìn)行位尋址,當(dāng)然并不是全部,大家在應(yīng)用當(dāng)中應(yīng)引起注意。 專用寄存器的位尋址表示方法: 下面我們以程序狀態(tài)字PSW來進(jìn)行說明 D7 D6 D5 D4 D3 D2 D1 D0 CY   AC  F0  RS1  RS0  OV    P  1、直接使用位地址表示:看上表,PSW的第五位地址是D5,所以可以表示為D5H   MOV  C,D5H 2、位名稱表示:表示該位的名稱,例如PSW的位5是F0,所以可以用F0表示   MOV  C,F(xiàn)0 3、單元(字節(jié))地址加位表示:D0H單元位5,表示為DOH.5    MOV  C,D0H.5 4、專用寄存器符號加位表示:例如PSW.5    MOV C,PSW.5 這四種方法實(shí)現(xiàn)的功能都是相同的,只是表述的方式不同而已。 例題:   1. 說明下列指令中源操作數(shù)采用的尋址方式。   MOV R5,R7 答案:寄存器尋址方式   MOV A,55H 直接尋址方式   MOV A,#55H 立即尋址方式   JMP @A+DPTR 變址尋址方式   MOV 30H,C 位尋址方式   MOV A,@R0 間接尋址方式   MOVX A,@R0 間接尋址方式 改錯題   請判斷下列的MCS-51單片機(jī)指令的書寫格式是否有錯,若有,請說明錯誤原因。   MOV R0,@R3 答案:間址寄存器不能使用R2~R7。   MOVC A,@R0+DPTR 變址尋址方式中的間址寄存器不可使用R0,只可使用A。   ADD R0,R1 運(yùn)算指令中目的操作數(shù)必須為累加器A,不可為R0。   MUL AR0 乘法指令中的乘數(shù)應(yīng)在B寄存器中,即乘法指令只可使用AB寄存器組合。

    標(biāo)簽: 單片機(jī)指令 系統(tǒng)原理

    上傳時間: 2013-11-11

    上傳用戶:caozhizhi

  • 單芯片手機(jī)的優(yōu)點(diǎn)與挑戰(zhàn)

    單芯片手機(jī)的優(yōu)點(diǎn)與挑戰(zhàn) 從電信公司到OEM 和ODM 廠商到芯片組供貨商,手機(jī)價值鏈的所有業(yè)者都在努力提高功能整合度,它是手機(jī)降低成本和節(jié)省電路板面積給其它功能的重要關(guān)鍵。自從20 年前出現(xiàn)以來,手機(jī)就以循序漸近的方式逐步提高功能整合,在此過程中并沒有任何一種技術(shù)能夠?qū)崿F(xiàn)功能整合的大躍進(jìn)。

    標(biāo)簽: 單芯片手機(jī)

    上傳時間: 2014-12-27

    上傳用戶:lifangyuan12

  • 單片機(jī)入門基礎(chǔ)知識大全免費(fèi)下載

    單片機(jī)入門基礎(chǔ)知識大全免費(fèi)下載 單片機(jī)第八課(尋址方式與指令系統(tǒng)) 通過前面的學(xué)習(xí),我們已經(jīng)了解了單片機(jī)內(nèi)部的結(jié)構(gòu),并且也已經(jīng)知道,要控制單片機(jī),讓它為我們干學(xué),要用指令,我們已學(xué)了幾條指令,但很零散,從現(xiàn)在開始,我們將要系統(tǒng)地學(xué)習(xí)8051的指令部份。 一、概述 1、指令的格式 我們已知,要讓計(jì)算機(jī)做事,就得給計(jì)算機(jī)以指令,并且我們已知,計(jì)算機(jī)很“笨”,只能懂得數(shù)字,如前面我們寫進(jìn)機(jī)器的75H,90H,00H等等,所以指令的第一種格式就是機(jī)器碼格式,也說是數(shù)字的形式。但這種形式實(shí)在是為難我們?nèi)肆耍y記了,于是有另一種格式,助記符格式,如MOV P1,#0FFH,這樣就好記了。 這兩種格式之間的關(guān)系呢,我們不難理解,本質(zhì)上它們完全等價,只是形式不一樣而已。 2、匯編 我們寫指令使用匯編格式,而計(jì)算機(jī)只懂機(jī)器碼格式,所以要將我們寫的匯編格式的指令轉(zhuǎn)換為機(jī)器碼格式,這種轉(zhuǎn)換有兩種方法:手工匯編和機(jī)器匯編。手工匯編實(shí)際上就是查表,因?yàn)檫@兩種格式純粹是格式不同,所以是一一對應(yīng)的,查一張表格就行了。不過手工查表總是嫌麻煩,所以就有了計(jì)算機(jī)軟件,用計(jì)算機(jī)軟件來替代手工查表,這就是機(jī)器匯編。 二、尋址 讓我們先來復(fù)習(xí)一下我們學(xué)過的一些指令:MOV P1,#0FFH,MOV R7,#0FFH這些指令都是將一些數(shù)據(jù)送到相應(yīng)的位置中去,為什么要送數(shù)據(jù)呢?第一個因?yàn)樗腿氲臄?shù)可以讓燈全滅掉,第二個是為了要實(shí)現(xiàn)延時,從這里我們可以看出來,在用單片機(jī)的編程語言編程時,經(jīng)常要用到數(shù)據(jù)的傳遞,事實(shí)上數(shù)據(jù)傳遞是單片機(jī)編程時的一項(xiàng)重要工作,一共有28條指令(單片機(jī)共111條指令)。下面我們就從數(shù)據(jù)傳遞類指令開始吧。 分析一下MOV P1,#0FFH這條指令,我們不難得出結(jié)論,第一個詞MOV是命令動詞,也就是決定做什么事情的,MOV是MOVE少寫了一個E,所以就是“傳遞”,這就是指令,規(guī)定做什么事情,后面還有一些參數(shù),分析一下,數(shù)據(jù)傳遞必須要有一個“源”也就是你要送什么數(shù),必須要有一個“目的”,也就是你這個數(shù)要送到什么地方去,顯然在上面那條指令中,要送的數(shù)(源)就是0FFH,而要送達(dá)的地方(目的地)就是P1這個寄存器。在數(shù)據(jù)傳遞類指令中,均將目的地寫在指令的后面,而將源寫在最后。 這條指令中,送給P1是這個數(shù)本身,換言之,做完這條指令后,我們可以明確地知道,P1中的值是0FFH,但是并不是任何時候都可以直接給出數(shù)本身的。例如,在我們前面給出的延時程序例是這樣寫的: MAIN: SETB P1.0    ??;(1)    LCALL DELAY ;(2)     CLR P1.0      ;(3)    LCALL DELAY  ?。唬ǎ矗?    AJMP MAIN   ??;(5) ;以下子程序 DELAY: MOV R7,#250  ?。唬ǎ叮?D1: MOV R6,#250  ?。唬ǎ罚?D2: DJNZ R6,D2   ?。唬ǎ福?   DJNZ R7,D1  ?。唬ǎ梗?   RET        ;(10)    END       ?。唬ǎ保保?     表1  MAIN: SETB P1.0    ??;(1)    MOV 30H,#255     LCALL DELAY ;     CLR P1.0      ;(3)     MOV 30H,#200     LCALL DELAY  ??;(4)     AJMP MAIN    ;(5) ;以下子程序 DELAY: MOV R7,30H  ??;(6) D1: MOV R6,#250   ;(7) D2: DJNZ R6,D2   ??;(8)    DJNZ R7,D1  ??;(9)    RET       ?。唬ǎ保埃?   END       ??;(11) 表2    這樣一來,我每次調(diào)用延時程序延時的時間都是相同的(大致都是0.13S),如果我提出這樣的要求:燈亮后延時時間為0.13S燈滅,燈滅后延時0.1秒燈亮,如此循環(huán),這樣的程序還能滿足要求嗎?不能,怎么辦?我們可以把延時程序改成這樣(見表2):調(diào)用則見表2中的主程,也就是先把一個數(shù)送入30H,在子程序中R7中的值并不固定,而是根據(jù)30H單元中傳過來的數(shù)確定。這樣就可以滿足要求。 從這里我們可以得出結(jié)論,在數(shù)據(jù)傳遞中要找到被傳遞的數(shù),很多時候,這個數(shù)并不能直接給出,需要變化,這就引出了一個概念:如何尋找操作數(shù),我們把尋找操作數(shù)所在單元的地址稱之為尋址。在這里我們直接使用數(shù)所在單元的地址找到了操作數(shù),所以稱這種方法為直接尋址。除了這種方法之外,還有一種,如果我們把數(shù)放在工作寄存器中,從工作寄存器中尋找數(shù)據(jù),則稱之為寄存器尋址。例:MOV A,R0就是將R0工作寄存器中的數(shù)據(jù)送到累加器A中去。提一個問題:我們知道,工作寄存器就是內(nèi)存單元的一部份,如果我們選擇工作寄存器組0,則R0就是RAM的00H單元,那么這樣一來,MOV A,00H,和MOV A,R0不就沒什么區(qū)別了嗎?為什么要加以區(qū)分呢?的確,這兩條指令執(zhí)行的結(jié)果是完全相同的,都是將00H單元中的內(nèi)容送到A中去,但是執(zhí)行的過程不同,執(zhí)行第一條指令需要2個周期,而第二條則只需要1個周期,第一條指令變成最終的目標(biāo)碼要兩個字節(jié)(E5H 00H),而第二條則只要一個字節(jié)(E8h)就可以了。 這么斤斤計(jì)較!不就差了一個周期嗎,如果是12M的晶振的話,也就1個微秒時間了,一個字節(jié)又能有多少? 不對,如果這條指令只執(zhí)行一次,也許無所謂,但一條指令如果執(zhí)行上1000次,就是1毫秒,如果要執(zhí)行1000000萬次,就是1S的誤差,這就很可觀了,單片機(jī)做的是實(shí)時控制的事,所以必須如此“斤斤計(jì)較”。字節(jié)數(shù)同樣如此。 再來提一個問題,現(xiàn)在我們已知,尋找操作數(shù)可以通過直接給的方式(立即尋址)和直接給出數(shù)所在單元地址的方式(直接尋址),這就夠了嗎? 看這個問題,要求從30H單元開始,取20個數(shù),分別送入A累加器。 就我們目前掌握的辦法而言,要從30H單元取數(shù),就用MOV A,30H,那么下一個數(shù)呢?是31H單元的,怎么取呢?還是只能用MOV A,31H,那么20個數(shù),不是得20條指令才能寫完嗎?這里只有20個數(shù),如果要送200個或2000個數(shù),那豈不要寫上200條或2000條命令?這未免太笨了吧。為什么會出現(xiàn)這樣的狀況?是因?yàn)槲覀冎粫训刂穼懺谥噶钪?,所以就沒辦法了,如果我們不是把地址直接寫在指令中,而是把地址放在另外一個寄存器單元中,根據(jù)這個寄存器單元中的數(shù)值決定該到哪個單元中取數(shù)據(jù),比如,當(dāng)前這個寄存器中的值是30H,那么就到30H單元中去取,如果是31H就到31H單元中去取,就可以解決這個問題了。怎么個解決法呢?既然是看的寄存器中的值,那么我們就可以通過一定的方法讓這里面的值發(fā)生變化,比如取完一個數(shù)后,將這個寄存器單元中的值加1,還是執(zhí)行同一條指令,可是取數(shù)的對象卻不一樣了,不是嗎。通過例子來說明吧。    MOV R7,#20    MOV R0,#30H LOOP:MOV A,@R0    INC R0    DJNZ R7,LOOP 這個例子中大部份指令我們是能看懂的,第一句,是將立即數(shù)20送到R7中,執(zhí)行完后R7中的值應(yīng)當(dāng)是20。第二句是將立即數(shù)30H送入R0工作寄存器中,所以執(zhí)行完后,R0單元中的值是30H,第三句,這是看一下R0單元中是什么值,把這個值作為地址,取這個地址單元的內(nèi)容送入A中,此時,執(zhí)行這條指令的結(jié)果就相當(dāng)于MOV A,30H。第四句,沒學(xué)過,就是把R0中的值加1,因此執(zhí)行完后,R0中的值就是31H,第五句,學(xué)過,將R7中的值減1,看是否等于0,不等于0,則轉(zhuǎn)到標(biāo)號LOOP處繼續(xù)執(zhí)行,因此,執(zhí)行完這句后,將轉(zhuǎn)去執(zhí)行MOV A,@R0這句話,此時相當(dāng)于執(zhí)行了MOV A,31H(因?yàn)榇藭r的R0中的值已是31H了),如此,直到R7中的值逐次相減等于0,也就是循環(huán)20次為止,就實(shí)現(xiàn)了我們的要求:從30H單元開始將20個數(shù)據(jù)送入A中。 這也是一種尋找數(shù)據(jù)的方法,由于數(shù)據(jù)是間接地被找到的,所以就稱之為間址尋址。注意,在間址尋址中,只能用R0或R1存放等尋找的數(shù)據(jù)。 二、指令 數(shù)據(jù)傳遞類指令 1) 以累加器為目的操作數(shù)的指令 MOV A,Rn MOV A,direct MOV A,@Ri MOV A,#data 第一條指令中,Rn代表的是R0-R7。第二條指令中,direct就是指的直接地址,而第三條指令中,就是我們剛才講過的。第四條指令是將立即數(shù)data送到A中。 下面我們通過一些例子加以說明: MOV A,R1 ;將工作寄存器R1中的值送入A,R1中的值保持不變。 MOV A,30H ;將內(nèi)存30H單元中的值送入A,30H單元中的值保持不變。 MOV A,@R1 ;先看R1中是什么值,把這個值作為地址,并將這個地址單元中的值送入A中。如執(zhí)行命令前R1中的值為20H,則是將20H單元中的值送入A中。 MOV A,#34H ;將立即數(shù)34H送入A中,執(zhí)行完本條指令后,A中的值是34H。 2)以寄存器Rn為目的操作的指令 MOV Rn,A   MOV Rn,direct   MOV Rn,#data 這組指令功能是把源地址單元中的內(nèi)容送入工作寄存器,源操作數(shù)不變。

    標(biāo)簽: 單片機(jī) 免費(fèi)下載 基礎(chǔ)知識

    上傳時間: 2013-10-13

    上傳用戶:3294322651

主站蜘蛛池模板: 龙陵县| 平山县| 井陉县| 鄂尔多斯市| 凌源市| 龙里县| 厦门市| 封丘县| 九龙坡区| 宁阳县| 连南| 高密市| 三台县| 湟源县| 桐城市| 墨玉县| 德昌县| 和顺县| 怀安县| 铁岭县| 广元市| 镇远县| 临泉县| 佳木斯市| 六安市| 于都县| 湄潭县| 云南省| 南澳县| 英吉沙县| 郸城县| 汪清县| 怀来县| 惠州市| 楚雄市| 梅河口市| 临夏市| 平泉县| 仁布县| 蒲江县| 中超|