第10章接口0608_第1頁
第10章接口0608_第2頁
第10章接口0608_第3頁
第10章接口0608_第4頁
第10章接口0608_第5頁
已閱讀5頁,還剩58頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第第1010章章 接口技術(shù)接口技術(shù) 教學(xué)目的:了解80C51系列單片機(jī)與鍵盤、顯示器、模數(shù)、數(shù)模轉(zhuǎn)換器等外設(shè)連接的技術(shù)。教學(xué)重點(diǎn): 1.鍵盤接口的工作原理及應(yīng)用; 2.LED顯示器接口的工作原理及應(yīng)用。 教學(xué)難點(diǎn): 1 . 液晶顯示器的原理及應(yīng)用 2 . 串行A/D、D/A的工作原理及應(yīng)用。 10.1鍵盤接口 鍵盤電路的設(shè)計(jì)應(yīng)使CPU不僅能識(shí)別是否有鍵按下,還要能識(shí)別是哪一個(gè)鍵按下,而且能把此鍵所代表的信息翻譯成計(jì)算機(jī)所能接收的形式 。在單片機(jī)應(yīng)用系統(tǒng)中多采用非編碼鍵盤,其分為獨(dú)立式鍵盤和矩陣式鍵盤,硬件上此類鍵盤只提供通、斷兩種狀態(tài),其它工作都靠軟件來完成。 10.1.1 鍵盤工作原理1鍵輸

2、入原理2鍵輸入接口與軟件應(yīng)解決的問題(l)鍵開關(guān)狀態(tài)的可靠輸入 圖10-1鍵閉合及斷開時(shí)的電壓波動(dòng) 通常去抖動(dòng)影響的方法有硬、軟件兩種。通常去抖動(dòng)影響的方法有硬、軟件兩種。(2 2)對按鍵進(jìn)行編碼以給定鍵值或直接給出鍵號(hào))對按鍵進(jìn)行編碼以給定鍵值或直接給出鍵號(hào) 監(jiān)測有無鍵按下; 有鍵按下后,在無硬件去抖動(dòng)電路時(shí),應(yīng)用 軟件延時(shí)方法除去抖動(dòng)影響; 有可靠的邏輯處理辦法; 輸出確定的鍵號(hào)以滿足散轉(zhuǎn)指令要求。 10.1.2 獨(dú)立式按鍵 1 1獨(dú)立式按鍵結(jié)構(gòu)獨(dú)立式按鍵結(jié)構(gòu) 圖10-2獨(dú)立式按鍵電路 2獨(dú)立式按鍵的軟件編制 START: MOV A,0FFH ;置輸入方式 MOV P1,AL1: MOV

3、 A,P1 ;輸入鍵狀態(tài) CJNE A,#0FFH, L3 ;有鍵按下轉(zhuǎn)L3 LCALL DELAY ;延時(shí)5mS,省略 SJMP L1L3: LCALL DELLAY ;延時(shí)5mS LCALL DELLAY;延時(shí)5mS MOV A,P1 ;再讀P1口 CJNE A,#0FFH ,L2 ;確實(shí)有鍵按下轉(zhuǎn)L2 SJMP L1 ;誤讀鍵,返回L2: JNB ACC.0,TAB0;為0轉(zhuǎn)0號(hào)鍵首地址 JNB ACC.1,TAB1 ;為1轉(zhuǎn)1號(hào)鍵首地址 . SJMP L1 ;再次讀入鍵狀態(tài)TAB0: LJMP OPR0 ;轉(zhuǎn)向0號(hào)鍵功能程序TAB1: LJMP OPR1 10.1.3 10.1.3 行

