行業(yè)新聞
當(dāng)前位置:網(wǎng)站首頁(yè)> 新聞動(dòng)態(tài) > 行業(yè)新聞 >單片機(jī),單片機(jī)特點(diǎn),單片機(jī)應(yīng)用
發(fā)布時(shí)間:2023-04-17 16:37:23
單片機(jī)是單片微型計(jì)算機(jī)(Single-Chip Microcomputer)的簡(jiǎn)稱,是一種將中央處理器CPU隨機(jī)存儲(chǔ)器RAM、只讀存儲(chǔ)器ROM、多種I/O口和中斷系統(tǒng)、定時(shí)器/計(jì)時(shí)器等功能(可能還包括顯示驅(qū)動(dòng)電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路)采用超大規(guī)模集成電路技術(shù)集成到一塊硅片上構(gòu)成的微型計(jì)算機(jī)系統(tǒng)。
單片機(jī)特點(diǎn)
(1)集成度高、體積小。
單片機(jī)將CPU、存儲(chǔ)器、I/O接口等各種功能部件集成在一塊晶體芯片上,體積小,節(jié)省空間。能靈活,方便地應(yīng)用于各種智能化的控制設(shè)備和儀器,實(shí)現(xiàn)機(jī)電一體化。
(2)可靠性高,抗干擾性強(qiáng)。
單片機(jī)把各種功能部件集成在一塊芯片上,內(nèi)部采用總線結(jié)構(gòu),減少了各芯片之間的連線,大大提高了單片機(jī)的可靠性與抗干擾能力。另外,其體積小,對(duì)于強(qiáng)磁場(chǎng)環(huán)境易于采取屏蔽措施,適合在惡劣環(huán)境下工作。
(3)低功耗。
許多單片機(jī)的工作電壓只有2~4伏特,電流幾百微安,功耗很低,適用于便攜式系統(tǒng)。
(4)控制功能強(qiáng)。
其CPU可以對(duì)I/O端口直接進(jìn)行操作,可以進(jìn)行位操作、分支轉(zhuǎn)移操作, 還能方便地實(shí)現(xiàn)多機(jī)控制,使整個(gè)系統(tǒng)的控制效率大為提高,適用于專門的控制領(lǐng)域。
(5)可擴(kuò)展性好。
單片機(jī)具有靈活方便的外部擴(kuò)展總線接口,使得當(dāng)片內(nèi)資源不夠使用時(shí)可以非常方便地進(jìn)行片外擴(kuò)展。另外,現(xiàn)在單片機(jī)具有越來(lái)越豐富的通信接口:如異步串行口SCI、同步串行口SPI、I2C、CAN總線、甚至有的單片機(jī)還集成了USB接口或以太網(wǎng)接口,這些豐富的通信接口使得單片機(jī)系統(tǒng)與外部計(jì)算機(jī)系統(tǒng)的通信變得非常容易。
(6)性價(jià)比高。
單片機(jī)應(yīng)用廣泛,生產(chǎn)批量大,產(chǎn)品供應(yīng)商的商業(yè)競(jìng)爭(zhēng)使得單片機(jī)產(chǎn)品的性能越來(lái)越強(qiáng)而價(jià)格低廉,有優(yōu)異的性能價(jià)格比。
單片機(jī)應(yīng)用
單片機(jī)具有體積小、控制功能強(qiáng)、功耗低、擴(kuò)展靈活、微型化和使用方便等優(yōu)點(diǎn),在家用電器、智能儀器儀表、工業(yè)控制、計(jì)算機(jī)網(wǎng)絡(luò)和通信、汽車設(shè)備、醫(yī)用設(shè)備等許多領(lǐng)域都有廣泛的應(yīng)用。
單片機(jī)常用指令
一、傳送操作
助記符 代碼 說(shuō)明
MOV Rn,A F8~FF A送寄存器
MOV A,direct E5 dircet 直接字節(jié)送A
MOV A,direct E5 dircet 直接字節(jié)送A
MOV Rn,#data 78~7F data 立即數(shù)送寄存器
MOV dircet,Rn 88~8F dircet 寄存器送直接字節(jié)
MOV dircet1,dircet2 85 dircet1 dircet2 直接字節(jié)送直接字節(jié)
MOV dircet,@Ro 86~87 間接RAM送直接字節(jié)
MOV @Ri,A F6~F7 A送間接RAM
MOV DPTR,#data16 90 data 15~8 16位常數(shù)送數(shù)據(jù)指針
MOVX A,@Ri E2~E3 送外部數(shù)據(jù)(8位地址)送A
MOVX A,@DPTR E0 送外部數(shù)據(jù)(16位地址)送A
MOVX @DPTR,A F0 A送外部數(shù)據(jù)(16位地址)
二、算術(shù)操作
ADD A,Rn 28~2F 寄存器加到A
ADD A,@Ri 26~27 間接RAM加到A
ADD A,#data 24data 立即數(shù)加到A
ADD A,Rn 38~3F 寄存器和進(jìn)位位加到A
ADD A,dircet 35dircet 直接字節(jié)和進(jìn)位位加到A
ADD A,@Ri 36~37 間接字節(jié)和進(jìn)位位加到A
ADD A,data 34 data 立即數(shù)和進(jìn)位位加到A
ADD A,Rn 98~9F A減去寄存器和進(jìn)位位
ADD A,dircet 95 dircet A減去直接字節(jié)和進(jìn)位位
ADD A,@Ri 36~37 間接RAM和進(jìn)位位加到A
ADD A,data 34 data 立即數(shù)和進(jìn)位位加到A
SUBB A,Rn 98~9F A減去寄存器和進(jìn)位位
SUBB A,dircet 95 dircet A減去直接字節(jié)和進(jìn)位位
SUBB A,@Ri 96~97 A減去間接RAM和進(jìn)位位
三、邏輯操作
ANL A,Rn 58~5F 寄存器“與”到A
ANL A,dircet 55 dircet 直接字節(jié)“與”到A
ANL A,@Ri 56~57 間接RAm“與”到A
ANL A,#data 54 data 立即數(shù)“與”到A
ANL dircet A 52 dircet A“與”到直接字節(jié)
ANL dircet,#data 53 dircet data 立即數(shù)“與”到直接字節(jié)
ORL A,Rn 48~4F 寄存器“或”到A
ORL A,dircet 45 dircet 直接字節(jié)“或”到A
ORL A,@Ri 46~47 間接RAM“或”到A
ORL A,#data 44 data 立即數(shù)“或”到A
ORL dircet,A 42 dircet A“或”到直接字節(jié)
ORL dircet,#data 43 dircet data 立即數(shù)“或”到直接字節(jié)
XRL A,Rn 68~6F 寄存器“異或”到A
XRL A,dircet 65 dircet 直接字節(jié)“異或”到A
XRL A,@Ri 66~67 間接RAM“異或”到A
XRL A,#data 64 data 立即數(shù)“異或”到A
XRL dircet A 62 dircet A“異或”到直接字節(jié)
XRL dircet,#data 63 dircet data 立即數(shù)“異或”到直接字節(jié)
四、控制程序轉(zhuǎn)移
ACALL addr 11 *1 addr(a7~a0) 絕對(duì)子程序調(diào)用
LCALL addr 16 12 addr(15~8) 長(zhǎng)子程序調(diào)用
addr(7~0) RET 22 子程序調(diào)用返回
RETI addr 11 32 中斷調(diào)用返回
AJMP addr 11 △1 addr(a7~a6) 絕對(duì)轉(zhuǎn)移
LJMP addr 16 02addr(15~8) 長(zhǎng)轉(zhuǎn)移
addr(7~0) SJMP rel 80 rel 短轉(zhuǎn)移,相對(duì)轉(zhuǎn)移
JMP @A+DPTR 73 相對(duì)于DPTR間接轉(zhuǎn)移
JZ rel 60 rel A為零轉(zhuǎn)移
JNZ rel 70 rel A為零轉(zhuǎn)移
CJNE A,dircet,rel B5 dircet rel 直接字節(jié)與A比較,不等則轉(zhuǎn)移
CJNE A,#data,rel B4 data rel 立即數(shù)與A比較,不等則轉(zhuǎn)移
CJNE A,Rn,#data,rel B8~BF data rel 立即數(shù)與寄存器比較,不等則轉(zhuǎn)移
CJNE @Ri,#data,rel B6~B7 data rel 立即數(shù)與間接RAM比較,不等則轉(zhuǎn)移
DJNZ Rn,rel D8~DF rel 寄存器減1,不為零則轉(zhuǎn)移
單片機(jī)結(jié)構(gòu)特征
以最常見(jiàn)的8051單片機(jī)為例介紹單片機(jī)的結(jié)構(gòu)特點(diǎn),8051的CPU由運(yùn)算器和控制器組成:
一、運(yùn)算器
運(yùn)算器以完成二進(jìn)制的算術(shù)/邏輯運(yùn)算部件ALU為核心,再加上暫存器TMP、累加器ACC、寄存器B、程序狀態(tài)標(biāo)志寄存器PSW及布爾處理器。累加器ACC是一個(gè)八位寄存器,它是CPU中工作最頻繁的寄存器。在進(jìn)行算術(shù)、邏輯運(yùn)算時(shí),累加器ACC往往在運(yùn)算前暫存一個(gè)操作數(shù)(如被加數(shù)),而運(yùn)算后又保存其結(jié)果(如代數(shù)和)。寄存器B主要用于乘法和除法操作。標(biāo)志寄存器PSW也是一個(gè)八位寄存器,用來(lái)存放運(yùn)算結(jié)果的一些特征,如有無(wú)進(jìn)位、借位等。其每位的具體含意如下所示。PSW CY AC FO RS1 RS0 OV - P對(duì)用戶來(lái)講,最關(guān)心的是以下四位。
1進(jìn)位標(biāo)志CY(PSW7)。它表示了運(yùn)算是否有進(jìn)位(或借位)。如果操作結(jié)果在位有進(jìn)位(加法)或者借位(減法),則該位為1,否則為0。
2輔助進(jìn)位標(biāo)志AC。又稱半進(jìn)位標(biāo)志,它反映了兩個(gè)八位數(shù)運(yùn)算低四位是否有半進(jìn)位,即低四位相加(或減)有否進(jìn)位(或借位),如有則AC為1狀態(tài),否則為0。
3溢出標(biāo)志位OV。MCS-51反映帶符號(hào)數(shù)的運(yùn)算結(jié)果是否有溢出,有溢出時(shí),此位為1,否則為0。
4奇偶標(biāo)志P。反映累加器ACC內(nèi)容的奇偶性,如果ACC中的運(yùn)算結(jié)果有偶數(shù)個(gè)1(如11001100B,其中有4個(gè)1),則P為0,否則,P=1。
PSW的其它位,將在以后再介紹。由于PSW存放程序執(zhí)行中的狀態(tài),故又叫程序狀態(tài)字?運(yùn)算器中還有一個(gè)按位(bit)進(jìn)行邏輯運(yùn)算的邏輯處理機(jī)(又稱布爾處理機(jī))。其功能在介紹位指令時(shí)再說(shuō)明。
二、控制器
控制器是CPU的神經(jīng)中樞,它包括定時(shí)控制邏輯電路、指令寄存器、譯碼器、地址指針DPTR及程序計(jì)數(shù)器PC、堆棧指針SP等。這里程序計(jì)數(shù)器PC是由16位寄存器構(gòu)成的計(jì)數(shù)器。要單片機(jī)執(zhí)行一個(gè)程序,就必須把該程序按順序預(yù)先裝入存儲(chǔ)器ROM的某個(gè)區(qū)域。單片機(jī)動(dòng)作時(shí)應(yīng)按順序一條條取出指令來(lái)加以執(zhí)行。因此,必須有一個(gè)電路能找出指令所在的單元地址,該電路就是程序計(jì)數(shù)器PC。當(dāng)單片機(jī)開始執(zhí)行程序時(shí),給PC裝入條指令所在地址,它每取出一條指令(如為多字節(jié)指令,則每取出一個(gè)指令字節(jié)),PC的內(nèi)容就自動(dòng)加1,以指向下一條指令的地址,使指令能順序執(zhí)行。只有當(dāng)程序遇到轉(zhuǎn)移指令、子程序調(diào)用指令,或遇到中斷時(shí)(后面將介紹),PC才轉(zhuǎn)到所需要的地方去。8051 CPU碢C指定的地址,從ROM相應(yīng)單元中取出指令字節(jié)放在指令寄存器中寄存,然后,指令寄存器中的指令代碼被譯碼器譯成各種形式的控制信號(hào),這些信號(hào)與單片機(jī)時(shí)鐘振蕩器產(chǎn)生的時(shí)鐘脈沖在定時(shí)與控制電路中相結(jié)合,形成按一定時(shí)間節(jié)拍變化的電平和時(shí)鐘,即所謂控制信息,在CPU內(nèi)部協(xié)調(diào)寄存器之間的數(shù)據(jù)傳輸、運(yùn)算等操作。
三、存儲(chǔ)器
存儲(chǔ)器是單片機(jī)的又一個(gè)重要組成部分,圖6給出了一種存儲(chǔ)容量為256個(gè)單元的存儲(chǔ)器結(jié)構(gòu)示意圖。其中每個(gè)存儲(chǔ)單元對(duì)應(yīng)一個(gè)地址,256個(gè)單元共有256個(gè)地址,用兩位16進(jìn)制數(shù)表示,即存儲(chǔ)器的地址(00H~FFH)。存儲(chǔ)器中每個(gè)存儲(chǔ)單元可存放一個(gè)八位二進(jìn)制信息,通常用兩位16進(jìn)制數(shù)來(lái)表示,這就是存儲(chǔ)器的內(nèi)容。存儲(chǔ)器的存儲(chǔ)單元地址和存儲(chǔ)單元的內(nèi)容是不同的兩個(gè)概念,不能混淆。
一、程序存儲(chǔ)器
程序是控制計(jì)算機(jī)動(dòng)作的一系列命令,單片機(jī)只認(rèn)識(shí)由“0”和“1”代碼構(gòu)成的機(jī)器指令。如前述用助記符編寫的命令MOV A,#20H,換成機(jī)器認(rèn)識(shí)的代碼74H、20H:(寫成二進(jìn)制就是01110100B和00100000B)。在單片機(jī)處理問(wèn)題之前必須事先將編好的程序、表格、常數(shù)匯編成機(jī)器代碼后存入單片機(jī)的存儲(chǔ)器中,該存儲(chǔ)器稱為程序存儲(chǔ)器。程序存儲(chǔ)器可以放在片內(nèi)或片外,亦可片內(nèi)片外同時(shí)設(shè)置。由于PC程序計(jì)數(shù)器為16位,使得程序存儲(chǔ)器可用16位二進(jìn)制地址,因此,內(nèi)外存儲(chǔ)器的地址可從0000H到FFFFH。8051內(nèi)部有4k字節(jié)的ROM,就占用了由0000H~0FFFH的4k個(gè)字節(jié),這時(shí)片外擴(kuò)充的程序存儲(chǔ)器地址編號(hào)應(yīng)由1000H開始,如果將8051當(dāng)做8031使用,不想利用片內(nèi)4kROM,全用片外存儲(chǔ)器,則地址編號(hào)仍可由0000H開始。不過(guò),這時(shí)應(yīng)使8051的第{31}腳(即EA腳)保持低電平。當(dāng)EA為高電平時(shí),用戶在0000H至0FFFH范圍內(nèi)使用內(nèi)部ROM,大于0FFFH后,單片機(jī)CPU自動(dòng)訪問(wèn)外部程序存儲(chǔ)器。
二、數(shù)據(jù)存儲(chǔ)器
單片機(jī)的數(shù)據(jù)存儲(chǔ)器由讀寫存儲(chǔ)器RAM組成。其容量可擴(kuò)展到64k,用于存儲(chǔ)實(shí)時(shí)輸入的數(shù)據(jù)。8051內(nèi)部有256個(gè)單元的內(nèi)部數(shù)據(jù)存儲(chǔ)器,其中00H~7FH為內(nèi)部隨機(jī)存儲(chǔ)器RAM,80H~FFH為專用寄存器區(qū)。實(shí)際使用時(shí)應(yīng)首先充分利用內(nèi)部存儲(chǔ)器,從使用角度講,搞清內(nèi)部數(shù)據(jù)存儲(chǔ)器的結(jié)構(gòu)和地址分配是十分重要的。因?yàn)閷?lái)在學(xué)習(xí)指令系統(tǒng)和程序設(shè)計(jì)時(shí)會(huì)經(jīng)常用到它們。8051內(nèi)部數(shù)據(jù)存儲(chǔ)器地址由00H至FFH共有256個(gè)字節(jié)的地址空間,該空間被分為兩部分,其中內(nèi)部數(shù)據(jù)RAM的地址為00H~7FH(即0~127)。而用做特殊功能寄存器的地址為80H~FFH。在此256個(gè)字節(jié)中,還開辟有一個(gè)所謂“位地址”區(qū),該區(qū)域內(nèi)不但可按字節(jié)尋址,還可按“位(bit)”尋址。對(duì)于那些需要進(jìn)行位操作的數(shù)據(jù),可以存放到這個(gè)區(qū)域。從00H到1FH安排了四組工作寄存器,每組占用8個(gè)RAM字節(jié),記為R0~R7。究竟選用那一組寄存器,由前述標(biāo)志寄存器中的RS1和RS0來(lái)選用。在這兩位上放入不同的二進(jìn)制數(shù),即可選用不同的寄存器組,如附表1所示。
三、特殊功能寄存器
特殊功能寄存器(SFR)的地址范圍為80H~FFH。在MCS-51中,除程序計(jì)數(shù)器PC和四個(gè)工作寄存器區(qū)外,其余21個(gè)特殊功能寄存器都在這SFR塊中。其中5個(gè)是雙字節(jié)寄存器,它們共占用了26個(gè)字節(jié)。各特殊功能寄存器的符號(hào)和地址見(jiàn)附表2。其中帶*號(hào)的可位尋址。特殊功能寄存器反映了8051的狀態(tài),實(shí)際上是8051的狀態(tài)字及控制字寄存器。用于CPU PSW便是典型一例。這些特殊功能寄存器大體上分為兩類,一類與芯片的引腳有關(guān),另一類作片內(nèi)功能的控制用。與芯片引腳有關(guān)的特殊功能寄存器是P0~P3,它們實(shí)際上是4個(gè)八位鎖存器(每個(gè)I/O口一個(gè)),每個(gè)鎖存器附加有相應(yīng)的輸出驅(qū)動(dòng)器和輸入緩沖器就構(gòu)成了一個(gè)并行口。MCS-51共有P0~P3四個(gè)這樣的并行口,可提供32根I/O線,每根線都是雙向的,并且大都有第二功能。
單片機(jī)硬件特征
(1)單片機(jī)的體積比較小, 內(nèi)部芯片作為計(jì)算機(jī)系統(tǒng),其結(jié)構(gòu)簡(jiǎn)單,但是功能完善,使用起來(lái)十分方便,可以模塊化應(yīng)用。
(2)單片機(jī)有著較高的集成度,可靠性比較強(qiáng),即使單片機(jī)處于長(zhǎng)時(shí)間的工作也不會(huì)存在故障問(wèn)題。
(3) 單片機(jī)在應(yīng)用時(shí)低電壓、低能耗,是人們?cè)谌粘I钪械氖滓x擇, 為生產(chǎn)與研發(fā)提供便利。
(4)單片機(jī)對(duì)數(shù)據(jù)的處理能力和運(yùn)算能力較強(qiáng),可以在各種環(huán)境中應(yīng)用,且有著較強(qiáng)的控制能力。
單片機(jī)發(fā)展歷程
?。?)階段(1976-1978):初級(jí)階段。
這個(gè)階段的單片機(jī)受集成電路技術(shù)的限制,制造工藝落后(使用NMOS工藝),速度低,功耗大,集成度低,片內(nèi)資源較少。典型的代表產(chǎn)品有Intel公司的MCS-48系列。其特點(diǎn)是:片內(nèi)集成有8位的CPU(有的還是4位的CPU),只有并行接口,無(wú)串行接口,有1個(gè)8位的定時(shí)器/計(jì)數(shù)器,最多只有2個(gè)中斷源,1KB或2KB的ROM,64B或128B的RAM,尋址范圍不大于4KB。
?。?)第二階段(1978-1982):發(fā)展和完善階段。
這個(gè)時(shí)期,單片機(jī)中開始采用CMOS 工藝,并逐漸被高速低功耗的HMOS工藝代替。代表產(chǎn)品有Intel公司的MCS-51系列,Motorola公司的MC6805系列,TI公司的TMS7000系列等。這個(gè)階段的單片機(jī)在以下幾個(gè)方面奠定了典型的單片機(jī)通用體系結(jié)構(gòu)。
?、?完善的外部總線。MCS-51設(shè)置了經(jīng)典的8位單片機(jī)的總線結(jié)構(gòu),包括8位數(shù)據(jù)總線、16位地址總線、控制總線及具有多機(jī)通信功能的串行通信接口。
?、?CPU外圍功能單元的集中管理模式。
?、?體現(xiàn)工控特性的位地址空間及位操作方式。
④ 指令系統(tǒng)趨于豐富和完善,并且增加了許多突出控制功能的指令。
?。?)第三階段(1982-1990):8位單片機(jī)鞏固發(fā)展及16位單片機(jī)推出階段,也是單片機(jī)向微控制器(Micro Control Unit—MCU)發(fā)展的階段。
Intel公司推出的MCS–96系列單片機(jī),將一些用于測(cè)控系統(tǒng)的模數(shù)轉(zhuǎn)換器、程序運(yùn)行監(jiān)視器、脈寬調(diào)制器等納入片中,體現(xiàn)了單片機(jī)的微控制器特征。
單片機(jī)指令系統(tǒng)和尋址方式
單片機(jī)要正常運(yùn)作,事先需編制程序,再把程序放入存貯器中,然后由CPU執(zhí)行該程序。程序是由指令組成的,指令的基本組成是操作碼和操作數(shù)。單片機(jī)的品種很多,設(shè)計(jì)時(shí)怎樣表示操作碼和操作數(shù),都有各自的規(guī)定,再有指令代碼也各不相同,因此,必須對(duì)所選單片機(jī)的全部指令,也就是所謂“指令系統(tǒng)”,有足夠的了解。各個(gè)系列的單片機(jī)雖然有不同的指令系統(tǒng),但也有其共同性。掌握一種單片機(jī)的指令系統(tǒng),對(duì)其它系列單片機(jī)可以起到觸類旁通的作用。MCS-51單片機(jī)應(yīng)用廣泛,派生品種多,具有代表性,所以,這里以MCS-51系列的指令系統(tǒng)為例說(shuō)明“指令”的組成和應(yīng)用。
1、MOV A,#20H
這條指令表示把20H這個(gè)數(shù)送入累加器A中(一個(gè)特殊功能寄存器)。
2、ADD A,70H
這條指令表示把累加器A中的內(nèi)容(在上例中送入的#20H)和存貯器中地址為70H單元中的內(nèi)容(也是一個(gè)數(shù)字),通過(guò)算術(shù)邏輯單元(英文縮寫為ALU)相加,并將結(jié)果保留在A中。這里MOV、ADD等稱為操作碼,而A、#20H、70H等均稱為操作數(shù)。在匯編語(yǔ)言程序中,操作碼通常由英文單詞縮寫而成,這樣有助于記憶,所以又稱助記符。如MOV就是英文單詞MOVE的縮寫,含有搬移的意思;而ADD即為英文單詞,其意為相加。因此,對(duì)于略懂英語(yǔ)的用戶,掌握單片機(jī)指令的含意是較為方便的。操作數(shù)有多種表示法,如以上的#20H稱為立即數(shù),即20H就是真正的操作數(shù)。而70H是存貯器中某個(gè)單元的地址,在該單元中,放著操作數(shù)(比如說(shuō)是3AH),ADD A,70H不是將70H和A中的內(nèi)容相加,而是從存貯器70H單元中將3AH取出和A中的內(nèi)容相加。由上可知,要找到實(shí)際操作數(shù),有時(shí)就要轉(zhuǎn)個(gè)彎,甚至轉(zhuǎn)幾個(gè)彎,這個(gè)過(guò)程稱為尋址,MCS-51共有7種尋址方式,現(xiàn)介紹如下:
一、立即尋址:
操作數(shù)就寫在指令中,和操作碼一起放在程序存貯器中。把“#”號(hào)放在立即數(shù)前面,以表示該尋址方式為立即尋址,如#20H。
二、寄存器尋址:
操作數(shù)放在寄存器中,在指令中直接以寄存器的名字來(lái)表示操作數(shù)的地址。例如MOV A,R0就屬于寄存器尋址,即將R0寄存器的內(nèi)容送到累加器A中。
三、直接尋址:
操作數(shù)放在單片機(jī)的內(nèi)部RAM某單元中,在指令中直接寫出該單元的地址。如前例的ADD A,70H中的70H。
四、寄存器間接尋址:
操作數(shù)放在RAM某個(gè)單元中,該單元的地址又放在寄存器R0或R1中。 如果RAM的地址大于256,則該地址存放在16位寄存器DPTR(數(shù)據(jù)指針)中,此時(shí)在寄存器名前加@符號(hào)來(lái)表示這種間接尋址。如MOV A,@ R0。其它還有變址尋址、相對(duì)尋址、位尋址等,待以后再詳細(xì)介紹??赡苡腥藭?huì)問(wèn),在指令中直接給出實(shí)際操作數(shù),不是簡(jiǎn)單、明了嗎?為什么還要用其它幾種尋址方式呢?這是因?yàn)樵诰幹瞥绦驎r(shí)很難一下子就給出操作數(shù)。如用單片機(jī)控制溫度時(shí),時(shí)時(shí)需要將給定的控制溫度(如20℃)減去環(huán)境溫度,而環(huán)境溫度時(shí)時(shí)有變化,顯然無(wú)法在程序指令中給出,只有通過(guò)一定方式,將其送入某個(gè)輸入/輸出口,再存放在某個(gè)寄存器中,這就必須用到寄存器尋址。又如要進(jìn)行算術(shù)運(yùn)算,要計(jì)算每班學(xué)員各科成績(jī)的平均值,如果把每個(gè)學(xué)員的各科都編一個(gè)程序,在程序中直接給出該學(xué)員各科成績(jī),再求平均值,顯然太麻煩。這里可以編一個(gè)求平均成績(jī)的通用程序,把每位學(xué)員的成績(jī)送入存貯器的各個(gè)單元中,這時(shí)可采取直接尋址,一個(gè)程序可供每個(gè)學(xué)員用,不是更方便嗎?所以,尋址方式越多,編制程序就越方便、靈活,適用范圍就越廣。
尋址有如找人,如被找的人有手機(jī)、BP機(jī)、座機(jī)電話等多種聯(lián)系方式則就容易找到他,單片機(jī)也是如此,尋址方式越多,找操作數(shù)越方便,單片機(jī)的功能就越強(qiáng)。前面介紹51系列單片機(jī)的尋址方式時(shí),常遇到單片機(jī)內(nèi)部的一些寄存器、累加器A、通用寄存器R0~R7、數(shù)據(jù)指針DPTR和存貯器等。在以后介紹指令時(shí),數(shù)據(jù)就要在這些寄存器、存貯器之間傳送,或者進(jìn)行運(yùn)算。因此,編制程序就需熟悉單片機(jī)的內(nèi)部結(jié)構(gòu)。
單片機(jī)有效應(yīng)用
(1)使用壽命。壽命主要指以下2方面:?jiǎn)纹瑱C(jī)開發(fā)產(chǎn)品擁有良好的穩(wěn)定性和較長(zhǎng)的使用壽命,可以長(zhǎng)時(shí)間穩(wěn)定運(yùn)行10年或是20多年;與微處理器相比擁有較長(zhǎng)的使用壽命。隨著半導(dǎo)體技術(shù)的不斷提高,MPU更新?lián)Q代速度的不斷提升,部分已經(jīng)成功上市,同時(shí)年齡較小的CPU核心同樣會(huì)隨著I/O模塊的發(fā)展而不斷豐富,生存周期較長(zhǎng)。隨著新型CPU產(chǎn)品的出現(xiàn),單片機(jī)領(lǐng)域也不斷擴(kuò)展,用戶選擇余地也相繼增加。目前單片機(jī)的主要發(fā)展趨勢(shì)就是32位、16位和8位單片機(jī)的共同進(jìn)步。最初單片機(jī)主要是從8位開始的,隨著多媒體技術(shù)、互聯(lián)網(wǎng)技術(shù)和移動(dòng)通訊技術(shù)的發(fā)展,32位單片機(jī)逐漸發(fā)展起來(lái)。比如32位的CPU單片機(jī)Mororola68k曾經(jīng)就實(shí)現(xiàn)過(guò)八千萬(wàn)枚的銷量,而16位單片機(jī)的發(fā)展從產(chǎn)量和品種兩種層面上看也有著巨大的進(jìn)步,呈現(xiàn)出增長(zhǎng)的態(tài)勢(shì)。
(2)運(yùn)行速度。MUP發(fā)展中的主要是不斷提升速度,主要是以時(shí)鐘頻率為主要標(biāo)志,時(shí)鐘頻率逐漸增高。但是單片機(jī)卻和MUP存在一定的差異,為了進(jìn)一步提升單片機(jī)的抗干擾能力,減少噪音影響,單片機(jī)在發(fā)展過(guò)程中逐漸開始從降低時(shí)鐘頻率入手,為此不惜降低運(yùn)算效率。從單片機(jī)內(nèi)部系統(tǒng)入手,改變內(nèi)在時(shí)序,在不提升時(shí)鐘頻率的基礎(chǔ)上,進(jìn)一步提高了單片機(jī)的運(yùn)算速度。
(3)高可靠性和低噪音技術(shù)。首先是EFT技術(shù)屬于抗干擾技術(shù),主要是振蕩電路中的正弦信號(hào)被外部的環(huán)境所影響時(shí),其所發(fā)出的波形就疊加各種毛刺信號(hào),而人們?cè)谔幚磉^(guò)程中也經(jīng)常利用施密特電路進(jìn)行整形,隨后電路振蕩毛刺就會(huì)變成觸發(fā)信號(hào)干擾的時(shí)鐘,交替利用RC濾波電路和施密特電路能夠有效消除毛刺作用,讓影響失效,促進(jìn)系統(tǒng)時(shí)鐘信號(hào)的順利傳輸。進(jìn)一步提升單片機(jī)穩(wěn)定性。其次是驅(qū)動(dòng)技術(shù)和低噪音的布線技術(shù),傳統(tǒng)單片機(jī)通常是將地線和電源設(shè)置在電路外殼中的對(duì)稱引腳位置,大都是在右上左下、左上右下兩部分對(duì)稱位置中,如此讓電源噪音順利穿過(guò)整個(gè)芯片,干擾單片機(jī)內(nèi)部電路。大部分單片機(jī)都將電源引腳與地線設(shè)置在兩個(gè)相鄰引腳中,這樣能夠有效減少穿過(guò)整個(gè)芯片的電流,同時(shí)還能在印刷電路板中設(shè)置去耦電容,進(jìn)一步減少噪聲影響。
(4)掩膜與OTP。OTP屬于一次性輸入的單機(jī)片,過(guò)去將投產(chǎn)掩膜的單片機(jī)當(dāng)作單片機(jī)產(chǎn)品成熟的標(biāo)志,因?yàn)檠谀碛邢鄳?yīng)的生產(chǎn)周期,同時(shí)OTP型號(hào)的單片機(jī)價(jià)格也不斷降低,因此通過(guò)OTP進(jìn)行產(chǎn)品制造逐漸成為近幾年的發(fā)展趨勢(shì)。與掩膜方式比較起來(lái),擁有風(fēng)險(xiǎn)小、生產(chǎn)周期短等優(yōu)勢(shì)。在社會(huì)發(fā)現(xiàn)新時(shí)期,OTP型號(hào)的單片機(jī)需求量也不斷上漲。