(玩電子) 電子技ji)躚 壩胙芯jiu)
當前位置(zhi)︰單(dan)片機(ji)教程網 >> 基(ji)礎教程 >> 瀏覽(lan)文(wen)章

天津快乐十分官网

作者:佚(die)名   來源:本(ben)站原(yuan)創   點擊數:x  更新(xin)時間︰2020年02月23日   【字體(ti)︰
    隨(sui)著電子技ji)醯難桿俜 梗 撲suan)機(ji)已深入地滲透(tou)到我們(men)的生活中,許多電子愛好者開(kai)始學習an)? ji)知識,但(dan)單(dan)片機(ji)的內(na)容比較抽(chou)象,相對電子愛好者已熟(shu)悉的模擬電路、數字zhi)緶罰 dan)片機(ji)中有一些新(xin)的概念,這些概念非常基(ji)本(ben)以(yi)至于一般作者不屑去談,教材自然也不會很(hen)深入地講bu)庹廡└拍睿 dan)這些內(na)容又是學習中必須要(yao)理(li)解的,下面(mian)就(jiu)結合本(ben)人(ren)shuo)難 啊 萄?jing)驗,對這些最基(ji)本(ben)概念作一說(shuo)明,希望對自學者有所幫助(zhu)。

  一、總線︰我們(men)知道,一個電路總是由元器件(jian)通過(guo)電線連接而成的,在模擬電路中,連線並不成為一個問題,因為各器件(jian)間一般是串行關系,各器件(jian)之間的連線並不很(hen)多,但(dan)計算(suan)機(ji)電路卻(que)不一樣,它是以(yi)微處理(li)器為核心,各器件(jian)都要(yao)與微處理(li)器相連,各器件(jian)之間的工(gong)作必須相互協調,所以(yi)就(jiu)需要(yao)的連線就(jiu)很(hen)多了,如果仍(reng)如同模擬電路一樣,在各微處理(li)器和tou)髕骷jian)間單(dan)獨連線,則線的數量將多得驚人(ren),所以(yi)在微處理(li)機(ji)中引入了總線的概念,各個器件(jian)共同享(xiang)用連線,所有器件(jian)的8根數據線全部接到8根公用的線上,即相當于各個器件(jian)並聯(lian)起來,但(dan)僅(jin)這樣還不行,如果有兩個器件(jian)同時送tong)鍪藎 桓鑫,一個為1,那麼,接you)輾澆郵(you)盞降木jiu)竟(jing)是什麼呢?這種(zhong)情(qing)況是不允(yun)許的,所以(yi)要(yao)通過(guo)控制(zhi)線進行控制(zhi),使器件(jian)分時工(gong)作,任(ren)何時候只能(neng)有一個器件(jian)發送數據(能(neng)有多個器件(jian)同時接you)眨 F骷jian)的數據線也就(jiu)被稱(chen)為數據總線,器件(jian)所有的控制(zhi)線被稱(chen)為控制(zhi)總線。在單(dan)片機(ji)內(na)部或者外部存儲器及其它器件(jian)中有存儲單(dan)元,這些存儲單(dan)元要(yao)被huan)峙淶?罰 拍neng)使用,分配地址當然也是以(yi)電信號(hao)的形式給出的,由于存儲單(dan)元比較多,所以(yi),用于地址分配的線也bu)隙啵 廡┤弒懷chen)為地址總線。

  二(er)、數據、地址、指令︰之所以(yi)將這三者放在一起,是因為這三者的本(ben)質都ji)且謊末??鄭 蛘咚shuo)都ji)且淮 ’和‘1’組成的序列(lie)。換言之,地址、指令也都ji)鞘蕁V噶睿河傻dan)片機(ji)芯片的設計者規定的一種(zhong)數字,它與我們(men)常用的指令助(zhu)記(ji)符有著嚴格的一一對應關系,不能(neng)由單(dan)片機(ji)的開(kai)發者更改。地址︰是尋找(zhao)單(dan)片機(ji)內(na)部、外部的存儲單(dan)元、輸入輸出口的依據,內(na)部單(dan)元的地址值(zhi)已由芯片設計者規定好,不可更改,外部的單(dan)元能(neng)由單(dan)片機(ji)開(kai)發者自行決(jue)定,但(dan)有一些地址單(dan)元是一定要(yao)有的(詳見程序的執(zhi)行過(guo)程)。數據︰這是由微處理(li)機(ji)處理(li)的對象,在各種(zhong)不一樣的應用電路中各不相同,一般而言,被處理(li)的數據可能(neng)有這麼幾種(zhong)情(qing)況︰