4、列式鍵盤行列式鍵盤1行列式鍵盤電路的結(jié)構(gòu)及原理 圖10-3 單片機(jī)IO口組成的行列式鍵盤 2鍵盤的工作方式 (l)循環(huán)掃描方式鍵盤掃描程序一般應(yīng)具備下述幾個(gè)功能: 判斷鍵盤上有無鍵按下;去除鍵的抖動(dòng)影響;掃描鍵盤,得到按下鍵的鍵號(hào);判別閉合的鍵是否釋放。圖10-3中32個(gè)鍵的鍵值從左上角的數(shù)字“0”鍵開始對應(yīng)為如下分布 : 00H,01H, 02H, 03H, 04H, 05H, 06H, 07H 08H,09H, 0AH, 0BH, 0CH, 0DH, 0EH, 0FH 10H,11H, 12H, 13H, 14H, 15H, 16H, 17H 18H,19H, 1AH, 1BH, 1CH,

5、 1DH, 1EH, 1FH 行線P2.0P2.3處于輸入狀態(tài),列線P1.0P1.7為輸出狀態(tài)。按鍵設(shè)置在行、列線交點(diǎn)上,當(dāng)某個(gè)鍵閉合時(shí),則對應(yīng)的行線和列線短路,行線輸入即為列線輸出。獲取這32個(gè)鍵值時(shí),P1口和P2口輸出與輸入的相應(yīng)值為如下分布 : 0 1 2 3 4 5 6 7 0 FEE FDE FBE F7E EFE DFE BFE 7FE8 FED FDD FBD F7D EFD DFD BFD 7FD 10 FEB FDB FBB F7B EFB DFB BFB 7FB 18 FE7 FD7 FB7 F77 EF7 DF7 BF7 7F7 由以上分布可以總結(jié)出: 閉合鍵的鍵碼值行首

6、鍵號(hào)列號(hào)例如,當(dāng)P1口的輸出為F7H(11110111B),即其第3列有輸出,讀出P2口低4位的值為0DH(1101B),說明是第1行與第3列相交的鍵閉合,則鍵號(hào)8311。 讀鍵盤程序如下: KEY: LCALL KS;調(diào)用KS判別有鍵按下嗎? JNZ K1;有鍵按下轉(zhuǎn)移 LCALL DELAY ;無鍵按下,調(diào)延時(shí)子程序 LJMP KEY K1:LCALL DELAY ;加長延時(shí)時(shí)間,消除鍵抖動(dòng) LCALL DELAY LCALL KS ;調(diào)用KS子程序再次判別有無鍵閉合 JNZ K2 ;鍵按下,轉(zhuǎn)逐列掃描 LJMP KEY ;誤讀鍵,返回 K2: MOV R2,0FEH ;首列掃描字送R2

7、MOV R4,00H ;首列號(hào)送R4 K3: MOV A,R2 MOV P1,A ;列掃描字送P1口 MOV A,P2 ;讀取行掃描值 JB ACC.0,L1;第0行無鍵按下,轉(zhuǎn)查第1行 MOV A,00H;第0行有鍵按下,該行的行首鍵號(hào)0H送A LJMP LK ;轉(zhuǎn)求鍵號(hào)L1: JB ACC.1,L2 ;第1行無鍵按下,轉(zhuǎn)查第2行MOV A,08H ;第1行有鍵按下,該行行首鍵號(hào)08H送A LJMP LK ;轉(zhuǎn)求鍵號(hào)L2: JB ACC.2,L3 ;第2行無鍵按下,轉(zhuǎn)查第3行MOV A,#l0H ;第2行有鍵按下,該行的行首鍵號(hào) l0H送A LJMP LK ;轉(zhuǎn)求鍵號(hào)L3: JB ACC.3

8、,NEXT ;第3行無鍵按下,改查下一列 MOV A,18H ;第3行有鍵按下,該行的行首鍵號(hào) ;l8H送ALK: ADD A,R4 ;形成鍵碼送入A PUSH ACC ;鍵碼入棧保護(hù)K4: LCALL DELAY LCALL KS ;等待鍵釋放 JNZ K4 ;未釋放,等待 POP ACC ;鍵釋放,彈棧送ACC RET ;鍵掃描結(jié)束,返回 NEXT : INC R4 ;修改列號(hào),指向下一列 MOV A,R2 JNB ACC.7,KEY ;第7位為0,已掃描完最高列轉(zhuǎn)KEY RL A ;未掃描完,掃描字左移一 位,變?yōu)橄铝袙呙枳?MOV R2,A;掃描字暫存R2 LJMP K3 ;轉(zhuǎn)下列掃描

