第九章應用系統(tǒng)配置及接口技術(shù)_第1頁
第九章應用系統(tǒng)配置及接口技術(shù)_第2頁
第九章應用系統(tǒng)配置及接口技術(shù)_第3頁
第九章應用系統(tǒng)配置及接口技術(shù)_第4頁
第九章應用系統(tǒng)配置及接口技術(shù)_第5頁
已閱讀5頁,還剩83頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第九章應用系統(tǒng)配置及接口技術(shù)9.1并行I/O口的擴展

9.1.1簡單并行I/O口的擴展

9.1.28155帶RAM和定時器/計數(shù)器的可編程并行接口芯片9.2人-機通道配置與接口技術(shù)

9.2.1鍵盤接口及處理程序

9.2.2LED顯示器接口及顯示程序

9.2.3串行口控制的鍵盤/LED顯示器接口電路9.3A/D轉(zhuǎn)換器及接口技術(shù)9.4D/A轉(zhuǎn)換器及接口技術(shù)

9.1

并行I/O口的擴展9.1.1簡單并行I/O口的擴展

在稍微大的系統(tǒng),單片機片的并行口便不夠用,需要擴展。所謂簡單擴展,就是使用通用的74系列的TTL或4000系列的CMOS芯片擴展。

9.1.1簡單I/O接口的擴展方法

常用74LS244作輸入接口芯片,起緩沖作用;用74LS273作輸出接口芯片,起鎖存作用。1G,2G為H時,Y為高阻;1G,2G為L時,Y=A

擴展的輸入輸出口地址均為:P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0ⅹ

ⅹ0ⅹ

除了P2.0以外均取1,則擴展的輸入輸出口地址寫成16進制數(shù)均為:

FEFFH

上面電路的功能是:按下某鍵,對應的LED發(fā)光。其程序為:

MOVDPTR,#0FEFFHLP:MOVXA,@DPTRMOVX@DPTR,ASJMPLP9.1.2擴展8155可編程外圍并行接口芯片

關(guān)于Intel的8155/8156:是一多功能的可編程外圍接口芯片,內(nèi)部資源有256B的RAM,2個8位、1個6位的I/O口和1個14位的“減1”計數(shù)器。40腳雙列直插封裝。1.8155的結(jié)構(gòu)與引腳2.8155的RAM和I/O口地址

其地址按片外RAM統(tǒng)一編址(16位)。

CE、IO/M接單片機的高8位地址。一、I/O口(即片內(nèi)寄存器)地址

CE=0、IO/M=1,低3位選擇寄存器二、256BRAM的地址

CE=0、,由高8位地址控制;低8位選擇RAM的256個存儲單元。38155的寄存器(6個)一、命令寄存器

地址:*****000B輸入輸出PC3~PC5出工作控制二、狀態(tài)寄存器

1、地址:*****000B

2、格式及各位的意義三、PA寄存器

是PA口引腳PA0~PA7的映射地址:*****001B四、PB寄存器

是PB口引腳PB0~PB7的映射地址:*****010B五、PC寄存器

是PC口引腳PC0~PC7的映射地址:*****011B六、定時器/計數(shù)器寄存器

是一14位計數(shù)器,對應有兩個寄存器,最高兩位設(shè)定輸出波形。1、地址:兩個寄存器的地址分別為:*****100B2、寄存器格式*****101BM2M1的意義(決定輸出波形):48155芯片的使用一、作片外256BRAM用

低8位地址范圍為:00H~FFH二、作擴展I/O口用

PA口、PB口、PC口注意:工作方式、地址三、作定時器擴展用

一般先寫計數(shù)常數(shù),再寫命令字。58031與8155的接口及簡單編程一、8031與8155的連接方法

二、8155的基本操作程序段

1、對8155中的RAM進行操作例1(1)向8155RAM中的5FH單元寫入數(shù)據(jù)32H;(2)從8155RAM中的98H單元讀取數(shù)據(jù)。程序段如下:(1)寫數(shù)據(jù):