1?地址(如MOV DPTR,#1000H),即地址1000H送入DPTR。

2?方式字或控制(zhi)字(如MOV TMOD,#3),3即是控制(zhi)字。

3?常數(如MOV TH0,#10H)10H即定時常數。

4?實際(ji)輸出值(zhi)(如P1口接彩燈(deng),要(yao)燈(deng)全亮,則執(zhi)行指令︰MOV P1,#0FFH,要(yao)燈(deng)全暗(an),則執(zhi)行指令︰MOV P1,#00H)這里0FFH和00H都ji)鞘導ji)輸出值(zhi)。又如用于LED的字形wen)耄 彩鞘導ji)輸出的值(zhi)。

理(li)解了shuo)?貳 噶畹謀ben)質,就(jiu)不難理(li)解程序運行過(guo)程中為什麼會跑飛(fei),會把數據當成指令來執(zhi)行了。

  三、P0口、P2口和P3的第二(er)功能(neng)使用辦法 開(kai)始學習時一般對P0口、P2口和P3口的第二(er)功能(neng)使用辦法迷(mi)惑不解,認(ren)為第二(er)功能(neng)和原(yuan)功能(neng)之間要(yao)有一個切換的過(guo)程,或者說(shuo)要(yao)有一條(tiao)指令,事實上,各端口的第二(er)功能(neng)完(wan)全是自動(dong)的,不需要(yao)用指令來轉(zhuan)換。如P3.6、P3.7分別是WR、RD信號(hao),當微片理(li)機(ji)外接RAM或有外部I/O口時,它們(men)被用作第二(er)功能(neng),不能(neng)作為通用I/O口使用,只要(yao)一微處理(li)機(ji)一執(zhi)行到MOVX指令,就(jiu)會有對應的信號(hao)從P3.6或P3.7送tong)觶 恍枰yao)事先(xian)用指令說(shuo)明。事實上‘不能(neng)作為通用I/O口使用’也並不是‘不能(neng)’而是(使用者)‘不會’將其作為通用I/O口使用。你完(wan)全能(neng)在指令中按排一條(tiao)SETB P3.7的指令,並且當單(dan)片機(ji)執(zhi)行到這條(tiao)指令時,也會使P3.7變為高電平,但(dan)使用者不會這麼去做(zuo),因為這常常這會導致系統(tong)的崩lan)# 此闌ji))。

  四、程序的執(zhi)行過(guo)程 單(dan)片機(ji)在通電復位後8051內(na)的程序計數器(PC)中的值(zhi)為‘0000’,所以(yi)程序總是從‘0000’單(dan)元開(kai)始執(zhi)行,也就(jiu)是說(shuo)︰在系統(tong)的ROM中一定要(yao)存在‘0000’這個單(dan)元,並且yi) 000’單(dan)元中存放的一定是一條(tiao)指令。

  五、堆棧 堆棧是一個區(qu)域,是用來存放數據的,這個區(qu)域本(ben)身沒(mei)有任(ren)何特殊之處,就(jiu)是內(na)部RAM的一部份,特殊的是它存放和取(qu)用數據的方式,即所謂的‘先(xian)進後出,後進先(xian)出’,並且堆棧有特殊的數據傳輸指令,即‘PUSH’和‘POP’,有一個特殊的專為其服(fu)務的單(dan)元,即堆棧指針SP,每當執(zhi)一次PUSH指令時,SP就(jiu)(在原(yuan)來值(zhi)的基(ji)礎上)自動(dong)加(jia)1,每當執(zhi)行一次POP指令,SP就(jiu)(在原(yuan)來值(zhi)的基(ji)礎上)自動(dong)減(jian)1。由于SP中的值(zhi)能(neng)用指令加(jia)以(yi)改變,所以(yi)只要(yao)在程序開(kai)始階段更改了SP的值(zhi),就(jiu)能(neng)把堆棧設置(zhi)mi)詮娑 哪na)存單(dan)元中,如在程序開(kai)始ji)保 靡惶tiao)MOV SP,#5FH指令,就(jiu)時把堆棧設置(zhi)mi)詿幽na)存單(dan)元60H開(kai)始的單(dan)元中。一般程序的開(kai)頭總有這麼一條(tiao)設置(zhi)堆棧指針的指令,因為開(kai)機(ji)時,SP的初始值(zhi)為07H,這樣就(jiu)使堆棧從08H單(dan)元開(kai)始往後,而08H到1FH這個區(qu)域正是8031的第二(er)、三、四工(gong)作寄存器區(qu),經(jing)常要(yao)被使用,這會造成數據的渾亂。不一樣作者編(bian)寫程序時,初始化堆棧指令也不完(wan)全相同,這是作者的習慣問題。當設置(zhi)好堆棧區(qu)後,並不意味著該(gai)men)虺晌 恢zhong)專用內(na)存,它還是能(neng)象普通內(na)存區(qu)域一樣使用,只是一般情(qing)況下編(bian)程者不會把它當成普通內(na)存用了。

  六、單(dan)片機(ji)的開(kai)發過(guo)程 這里所說(shuo)的開(kai)發過(guo)程並不是一般書中所說(shuo)的從任(ren)務分析開(kai)始,我們(men)假設已設計並制(zhi)作好硬件(jian),下面(mian)就(jiu)是編(bian)寫軟件(jian)的工(gong)作。在編(bian)寫軟件(jian)之前,首先(xian)要(yao)確(que)定一些常數、地址,事實上這些常數、地址在設計階段已被直接或間接地確(que)定下來了。如當某chen)骷jian)的連線設計好後,其地址也就(jiu)被確(que)定了,當器件(jian)的功能(neng)被確(que)定下來後,其控制(zhi)字也就(jiu)被確(que)定了。然後用文(wen)本(ben)編(bian)緝器(如EDIT、CCED等)編(bian)寫軟件(jian),編(bian)寫好後,用編(bian)譯器對源程序文(wen)件(jian)編(bian)譯,查錯,直到沒(mei)有語(yu)法錯誤,除了極簡(jian)單(dan)的程序外,一般應用仿真機(ji)對軟件(jian)進行調試,直到程序運行正確(que)為止。運行正確(que)後,就(jiu)能(neng)寫片(將程序固(gu)化在EPROM中)。在源程序被編(bian)譯後,生成了擴展名為HEX的目標文(wen)件(jian),一般編(bian)程器能(neng)夠(gou)識別這種(zhong)格式的文(wen)件(jian),只要(yao)將此文(wen)件(jian)調入即可寫片。在此,為使大家對整個過(guo)程有個認(ren)識,舉一例說(shuo)明︰