9、 KS: MOV A,0 MOV P1, A;全掃描字00H送P1口 MOV A,P2 ;讀入P2口行狀態(tài) CPL A ;變正邏輯,以高電平表示有鍵按下 ANL A,0FH ;屏蔽高4位 RET ;出口狀態(tài):A0時(shí)有鍵按下 (2)中斷工作方式 采用中斷掃描工作方式可提高CPU的工作效率 。一種簡易鍵盤接口如圖10-5所示。 圖10-5 中斷方式鍵盤電路 線路反轉(zhuǎn)程序如下:ORG 0000HLJMP STARTORG 0003LJMP FZH ;轉(zhuǎn)讀鍵值程序ORG 0030H START:MOV SP,#50H MOV P1,#0FHMOV IE,#81H ;CPU和T0開中斷 SJMP $OR

10、G 0080H ;讀鍵值中斷程序 FZH :SETB RS0 ;選擇第1組工作寄存器 MOV P1,#0F0H ;設(shè)P1.0P1.3輸出0MOV A,P1 ;讀P1口ANL A,#0F0H ;屏蔽低4位,保留高4位MOV B,A ;P1.4P1.7的值存B MOV P1,#0FH ;反轉(zhuǎn)設(shè)置,設(shè)P1.4P1.7輸出0 MOV A,P1ANL A,#0FH ;屏蔽高4位,保留低4位ORL A,B ;與P1.4P1.7的值相或,形成鍵碼MOV B,AMOV R0,#00H ;置鍵號(hào)初值MOV DPTR, #TAB;LOOP: MOV A,R0MOVC A,A+DPTR ;取鍵碼值CJNE A,B,

11、NEXT2 ;與按鍵值相比較,不相等,繼續(xù)SJMP RR0 ;相等返回,鍵碼值在A中NEXT2: INC R0 ;鍵值加1CJNE R0,#10H,LOOP ;是否到最后一個(gè)鍵RR0: CLR RS0 ;恢復(fù)第0組工作寄存器 RETI TAB: DB 0EEH,0EDH,0EBH,0E7H ;0,1,2,3的鍵碼值DB 0DEH,0DDH,0DBH,0D7H ;4,5,6,7的鍵碼值DB 0BEH,0BDH,0BBH,0B7H ;8,9,10,11的鍵碼值DB 07EH,07DH,07BH,077H ;12,13,14,15的鍵碼值10.2 顯示器接口 10.2.1 LED10.2.1 LED

12、顯示器的結(jié)構(gòu)與原理顯示器的結(jié)構(gòu)與原理圖10-6 “8”字型數(shù)碼管10.2.2 LED靜態(tài)顯示方式 圖10-7 靜態(tài)顯示電路 顯示子程序如下: 功能:把數(shù)據(jù)從顯示緩沖區(qū)送到數(shù)碼管。 入口:要顯示的數(shù)放在以DIS0為首的8個(gè)單元中。 出口:把預(yù)置的數(shù)輸出以更新原有的顯示。 DIR: SETB RS0 ;保護(hù)第0組工作寄存器 PUSH ACC ;保護(hù)現(xiàn)場 PUSH DPH PUSH DPL MOV R2,08H ;顯示8個(gè)數(shù)碼管 MOV R0,DIS7 ;顯示緩沖區(qū)末地址送入R0 DL0:MOV A,R0 ;取要顯示的數(shù)作查表偏移量 MOV DPTR,TAB ;指向字形表首 MOVC A,ADPTR