MOVDPTR,#7E5FHMOVA,#32HMOVX@DPTR,A(2)讀數(shù)據(jù):

MOVDPTR,#7E98HMOVXA,@DPTR2、對8155中的I/O口和定時器進行操作

例2設(shè)置8155,使用I/O口和定時器:使A口為基本輸入方式,B口為基本輸出方式;定時器作方波發(fā)生器,對輸入的脈沖進行24分頻。試編程實現(xiàn)之。

思路:先對定時器賦初值和設(shè)定輸出波形,向定時器/計數(shù)器寄存器中寫;再設(shè)定A、B口的工作方式和傳輸方向,并啟動定時器工作,向命令寄存器中寫。程序段如下:(1)對定時器賦初值和設(shè)定輸出波形:

定時器/計數(shù)器寄存器地址:7F04H、7F05HMOVDPTR,#7F04HMOVA,#24MOVX@DPTR,AINCDPTRMOVA,#01000000BMOVX@DPTR,A(2)設(shè)定A、B口的工作方式并啟動定時器工作:

命令寄存器地址:7F00HMOVDPTR,#7F00HMOVA,#11000010BMOVX@DPTR,A

9.2人-機通道配置與接口技術(shù)

9.2.1鍵盤接口及處理程序

9.2.2LED顯示器接口及顯示程序

9.2.3串行口控制的鍵盤/LED顯示器接口電路9.2.1鍵盤接口及處理程序鍵盤可以分為獨立連接式和行列式(矩陣式)兩類,每一類按其譯碼方法又都可分為編碼及非編碼兩種類型.1)獨立式非編碼鍵盤接口及處理程序檢查鍵盤是否有鍵被按下,消除按鍵抖動。硬件電路消除抖動或軟件消除抖動。抖動時間<10ms開關(guān)動作時間>100ms“1”“0”<10ms前沿抖動后沿抖動&I/O接口&+5v+5v消除抖動電路開關(guān)單片機(1)獨立式鍵盤電路:獨立式鍵盤電路:每個按鍵單獨占有一根I/O接口引線。優(yōu)點:電路簡單;缺點:當鍵數(shù)較多時,要占用較多的I/O線.程序P/231鍵盤接口形式:P1.0P1.1P1.7+5v

下列程序為省略了軟件去抖動措施的程序Start:mova,#0ffhmovP1,aMova,P1PL1:JNBACC.0,P0fJNBACC.1,P1FJNBACC.2,P2FJNBACC.3,P3FJNBACC.4,P4FJNBACC.5,P5FJNBACC.5,P6FJNBACC.6,P7FLJMPSTART

P0F:LJMPPROM0P1F:LJMPPROM1

……….P7F:LJMPPROM7PROM0:….LJMPSTARTPROM1:…..LJMPSTART…..PROM7:….LJMPSTART

例9-1:設(shè)計一個有4個獨立式按鍵盤接口,并編寫鍵掃描程序KEY:MOVP1,#0FFHMOVA,P1CPLAANLA,#0FFHJZKEYLCALLD-10MSMOVA,P1CPLAANLA,#0FHJZKEYMOVB,AMOVA,P1CPLAANLA,#0FHKEY1:JNZKEY1LCALLD-10MSMOVA,BJBACC.0,PKEY1JBACC.1,PKEY2JBACC.2,PKEY3JBACC.3,PKEY4EKEY:RETPKEY1:LCALLK1RETPKEY2:LCALLK2RETPKEY3:LCALLK3RETPKEY4:LCALLK4RETD-10MS:MOVR7,#10HDS1:MOVR6,#0FFHDS2:DJNZR6,DS2DJNZR7,DS1RET(2)矩陣式鍵盤:

0

1+5v

C0C1R0R1鍵盤I/O接口

非編碼式鍵盤識別按鍵的方法有兩種:一是行掃描法,二是線反轉(zhuǎn)法。1)行掃描法通過行線發(fā)出低電平信號,如果該行線所連接的鍵沒有按下的話,則列線所接的端口得到的是全“1”信號,如果有鍵按下的話,則得到非全“1”信號。

