




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、lMPASMMPASM匯編器簡介匯編器簡介l匯編語言的語句格式匯編語言的語句格式l常用偽指令常用偽指令l程序格式和程序流程圖程序格式和程序流程圖lRAMRAM數(shù)據(jù)存儲(chǔ)器的體選尋址問題數(shù)據(jù)存儲(chǔ)器的體選尋址問題l順序程序結(jié)構(gòu)順序程序結(jié)構(gòu)l分支程序結(jié)構(gòu)分支程序結(jié)構(gòu)l循環(huán)程序結(jié)構(gòu)循環(huán)程序結(jié)構(gòu)l子程序結(jié)構(gòu)子程序結(jié)構(gòu)l程序跨頁跳轉(zhuǎn)和跨頁調(diào)用問題程序跨頁跳轉(zhuǎn)和跨頁調(diào)用問題l延時(shí)程序設(shè)計(jì)延時(shí)程序設(shè)計(jì)l查表程序設(shè)計(jì)查表程序設(shè)計(jì)l簡介簡介人人 匯編語言匯編語言 機(jī)器語言機(jī)器語言 單片機(jī)單片機(jī) 源程序源程序 匯編器匯編器 目標(biāo)程序目標(biāo)程序l簡介簡介機(jī)器語言:用二進(jìn)制代碼表示的能為計(jì)算機(jī)直接識(shí)機(jī)器語言:用二進(jìn)制代碼表
2、示的能為計(jì)算機(jī)直接識(shí)別和執(zhí)行的指令的集合。別和執(zhí)行的指令的集合。匯編語言:采用便于人們記憶的符號(hào)或者字符串來匯編語言:采用便于人們記憶的符號(hào)或者字符串來表示操作碼、操作數(shù)和地址碼的符號(hào)語言。表示操作碼、操作數(shù)和地址碼的符號(hào)語言。源程序:用匯編語言編寫的程序。源程序:用匯編語言編寫的程序。目標(biāo)程序:由源程序翻譯成的機(jī)器語言程序。目標(biāo)程序:由源程序翻譯成的機(jī)器語言程序。lMPASMMPASM匯編器簡介匯編器簡介lMPASMMPASM匯編器簡介匯編器簡介MPASMMPASM匯編器是美國匯編器是美國MicrochipMicrochip公司為其單片機(jī)應(yīng)用公司為其單片機(jī)應(yīng)用者、開發(fā)者提供的一套語言工具軟件
3、。者、開發(fā)者提供的一套語言工具軟件。功能:將匯編語言源程序翻譯成機(jī)器語言目標(biāo)程序功能:將匯編語言源程序翻譯成機(jī)器語言目標(biāo)程序代碼。代碼。 檢察源程序中的語法錯(cuò)誤或格式錯(cuò)誤。檢察源程序中的語法錯(cuò)誤或格式錯(cuò)誤。l匯編語言的語句格式匯編語言的語句格式l匯編語言的語句格式匯編語言的語句格式l匯編語言的語句格式匯編語言的語句格式對(duì)于對(duì)于PICPIC系列單片機(jī),在編寫源程序時(shí)必須依照所用匯編器的系列單片機(jī),在編寫源程序時(shí)必須依照所用匯編器的一些約定進(jìn)行書寫。例如使用一些約定進(jìn)行書寫。例如使用MicrochipMicrochip公司提供的公司提供的MPASMMPASM匯匯編器,匯編語言語句的一般格式由以下編
4、器,匯編語言語句的一般格式由以下4 4個(gè)字段組成:個(gè)字段組成:標(biāo)號(hào)標(biāo)號(hào) 操作碼(指令助記符)操作碼(指令助記符) 操作數(shù)操作數(shù) ;注釋;注釋(labellabel) (opcodeopcode) (operandoperand) (commentcomment)這些字段不都是必需的,但其順序是不能顛倒的;這些字段不都是必需的,但其順序是不能顛倒的;標(biāo)號(hào)必須從最左邊第一列開始書寫,其后至少用一個(gè)空格與標(biāo)號(hào)必須從最左邊第一列開始書寫,其后至少用一個(gè)空格與操作碼隔離;操作碼隔離;在沒有標(biāo)號(hào)的語句中,指令操作碼前面必須保留一個(gè)或一個(gè)在沒有標(biāo)號(hào)的語句中,指令操作碼前面必須保留一個(gè)或一個(gè)以上的空格;以上的
5、空格;l匯編語言的語句格式匯編語言的語句格式標(biāo)號(hào)標(biāo)號(hào) 操作碼(指令助記符)操作碼(指令助記符) 操作數(shù)操作數(shù) ;注釋;注釋(labellabel) (opcodeopcode) (operandoperand) (commentcomment)操作碼與操作數(shù)之間也必須保留一個(gè)或一個(gè)以上的空格;操作碼與操作數(shù)之間也必須保留一個(gè)或一個(gè)以上的空格;操作碼后面如果跟隨操作碼后面如果跟隨2 2個(gè)操作數(shù)的話,操作數(shù)之間必須用逗號(hào)個(gè)操作數(shù)的話,操作數(shù)之間必須用逗號(hào)(半角)隔開;(半角)隔開;在必要時(shí)可以加注釋,注釋可以跟在操作碼、操作數(shù)或標(biāo)號(hào)在必要時(shí)可以加注釋,注釋可以跟在操作碼、操作數(shù)或標(biāo)號(hào)之后,并用分號(hào)
6、引導(dǎo),甚至可以單獨(dú)占用一行且可以從任何之后,并用分號(hào)引導(dǎo),甚至可以單獨(dú)占用一行且可以從任何一列開始。一列開始。匯編語言源程序既可以用大寫字母書寫,也可以用小寫字母匯編語言源程序既可以用大寫字母書寫,也可以用小寫字母書寫,還可以大寫小寫混用,以便于閱讀。一個(gè)語句行最多書寫,還可以大寫小寫混用,以便于閱讀。一個(gè)語句行最多允許有允許有225225個(gè)(半角)字符。個(gè)(半角)字符。l匯編語言的語句格式匯編語言的語句格式標(biāo)號(hào)標(biāo)號(hào) 用在指令助記符之前的標(biāo)號(hào)就是該指令的符號(hào)地址,用在指令助記符之前的標(biāo)號(hào)就是該指令的符號(hào)地址,在程序匯編時(shí),它被賦以該指令在程序存儲(chǔ)器中所存在程序匯編時(shí),它被賦以該指令在程序存儲(chǔ)器
7、中所存放的具體地址。放的具體地址。 并不是每一條語句都需要加標(biāo)號(hào),只有那些欲被其他并不是每一條語句都需要加標(biāo)號(hào),只有那些欲被其他語句引用的語句之前才需要加標(biāo)號(hào)。語句引用的語句之前才需要加標(biāo)號(hào)。 標(biāo)號(hào)最多可以由標(biāo)號(hào)最多可以由3232個(gè)字母、數(shù)字和其他一些字符組成,個(gè)字母、數(shù)字和其他一些字符組成,且第一個(gè)字符必須是字母或下劃線且第一個(gè)字符必須是字母或下劃線“ ”“ ”, 標(biāo)號(hào)不能用指令助記符、寄存器名稱或其他在系統(tǒng)中標(biāo)號(hào)不能用指令助記符、寄存器名稱或其他在系統(tǒng)中已有固定用途的字符串(這些又稱為系統(tǒng)保留字);已有固定用途的字符串(這些又稱為系統(tǒng)保留字); 一個(gè)標(biāo)號(hào)在程序中只能定義一次。一個(gè)標(biāo)號(hào)在程序
8、中只能定義一次。 標(biāo)號(hào)必須從一行的第一列開始寫,后面用空格、制表標(biāo)號(hào)必須從一行的第一列開始寫,后面用空格、制表符或換行符與操作碼隔開;可以單獨(dú)作為一行。符或換行符與操作碼隔開;可以單獨(dú)作為一行。l匯編語言的語句格式匯編語言的語句格式操作碼操作碼 這個(gè)字段不能是空的,操作碼就是指令助記符,這個(gè)字段不能是空的,操作碼就是指令助記符,它是指令功能名稱的英文縮寫,表示指令的操作它是指令功能名稱的英文縮寫,表示指令的操作類型和操作性質(zhì),是匯編語言語句中的關(guān)鍵詞,類型和操作性質(zhì),是匯編語言語句中的關(guān)鍵詞,因此不可缺省。因此不可缺省。 指令操作碼的助記符在匯編過程中,匯編器把它指令操作碼的助記符在匯編過程中
9、,匯編器把它與一個(gè)事先建立的操作碼索引表進(jìn)行逐一比較,與一個(gè)事先建立的操作碼索引表進(jìn)行逐一比較,找出相應(yīng)的機(jī)器碼,并且取而代之,所以這一匯找出相應(yīng)的機(jī)器碼,并且取而代之,所以這一匯編過程又叫做代真。編過程又叫做代真。 在其前面沒有標(biāo)號(hào)時(shí),操作碼前面至少保留一個(gè)在其前面沒有標(biāo)號(hào)時(shí),操作碼前面至少保留一個(gè)空格,即不能頂格書寫,以便與標(biāo)號(hào)區(qū)別,否則,空格,即不能頂格書寫,以便與標(biāo)號(hào)區(qū)別,否則,會(huì)被匯編器誤認(rèn)為是標(biāo)號(hào)。會(huì)被匯編器誤認(rèn)為是標(biāo)號(hào)。l匯編語言的語句格式匯編語言的語句格式操作數(shù)操作數(shù) 該部分是操作對(duì)象,也就是數(shù)據(jù)或地址,可以用該部分是操作對(duì)象,也就是數(shù)據(jù)或地址,可以用數(shù)值形式或標(biāo)號(hào)形式表示。數(shù)
10、值形式或標(biāo)號(hào)形式表示。 數(shù)值可以是二進(jìn)制、八進(jìn)制、十進(jìn)制、十六進(jìn)制數(shù)值可以是二進(jìn)制、八進(jìn)制、十進(jìn)制、十六進(jìn)制數(shù)值或者數(shù)值或者 ASCllASCll字符值;字符值; 標(biāo)號(hào)可以是在此之前經(jīng)過定義或者賦值的代表數(shù)標(biāo)號(hào)可以是在此之前經(jīng)過定義或者賦值的代表數(shù)據(jù)或地址的標(biāo)號(hào)或字符串。據(jù)或地址的標(biāo)號(hào)或字符串。 如果操作數(shù)有如果操作數(shù)有2 2個(gè),中間應(yīng)該用逗號(hào)分開。個(gè),中間應(yīng)該用逗號(hào)分開。 MPASMMPASM的默認(rèn)進(jìn)制不是十進(jìn)制,而是十六進(jìn)制,的默認(rèn)進(jìn)制不是十進(jìn)制,而是十六進(jìn)制,這一點(diǎn)與許多其他單片機(jī)的匯編器不同,需要格這一點(diǎn)與許多其他單片機(jī)的匯編器不同,需要格外注意。外注意。 操作數(shù)還可以是事先經(jīng)過定義的
11、符號(hào)以及表達(dá)式,操作數(shù)還可以是事先經(jīng)過定義的符號(hào)以及表達(dá)式,若想進(jìn)一步了解,請參考附錄若想進(jìn)一步了解,請參考附錄C C。l匯編語言的語句格式匯編語言的語句格式 十六進(jìn)制數(shù)由數(shù)字十六進(jìn)制數(shù)由數(shù)字0 09 9和和字母字母A AF F組成。當(dāng)在源程組成。當(dāng)在源程序中采用后綴序中采用后綴“H”H”表示一表示一個(gè)以個(gè)以A AF F打頭的十六進(jìn)制打頭的十六進(jìn)制數(shù)時(shí),則必須在它的前面數(shù)時(shí),則必須在它的前面增添一個(gè)增添一個(gè)“0”0”作為引導(dǎo),作為引導(dǎo),以便于匯編器將其與標(biāo)號(hào)以便于匯編器將其與標(biāo)號(hào)或符號(hào)名相區(qū)別?;蚍?hào)名相區(qū)別。 用字符代表的常數(shù)就是該用字符代表的常數(shù)就是該字符對(duì)應(yīng)的字符對(duì)應(yīng)的ASCllASCl
12、l碼(即美碼(即美國標(biāo)準(zhǔn)信息交換碼,長度國標(biāo)準(zhǔn)信息交換碼,長度為為7 7位,許多計(jì)算機(jī)原理書位,許多計(jì)算機(jī)原理書或高級(jí)語言程序設(shè)計(jì)書中或高級(jí)語言程序設(shè)計(jì)書中都能找到都能找到 ASCllASCll表,也可表,也可以參考附錄以參考附錄I I)。)。l匯編語言的語句格式匯編語言的語句格式注釋注釋 注釋部分可有可無,但是最好養(yǎng)成附帶注釋的習(xí)慣。用來注釋部分可有可無,但是最好養(yǎng)成附帶注釋的習(xí)慣。用來對(duì)程序作一些注解和說明,便于人們閱讀、交流、修改和對(duì)程序作一些注解和說明,便于人們閱讀、交流、修改和調(diào)試程序。調(diào)試程序。 注釋不是程序的功能部分,通常用分號(hào)(半角)引導(dǎo)或與注釋不是程序的功能部分,通常用分號(hào)(
13、半角)引導(dǎo)或與指令部分隔開,也可以單獨(dú)書寫為以分號(hào)(半角)開頭的指令部分隔開,也可以單獨(dú)書寫為以分號(hào)(半角)開頭的獨(dú)立行,匯編器對(duì)該部分不作任何處理。獨(dú)立行,匯編器對(duì)該部分不作任何處理。 加注釋時(shí),一般應(yīng)該說明指令的作用和執(zhí)行的條件,尤其加注釋時(shí),一般應(yīng)該說明指令的作用和執(zhí)行的條件,尤其要說明程序在做什么;在用到子程序時(shí),要說明子程序的要說明程序在做什么;在用到子程序時(shí),要說明子程序的入口條件和出口條件以及該程序完成的功能。入口條件和出口條件以及該程序完成的功能。l常用偽指令常用偽指令l常用偽指令常用偽指令匯編器能匯編器能“聽得懂聽得懂”的語言的語言偽指令。要讓單片偽指令。要讓單片機(jī)為我們服務(wù)
14、,我們必須先學(xué)會(huì)它的語言機(jī)為我們服務(wù),我們必須先學(xué)會(huì)它的語言指令指令系統(tǒng)一樣。系統(tǒng)一樣。用來編寫匯編語言源程序的語句,主要是指令助記用來編寫匯編語言源程序的語句,主要是指令助記符(亦稱指令性語句),其次就是偽指令(也叫指符(亦稱指令性語句),其次就是偽指令(也叫指示性語句)。所謂偽指令就是示性語句)。所謂偽指令就是“假假” ” 指令的意思,指令的意思,不是單片機(jī)的指令系統(tǒng)中的真實(shí)指令。不是單片機(jī)的指令系統(tǒng)中的真實(shí)指令。l常用偽指令常用偽指令一般格式也由一般格式也由4 4個(gè)字段組成:個(gè)字段組成: 符號(hào)名符號(hào)名 偽指令助記符偽指令助記符 操作數(shù)操作數(shù) ;注釋;注釋符號(hào)名通常是代表專用寄存器名、通用
15、寄存器變量、符號(hào)名通常是代表專用寄存器名、通用寄存器變量、常數(shù)名、標(biāo)志位或控制位名、復(fù)位矢量或中斷矢量常數(shù)名、標(biāo)志位或控制位名、復(fù)位矢量或中斷矢量的一個(gè)字符串。符號(hào)名應(yīng)從一行的第一列開始書寫,的一個(gè)字符串。符號(hào)名應(yīng)從一行的第一列開始書寫,其后至少保留一個(gè)空格與偽指令隔離,但是,不能其后至少保留一個(gè)空格與偽指令隔離,但是,不能像標(biāo)號(hào)那樣單獨(dú)作為一行書寫。像標(biāo)號(hào)那樣單獨(dú)作為一行書寫。與指令系統(tǒng)中的助記符不同,沒有機(jī)器碼與偽指令與指令系統(tǒng)中的助記符不同,沒有機(jī)器碼與偽指令對(duì)應(yīng),當(dāng)源程序被匯編成目標(biāo)程序時(shí),目標(biāo)程序中對(duì)應(yīng),當(dāng)源程序被匯編成目標(biāo)程序時(shí),目標(biāo)程序中并不出現(xiàn)這些偽指令的代碼,它們僅在匯編過程
16、中并不出現(xiàn)這些偽指令的代碼,它們僅在匯編過程中起作用。起作用。l常用偽指令常用偽指令偽指令是程序設(shè)計(jì)人員向匯編器發(fā)出的控制命令,偽指令是程序設(shè)計(jì)人員向匯編器發(fā)出的控制命令,告訴匯編器如何完成匯編過程和一些規(guī)定的操作,告訴匯編器如何完成匯編過程和一些規(guī)定的操作,以及控制匯編器的輸入、輸出和數(shù)據(jù)定位等。以及控制匯編器的輸入、輸出和數(shù)據(jù)定位等。對(duì)于對(duì)于MicrochipMicrochip公司為開發(fā)公司為開發(fā)PICPIC單片機(jī)提供的單片機(jī)提供的MPASMMPASM匯編器,可以使用的偽指令多達(dá)數(shù)十條,不過,初匯編器,可以使用的偽指令多達(dá)數(shù)十條,不過,初學(xué)者掌握以下幾條最常用的偽指令即可滿足一般編學(xué)者掌握
17、以下幾條最常用的偽指令即可滿足一般編程的需要(欲想深入了解更多的偽指令可以參考附程的需要(欲想深入了解更多的偽指令可以參考附錄錄C C)l常用偽指令常用偽指令1 1)EQUEQU符號(hào)名賦值偽指令符號(hào)名賦值偽指令格式:符號(hào)名格式:符號(hào)名 EQU nnEQU nn說明:使說明:使EQUEQU兩端的值相等,即給符號(hào)名賦予一個(gè)兩端的值相等,即給符號(hào)名賦予一個(gè)特定值,或者說是給符號(hào)名定義一個(gè)數(shù)值。特定值,或者說是給符號(hào)名定義一個(gè)數(shù)值。其中,其中,nnnn可以是一個(gè)長度不同的二進(jìn)制數(shù)值(可以是一個(gè)長度不同的二進(jìn)制數(shù)值(1 1位位的目標(biāo)寄存器指示符的目標(biāo)寄存器指示符d d的值、的值、3 3位的標(biāo)志位的位地址
18、、位的標(biāo)志位的位地址、7 7位的寄存器地址、位的寄存器地址、8 8位的數(shù)據(jù)常數(shù)、位的數(shù)據(jù)常數(shù)、1313位的復(fù)位或位的復(fù)位或中斷矢量等)。中斷矢量等)。一個(gè)符號(hào)名一旦由一個(gè)符號(hào)名一旦由EQUEQU賦值,其值就固定下來了,賦值,其值就固定下來了,不能再被重新賦值。不能再被重新賦值。l常用偽指令常用偽指令2 2)ORGORG程序起始地址定義指令程序起始地址定義指令格式:格式:ORG nnnn ORG nnnn 說明:用于指定該偽指令后面的源程序存放的起始說明:用于指定該偽指令后面的源程序存放的起始地址,也就是匯編后的機(jī)器碼目標(biāo)程序;在單片機(jī)地址,也就是匯編后的機(jī)器碼目標(biāo)程序;在單片機(jī)的程序存儲(chǔ)器中開
19、始存放的首地址。其中的程序存儲(chǔ)器中開始存放的首地址。其中nnnnnnnn是一是一個(gè)個(gè)1313位長的地址參數(shù)。位長的地址參數(shù)。l常用偽指令常用偽指令3 3)ENDEND程序結(jié)束偽指令程序結(jié)束偽指令格式:格式:ENDEND說明:該偽指令通知說明:該偽指令通知MPASMMPASM匯編器結(jié)束對(duì)源程序的匯編器結(jié)束對(duì)源程序的匯編。匯編。在一個(gè)源程序中必須要有并且只有一條在一個(gè)源程序中必須要有并且只有一條ENDEND指令,指令,放在整個(gè)程序的末尾。放在整個(gè)程序的末尾。l常用偽指令常用偽指令4 4) LISTLIST列表選項(xiàng)偽指令列表選項(xiàng)偽指令格式:格式:LIST LIST 可選項(xiàng),可選項(xiàng),可選項(xiàng),可選項(xiàng),說
20、明:用于設(shè)置匯編參數(shù)來控制匯編過程,或?qū)Υ蛘f明:用于設(shè)置匯編參數(shù)來控制匯編過程,或?qū)Υ蛴≥敵龅牧斜砦募M(jìn)行格式化。該偽指令的所有參印輸出的列表文件進(jìn)行格式化。該偽指令的所有參數(shù)都必須在一行內(nèi)書寫完成。參數(shù)種類共有數(shù)都必須在一行內(nèi)書寫完成。參數(shù)種類共有1010余種,余種,在此只介紹最常用的在此只介紹最常用的2 2種,即可滿足初學(xué)者的基本種,即可滿足初學(xué)者的基本需要:需要:P= P= 設(shè)定單片機(jī)型號(hào)。例如設(shè)定單片機(jī)型號(hào)。例如P=16C84P=16C84或或P=16F877P=16F877等。等。R R 。例如。例如R=DECR=DEC(十進(jìn)(十進(jìn)制);制);R=HEXR=HEX(十六進(jìn)制)等。(十
21、六進(jìn)制)等。l常用偽指令常用偽指令5 5)INCLUDEINCLUDE:調(diào)入外部程序文件偽指令:調(diào)入外部程序文件偽指令格式:格式:INCLUDE“INCLUDE“文件名文件名”說明:用來告知匯編器,將一個(gè)預(yù)先編寫好的外部說明:用來告知匯編器,將一個(gè)預(yù)先編寫好的外部程序文件包含進(jìn)來,作為該源程序的一部分。這樣程序文件包含進(jìn)來,作為該源程序的一部分。這樣可以減少重復(fù)勞動(dòng),提高編程效率。可以減少重復(fù)勞動(dòng),提高編程效率。調(diào)入的外部文件,通常是定義文件,其中定義了單調(diào)入的外部文件,通常是定義文件,其中定義了單片機(jī)的復(fù)位矢量、專用寄存器的地址以及控制位和片機(jī)的復(fù)位矢量、專用寄存器的地址以及控制位和狀態(tài)位的
22、位地址等。狀態(tài)位的位地址等。l程序格式和程序流程圖程序格式和程序流程圖l程序格式和程序流程圖程序格式和程序流程圖l程序格式和程序流程圖程序格式和程序流程圖l程序格式和程序流程圖程序格式和程序流程圖通常在編寫程序之前,需要畫程序流程通常在編寫程序之前,需要畫程序流程圖。流程圖是一種圖形語言,它用各種圖。流程圖是一種圖形語言,它用各種圖形符號(hào)來說明程序的執(zhí)行過程。常常圖形符號(hào)來說明程序的執(zhí)行過程。常常采用的圖形符號(hào)有以下幾種:采用的圖形符號(hào)有以下幾種:(1 1)圓角矩形框)圓角矩形框端點(diǎn)框,表示一個(gè)程端點(diǎn)框,表示一個(gè)程序的開始或結(jié)束;序的開始或結(jié)束;(2 2)矩形框)矩形框任務(wù)框,表示要處理的任任
23、務(wù)框,表示要處理的任務(wù);務(wù);(3 3)菱形框)菱形框判斷框,表示要判斷的因判斷框,表示要判斷的因素,判斷結(jié)果將導(dǎo)致程序走入不同的分素,判斷結(jié)果將導(dǎo)致程序走入不同的分支(菱形框也有時(shí)用兩端帶尖的條形框支(菱形框也有時(shí)用兩端帶尖的條形框代用);代用);(4 4)指向線)指向線帶有箭頭的線段,表示程帶有箭頭的線段,表示程序的走向。序的走向。lRAMRAM數(shù)據(jù)存儲(chǔ)器的體選尋址問題數(shù)據(jù)存儲(chǔ)器的體選尋址問題PICPIC單片機(jī)面向字節(jié)操作和面向位操作的指令,其單片機(jī)面向字節(jié)操作和面向位操作的指令,其指令碼中均包含一個(gè)指令碼中均包含一個(gè)7 7位長的數(shù)據(jù)存儲(chǔ)器單元地址位長的數(shù)據(jù)存儲(chǔ)器單元地址F F。F F最多可
24、以區(qū)分最多可以區(qū)分128128個(gè)存儲(chǔ)器單元。個(gè)存儲(chǔ)器單元。PIC16F87XPIC16F87X內(nèi)部的內(nèi)部的RAMRAM配置了配置了512512個(gè)單元的地址空間,個(gè)單元的地址空間,地址編碼長度需要地址編碼長度需要9 9位,從位,從000H000H到到1FFH1FFH(即(即000000000B000000000B1111lllllB1111lllllB)。如果想用)。如果想用7 7位地址碼位地址碼(從(從00H00H到到 7FH7FH即即 0000000B0000000B1111111B1111111B)實(shí)現(xiàn)對(duì))實(shí)現(xiàn)對(duì)512512個(gè)單元的尋址,就必須對(duì)長度為個(gè)單元的尋址,就必須對(duì)長度為51251
25、2的的RAMRAM均勻均勻劃分為劃分為4 4等份,每一等份稱作一個(gè)體,按地址從小等份,每一等份稱作一個(gè)體,按地址從小到大的順序分別記為體到大的順序分別記為體0 0、體、體1 1、體、體2 2和體和體3 3。lRAMRAM數(shù)據(jù)存儲(chǔ)器的體選尋址問題數(shù)據(jù)存儲(chǔ)器的體選尋址問題區(qū)分區(qū)分4 4個(gè)體需要個(gè)體需要2 2位地址碼(位地址碼(0000B B11B11B)對(duì)對(duì)RAMRAM直接尋址時(shí),直接尋址時(shí),2 2位體選媽來自于狀態(tài)寄存器位體選媽來自于狀態(tài)寄存器STATUSSTATUS的的RPORPO和和RP1RP1位;位;對(duì)對(duì)RAMRAM進(jìn)行間接尋址時(shí),進(jìn)行間接尋址時(shí),2 2位體選碼來自于狀態(tài)寄存器位體選碼來自
26、于狀態(tài)寄存器STATUSSTATUS的的IRPIRP位和位和FSRFSR寄存器的最高位寄存器的最高位lRAMRAM數(shù)據(jù)存儲(chǔ)器的體選尋址問題數(shù)據(jù)存儲(chǔ)器的體選尋址問題有些寄存器單元有些寄存器單元7 7位地址碼能位地址碼能找到同一個(gè)單元。如找到同一個(gè)單元。如STATUSSTATUS根據(jù)根據(jù)“夠用即可夠用即可”的原則,的原則,PIC16F87XPIC16F87X在在000H000HIFFHIFFH的的地址空間里,實(shí)際并沒有地址空間里,實(shí)際并沒有配置配置512512個(gè)真實(shí)的單元。個(gè)真實(shí)的單元。特殊功能寄存器安排在特殊功能寄存器安排在4 4個(gè)體個(gè)體的上半部分,而通用寄存的上半部分,而通用寄存器占據(jù)著器占據(jù)
27、著4 4個(gè)體的下半部分。個(gè)體的下半部分。在在RAMRAM中尋找某一單元需用中尋找某一單元需用2 2個(gè)個(gè)地址碼,這就像在直角坐地址碼,這就像在直角坐標(biāo)系表示的平面上確定一標(biāo)系表示的平面上確定一個(gè)點(diǎn)一樣,需要用到橫坐個(gè)點(diǎn)一樣,需要用到橫坐標(biāo)和縱坐標(biāo)標(biāo)和縱坐標(biāo)2 2個(gè)數(shù)據(jù)。個(gè)數(shù)據(jù)。l順序程序結(jié)構(gòu)順序程序結(jié)構(gòu)順序程序結(jié)構(gòu)是最簡單的一種結(jié)構(gòu),順序程序結(jié)構(gòu)是最簡單的一種結(jié)構(gòu),在流程圖中表示為任務(wù)框一個(gè)一個(gè)地在流程圖中表示為任務(wù)框一個(gè)一個(gè)地串行連接。串行連接。在計(jì)算機(jī)執(zhí)行程序時(shí)表現(xiàn)為,從頭至在計(jì)算機(jī)執(zhí)行程序時(shí)表現(xiàn)為,從頭至尾嚴(yán)格按照次序一條語句一條語句地尾嚴(yán)格按照次序一條語句一條語句地順序執(zhí)行,并且每一條語
28、句均被執(zhí)行順序執(zhí)行,并且每一條語句均被執(zhí)行一遍。如圖所示。圖中的一遍。如圖所示。圖中的A A、B B和和C C分分別代表的可以是一條語句,也可以是別代表的可以是一條語句,也可以是一段程序。一段程序。l順序程序結(jié)構(gòu)順序程序結(jié)構(gòu)例例 當(dāng)用當(dāng)用LEDLED數(shù)碼管對(duì)某一數(shù)碼管對(duì)某一RAMRAM存存儲(chǔ)器單元的內(nèi)容進(jìn)行顯示時(shí),儲(chǔ)器單元的內(nèi)容進(jìn)行顯示時(shí),因?yàn)橐晃粩?shù)碼管一般只能顯因?yàn)橐晃粩?shù)碼管一般只能顯示示4 4位二進(jìn)制數(shù),所以通常需位二進(jìn)制數(shù),所以通常需要將被顯示單元內(nèi)的要將被顯示單元內(nèi)的8 8位數(shù)據(jù)位數(shù)據(jù)拆分成高拆分成高4 4位和低位和低4 4位位2 2個(gè)個(gè)“半半字節(jié)字節(jié)”。在本例中,假設(shè)將。在本例中,假
29、設(shè)將RAMRAM中文件寄存器中文件寄存器20H20H單元的單元的數(shù)據(jù)分解后,依次將低數(shù)據(jù)分解后,依次將低4 4位和位和高高4 4位分別放入位分別放入21H21H和和22H22H單元,單元,并將這并將這2 2個(gè)單元中空余的高個(gè)單元中空余的高4 4位補(bǔ)位補(bǔ)0 0。l順序程序結(jié)構(gòu)順序程序結(jié)構(gòu)要點(diǎn):設(shè)要點(diǎn):設(shè)Z Z是一位二進(jìn)制數(shù),同是一位二進(jìn)制數(shù),同1 1和和O O進(jìn)行邏輯與運(yùn)算時(shí),進(jìn)行邏輯與運(yùn)算時(shí),結(jié)果一個(gè)是保持原樣而另一個(gè)是變成結(jié)果一個(gè)是保持原樣而另一個(gè)是變成0 0,基于這一道,基于這一道理采用理采用 ANDLWANDLW指令,我們可以將一個(gè)指令,我們可以將一個(gè) 8 8位數(shù)據(jù)同常位數(shù)據(jù)同常數(shù)數(shù)0F
30、H0FH相與,實(shí)現(xiàn)清相與,實(shí)現(xiàn)清0 0高高4 4位和保留低位和保留低4 4位的目的。但這位的目的。但這一操作只能在工作寄存器一操作只能在工作寄存器W W內(nèi)才能完成。內(nèi)才能完成。l分支程序結(jié)構(gòu)分支程序結(jié)構(gòu) 分支程序流程圖中都包含分支程序流程圖中都包含1 1個(gè)判斷個(gè)判斷框,該判斷框具有框,該判斷框具有1 1個(gè)入口和個(gè)入口和2 2個(gè)出個(gè)出口口B B和和C C , 語句語句A A執(zhí)行完之后通常產(chǎn)生一個(gè)條執(zhí)行完之后通常產(chǎn)生一個(gè)條件碼件碼CCCC,當(dāng)條件,當(dāng)條件CCCC判為判為“是是”(記(記為為YESYES或或Y Y)時(shí)進(jìn)入)時(shí)進(jìn)入B B分支,當(dāng)條件分支,當(dāng)條件CCCC判為判為“否否”(記為(記為 NO
31、NO或或 N N)時(shí))時(shí)進(jìn)入進(jìn)入 C C分支。由此可見,只有一個(gè)分支。由此可見,只有一個(gè)分支中的程序被執(zhí)行了一遍,而另分支中的程序被執(zhí)行了一遍,而另一分支中的程序沒有得到執(zhí)行。在一分支中的程序沒有得到執(zhí)行。在實(shí)際編程時(shí),不僅會(huì)用到上述的二實(shí)際編程時(shí),不僅會(huì)用到上述的二分支程序結(jié)構(gòu),還會(huì)用到分支數(shù)多分支程序結(jié)構(gòu),還會(huì)用到分支數(shù)多于于2 2個(gè)的多分支程序結(jié)構(gòu)。不過,個(gè)的多分支程序結(jié)構(gòu)。不過,多分支結(jié)構(gòu)可以看作由二分支結(jié)構(gòu)多分支結(jié)構(gòu)可以看作由二分支結(jié)構(gòu)嵌套而成,即分支中又包含分支。嵌套而成,即分支中又包含分支。l分支程序結(jié)構(gòu)分支程序結(jié)構(gòu)例例4.34.3RAMRAM存儲(chǔ)器的存儲(chǔ)器的20H20H和和21
32、H21H單元存放單元存放2 2個(gè)個(gè)數(shù),找出大者存入數(shù),找出大者存入22H22H單元。單元。要點(diǎn)要點(diǎn)兩數(shù)做減法,判斷標(biāo)志位兩數(shù)做減法,判斷標(biāo)志位C C的值的值l分支程序結(jié)構(gòu)分支程序結(jié)構(gòu)l分支程序結(jié)構(gòu)分支程序結(jié)構(gòu)對(duì)于程序中的指令運(yùn)用作幾點(diǎn)說明:對(duì)于程序中的指令運(yùn)用作幾點(diǎn)說明:(1 1)凡是需要)凡是需要2 2個(gè)數(shù)參與的邏輯運(yùn)算(與、或、異或)和算術(shù)個(gè)數(shù)參與的邏輯運(yùn)算(與、或、異或)和算術(shù)運(yùn)算(加、減),都需要事先將其中一個(gè)操作數(shù)放入運(yùn)算(加、減),都需要事先將其中一個(gè)操作數(shù)放入W W中。對(duì)中。對(duì)于在此使用的減法指令更要格外關(guān)注,應(yīng)預(yù)先把減數(shù)放人于在此使用的減法指令更要格外關(guān)注,應(yīng)預(yù)先把減數(shù)放人W
33、W中,中,或者說,預(yù)先放入或者說,預(yù)先放入W W中的數(shù),在運(yùn)算中是當(dāng)做減數(shù),而寄存器中的數(shù),在運(yùn)算中是當(dāng)做減數(shù),而寄存器中的數(shù)當(dāng)做了被減數(shù)。中的數(shù)當(dāng)做了被減數(shù)。(2 2)一條條件跳轉(zhuǎn)指令往往需要跟隨一條無條件跳轉(zhuǎn)指令,才)一條條件跳轉(zhuǎn)指令往往需要跟隨一條無條件跳轉(zhuǎn)指令,才能實(shí)現(xiàn)長距離的轉(zhuǎn)移和程序的分支。能實(shí)現(xiàn)長距離的轉(zhuǎn)移和程序的分支。(3 3)PICPIC單片機(jī)的指令系統(tǒng)中沒有設(shè)置專用的停機(jī)指令,可以單片機(jī)的指令系統(tǒng)中沒有設(shè)置專用的停機(jī)指令,可以用一條跳轉(zhuǎn)到自身的無條件跳轉(zhuǎn)指令用一條跳轉(zhuǎn)到自身的無條件跳轉(zhuǎn)指令GOTOGOTO來實(shí)現(xiàn)。來實(shí)現(xiàn)。l循環(huán)程序結(jié)構(gòu)循環(huán)程序結(jié)構(gòu)在程序設(shè)計(jì)過程中,有時(shí)要求對(duì)
34、某一段程序重復(fù)執(zhí)行多遍,此時(shí)若用在程序設(shè)計(jì)過程中,有時(shí)要求對(duì)某一段程序重復(fù)執(zhí)行多遍,此時(shí)若用循環(huán)程序結(jié)構(gòu),有助于縮短程序。在一個(gè)循環(huán)程序的結(jié)構(gòu)中包含循環(huán)程序結(jié)構(gòu),有助于縮短程序。在一個(gè)循環(huán)程序的結(jié)構(gòu)中包含以下以下4 4個(gè)組成部分:個(gè)組成部分:(1 1)循環(huán)變量設(shè)置。在循環(huán)開始時(shí),往往需要指定或定義一個(gè)循環(huán))循環(huán)變量設(shè)置。在循環(huán)開始時(shí),往往需要指定或定義一個(gè)循環(huán)變量(可以是循環(huán)次數(shù)計(jì)數(shù)器、地址指針等),并且給它設(shè)置一變量(可以是循環(huán)次數(shù)計(jì)數(shù)器、地址指針等),并且給它設(shè)置一個(gè)初始值。個(gè)初始值。(2 2)循環(huán)體。要求重復(fù)執(zhí)行的程序段,即循環(huán)程序的主體部分。)循環(huán)體。要求重復(fù)執(zhí)行的程序段,即循環(huán)程序的
35、主體部分。(3 3)循環(huán)變量修改。修改循環(huán)變量的值,為下一次的循環(huán)準(zhǔn)備條件。)循環(huán)變量修改。修改循環(huán)變量的值,為下一次的循環(huán)準(zhǔn)備條件。(4 4)循環(huán)控制。在循環(huán)程序中必須給出循環(huán)結(jié)束的條件,否則就成)循環(huán)控制。在循環(huán)程序中必須給出循環(huán)結(jié)束的條件,否則就成為死循環(huán)為死循環(huán)l循環(huán)程序結(jié)構(gòu)循環(huán)程序結(jié)構(gòu)l循環(huán)程序結(jié)構(gòu)循環(huán)程序結(jié)構(gòu)例例4.44.4數(shù)據(jù)存儲(chǔ)器中,從地址數(shù)據(jù)存儲(chǔ)器中,從地址30H30H開始的開始的5050個(gè)單元都填入個(gè)單元都填入0000H H。要點(diǎn)要點(diǎn)間接尋址寄存器間接尋址寄存器FSRFSR當(dāng)作地址指針。當(dāng)作地址指針。l循環(huán)程序結(jié)構(gòu)循環(huán)程序結(jié)構(gòu)l子程序結(jié)構(gòu)子程序結(jié)構(gòu)編制標(biāo)準(zhǔn)化的程序段,存儲(chǔ)于
36、程序存儲(chǔ)器的指定區(qū)域,在每編制標(biāo)準(zhǔn)化的程序段,存儲(chǔ)于程序存儲(chǔ)器的指定區(qū)域,在每次需要時(shí)就調(diào)出使用,這種程序段就稱為子程序,調(diào)用子程次需要時(shí)就調(diào)出使用,這種程序段就稱為子程序,調(diào)用子程序的程序稱為主程序或者調(diào)用程序。子程序結(jié)構(gòu)是程序設(shè)計(jì)序的程序稱為主程序或者調(diào)用程序。子程序結(jié)構(gòu)是程序設(shè)計(jì)標(biāo)準(zhǔn)化和模塊化的有效方法。標(biāo)準(zhǔn)化和模塊化的有效方法。 對(duì)對(duì)PICPIC系列單片機(jī)編程時(shí),在主程序的適當(dāng)?shù)胤椒胖孟盗袉纹瑱C(jī)編程時(shí),在主程序的適當(dāng)?shù)胤椒胖肅ALLCALL指令來實(shí)現(xiàn)調(diào)用(或跳轉(zhuǎn)),在子程序的開頭需要設(shè)置地址指令來實(shí)現(xiàn)調(diào)用(或跳轉(zhuǎn)),在子程序的開頭需要設(shè)置地址標(biāo)號(hào)(又可兼作于程序的名稱和入口地址的標(biāo)志)
37、,末尾需標(biāo)號(hào)(又可兼作于程序的名稱和入口地址的標(biāo)志),末尾需要放置要放置RETURNRETURN或或RETLWRETLW指令,以便于主程序的調(diào)用和子程序的指令,以便于主程序的調(diào)用和子程序的返回。在主程序調(diào)用子程序時(shí),有時(shí)會(huì)遇到參數(shù)傳遞和現(xiàn)場返回。在主程序調(diào)用子程序時(shí),有時(shí)會(huì)遇到參數(shù)傳遞和現(xiàn)場保護(hù)這兩個(gè)問題。保護(hù)這兩個(gè)問題。l子程序結(jié)構(gòu)子程序結(jié)構(gòu)所謂參數(shù)傳遞,就是在調(diào)用子程序前,主程序應(yīng)先把有關(guān)參所謂參數(shù)傳遞,就是在調(diào)用子程序前,主程序應(yīng)先把有關(guān)參數(shù)放到某些約定的存儲(chǔ)器單元,進(jìn)入子程序后,可以從約定數(shù)放到某些約定的存儲(chǔ)器單元,進(jìn)入子程序后,可以從約定的單元取出有關(guān)參數(shù)加以處理。待處理完之后子程序
38、結(jié)束之的單元取出有關(guān)參數(shù)加以處理。待處理完之后子程序結(jié)束之前,同樣也應(yīng)把處理結(jié)果送到約定單元。在返回主程序后,前,同樣也應(yīng)把處理結(jié)果送到約定單元。在返回主程序后,主程序可以從這些約定單元獲得所需結(jié)果。在主程序和子程主程序可以從這些約定單元獲得所需結(jié)果。在主程序和子程序之間傳遞序之間傳遞8 8位參數(shù),用工作寄存器位參數(shù),用工作寄存器W W是理想的選擇。是理想的選擇。所謂現(xiàn)場保護(hù),就是主程序在運(yùn)行過程中使用了一些寄存器所謂現(xiàn)場保護(hù),就是主程序在運(yùn)行過程中使用了一些寄存器來存放臨時(shí)數(shù)據(jù)或中間結(jié)果,在子程序運(yùn)行過程中有時(shí)也要來存放臨時(shí)數(shù)據(jù)或中間結(jié)果,在子程序運(yùn)行過程中有時(shí)也要用到這些寄存器,為了避免對(duì)
39、于主程序還有用的臨時(shí)數(shù)據(jù)被用到這些寄存器,為了避免對(duì)于主程序還有用的臨時(shí)數(shù)據(jù)被子程序覆蓋掉,就要設(shè)法保護(hù)這些臨時(shí)數(shù)據(jù)。在執(zhí)行完子程子程序覆蓋掉,就要設(shè)法保護(hù)這些臨時(shí)數(shù)據(jù)。在執(zhí)行完子程序返回主程序時(shí),還要恢復(fù)這些數(shù)據(jù),稱為現(xiàn)場恢復(fù)。序返回主程序時(shí),還要恢復(fù)這些數(shù)據(jù),稱為現(xiàn)場恢復(fù)。l子程序結(jié)構(gòu)子程序結(jié)構(gòu)例例4.54.53 3個(gè)數(shù)最大者放個(gè)數(shù)最大者放入入40H40H單元單元要點(diǎn)要點(diǎn)利用例利用例4.34.3改造改造成子程序成子程序l子程序結(jié)構(gòu)子程序結(jié)構(gòu)l子程序結(jié)構(gòu)子程序結(jié)構(gòu)l程序跨頁跳轉(zhuǎn)和跨頁調(diào)用問題程序跨頁跳轉(zhuǎn)和跨頁調(diào)用問題PICF87XPICF87X系列單片機(jī)中,片內(nèi)配置的系列單片機(jī)中,片內(nèi)配置的
40、FLASHFLASH程序存儲(chǔ)程序存儲(chǔ)器的容量不同,分別為器的容量不同,分別為2K2K、4K4K和和8K8K。因此,程序存。因此,程序存儲(chǔ)器跨頁跳轉(zhuǎn)和跨頁調(diào)用的程序設(shè)計(jì)方法,也不盡儲(chǔ)器跨頁跳轉(zhuǎn)和跨頁調(diào)用的程序設(shè)計(jì)方法,也不盡相同。須要視具體情況具體處理。相同。須要視具體情況具體處理。PIC16F87XPIC16F87X的指令系統(tǒng)中,的指令系統(tǒng)中,2 2條引起程序長距離跳轉(zhuǎn)條引起程序長距離跳轉(zhuǎn)的指令的指令GOTOGOTO和和CALLCALL,所攜帶的地址碼僅僅有,所攜帶的地址碼僅僅有1111位,位,也就只能在也就只能在2K2K(即為一個(gè)頁面)的地址范圍內(nèi)跳轉(zhuǎn)。(即為一個(gè)頁面)的地址范圍內(nèi)跳轉(zhuǎn)。對(duì)于
41、只有對(duì)于只有2K2K程序存儲(chǔ)器的單片機(jī)型號(hào),自然就不存程序存儲(chǔ)器的單片機(jī)型號(hào),自然就不存在程序跨頁跳轉(zhuǎn)和跨頁調(diào)用問題。但是對(duì)于程序存在程序跨頁跳轉(zhuǎn)和跨頁調(diào)用問題。但是對(duì)于程序存儲(chǔ)器容量超出儲(chǔ)器容量超出2K2K的情況(更嚴(yán)格地講,是用戶程序的情況(更嚴(yán)格地講,是用戶程序在存儲(chǔ)器中分布的地址范圍超出在存儲(chǔ)器中分布的地址范圍超出2K2K的情況),就可的情況),就可能遇到程序跨頁跳轉(zhuǎn)和跨頁調(diào)用問題。能遇到程序跨頁跳轉(zhuǎn)和跨頁調(diào)用問題。l程序跨頁跳轉(zhuǎn)和跨頁調(diào)用問題程序跨頁跳轉(zhuǎn)和跨頁調(diào)用問題(1 1)對(duì)于)對(duì)于 PIC16F870PIC16F87087V87287V872而言,只有而言,只有2K2K的程序的
42、程序存儲(chǔ)器,不必關(guān)心程序跨頁跳轉(zhuǎn)和跨頁調(diào)用問題。存儲(chǔ)器,不必關(guān)心程序跨頁跳轉(zhuǎn)和跨頁調(diào)用問題。(2 2)對(duì)于)對(duì)于 PICF873PICF873874874,實(shí)際配置的程序存儲(chǔ)器容,實(shí)際配置的程序存儲(chǔ)器容量為量為4K X144K X14,其地址編碼長度需要,其地址編碼長度需要1212位,即位,即4K4K。程。程序跳轉(zhuǎn)指令的地址碼有序跳轉(zhuǎn)指令的地址碼有1111位,只能在位,只能在2K2K的地址范圍的地址范圍內(nèi)跳轉(zhuǎn)。把內(nèi)跳轉(zhuǎn)。把4K4K的程序空間分為的程序空間分為2 2頁,每頁頁,每頁2K2K,頁面,頁面0 0的地址范圍為的地址范圍為0000H0000H07FFH07FFH,頁面,頁面1 1的地址范
43、圍為的地址范圍為0800H0800HOFFFHOFFFH。再把。再把PCLATHPCLATH位(即該寄存器的位(即該寄存器的bit3bit3)作為頁面選擇位,這樣就可以在)作為頁面選擇位,這樣就可以在4K4K的地址范的地址范圍內(nèi)自由跳轉(zhuǎn)了。圍內(nèi)自由跳轉(zhuǎn)了。l程序跨頁跳轉(zhuǎn)和跨頁調(diào)用問題程序跨頁跳轉(zhuǎn)和跨頁調(diào)用問題l程序跨頁跳轉(zhuǎn)和跨頁調(diào)用問題程序跨頁跳轉(zhuǎn)和跨頁調(diào)用問題(3 3)對(duì)于)對(duì)于PIC16F876PIC16F876877877而言,有而言,有 8K8K的程序存儲(chǔ)器,的程序存儲(chǔ)器,存在程序跨頁跳轉(zhuǎn)和跨頁調(diào)用問題。先把存在程序跨頁跳轉(zhuǎn)和跨頁調(diào)用問題。先把8K8K的地址的地址空間分為空間分為4 4
44、頁,每頁頁,每頁2K2K,頁面,頁面0 0的地址范圍為的地址范圍為 0000H0000H07FFH07FFH;頁面;頁面1 1的地址范圍為的地址范圍為0800H0800HOFFFHOFFFH;頁面頁面2 2的地址范圍為的地址范圍為1000H1000H17FFH17FFH;頁面;頁面3 3的地址范的地址范圍為圍為180OH180OH1FFFH1FFFH。再把。再把PCLATHPCLATH4 4:3 3位(即該位(即該寄存器的寄存器的bit4bit4和和bit3bit3)作為頁面選擇位,這樣就可)作為頁面選擇位,這樣就可以在以在8K8K的地址范圍內(nèi)自由跳轉(zhuǎn)了。的地址范圍內(nèi)自由跳轉(zhuǎn)了。l程序跨頁跳轉(zhuǎn)和跨頁調(diào)用問題程序跨頁跳轉(zhuǎn)和跨頁調(diào)用問題l程序跨頁跳轉(zhuǎn)和跨頁調(diào)用問題程序跨頁跳轉(zhuǎn)和跨頁調(diào)用問題l延時(shí)程序設(shè)計(jì)延時(shí)程序設(shè)計(jì)在編程時(shí)經(jīng)常需要在程序的執(zhí)行過程中插入一段延在編程時(shí)經(jīng)常需要在程序的執(zhí)行過程中插入一段延時(shí)時(shí)間,對(duì)此有時(shí)時(shí)間,對(duì)此有2 2種方案可供選擇:種方案可供選擇:利用片內(nèi)的硬件資源利用片內(nèi)的硬件資源可編程定時(shí)器,可編程定時(shí)器,采用軟件手段采用軟件手段插入一段延時(shí)程序。插入一段延時(shí)程序。如果延時(shí)時(shí)間較短,可以連續(xù)插入幾條空操作指令如果延時(shí)時(shí)間較短,可以連續(xù)插入幾條空操作指令NOPNOP;如
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 水閣楊梅山施工方案
- 廣告門頭施工方案
- 石材粘接施工方案
- 火燒板臺(tái)階施工方案
- 橋梁亮化工程施工方案
- 室外管道安裝施工方案
- TSJNX 002-2024 西安市水平衡測試報(bào)告編制規(guī)范
- 二零二五年度物流信息承運(yùn)合同模板
- 二零二五年度承攬合同中增值稅稅率變動(dòng)應(yīng)對(duì)策略
- 二零二五年度交通事故人傷賠償公益援助協(xié)議
- 《moldflow學(xué)習(xí)資料》課件
- 2024建筑施工安全生產(chǎn)隱患識(shí)別圖合集
- 2025年江蘇南京技師學(xué)院招聘工作人員19人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國移動(dòng)安徽分公司春季社會(huì)招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2024阿里巴巴云計(jì)算云主機(jī)租賃及運(yùn)維服務(wù)合同2篇
- 湖南省對(duì)口招生考試醫(yī)衛(wèi)專業(yè)試題(2024-2025年)
- 高技能人才培訓(xùn)基地 建設(shè)項(xiàng)目實(shí)施方案
- 消毒供應(yīng)中心禮儀培訓(xùn)
- 微信公眾號(hào)運(yùn)營步驟
- 2024年河南省中職對(duì)口升學(xué)高考語文試題真題(解析版)
- 2023年貴州貴州貴安發(fā)展集團(tuán)有限公司招聘筆試真題
評(píng)論
0/150
提交評(píng)論