13、 ;查表得字形碼 MOV SBUF,A ;發(fā)送顯示 DL1: JNB TI,DL1 ;等待發(fā)送完一幀 CLR TI ;清中斷標(biāo)志,準(zhǔn)備繼續(xù)發(fā)送 DEC RO;更新顯示單元 DJNZ R2,DL0 ;重復(fù)顯示所有數(shù)碼管 CLR RS0 ;恢復(fù)使用第0組工作寄存器 POP DPL ;恢復(fù)現(xiàn)場 POP DPH POP ACC RET TAB:DB 0COH,0F9H,0A4H,0BOH,99H ;0,1,2,3,4 DB 92H,82H,0F8H,80H,90H ;5,6,7,8,9 DB 88H,83H,0C6H,0A1H,86H ;A,B,C,D,E DB 8EH,0BFH,8CH,0FFH ;

14、F,P,暗10.2.3 LED動(dòng)態(tài)顯示方式 圖 10-8 掃描式顯示電路 這種工作方式是分時(shí)輪流選通數(shù)碼管的公共端,使得各個(gè)數(shù)碼管輪流導(dǎo)通,即各數(shù)碼管是由脈沖電流導(dǎo)電的(循環(huán)掃描一次的時(shí)間一般為10ms)。當(dāng)所有數(shù)碼管依次顯示一遍后,軟件控制循環(huán),使每位顯示器分時(shí)點(diǎn)亮。例如,如果要顯示“123DEF”時(shí),位選碼、段選碼掃描一遍的相應(yīng)顯示狀態(tài)如表10-2所示。 本段程序中,設(shè)CWR為8255控制口地址,POA為A口地址,POC為C口地址。DIS0DIS5是片外顯示緩沖區(qū),共6個(gè)單元對應(yīng)6個(gè)數(shù)碼管。 程序清單如下:MOD: PUSH ACC ;保護(hù)現(xiàn)場 PUSH DPH PUSH DPL MOV

15、R0,CWR;指向8255控制口 MOV A,82H ;設(shè)置8255工作方式字 MOVX R0,A ;設(shè)A口、C口為基本輸出方式DIR:MOV R0,DIS5;指向顯示緩沖區(qū)首單元 MOV R6,20H;選中最左數(shù)碼管 MOV R7,00H;設(shè)定顯示時(shí)間 MOV DPTR,TAB;指向字形表首地址DIR1: MOV A,00H MOV R1,POC ;指向8255C口(位選口) MOVX R1,A ;關(guān)斷顯示 MOVX A,R0 ;取要顯示的數(shù) MOVC A,ADPTR ;查表得字形碼。 MOV R1,POA ;指向8255 A口(字形口) MOVX R1,A ;送字形碼 MOV A,R6 ;

16、取位選字 MOV R1,POC ;指向位選口 MOV R1,A ;送位選字 HERE: DJNZ R7,HERE ;延時(shí) INC R0 ;更新顯示緩沖單元 CLR C MOV A,R6 RRC A ;位選字右移 MOV R6,A JNC DIR1 ;未掃描完繼續(xù)循環(huán) POP DPL ;恢復(fù)現(xiàn)場 POP DPH POP ACC RET TAB:DB 3FH,06,5BH,4FH,66H,6DH,7DH,07 ;07 DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H ;80FH10102 24 4 液晶顯示器概述液晶顯示器概述 1段碼型液晶模塊 2點(diǎn)陣字符液晶模塊 3點(diǎn)陣圖形液