為了防止雙鍵或多鍵同時按下,往往從第0行一直掃描到最后1行,若只發(fā)現(xiàn)1個閉合鍵,則為有效鍵,否則全部作廢。找到閉合鍵后,讀入相應的鍵值,再轉(zhuǎn)至相應的鍵處理程序。

2)線反轉(zhuǎn)法線反轉(zhuǎn)法也是識別閉合鍵的一種常用方法,該法比行掃描速度快,但在硬件上要求行線與列線外接上拉電阻。先將行線作為輸出線,列線作為輸入線,行線輸出全“0”信號,讀入列線的值,然后將行線和列線的輸入輸出關(guān)系互換,并且將剛才讀到的列線值從列線所接的端口輸出,再讀取行線的輸入值。那么在閉合鍵所在的行線上值必為0。這樣,當一個鍵被按下時,必定可讀到一對唯一的行列值。

鍵盤處理程序任務:1.鍵輸入:檢查鍵盤是否有鍵被按下,消除按鍵抖動。確定被按鍵的鍵號,獲取鍵號。硬件電路消除抖動或軟件消除抖動。鍵譯碼:鍵號為鍵盤位置碼,根據(jù)鍵號查表得出被按鍵的鍵值。鍵值:數(shù)字鍵0~9;字符鍵0AH~0FH;功能鍵10H~。鍵碼=行首鍵號+列號(鍵號必須依次是從左至右書寫)或鍵碼=列首鍵號+行號(鍵號必須依次是從上至下書寫)3.鍵處理:

根據(jù)鍵值轉(zhuǎn)移到不同程序段。若鍵值屬于數(shù)字、字符鍵,則調(diào)用顯示數(shù)字和字符的子程序。若鍵值屬于功能鍵,則進行多分支轉(zhuǎn)移,執(zhí)行各個功能程序段。延時等待10ms

仍有按鍵信號?Y

有按鍵信號?NYN鍵盤處理

按鍵釋放?NY二、鍵盤接口方法:1、利用單片機本身的并行口;2、利用單片機本身的串行口;3、利用通用接口芯片8155、8255等;4、利用專用接口芯片8279等。三、鍵盤接口的控制方式:1、隨機方式:每當CPU空閑時執(zhí)行鍵盤掃描程序。2、中斷方式:鍵的按下引起中斷后,單片機對鍵盤進行掃描。3、定時方式:單片機定時地對鍵盤進行掃描。按鍵處理程序:延時消抖鍵掃描求鍵號延時等待鍵譯碼求鍵值修改顯示緩沖區(qū)跳轉(zhuǎn)各功能程序有按鍵輸入?確有按鍵?按鍵釋放?是數(shù)字鍵?YYYNNNYN1、使用8155作鍵盤接口:接口應用:P2.7=0,P2.0=1:A口地址為:7F01H;C口地址為:7F03H。掃描法:列線輸出,行線輸入。列線逐列輸出0,某行有按鍵,行線輸入就為0;若無按鍵,行線輸入全部為1。0167891415鍵碼=行首鍵號+列號(鍵號必須依次是從左至右書寫)

或鍵碼=列首鍵號+行號(鍵號必須依次是從上至下書寫)2.鍵盤接口電路圖采用8155的鍵盤接口電路判定有無鍵閉合的子程序:MOV DPTR,#7F01H MOV A,#00H ;A口送00HMOVX @DPTR,AINC DPTRINC DPTR ;建立C口地址MOVX A,@DPTR ;讀C口CPL A

;A取反,無鍵按下則全“0”ANL A,#0FH ;屏蔽A高半字節(jié)(C口只4位)RET 執(zhí)行KS1子程序的結(jié)果是:有閉合鍵則(A)≠0;無閉合鍵則(A)=