表1

ORG 0000H

LJMP START

ORG 040H

START︰

MOV SP,#5FH ;設堆棧

LOOP︰

NOP

LJMP LOOP ;循(xun)環(huan)

END ;結束(shu)

表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是匯編(bian)後得到的HEX文(wen)件(jian),表3是由HEX文(wen)件(jian)轉(zhuan)換成的目標文(wen)件(jian),也就(jiu)是最終寫入EPROM的文(wen)件(jian),它由編(bian)程器轉(zhuan)換得到,也能(neng)由HEXBIN一類的程序轉(zhuan)換得到。學過(guo)手工(gong)匯編(bian)者應當不難找(zhao)出表3與表1的一一對應關系,值(zhi)得注(zhu)意的是從02 00 40後開(kai)始的一長串‘FF’,直到75 81,這是由于偽(wei)指令︰ORG 040H造成的結果。

  七、仿真、仿真機(ji) 仿真是單(dan)片機(ji)開(kai)發過(guo)程中非常重要(yao)的一個環(huan)節(jie),除了一些極簡(jian)單(dan)的任(ren)務,一般產(chan)品開(kai)發過(guo)程中都要(yao)進行仿真,仿真的主(zhu)要(yao)目的是進行軟件(jian)調試,當然借助(zhu)仿真機(ji),也能(neng)進行一些硬件(jian)排錯。一塊單(dan)片機(ji)應用電路板包括單(dan)片機(ji)部份及為達(da)到使用目的而設計的應用電路,仿真就(jiu)是利用仿真機(ji)來代替應用電路板(稱(chen)目標機(ji))的單(dan)片機(ji)部份,對應用電路部份進行測試、調試。仿真有CPU仿真和ROM仿真兩種(zhong),所謂CPU仿真是指用仿真機(ji)代替目標機(ji)的CPU,由仿真機(ji)向目標機(ji)的應用電路部份供給各種(zhong)信號(hao)、數據,進行調試的辦法。這種(zhong)仿真能(neng)通過(guo)單(dan)步(bu)運行、連續運行等多種(zhong)辦法來運行程序,並能(neng)觀察到單(dan)片機(ji)內(na)部的變化,便于改正程序中的錯誤。所謂ROM仿真,就(jiu)是用仿真機(ji)代替目標機(ji)的ROM,目標機(ji)的CPU工(gong)作時,從仿真機(ji)中讀(du)取(qu)程序,並執(zhi)行。這種(zhong)仿真其實就(jiu)是將仿真機(ji)當成一片EPROM,只是省去了擦片、寫片的麻煩,並沒(mei)有多少調試yun)佷慰裳浴33U饈嵌er)種(zhong)不一樣類型的仿真機(ji),也就(jiu)是說(shuo),一台仿真機(ji)不能(neng)既做(zuo)CPU仿真,又做(zuo)ROM仿真。可能(neng)的情(qing)況下,當然以(yi)CPU仿真好。以(yi)上是本(ben)人(ren)對單(dan)片機(ji)的理(li)解,如有不對之處,請(qing)諸位大俠多多指點。發表您的高論。

發表評論】【易博APP官网告訴好友(you)】【收藏此文(wen)】【關閉窗口
天津快乐十分官网 | 下一页