17、晶模塊 本節(jié)將介紹一種較容易學(xué)習(xí),使用也較廣泛的字符型液晶顯示模塊LCM。 10102 25 5 字符型液晶顯示模塊字符型液晶顯示模塊LCMLCM的組成及原理的組成及原理 與指令控制有關(guān)的主要部件如下: 1. 地址指針計(jì)數(shù)器AC : AC是顯示數(shù)據(jù)寄存器DDRAM和字符發(fā)生器CGRAM共同的地址指針計(jì)數(shù)器。 2. DDRAM顯示數(shù)據(jù)存儲(chǔ)器 存放LCD當(dāng)前要顯示的數(shù)據(jù) 。 3. CGROM字符產(chǎn)生器ROM CGROM字符產(chǎn)生器的ROM中存放已經(jīng)固化好的字符庫 。 4. CGRAM字符產(chǎn)生器RAM CGRAM字符產(chǎn)生器的RAM可存放8個(gè)用戶設(shè)計(jì)的58點(diǎn)陣圖型 。 5. 忙碌標(biāo)志觸發(fā)器BF BF指示

18、LCD是否正在作內(nèi)部處理工作,在寫指令前,必須先檢查BF標(biāo)志 。 10102 26 6 液晶顯示模塊液晶顯示模塊LCMLCM引腳及說明10102 27 LCM7 LCM的指令的指令 表105 LCM指令一覽表指令名稱 控制信號(hào) 控制代碼 RS R/W D7 D6 D5 D4 D3 D2 D1 D0清除屏幕 0 0 0 0 0 0 0 0 0 1歸位 0 0 0 0 0 0 0 0 1 *輸入方式 0 0 0 0 0 0 0 1 I/D S 顯示狀態(tài) 0 0 0 0 0 0 1 D C B 光標(biāo)/畫面移位 0 0 0 0 0 1 S/C R/L * * 工作方式 0 0 0 0 1 DL N F

19、 * * CGRAM地址設(shè)置 0 0 0 1 A5 A4 A3 A2 A1 A0 DDRAM地址設(shè)置 0 0 1 A6 A5 A4 A3 A2 A1 A0 標(biāo)志/地址計(jì)數(shù)器 0 1 BF A6 A5 A4 A3 A2 A1 A0 寫數(shù)據(jù) 1 0 數(shù)據(jù) 讀數(shù)據(jù) 1 1 數(shù)據(jù) 10102 28 LCM8 LCM的復(fù)位及初始化的復(fù)位及初始化根據(jù)LCM的時(shí)間要求和各指令的功能,使用LCM的一般操作步驟如下:1.寫入指令代碼30H或38H;2.延時(shí)4.1ms;3.寫入指令代碼30H或38H;4.延時(shí)100S;5.寫入指令代碼30H或38H:6.讀取BF標(biāo)志位,如果為1則等待,為0執(zhí)行下一條指令;7.執(zhí)行

20、功能初始化指令,通常為如下幾步:工作方式設(shè)置指令,0011NFxx;關(guān)顯示器指令,08;清除顯示,01;設(shè)定輸入方式,000001I/D S;顯示允許/禁止指令,00001DCB。10102 29 LCM9 LCM的接口及應(yīng)用舉例的接口及應(yīng)用舉例 以AT89S51單片機(jī)為主機(jī),實(shí)現(xiàn)與字符型LCM的接口,編程顯示2行字母數(shù)字,第一行顯示“ WELCOME TO”,第二行顯示“ OUR UNIVERSITY”。此例中的LCM為202顯示模塊。主機(jī)頻率為6MHz,接口電路如圖1012所示。要求設(shè)定為2行顯示,8位數(shù)據(jù)長度,57點(diǎn)陣字型。 圖1012 接口電路原理圖 圖1012 接口電路原理圖 編程如

21、下。 RS BIT P2.0 ;寄存器選擇信號(hào) R/W BIT P2.1 ;讀寫選擇信號(hào) E BIT P2.2 ;使能控制 ORG 0000H LJMP MAIN ORG 60H MAIN: MOV SP,#60H ;設(shè)堆棧指針 LCALL INIT ;調(diào)LCM初始化程序 LCALL FIRST ;調(diào)設(shè)定顯示地址為第一行第一個(gè)位 置的子程序 MOV DPTR,#TAB1 ;設(shè)置第一行字符的首地址指針 LCALL DISPLAY ;調(diào)用顯示字符程序 LCALL SECOND ;調(diào)設(shè)定顯示地址為第二行第一個(gè)位置的子程序 MOV DPTR,#TAB2 ;設(shè)置第二行字符的首地址指針 LCALL DIS