0。CPLA;負邏輯不直觀,常采取行列線加反相器或軟件求反的方法把鍵盤改成正邏輯。KS1:

鍵盤掃描子程序如下:(硬件線路如圖,8155的A口、B口、C口和控制口地址分別為7F01H、7F02H、7F03H,設(shè)8155A已在主程序中初始化。已設(shè)定為A口方式0輸出,C口的低4位方式0輸入。)KEY1:ACALLKS1 ;調(diào)用判斷有無鍵按下子程序

JNZLK1 ;有鍵按下時,(A)≠0轉(zhuǎn)消抖延時KEY2:ACALLTM6ms AJMPKEY1 ;無鍵按下返回LK1:ACALLTM12ms;調(diào)12ms延時子程序

ACALLKS1 ;查有無鍵按下,若有則真有鍵按下

JNZLK2 ;鍵(A)≠0逐列掃描

AJMPKEY2 ;不是真有鍵按下,返回LK2:MOVR2,#0FEH ;初始列掃描字(0列)送入R2 MOVR4,#00H ;初始列(0列)號送入R4LK4:MOVDPTR,#7F01H;DPTR指向8155PA口

MOVA,R2 ;列掃描字送至8155PA口

MOVX@DPTR,A INCDPTR ;DPTR指向8155PC口

INCDPTR MOVXA,@DPTR;從8155PC口讀入行狀態(tài)

JB ACC.0,LONE;查第0行無鍵按下,轉(zhuǎn)查第1行

MOVA,#00H ;第0行有鍵按下,行首鍵碼#00H→A AJMPLKP ;轉(zhuǎn)求鍵碼LONE:JBACC.1,LTWO;查第1行無鍵按下,轉(zhuǎn)查第2行

MOVA,#08H ;第1行有鍵按下,行首鍵碼#08H→A AJMPLKP ;轉(zhuǎn)求鍵碼LTWO:JBACC.2,LTHR ;查第2行無鍵按下,轉(zhuǎn)查第3行

MOVA,#10H;第2行有鍵按下,行首鍵碼#10H→A AJMPLKP ;轉(zhuǎn)求鍵碼LTHR:JBACC.3,NEXT ;查第3行無鍵按下,轉(zhuǎn)該查下一列

MOVA,#18H ;第3行有鍵按下,行首鍵碼#18H→ALKP:ADDA,R4 ;求鍵碼,鍵碼=行首鍵碼+列號

PUSHACC ;鍵碼進棧保護LK3:ACALLKS1 ;等待鍵釋放

JNZLK3 ;鍵未釋放,等待

POPACC ;鍵釋放,鍵碼→A RET ;鍵掃描結(jié)束,出口狀態(tài)(A)=鍵碼NEXT:INC R4 ;準備掃描下一列,列號加1 MOV A,R2 ;取列掃描字送累加器A JNB ACC.7,KEND;判斷8列掃描否?掃描完返回

RL A ;掃描字左移一位,變?yōu)橄乱涣袙呙枳?/p>

MOV R2,A ;掃描字送入R2保存

AJMPLK4 ;轉(zhuǎn)下一列掃描KEND:AJMPKEY1KS1:MOV DPTR,#7F01H;DPTR指向8155PA口

MOV A,#00H ;全掃描字→A MOVX@DPTR,A;全掃描字送往8155PA口

INC DPTR ;DPTR指向8155PC口

INC DPTR MOVXA,@DPTR ;讀入PC口行狀態(tài)

CPL A ;變正邏輯,以高電平表示有鍵按下

ANL A,#0FH ;屏蔽高4位,只保留低4位行線值

RET ;出口狀態(tài):(A)≠0時有鍵按下TM12ms:MOVR7,#18H;延時12ms子程序TM: MOVR6,#0FFHTM6:DJNZR6,TM6 DJNZR7,TM RETTM6ms:MOVR7,#0CH ;延時6ms子程序TM2:MOVR6,#0FFHTM62:DJNZR6,TM6 DJNZR7,TM RET2、使用8279作鍵盤接口:P207圖7.36P2.7=0時:A0=P2.0=1:命令口地址為:7FFFH;A0=P2.0=0:數(shù)據(jù)口地址為:7EFFH。(程序略)鍵碼=行首鍵號+列號(鍵號必須依次是從左至右書寫)0134567874LS156為雙2-4譯碼器/分配器3、使用中斷方式作鍵盤接口:

當有鍵按下時,INT1為低,向CPU發(fā)出中斷申請,在中斷服務程序中除完成鍵識別、鍵功能處理外,仍須有清除鍵抖動等功能。0481215913鍵碼=列首鍵號+行號(鍵號必須依次是從上至下書寫)236710111415

BUFFEQU30HKEYADR:MOVA,SBUFCJNEA,#0FH,KYARD1AJMPDIGPROKYARD1:JCDIGPROKEYTBL:MOVDPTR,#JMPTBLCLRCSUBBA,#10HRLAJMP@A+DPTRJMPTBL:AJMPAAAAJMPBBBAJMPCCCAJMPDDD

…….

下面的程序是用行掃描法進行鍵掃描的程序,其中KS1為判鍵閉合的子程序。有鍵閉合時(A)=0。DIR為數(shù)碼顯示器掃描顯示子程序,執(zhí)行一遍的時間約6ms。程序執(zhí)行后,若鍵閉合,鍵值存入A中,鍵值的計算公式是:鍵值=行號×4+列號;若無鍵閉合,則A中存入標志FFH。KEY1:LCALLKS1;檢查有無閉合鍵?JNZLK1;(A)=0,有鍵閉合則轉(zhuǎn)

LJMPLK8;無閉合鍵則返回LK1:LCALLDIR;延時12msLCALLDIR;清抖

LCALLKS1;再檢查有鍵閉合否?JNZLK2;有鍵閉合則轉(zhuǎn)

LJMPLK8;無鍵閉合則返回LK2:MOVR3,#00H;行號初值送R3MOVR2,#FEH;行掃描初值送R2LK3:MOVDPTR,#0101H;指向8155口AMOVA,R2;行掃描值送AMOVX@DOTR,A;掃描1行

INCDPTRINCDPTR;指向8155口CMOVXA,@DPTR;讀入列值

ANLA,#0FH;保留低4位

MOVR4,A;暫存列值

CJNZA,#0FH,LK4;列值非全“1”則轉(zhuǎn)

MOVA,R2;行掃描值送AJNBACC.7,LK8;掃至最后一行則轉(zhuǎn)RLA;未掃完,則移至下一行MOVR2,A;行值存入R2中INCR3;行號加1SJMPLK3;轉(zhuǎn)至掃描下一行LK4:MOVA,R3;行號送入AADDA,R3;行號×2MOVR5,AADDA,R5;行號×4MOVR5,A;存入R5中

MOVA,R4;列值送ALK5:RRCA;右移一位

JNCLK6;該位為0則轉(zhuǎn)

INCR5;列號加1SJMPLK5;列號未判完則繼續(xù)LK6:MOV20H,R5;存鍵值LK7:LCALLDIR;掃描一遍顯示器

LCALLKS1;發(fā)掃描信號

JNZLK7;鍵未釋放等待

LCALLDIR;鍵已釋放

LCALLDIR;延時12ms,清抖

MOVA,20H;鍵值存入A中KND:RETLK8:MOVA,#FFH;無鍵標志FFH存入A中

RETKS1:MOVDPTR,#0101H;判鍵子程序

MOVA,#00H;全掃描信號

MOVX@DPTR,A;發(fā)全掃描信號

INCDPTRINCDPTR;指向8155口CMOVXA,@DPTR;讀入列值

ANLA,#0FH;保留低4位

ORLA,#F0H;高4位取“1”CPLA ;取反,無鍵按下則全“0”RET9.2.2LED顯示器接口及顯示程序1.LED顯示器結(jié)構(gòu)與原理圖7段LED數(shù)碼顯示器各段碼位的對應關(guān)系如下:表十六進制數(shù)及空白與P的顯示段碼

