久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 15552|回復: 16
打印 上一主題 下一主題
收起左側

27課:關于單片機的一些基本概念

  [復制鏈接]
跳轉到指定樓層
樓主
ID:1 發表于 2013-6-3 23:27 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
   隨著電子技術的迅速發展,計算機已深入地滲透到我們的生活中,許多電子愛好者開始學習單片機知識,但單片機的內容比較抽象,相對電子愛好者已熟悉的模擬電路、數字電路,單片機中有一些新的概念,這些概念非常基本以至于一般作者不屑去談,教材自然也不會很深入地講解這些概念,但這些內容又是學習中必須要理解的,下面就結合本人的學習、教學經驗,對這些最基本概念作一說明,希望對自學者有所幫助。   一、總線:我們知道,一個電路總是由元器件通過電線連接而成的,在模擬電路中,連線并不成為一個問題,因為各器件間一般是串行關系,各器件之間的連線并不很多,但計算機電路卻不一樣,它是以微處理器為核心,各器件都要與微處理器相連,各器件之間的工作必須相互協調,所以就需要的連線就很多了,如果仍如同模擬電路一樣,在各微處理器和各器件間單獨連線,則線的數量將多得驚人,所以在微處理機中引入了總線的概念,各個器件共同享用連線,所有器件的8根數據線全部接到8根公用的線上,即相當于各個器件并聯起來,但僅這樣還不行,如果有兩個器件同時送出數據,一個為0,一個為1,那么,接收方接收到的究竟是什么呢?這種情況是不允許的,所以要通過控制線進行控制,使器件分時工作,任何時候只能有一個器件發送數據(能有多個器件同時接收)。器件的數據線也就被稱為數據總線,器件所有的控制線被稱為控制總線。在單片機內部或者外部存儲器及其它器件中有存儲單元,這些存儲單元要被分配地址,才能使用,分配地址當然也是以電信號的形式給出的,由于存儲單元比較多,所以,用于地址分配的線也較多,這些線被稱為地址總線。
  二、數據、地址、指令:之所以將這三者放在一起,是因為這三者的本質都是一樣的──數字,或者說都是一串‘0’和‘1’組成的序列。換言之,地址、指令也都是數據。指令:由單片機芯片的設計者規定的一種數字,它與我們常用的指令助記符有著嚴格的一一對應關系,不能由單片機的開發者更改。地址:是尋找單片機內部、外部的存儲單元、輸入輸出口的依據,內部單元的地址值已由芯片設計者規定好,不可更改,外部的單元能由單片機開發者自行決定,但有一些地址單元是一定要有的(詳見程序的執行過程)。數據:這是由微處理機處理的對象,在各種不一樣的應用電路中各不相同,一般而言,被處理的數據可能有這么幾種情況:
1·地址(如MOV DPTR,#1000H),即地址1000H送入DPTR。
2·方式字或控制字(如MOV TMOD,#3),3即是控制字。
3·常數(如MOV TH0,#10H)10H即定時常數。
4·實際輸出值(如P1口接彩燈,要燈全亮,則執行指令:MOV P1,#0FFH,要燈全暗,則執行指令:MOV P1,#00H)這里0FFH和00H都是實際輸出值。又如用于LED的字形碼,也是實際輸出的值。
理解了地址、指令的本質,就不難理解程序運行過程中為什么會跑飛,會把數據當成指令來執行了。
  三、P0口、P2口和P3的第二功能使用辦法 開始學習時一般對P0口、P2口和P3口的第二功能使用辦法迷惑不解,認為第二功能和原功能之間要有一個切換的過程,或者說要有一條指令,事實上,各端口的第二功能完全是自動的,不需要用指令來轉換。如P3.6、P3.7分別是WR、RD信號,當微片理機外接RAM或有外部I/O口時,它們被用作第二功能,不能作為通用I/O口使用,只要一微處理機一執行到MOVX指令,就會有對應的信號從P3.6或P3.7送出,不需要事先用指令說明。事實上‘不能作為通用I/O口使用’也并不是‘不能’而是(使用者)‘不會’將其作為通用I/O口使用。你完全能在指令中按排一條SETB P3.7的指令,并且當單片機執行到這條指令時,也會使P3.7變為高電平,但使用者不會這么去做,因為這常常這會導致系統的崩潰(即死機)。
  四、程序的執行過程 單片機在通電復位后8051內的程序計數器(PC)中的值為‘0000’,所以程序總是從‘0000’單元開始執行,也就是說:在系統的ROM中一定要存在‘0000’這個單元,并且在‘0000’單元中存放的一定是一條指令。
  五、堆棧 堆棧是一個區域,是用來存放數據的,這個區域本身沒有任何特殊之處,就是內部RAM的一部份,特殊的是它存放和取用數據的方式,即所謂的‘先進后出,后進先出’,并且堆棧有特殊的數據傳輸指令,即‘PUSH’和‘POP’,有一個特殊的專為其服務的單元,即堆棧指針SP,每當執一次PUSH指令時,SP就(在原來值的基礎上)自動加1,每當執行一次POP指令,SP就(在原來值的基礎上)自動減1。由于SP中的值能用指令加以改變,所以只要在程序開始階段更改了SP的值,就能把堆棧設置在規定的內存單元中,如在程序開始時,用一條MOV SP,#5FH指令,就時把堆棧設置在從內存單元60H開始的單元中。一般程序的開頭總有這么一條設置堆棧指針的指令,因為開機時,SP的初始值為07H,這樣就使堆棧從08H單元開始往后,而08H到1FH這個區域正是8031的第二、三、四工作寄存器區,經常要被使用,這會造成數據的渾亂。不一樣作者編寫程序時,初始化堆棧指令也不完全相同,這是作者的習慣問題。當設置好堆棧區后,并不意味著該區域成為一種專用內存,它還是能象普通內存區域一樣使用,只是一般情況下編程者不會把它當成普通內存用了。
  六、單片機的開發過程 這里所說的開發過程并不是一般書中所說的從任務分析開始,我們假設已設計并制作好硬件,下面就是編寫軟件的工作。在編寫軟件之前,首先要確定一些常數、地址,事實上這些常數、地址在設計階段已被直接或間接地確定下來了。如當某器件的連線設計好后,其地址也就被確定了,當器件的功能被確定下來后,其控制字也就被確定了。然后用文本編緝器(如EDIT、CCED等)編寫軟件,編寫好后,用編譯器對源程序文件編譯,查錯,直到沒有語法錯誤,除了極簡單的程序外,一般應用仿真機對軟件進行調試,直到程序運行正確為止。運行正確后,就能寫片(將程序固化在EPROM中)。在源程序被編譯后,生成了擴展名為HEX的目標文件,一般編程器能夠識別這種格式的文件,只要將此文件調入即可寫片。在此,為使大家對整個過程有個認識,舉一例說明:
表1
ORG 0000H
LJMP START
ORG 040H
START:
MOV SP,#5FH ;設堆棧
LOOP:
NOP
LJMP LOOP ;循環
END ;結束
表2
:03000000020040BB
:0700400075815F000200431F
表3
02 00 40 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 75 81 5F 00 02 00 43
表1為源程序,表2是匯編后得到的HEX文件,表3是由HEX文件轉換成的目標文件,也就是最終寫入EPROM的文件,它由編程器轉換得到,也能由HEXBIN一類的程序轉換得到。學過手工匯編者應當不難找出表3與表1的一一對應關系,值得注意的是從02 00 40后開始的一長串‘FF’,直到75 81,這是由于偽指令:ORG 040H造成的結果。
  七、仿真、仿真機 仿真是單片機開發過程中非常重要的一個環節,除了一些極簡單的任務,一般產品開發過程中都要進行仿真,仿真的主要目的是進行軟件調試,當然借助仿真機,也能進行一些硬件排錯。一塊單片機應用電路板包括單片機部份及為達到使用目的而設計的應用電路,仿真就是利用仿真機來代替應用電路板(稱目標機)的單片機部份,對應用電路部份進行測試、調試。仿真有CPU仿真和ROM仿真兩種,所謂CPU仿真是指用仿真機代替目標機的CPU,由仿真機向目標機的應用電路部份供給各種信號、數據,進行調試的辦法。這種仿真能通過單步運行、連續運行等多種辦法來運行程序,并能觀察到單片機內部的變化,便于改正程序中的錯誤。所謂ROM仿真,就是用仿真機代替目標機的ROM,目標機的CPU工作時,從仿真機中讀取程序,并執行。這種仿真其實就是將仿真機當成一片EPROM,只是省去了擦片、寫片的麻煩,并沒有多少調試手段可言。常常這是二種不一樣類型的仿真機,也就是說,一臺仿真機不能既做CPU仿真,又做ROM仿真。可能的情況下,當然以CPU仿真好。以上是本人對單片機的理解,如有不對之處,請諸位大俠多多指點。發表您的高論。

評分

參與人數 5黑幣 +24 收起 理由
飛行者 + 5
123456789asdfgh + 3 贊一個!
藍野 + 6 絕世好帖!
孤星..殘月 + 5 很給力!
3到15字符 + 5 很給力!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏4 分享淘帖 頂3 踩
回復

使用道具 舉報

沙發
ID:52343 發表于 2013-7-27 22:11 | 只看該作者
謝謝分享
回復

使用道具 舉報

板凳
ID:67844 發表于 2014-10-26 12:16 | 只看該作者
謝謝了
回復

使用道具 舉報

地板
ID:73372 發表于 2015-2-8 17:31 | 只看該作者
厲害!真心佩服
回復

使用道具 舉報

5#
ID:77081 發表于 2015-4-15 21:14 | 只看該作者
關于單片機的一些基本概念
回復

使用道具 舉報

6#
ID:88716 發表于 2015-8-23 08:37 來自手機 | 只看該作者
理解了以前概念很模糊的知識,真心感謝
回復

使用道具 舉報

7#
ID:97361 發表于 2015-12-10 15:47 | 只看該作者
比看書好理解多了,謝謝
回復

使用道具 舉報

8#
ID:146034 發表于 2016-11-4 09:22 | 只看該作者
學習了
樓主辛苦
回復

使用道具 舉報

9#
ID:124995 發表于 2016-12-15 20:48 | 只看該作者
學習中
回復

使用道具 舉報

10#
ID:223571 發表于 2017-8-23 10:30 | 只看該作者
解說的很本質,容易理解,非常適合把知識學會,然后用理解的知識去指導操作,而不是直接赤裸裸的講怎么做,要是高校老師都這么授課就好了,為樓主點贊。太棒了,再接再厲,希望樓主分享更多的心得理解給我們
回復

使用道具 舉報

11#
ID:338578 發表于 2018-5-26 10:55 | 只看該作者

學習了
樓主辛苦
回復

使用道具 舉報

12#
ID:93625 發表于 2018-6-26 15:01 | 只看該作者
這一課是這個系列的最后一課了吧,感謝樓主。
回復

使用道具 舉報

13#
ID:370857 發表于 2018-7-13 13:43 | 只看該作者
贊一個
回復

使用道具 舉報

14#
ID:382264 發表于 2018-9-17 13:38 來自手機 | 只看該作者
獲益匪淺
回復

使用道具 舉報

15#
ID:198728 發表于 2018-10-3 12:52 來自手機 | 只看該作者
15172592551 發表于 2018-9-17 13:38
獲益匪淺

獲益匪淺,高
回復

使用道具 舉報

16#
ID:425919 發表于 2018-11-18 19:21 | 只看該作者
多謝!!!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 在线观看欧美一区 | 91精品国产一区二区 | 国产精品一区二区三区在线 | 91综合网 | 不卡在线视频 | 亚洲一区二区视频在线播放 | 国产激情在线 | 亚洲精品成人在线 | 99热视| 99精品国产一区二区青青牛奶 | 亚洲在线| 亚洲最大av网站 | 久久久www成人免费无遮挡大片 | 国产精品欧美一区二区三区不卡 | 在线观看深夜视频 | 不卡在线视频 | 国产欧美一区二区三区久久人妖 | 色一级| 亚洲免费一区二区 | 日韩在线免费看 | 国产日韩欧美中文字幕 | 国产一区二区三区四区五区加勒比 | 日韩伦理一区二区 | 日韩精品一区二区三区中文字幕 | 国产精品一码二码三码在线 | 91精品国产91久久综合桃花 | 亚洲国产精品一区二区三区 | 成人高潮片免费视频欧美 | 中文字幕中文字幕 | 亚洲欧美日韩精品久久亚洲区 | 午夜影院在线观看 | 国产69精品久久99不卡免费版 | 亚洲精品在线视频 | 影视一区 | 国内精品久久影院 | 亚洲高清av在线 | 啪视频在线 | 久久成人精品视频 | 91网站在线看 | 亚洲一区二区av | 久久五月婷|