22、PLAY ;調(diào)用顯示字符程序 SJMP $;LCM初始化程序INIT: LCALL DELAY1 ;調(diào)延時(shí)5ms子程序,省略LCALL DELAY1MOV A,#30H MOV P2,#11111000B ;E、RS、R/W為0NOPSETB E ;E為高M(jìn)OV P0,A ;寫入指令代碼 CLR E ;E為低LCALL DELAY1 ;延時(shí)5ms子程序,省略MOV A,#30HMOV P2,#11111000B ;E、RS、R/W為0NOPSETB E ;E為高M(jìn)OV P0,A ;寫入指令代碼 CLR E ;E為低LCALL DELAY2 ;延時(shí)120s子程序,省略MOV A,#30HMOV

23、P2,#11111000B ;E、RS、R/W為0NOP SETB E ;E為高 MOV P0,A ;寫指令 CLR E ;E為低 LCALL DELAY2 ;延時(shí)120s MOV A,#38H ;功能設(shè)置為2行顯示,8位接口,57點(diǎn)陣 MOV P2 ,#11111000B ;E、RS、R/W為0 NOP SETB E ;E為高 MOV P0,A ;寫入指令代碼 CLR E ;E為低 LCALL DELAY2 ;延時(shí)120s子程序,省略 MOV A, #8H ;關(guān)LCD ACALL WRC ;判讀BF和寫命令 MOV A, #01H ;清除顯示 ACALL WRC MOV A, #06H ;設(shè)

24、置輸入方式為AC為加1計(jì)數(shù)器,光標(biāo)右移 ACALL WRC MOV A, #0CH ;設(shè)置顯示狀態(tài)為開顯示,不顯示光標(biāo),不閃爍 ACALL WRC RET ;判讀BF和寫命令 WRC : ACALL BUSY ;調(diào)判讀BF子程序 MOV P2,#11111000B ;E、RS、R/W為0,準(zhǔn)備寫 NOP SETB E ;E為高 MOV P0, A ;寫入指令代碼 CLR E ;E為低 RET BUSY: PUSH ACC W: MOV P2, #11111010B ; RS=0,R/W=1,E=0,準(zhǔn)備讀數(shù)據(jù) NOPSETB EMOV A , P0 ;讀BF和AC值 JB ACC.7, W ;

25、 BF不為0,等待CLR E POP ACC RET ;寫顯示數(shù)據(jù)子程序 WRTD: ACALL BUSY MOV P2 , #11111100B ; RS=1,R/W=0,E=0,準(zhǔn)備寫數(shù)據(jù) SETB E MOV P0 , A CLR E LCALL DELAY2 RET;顯示字符程序 DISPLAY : MOV R1,#00NEXT: MOV A,R1 MOVC A,A+DPTR ;將DPTR所指的字符碼逐一送到LCD顯示 CJNE A,#21H,DSL ;到結(jié)束符“!”返回,否則繼續(xù)顯示 RETDSL: LCALL WRTD ;調(diào)顯示數(shù)據(jù)子程序 INC R1 SJMP NEXT FIRS

26、T:MOV A,#10000000B ;DDRAM的地址設(shè)為80H,即要顯示的字符從第一行的第一個(gè)位置開始LCALL WRCRET SECOND:MOV A,#11000000B;DDRAM的地址設(shè)為C0H,即要顯示的字符從第二行的第一個(gè)位置開始LCALL WRCRET TAB1:DB “ WELCOME TO ”;LCD第1行顯示的字符串 DB “!” ;結(jié)束碼為“!” TAB2: DB “ OUR UNIVERSITY” ;LCD第2行顯示的字符串 DB “!” ;結(jié)束碼為“!” END10.310.3數(shù)模轉(zhuǎn)換接口數(shù)模轉(zhuǎn)換接口 10.3.1 DAC電路原理 圖10-13 T形電阻網(wǎng)絡(luò)D/A