LED顯示器有靜態(tài)顯示和動態(tài)顯示兩種方式(1)靜態(tài)顯示方式編程容易,管理也簡單,但占用I/O口線資源較多.(2)動態(tài)顯示簡化電路,因人眼的視覺暫留時間為0.1s(100ms),所以每位顯示的間隔不必超過20ms,并保持延時一段時間,以造成視覺暫留效果,給人看上去每個數(shù)碼管總在亮,這種方式稱為軟件掃描顯示.2.LED顯示器接口電路圖6位動態(tài)顯示器接口圖顯示子程序流程圖程序清單如下:DIR:MOVR0,#79H;顯示緩沖區(qū)首址送R0 MOVR3,#01H;使顯示器最右邊位亮

MOVA,R3LD0:MOVDPTR,#0101H;掃描值送PA口

MOVX@DPTR,A INCDPTR;指向PB口

MOVA,@R0;取顯示數(shù)據(jù)

ADDA,#12H;加上偏移量

MOVXA,@A+PC;取出字形

MOVX@DPTR,A;送出顯示ACALLDL1 ;延時

INCR0 ;緩沖區(qū)地址加1MOVA,R3;JBACC.5,LD1 ;掃到第6個顯示位了嗎?

RLA ;沒有,R3左環(huán)移一位,掃描下一個顯示位

MOVR3,AAJMPLD0LD1:RETDSEG:DB3FH,06H,5BH,4FH,66H,6DH;顯示段碼表DSEG1:DB7DH,07H,7FH,6FH,77H,7CHDSEG2:DB39H,5EH,79H,71H,73H,3EHDSEG3:DB31H,61H,1CH,23H,40H,03HDSEG4:DB18H,00H,00H,00HDL1:MOVR7,#02H[DW];延時子程序DL:MOVR6,#0FFHDL6:DJNZR6,DL6DJNZR7,DLRET

9.2.3串行口控制的鍵盤/LED顯示器接口電路

見P/2457.4.3鍵盤顯示器接口82791.8279的組成及引腳

8279芯片有40條引腳,由單一+5V電源供電。它主要由以下幾部分組成:(1)I/O控制和數(shù)據(jù)緩沖器;(2)控制和定時寄存器及定時控制部分;(3)掃描計數(shù)器;(4)回送緩沖器與鍵盤去抖動控制電路;(5)FIFO(先進后出)寄存器和狀態(tài)電路;(6)顯示器地址寄存器及顯示RAM。圖8279的引腳圖2.8279的接口電路與應用圖9.318031與8279接口連接框圖

9.3A/D轉(zhuǎn)換器及接口技術(shù)

9.4D/A轉(zhuǎn)換器及接口技術(shù)

9.3A/D轉(zhuǎn)換器接口

1.概述

A/D轉(zhuǎn)換器用以實現(xiàn)模擬量向數(shù)字量的轉(zhuǎn)換。按轉(zhuǎn)換原理可分為4種:計數(shù)式、雙積分式、逐次逼近式以及并行式A/D轉(zhuǎn)換器。逐次逼近式A/D轉(zhuǎn)換器是一種速度較快,精度較高的轉(zhuǎn)換器,其轉(zhuǎn)換時間大約在幾微秒到幾百微秒之間。常用的這種芯片有:(1)ADC0801~ADC0805型8位MOS型A/D轉(zhuǎn)換器;(2)ADC0808/0809型8位MOS型A/D轉(zhuǎn)換器;(3)ADC0816/0817型8位MOS型A/D轉(zhuǎn)換器;量化間隔和量化誤差是A/D轉(zhuǎn)換器的主要技術(shù)指標之一。量化間隔由下式計算:

其中n為A/D轉(zhuǎn)換器的位數(shù)。量化誤差有兩種表示方法:一種是絕對量化誤差;另一種是相對量化誤差。絕對量化誤差相對量化誤差逐次比較型A/D轉(zhuǎn)換器原理圖:

2.典型A/D轉(zhuǎn)換器芯片ADC0809簡介ADC0809是采用CMOS工藝制造的雙列直插式單片8位A/D轉(zhuǎn)換器。分辨率8位,精度7位,帶8個模擬量輸入通道,有通道地址譯碼鎖存器,輸出帶三態(tài)數(shù)據(jù)鎖存器。啟動信號為脈沖啟動方式,最大可調(diào)節(jié)誤差為±1LSB,ADC0809內(nèi)部沒有時鐘電路,故CLK時鐘需由外部輸入,fclk允許范圍為500kHz~1MHz,典型值為640kHz。每通道的轉(zhuǎn)換需66~73個時鐘脈沖,大約100~110μs。工作溫度范圍為-40℃~+85℃。功耗為15mW,輸入電壓范圍為0~5V,單一+5V電源供電。它可以直接與Z80、8085、8080、8031等CPU相連,也可以獨立使用。圖ADC0809的內(nèi)部結(jié)構(gòu)圖9.33ADC0809引腳圖表9.9地址碼與輸入通道的對應關(guān)系圖9.34ADC0809時序圖3.ADC0809與8031的中斷方式接口電路圖9.36ADC0809中斷方式硬件接口

這里將ADC0809作為一個外部擴展的并行I/O口,直接由8031的P2.0和WR脈沖進行啟動。因而其端口地址為0FEFFH。用中斷方式讀取轉(zhuǎn)換結(jié)果的數(shù)字量,模擬量輸入通道選擇端ADDA、ADDB、ADDC分別與8031的P0.0、P0.1、P0.2直接相連,CLK由8031的ALE提供。啟動數(shù)據(jù)轉(zhuǎn)換:例如選中0通道C、B、A為000,

MOVDPTR,#0FEFFH;端口地址送DPTRMOVA,#00H;選擇0通道輸入

MOVX@DPTR,A;啟動輸入轉(zhuǎn)換數(shù)據(jù)的傳送:MOVDPTR,#0FEF8H;端口地址送DPTRMOVXA,@DPTR;讀取IN0的轉(zhuǎn)換結(jié)果4.“轉(zhuǎn)換數(shù)據(jù)傳送”的時機(1)定時傳送方式(AD0809轉(zhuǎn)換時間為128US)(2)查詢方式(3)中斷方式

(1)定時傳送方式用定時傳送方式,對8個通道的模擬量逐個進行A/D轉(zhuǎn)換.MAIN:MOVR1,#dataMOVDPTR,#7FF8HMOVR7,#08HMOVR2,#00HLOOP:MOVA,R2MOVX@DPTR,ALCALLDELAYMOVXA,@DPTRMOV@R1,AINCDPTRINCR1INCR2DJNZR7,LOOPRETDELAY:…..;延時128us

MAIN:MOVR1,#dataMOVDPTR,#7FF8HMOVR7,#08HMOVR2,#00HLOOP:MOVA,R2MOVX@DPTR,AHERE:JNBP1.0,$MOVXA,@DPTRMOV@R1,AINCDPTRINCR1INCR2DJNZR7,LOOPRET

(2)查詢方式(EOC與單片機的P1.0連接)ORG0000HAJMPINADC

ORG1000HINADC:SETBIT1;INT1設(shè)為邊沿觸發(fā)

SETBEA;開中斷INT1SETBEX1

MOVDPTR,#0FEF8H;端口地址送DPTRMOVA,#00H;選擇0通道輸入MOVX@DPTR,A;啟動輸入

HERE:SJMPHERE(3)中斷方式

ORG0013HAJMPPINT1PINT1:…MOVDPTR,#0FEF8H;端口地址送DPTRMOVXA,@DPTR;讀取IN0的轉(zhuǎn)換結(jié)果

MOV50H,A;存入50H單元

MOVA,#00HMOV

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論