27、轉(zhuǎn)換原理圖10.3.2 D10.3.2 DA A轉(zhuǎn)換器的主要技術(shù)指標(biāo)轉(zhuǎn)換器的主要技術(shù)指標(biāo) 1DA建立時(shí)間(Setting Time) 2DA轉(zhuǎn)換精度(Accuracy) 3分辨率(Resolution)10.3.3 10.3.3 并行并行D DA A轉(zhuǎn)換器轉(zhuǎn)換器 1DAC0832的引腳功能圖10-14 DAC0832引腳圖2DAC0832的原理結(jié)構(gòu) 圖10-15 DAC0832原理結(jié)構(gòu)框圖3DAC0832的應(yīng)用 圖10-16 0832按單緩沖方式與89S51連接圖 根據(jù)圖10-16的電路,可以編出多種波形輸出的DA轉(zhuǎn)換程序,例如要得到圖10-17的4種波形,則程序如下:圖 10-17 D/A轉(zhuǎn)

28、換器輸出的各種波形 鋸齒波 START: MOV DPTR,#7FFFH;選中DAC0832 MOV A,00H LP: MOVX DPTR,A ;向0832輸出數(shù)據(jù) INC A ;累加器值加1 SJMP LP 三角波 START: MOV DPTR,7FFFH ;選中DAC0832 MOV A,00H UP : MOVX DPTR,A INC A JNZ UP ;上升到A中為FFH DEC A DOWN :DEC A MOVX DPTR,A JNZ DOWN ;下降到A中為00H INC A SJMP UP;重復(fù) 矩形波 START: MOV DPTR,7FFFH LP: MOV A,dat

29、aH ;置輸出矩形波上限 MOVX DPTR,A LCALL DELH ;調(diào)高電平延時(shí)程序,省略 MOV A,dataL ;置輸出矩形波下限 MOVX DPTR,A LCALL DELL ;調(diào)低電平延時(shí)程序,省略 SJMP LP ;重復(fù) SJMP L2 梯形波 START: MOV DPTR,7FFFH L1 : MOV A,dataL ;下限送A UP: INC A MOVX DPTR,A CJNE A,#dataH,L3 ;與上限比較 L3: JC UP DOWN :LCALL DEL ;調(diào)上限延時(shí)程序,省略 L2 : DEC A MOVX DPTR,A CJNE A,#dataL,L4;

30、與下限比較 L4: JC L1 SJMP L210.3.4 10.3.4 串行串行D/AD/A轉(zhuǎn)換器轉(zhuǎn)換器1.TLC5620的引腳功能 圖10-19 TLC5620的引腳圖2.TCL5620的結(jié)構(gòu)與工作原理TLC5620有4路結(jié)構(gòu)完全相同的8位電壓輸出數(shù)模轉(zhuǎn)換器,每一路的原理框圖與DAC0832類似 。它的11位串行數(shù)據(jù)包括8位數(shù)據(jù)、2個(gè)DAC通道選擇位、1個(gè)輸出增益選擇位。 TLC5620輸出電壓VOUT的計(jì)算公式如下: (|)(1)256OUTrefCODEVDACA B C DVRNG3TLC5620的時(shí)序圖10-22 TLC5620工作時(shí)序圖 圖10-19 TLC5620工作時(shí)序圖 4

31、應(yīng)用實(shí)例利用TLC5620進(jìn)行D/A轉(zhuǎn)換,在A、B通道分別產(chǎn)生三角波和方波,該方波與三角波幅度相等、周期相同。例題連線圖如圖10-20所示 。 圖10-20 TLC5620與單片機(jī)接口原理圖 SCLA BIT P1.7 ;時(shí)鐘線 SDAA BIT P1.6 ;數(shù)據(jù)線 SAN BIT 10H ;三角波升、降標(biāo)志位,為0時(shí)表示下降 FAN BIT 11H ;方波高、低電平標(biāo)志位,為0時(shí)表示低電平 LOAD BIT P3.5 ;數(shù)據(jù)控制線 LDAC BIT P3.4 ;DAC更新控制線 VOUTA DATA 30H ;A通道數(shù)據(jù)暫存單元 VOUTB DATA 31H ;B通道數(shù)據(jù)暫存單元 ORG 0

32、000H AJMP MAIN ORG 0100H MAIN: MOV SP,#60H NOP CLR SCLA CLR SDAA SETB LOAD SETB LDAC MOV R3,#0A2H ;三角波的半周期計(jì)數(shù)器 CLR SAN ;三角波幅度遞增遞減標(biāo)志位,初始化為0 時(shí),表示下降 MOV VOUTA,#00H ;三角波瞬態(tài)電壓值存儲(chǔ)器 MOV R5,#0A2H ;方波的半周期計(jì)數(shù)器 CLR FAN ;方電平標(biāo)志位, 初始化為0,表示低電平 MOV VOUTB,#00H ;方波高低電平電壓值存儲(chǔ)器,其幅度與三角波幅度相等 DACHANG: ;D/A轉(zhuǎn)換程序開始 MOV R1,#01H ;

33、選擇通道A輸出(三角波),2倍增益 MOV R2,VOUTA LCALL DAC5620 ;調(diào)用D/A轉(zhuǎn)換子程序 DJNZ R3,CONTINUEA ;判斷三角波是否上升(或下降)到峰點(diǎn)(或谷點(diǎn)) MOV R3,#0A2H CPL SAN ;如果已經(jīng)達(dá)到峰點(diǎn)(或谷點(diǎn))則改變幅度遞增或遞減標(biāo)志 CONTINUEA: JB SAN,CONTINUEB ;判斷當(dāng)前處于上升還是下降狀態(tài) DEC R2 SJMP CONTINUEC CONTINUEB: INC R2 CONTINUEC: MOV VOUTA,R2 ;保存R2的值 MOV R1,#03H ;選擇通道B輸出(方波),2倍增益 MOV R2,

34、VOUTB LCALL DAC5620 DJNZ R5,CONTINUED ;判斷方波是否應(yīng)該改變電平狀態(tài) MOV R5,#0A2H CPL FAN ; 改變方波電平標(biāo)志位 CONTINUED: JB FAN,CONTINUEE ;根據(jù)方波高低電平標(biāo)志位決定輸出狀態(tài) DEC R2 SJMP CONTINUEF CONTINUEE: INC R2 MOV R2,#00H CONTINUEF:MOV VOUTB,R2 ;保存R2的值使VOUTB繼續(xù)用于方波瞬態(tài)電壓計(jì)算 LJMP DACHANG ;周期地進(jìn)行轉(zhuǎn)換,形成三角波和方波的周期信號(hào) ;D/A轉(zhuǎn)換子程序 入口:R1,控制字;R2,數(shù)據(jù)字 DAC5620: MOV A,R1 ;準(zhǔn)備發(fā)控制字 CLR SCLA LCALL SENDBYTE MOV A,R2 ;準(zhǔn)備發(fā)數(shù)據(jù)字 CLR SCLA LCALL SENDBYTE CLR LOAD SETB LOAD CLR LDAC SETB LDAC RET SENDBYTE: ;發(fā)送時(shí)序要求中的一個(gè)字節(jié) MOV R7,#08 SEND: SETB SCLA RLC A MOV SDAA,C CLR SCLA DJNZ R7,SEND RET 10.4 10.4 模數(shù)轉(zhuǎn)換器模數(shù)轉(zhuǎn)換器 10.4.1 模/數(shù)轉(zhuǎn)換的主要技術(shù)指標(biāo) 1轉(zhuǎn)換時(shí)間和轉(zhuǎn)換頻率 2量化誤

溫馨提示

  • 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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論