版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第六部分單片機(jī)接口電路設(shè)計(jì)26.1項(xiàng)目一:220V控制電路由于單片機(jī)是3.3V~5V供電系統(tǒng),生活中經(jīng)常要用單片機(jī)控制更高電壓(12V、220V、380V等)的器件如:電燈、電機(jī)、熱水器等。這時(shí)要有相應(yīng)電路做隔離如:繼電器、可控硅等。6.1.1繼電器控制電路圖6.1.1為繼電器控制電路。當(dāng)P3.0輸出低電平時(shí),PNP三極管導(dǎo)通,繼電器的繼圈吸合(常開點(diǎn)閉合);當(dāng)P3.0輸出高電平時(shí),PNP三極管截止,繼電器斷開(常開點(diǎn)斷開)。當(dāng)繼電器吸合或繼開瞬間,在繼電器線圈兩端會(huì)產(chǎn)生高于+5V的感應(yīng)電壓疊加在PNP的E極,可能會(huì)燒壞PNP三極管,在繼電器線圈兩端并一個(gè)1N4007續(xù)流二極管(產(chǎn)生的感應(yīng)電流將會(huì)通過1N4007流向+5V電源)用于保護(hù)PNP三極管。(Proteus庫中的元件名:繼電器:OZ-SH-105D;電燈:LAMP;二極管:1N4007;220V電源:VSINE(220V,1HZ))。36.1項(xiàng)目一:220V控制電路由于單片機(jī)是3.3V~5V供電系統(tǒng),生活中經(jīng)常要用單片機(jī)控制更高電壓(12V、220V、380V等)的器件如:電燈、電機(jī)、熱水器等。這時(shí)要有相應(yīng)電路做隔離如:繼電器、可控硅等。6.1.1繼電器控制電路圖6.1.1為繼電器控制電路。當(dāng)P3.0輸出低電平時(shí),PNP三極管導(dǎo)通,繼電器的繼圈吸合(常開點(diǎn)閉合);當(dāng)P3.0輸出高電平時(shí),PNP三極管截止,繼電器斷開(常開點(diǎn)斷開)。當(dāng)繼電器吸合或繼開瞬間,在繼電器線圈兩端會(huì)產(chǎn)生高于+5V的感應(yīng)電壓疊加在PNP的E極,可能會(huì)燒壞PNP三極管,在繼電器線圈兩端并一個(gè)1N4007續(xù)流二極管(產(chǎn)生的感應(yīng)電流將會(huì)通過1N4007流向+5V電源)用于保護(hù)PNP三極管。(Proteus庫中的元件名:繼電器:OZ-SH-105D;電燈:LAMP;二極管:1N4007;220V電源:VSINE(220V,1HZ))。【例6.1.1】硬件電路如圖6.1.1所示,設(shè)計(jì)一個(gè)220V控制電路,采用單片機(jī)控制電燈亮滅。通過P1.0的按鍵控制P3.0的三極管,從而達(dá)到控制電燈LAMP的目的。5#include<REGX51.H>sbitkey=P1^0;sbitLamp=P3^0;voiddelay(unsignedinta){while(a--);}voidmain(){while(1){if(!key){delay(10000);if(!key){Lamp=!Lamp;}while(!key);}}}6.1.2可控硅控制電路
圖6.1.2為可控硅控制電路。當(dāng)P3.0輸出低電平時(shí),光耦MOC3051的4腳和6腳導(dǎo)通,220V電壓經(jīng)過100歐電阻和光耦流向可控硅L4004L3的G端,可控硅導(dǎo)通;當(dāng)P3.0輸出低電平時(shí),光耦MOC3051的4腳和6腳不導(dǎo)通,220V電壓無法流向可控硅L4004L3的G端,可控硅不導(dǎo)通。圖6.1.2可以在可控硅兩端并上RC吸收回路,當(dāng)可控硅導(dǎo)通時(shí)電容放電,避免可控硅承受過高電壓。(Proteus庫中的元件名:繼電器:OZ-SH-105D;電燈:LAMP;二極管:1N4007;220V電源:VSINE(220V,1HZ))。86.2項(xiàng)目二:PWM的電機(jī)轉(zhuǎn)速控制
PWM(PulseWidthModulation,脈沖寬度調(diào)制)調(diào)速系統(tǒng)中,一般可以采用定寬調(diào)頻、調(diào)寬調(diào)頻、定頻調(diào)寬3種方法改變控制脈沖的占空比,前兩種方法在調(diào)速時(shí)改變了控制脈寬的周期,從而引起控制脈沖頻率的改變,當(dāng)該頻率與系統(tǒng)的固有頻率接近時(shí)將會(huì)引起振蕩。為避免之,設(shè)計(jì)采用定頻調(diào)寬改變占空比的方法來調(diào)節(jié)直流電動(dòng)機(jī)電樞兩端電壓
【例6.2.1】硬件電路如圖6.2.1所示,設(shè)計(jì)一個(gè)電機(jī)轉(zhuǎn)速控制器:5個(gè)按鍵分別控制電機(jī)的加速、減速、正轉(zhuǎn)、反轉(zhuǎn)、停止;電機(jī)轉(zhuǎn)速10級(jí);采用共陰數(shù)碼管顯示轉(zhuǎn)速級(jí)別。采用單片機(jī)定時(shí)計(jì)數(shù)器0,工作于方式1。10#include<REGX51.H>sbitUP=P1^0;//按鍵加速sbitDOWN=P1^1;//按鍵減速sbitRIGHT=P1^2;//按鍵正轉(zhuǎn)sbitLEFT=P1^3;//按鍵反轉(zhuǎn)sbitSTOP=P1^4;//按鍵停止sbitIN1=P2^5;//L298輸入端1sbitIN2=P2^6;//L298輸入端2sbitENA=P2^7;//L298使能端,用于PWM調(diào)速;unsignedcharnum[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//數(shù)碼管代碼表charPWM=5;//占空比;charMOTO_STATE;//電機(jī)狀態(tài);charcounter;11voiddelay(unsignedinta)//延時(shí)程序,用于按鍵防抖;{ while(a--);}voidINIT()//初始化定時(shí)計(jì)數(shù)器{TMOD=0x01;//設(shè)置定時(shí)計(jì)數(shù)器0工作于方式1;TH0=(65536-1000)>>8;TL0=(65536-1000);//定時(shí)1000us,即1ms;TR0=1;//啟動(dòng)定時(shí)計(jì)數(shù)器0;ET0=1;//使能定時(shí)計(jì)數(shù)器0中斷;EA=1;//中斷總開關(guān);}12voidkey_scan()//按鍵掃描程序;{if(!UP){delay(1000);if(!UP)//加快轉(zhuǎn)速;{PWM++;if(PWM>9)PWM=9;//轉(zhuǎn)速10級(jí);}while(!UP);}if(!DOWN)//降低轉(zhuǎn)速;{delay(1000);if(!DOWN){PWM--;if(PWM<=0)PWM=0;}while(!DOWN);}13if(!RIGHT)//正轉(zhuǎn);{delay(1000);if(!RIGHT){MOTO_STATE=1;}while(!RIGHT);}if(!LEFT)//反轉(zhuǎn);{delay(1000);if(!LEFT){MOTO_STATE=2;}while(!LEFT);}14if(!STOP)//停止;{delay(1000);if(!STOP){MOTO_STATE=0;}while(!STOP);}}voidmoto_ctrl()//電機(jī)狀態(tài)控制;{ switch(MOTO_STATE){case0:IN1=1;IN2=1;break;//電機(jī)停止轉(zhuǎn)動(dòng);case1:IN1=1;IN2=0;break;//電機(jī)正轉(zhuǎn);case2:IN1=0;IN2=1;break;//電機(jī)反轉(zhuǎn);default:MOTO_STATE=0;break;}}15voidmain(){INIT();//調(diào)用初始化函數(shù),設(shè)置定時(shí)計(jì)數(shù)器0的工作狀態(tài);while(1){key_scan();//調(diào)用鍵盤掃描函數(shù);moto_ctrl();//調(diào)用電機(jī)狀態(tài)控制函數(shù);P3=num[PWM];//顯示;}}voidTimer0()interrupt1//定時(shí)計(jì)數(shù)器0中斷服務(wù)函數(shù);{TH0=(65536-1000)/256;TL0=(65536-1000)%256;counter++;//counter每1ms自加1;if(counter>=10){counter=0;}if(counter<PWM)ENA=1;//占空比調(diào)節(jié);if(counter>=PWM)ENA=0;}
【例6.3.1】硬件電路如圖6.3.1所示,設(shè)計(jì)一個(gè)雙機(jī)通信程序:A機(jī)通過串行口向B機(jī)發(fā)送數(shù)據(jù),B機(jī)接收到數(shù)據(jù)后在數(shù)碼管顯示;當(dāng)A機(jī)的K1按下后B機(jī)顯示的數(shù)據(jù)加1,當(dāng)A機(jī)的K2按下后B機(jī)顯示的數(shù)據(jù)減1;當(dāng)B機(jī)接收到9時(shí),向A機(jī)發(fā)送0xaa,A機(jī)收到0xaa后讓P1.7對(duì)應(yīng)的LED亮;當(dāng)B機(jī)接收到的數(shù)據(jù)不是9時(shí),向A機(jī)發(fā)送0x55,A機(jī)收到數(shù)據(jù)不是0xaa時(shí),LED滅。6.3項(xiàng)目三:雙機(jī)通信17A機(jī)程序:#include<REGX51.H>sbitUP=P1^0;//按鍵加sbitDOWN=P1^1;//按鍵減sbitLED=P1^7;charsend_data;unsignedchari;voiddelay(unsignedinta)//延時(shí)程序;{while(a--);} voidINIT()//初始化串行口中斷;{TMOD=0X20;//設(shè)置定時(shí)計(jì)數(shù)器1工作于方式2;TR1=1;TH1=0Xfd;TL1=0Xfd;//波特率為9600bpsSCON=0X50;//方式1,REN=1;ES=1; //使能串口中斷;EA=1; //中斷總開關(guān)開啟。}18voidkey_scan()//按鍵掃描程序;{ if(!UP) { delay(1000); if(!UP)//發(fā)送數(shù)字加; {send_data++;if(send_data>9)send_data=9;} while(!UP); } if(!DOWN)//發(fā)送數(shù)字減; { delay(1000); if(!DOWN) {send_data--;if(send_data<=0)send_data=0;} while(!DOWN); }}19voidmain(){INIT();while(1){ key_scan();//調(diào)用按鍵掃描函數(shù);SBUF=send_data;delay(1000); if(i==0xaa)LED=0;elseLED=1;//A機(jī)接收到[誰接收?A機(jī)還是B機(jī)]0xaa時(shí)LED亮;}}voidSerial()interrupt4{if(RI){RI=0;i=SBUF;}//當(dāng)B機(jī)接收到9時(shí),會(huì)發(fā)0xaa回A機(jī);elseTI=0;}20A機(jī)程序:#include<REGX51.H>sbitUP=P1^0;//按鍵加sbitDOWN=P1^1;//按鍵減sbitLED=P1^7;charsend_data;unsignedchari;voiddelay(unsignedinta)//延時(shí)程序;{while(a--);} voidINIT()//初始化串行口中斷;{TMOD=0X20;//設(shè)置定時(shí)計(jì)數(shù)器1工作于方式2;TR1=1;TH1=0Xfd;TL1=0Xfd;//波特率為9600bpsSCON=0X50;//方式1,REN=1;ES=1; //使能串口中斷;EA=1; //中斷總開關(guān)開啟。}21B機(jī)程序:#include<REGX51.H>unsignedcharnum[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//數(shù)碼管代碼表unsignedchari;voiddelay(unsignedinta)//延時(shí)程序;{while(a--);}voidINIT(){TMOD=0X20;//設(shè)置定時(shí)計(jì)數(shù)器1工作于方式2;TR1=1;TH1=0Xfd;TL1=0Xfd;//波特率為9600bpsSCON=0X50;//方式1,REN=1;ES=1; //使能串口中斷;EA=1; //中斷總開關(guān)開啟。}22voidmain(){INIT();while(1){P1=num[i];if(i==9)SBUF=0xaa;//當(dāng)B機(jī)收到[誰收到?A機(jī)還是B機(jī)]9時(shí),發(fā)送0xaa;A機(jī)收到0xaa時(shí)LED亮;elseSBUF=0x55;//否則發(fā)送0x55,A機(jī)收到0x55時(shí)LED滅;delay(1000);}}voidSerial()interrupt4{i=SBUF;//接收數(shù)據(jù);if(RI)RI=0;elseTI=0;//清零TIRI;}
液晶顯示器是利用液晶能改變光線傳輸方向的特性來實(shí)現(xiàn)顯示信息的器件。由于其體積小、功耗低、顯示內(nèi)容豐富等優(yōu)點(diǎn),因此在生活中的運(yùn)用十分廣泛。LCD1602是2*16的點(diǎn)陣字符型顯示器,可以顯示2行,每行16個(gè)字符,如圖6.4.1所示。6.4項(xiàng)目四:液晶顯示器接口指令功能:清除屏幕,將顯示緩沖區(qū)的內(nèi)容全部寫入字符代碼為20H的“空格”,將光標(biāo)復(fù)位后移到屏幕的左上角。(1)清屏控制信號(hào)指令內(nèi)容RSRWD7D6D5D4D3D2D1D00000000001(2)光標(biāo)復(fù)位控制信號(hào)指令內(nèi)容RSRWD7D6D5D4D3D2D1D0000000001X指令功能:光標(biāo)復(fù)位,移到屏幕的左上角;AC地址計(jì)數(shù)器清零;DDRAM的內(nèi)容不變。指令功能:設(shè)置當(dāng)寫入一個(gè)字節(jié)后,光標(biāo)的移動(dòng)方向和后面的內(nèi)容是否移動(dòng)。(3)顯示內(nèi)容的移動(dòng)方式控制信號(hào)指令內(nèi)容RSRWD7D6D5D4D3D2D1D000000001I/DSA、當(dāng)I/D=1時(shí),讀或?qū)懲暌粋€(gè)數(shù)據(jù)操作后,地址指針AC加l,光標(biāo)右移1格。當(dāng)I/D=0時(shí),讀或?qū)懲暌粋€(gè)數(shù)據(jù)操作后,地址指針AC減1,光標(biāo)左移1格。B、當(dāng)S=1時(shí),寫一個(gè)數(shù)據(jù)操作后,整屏顯示左移(I/D=1)或右移(I/D=0),光標(biāo)不移動(dòng);當(dāng)S=0時(shí),寫一個(gè)數(shù)據(jù)操作后,整屏顯示不移動(dòng)。(4)顯示器開/關(guān)控制控制信號(hào)指令內(nèi)容RSRWD7D6D5D4D3D2D1D00000001DCB指令內(nèi)容:0x08~0x0f。指令功能:A、當(dāng)D=0時(shí),不顯示DDRAM中的內(nèi)容;當(dāng)D=1時(shí),顯示DDRAM中的內(nèi)容。B、C為光標(biāo)控制開關(guān)。C=1,顯示光標(biāo);C=0,不顯示光標(biāo)。C、字符閃爍控制開關(guān)。B=1,光標(biāo)出現(xiàn)的字符會(huì)閃爍;B=0,表示字符不閃爍。(5)光標(biāo)移位命令控制信號(hào)指令內(nèi)容RSRWD7D6D5D4D3D2D1D0000001S/CR/LXX指令內(nèi)容:0x10~0x1f。指令功能:光標(biāo)移動(dòng)或整幕移動(dòng)。A、當(dāng)S/C=1時(shí),整屏字幕平移1個(gè)字符位;當(dāng)S/C=0時(shí),僅光標(biāo)平移1個(gè)字符位。B、R/L=1,表示光標(biāo)右移;R/L=0,表示光標(biāo)左移。(6)功能設(shè)置命令控制信號(hào)指令內(nèi)容RSRWD7D6D5D4D3D2D1D000001DLNFXX指令內(nèi)容:0x20~0x3f。指令功能:A、當(dāng)DL=1時(shí),數(shù)據(jù)接口為8位;當(dāng)DL=0時(shí),數(shù)據(jù)接口為4位,使用D7~D4位分兩次送入1個(gè)完整的字符數(shù)據(jù)。B、當(dāng)N=1時(shí),采用雙行顯示;當(dāng)N=0時(shí),采用單行顯示。C、當(dāng)F=1時(shí),采用5×10點(diǎn)陣顯示;當(dāng)F=0時(shí),采用5×7點(diǎn)陣顯示。(7)字庫CGRAM地址設(shè)置命令控制信號(hào)指令內(nèi)容RSRWD7D6D5D4D3D2D1D00001CGRAM的地址指令編碼:0x40~0x7f。指令功能:設(shè)置用戶自定義的要讀/寫數(shù)據(jù)的CGRAM地址;地址使用(D5~D0)送出,可設(shè)定0~63共64個(gè)地址。(8)顯示緩沖區(qū)DDRAM地址設(shè)置命令控制信號(hào)指令內(nèi)容RSRWD7D6D5D4D3D2D1D0001DDRAM的地址指令編碼:0x80~0xff。指令功能:設(shè)定當(dāng)前要讀/寫數(shù)據(jù)的顯示緩沖區(qū)DDRAM地址,地址使用(D6~D0)送出,可設(shè)定0~127共128個(gè)地址(9)忙碌標(biāo)志位BF和地址計(jì)數(shù)器AC的值控制信號(hào)指令內(nèi)容RSRWD7D6D5D4D3D2D1D000BFAC的值指令功能:A、當(dāng)BF=1時(shí),不接收單片機(jī)送來的指令或數(shù)據(jù);當(dāng)BF=0時(shí),可以接收命令或數(shù)據(jù)。B、讀取數(shù)據(jù)的內(nèi)容,D6~D0的值表示AC值。(10)寫數(shù)到CGRAM或DDRAM控制信號(hào)指令內(nèi)容RSRWD7D6D5D4D3D2D1D010寫入數(shù)據(jù)指令功能:先設(shè)定CGRAM或DDRAM的當(dāng)前地址,再將數(shù)據(jù)寫入D7~D0中,使液晶顯示出字形或用戶自定義的字符圖形。(11)讀CGRAM或DDRAM命令控制信號(hào)指令內(nèi)容RSRWD7D6D5D4D3D2D1D011讀出數(shù)據(jù)先設(shè)定CGRAM或DDRAM的當(dāng)前地址中,讀取其中的數(shù)據(jù)。在使用液晶時(shí)須進(jìn)行初始化,步驟如下:(1)對(duì)液晶進(jìn)行清屏,對(duì)DDRAM顯示緩沖區(qū)的內(nèi)容全寫入空格,光標(biāo)復(fù)位加到顯示器左上角,AC地址計(jì)數(shù)器清零。(2)功能設(shè)置,選擇LCD1602與單片機(jī)連接的方式(可選擇8位),設(shè)置顯示行數(shù)(一般為2行),設(shè)置字形大?。?*7點(diǎn)陣)。(3)顯示器開/關(guān)控制,控制光標(biāo)顯示與否,字符閃爍與否。(4)設(shè)置顯示內(nèi)容的移動(dòng)方式,設(shè)定光標(biāo)移動(dòng)方向和當(dāng)前內(nèi)容是否移動(dòng)。6.4.2液晶顯示接口電路與編程【例6.4.1】硬件電路如圖6.4.2所示,設(shè)計(jì)一個(gè)LCD1602液晶顯示程序:在第一行從第一個(gè)位置開始顯示“GUET”;第二行第5個(gè)位置顯示1個(gè)數(shù)字,該數(shù)字從0~9自加;第二行第8個(gè)位置顯示光標(biāo)閃爍。36#include<REGX51.H>unsignedcharnum[10]={'0','1','2','3','4','5','6','7','8','9'};//定義液晶端口#defineLCD_DATAP3sbitRS=P2^5;sbitRW=P2^6;sbitE=P2^7;voiddelay(unsignedinta)//延時(shí)函數(shù);{while(a--);}voidlcd_busy()//檢查LCD忙函數(shù);{LCD_DATA=0xff;RS=0;RW=1;E=0;E=1;while(LCD_DATA&0X80){E=0;E=1;};//忙等待;}37voidwrite_com(unsignedcharcommand)//寫命令函數(shù);{lcd_busy();E=0;RS=0;RW=0;E=1;LCD_DATA=command;E=0;}voidwrite_data(unsignedcharlcd_data)//寫數(shù)據(jù)函數(shù);{lcd_busy();E=0;RS=1;RW=0;E=1;LCD_DATA=lcd_data;E=0;}38voidinit_lcd()//初始化LCD函數(shù);{write_com(0x01);//清屏;write_com(0x38);//5*7點(diǎn)陣;write_com(0x0c);//顯示器開,關(guān)標(biāo)關(guān)閉,字符不閃爍。write_com(0x06);//字符不動(dòng),光標(biāo)自動(dòng)向右移1格。}voidmain(){unsignedchari;bitflag;init_lcd();39while(1){write_com(0x80);//第一行第1個(gè)地址;write_data('G');//顯示G;write_data('U');//顯示U;write_data('E');//顯示E;write_data('T');//顯示T;write_com(0xc5);//第二行第5個(gè)地址;write_data(num[i++]);//顯示數(shù)字自加;if(i>9)i=0;delay(50000);write_com(0xc8);//第二行第8個(gè)地址;flag=!flag;if(flag)write_data(0xff); //光標(biāo)elsewrite_data(0xfe);//反白}}6.5.1LTC1456的介紹
LTC1456是一個(gè)單電源供電,軌對(duì)軌輸出,12位數(shù)字模擬轉(zhuǎn)換器(DAC)。它包含一個(gè)軌對(duì)軌輸出緩沖放大器和一個(gè)易于使用的線級(jí)聯(lián)串行接口。LTC1456內(nèi)部包含一個(gè)2.048V參考電壓,可以輸出電壓從0V到4.095V。它的工作電源從4.5V到5.5V,散熱2.2mw。LTC1456的引腳圖如圖6.5.1所示,其各引腳功能如下說明:6.5項(xiàng)目五:基于LTC1456的12位數(shù)模轉(zhuǎn)換41CLK:串行接口的時(shí)鐘端。DIN:串行數(shù)據(jù)輸出端。串行時(shí)鐘的上升沿時(shí),DIN的數(shù)據(jù)鎖存到移位寄存器中。CS/LD:串行接口使能和加載控制端。當(dāng)CS/LD低電平時(shí),數(shù)據(jù)被鎖入。當(dāng)CS/LD拉高時(shí),加載的數(shù)據(jù)從移位寄存器的傳入到DAC寄存器中并更新DAC輸出。當(dāng)CS/LD為高電平時(shí),內(nèi)部時(shí)鐘禁用。DOUT:當(dāng)串行時(shí)鐘的上升沿時(shí)移位寄存器的輸出有效。GND:電源地。CLR:清除輸入的數(shù)據(jù)。當(dāng)引腳拉低時(shí),將異步清零內(nèi)部移位寄存器和DAC寄存器,當(dāng)引腳拉高時(shí),芯片正常運(yùn)行。vout高(引腳7):緩沖DAC輸出。VCC(引腳8):正電源輸入。4.5V≤VCC≤5.5v。【例6.5.1】硬件電路如圖6.5.1所示,使用LTC1456輸出鋸齒波:43#include<REGX51.H>sbitDIN=P1^3;//定義LTC1456的DIN端口sbitCK=P1^5;//定義LTC1456的CLK端口sbitCS=P1^7;//定義LTC1456的CS端口voidDA_out(floatdat,bitflag){ unsignedchari=0; unsignedintdat_buf; if(flag){dat_buf=dat*1000;flag=0;} elsedat_buf=(int)dat; CS=1; CS=0; for(i=0;i<4;i++)dat_buf<<=1;//向左移4位,高4位無用; for(i=0;i<12;i++)//由高到低寫入12位數(shù)據(jù); {
DIN=(bit)(dat_buf&0x8000); CK=1; dat_buf<<=1;//向左移位; CK=0;} CS=1; CS=0;}44voidmain(){ unsignedinti=0; CK=0; CS=0; while(1) { // DA_out(1.234,1); DA_out(i,0); i++;if(i>100)i=0; }}6.6.1TLC2543的介紹
TLC2543是TI公司生產(chǎn)的11通道12位開關(guān)電容逐次逼近型串行A/D轉(zhuǎn)換器。在工作溫度范圍內(nèi)10μs轉(zhuǎn)換時(shí)間;采樣率為66kbps;線性誤差+1LSB(max);有轉(zhuǎn)換結(jié)束(EOC)輸出;具有單、雙極性輸出;可編程的MSB或LSB前導(dǎo);可編程的輸出數(shù)據(jù)長度。TLC2543的引腳排列如圖6.6.1所示,其各引腳功能如下說明:46AIN0~AIN10:模擬輸入端。REF+:正基準(zhǔn)電壓端。REF-:負(fù)基準(zhǔn)電壓端。CS:為片選端。SDI:串行數(shù)據(jù)輸入端。SDO:A/D轉(zhuǎn)換結(jié)果的三態(tài)串行輸出端。EOC:轉(zhuǎn)換結(jié)束端。CLK:I/O時(shí)鐘。VCC:正電源4.5V~5.5V。GND:電源地。(1)控制字的格式6.6.2TLC2543的接口電路與編程(2)轉(zhuǎn)換過程【例6.6.2】硬件電路如圖6.6.3所示,采用TLC2543的通道5對(duì)外部電壓進(jìn)行采集并通過LCD1602進(jìn)行顯示。根據(jù)圖6.6.2時(shí)序圖設(shè)置TLC2543的輸出端DATAOUT采用12位的輸出格式,輸入端DATAINPUT應(yīng)設(shè)置為01011000。49#include<REGX51.H>#include<LCD1602.H>sbitSDO=P1^3;sbitSDI=P1^4;sbitCS=P1^5;sbitCLK=P1^6;sbitEOC=P1^7;unsignedintad;floatvotage;unsignedintread_ad(unsignedcharchannel){ unsignedchari; unsignedintad=0; unsignedintad_value;unsignedcharCH_PORT;50CS=1;CS=0; CLK=0; CH_PORT=(channel<<4)|0x0c; for(i=0;i<12;i++) { if(SDO)ad|=0x01; SDI=(bit)(CH_PORT&0x80); CLK=1; CLK=0; CH_PORT<<=1; ad<<=1; } CS=1; ad_value=ad>>1; return(ad_value);}51voiddisplay(){write_com(0x80);write_data('A');write_data('D');write_data(num[5]);write_data(':');write_com(0x85);write_data('.');write_com(0x89);write_data('V');write_
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 孿生體在智能制造中的應(yīng)用-深度研究
- 大數(shù)據(jù)驅(qū)動(dòng)的數(shù)學(xué)分析-深度研究
- 個(gè)性化學(xué)習(xí)評(píng)價(jià)體系-深度研究
- 企業(yè)社會(huì)責(zé)任與品牌形象-深度研究
- 廢水資源化處理-深度研究
- 機(jī)場(chǎng)智能安保監(jiān)控體系構(gòu)建-深度研究
- 可再生能源儲(chǔ)能技術(shù)-深度研究
- 2025年廣州番禺職業(yè)技術(shù)學(xué)院高職單招高職單招英語2016-2024歷年頻考點(diǎn)試題含答案解析
- 三葉蟲化石保護(hù)技術(shù)-深度研究
- 林區(qū)作業(yè)人員安全教育-深度研究
- GB/T 16895.3-2024低壓電氣裝置第5-54部分:電氣設(shè)備的選擇和安裝接地配置和保護(hù)導(dǎo)體
- 計(jì)劃合同部部長述職報(bào)告范文
- 人教版高一地理必修一期末試卷
- 人教版高中物理必修一同步課時(shí)作業(yè)(全冊(cè))
- 食堂油鍋起火演練方案及流程
- 《呼吸衰竭的治療》
- 2024年度醫(yī)患溝通課件
- 2024年中考政治總復(fù)習(xí)初中道德與法治知識(shí)點(diǎn)總結(jié)(重點(diǎn)標(biāo)記版)
- 2024年手術(shù)室的應(yīng)急預(yù)案
- 五年級(jí)上冊(cè)小數(shù)除法豎式計(jì)算練習(xí)300題及答案
- 語言規(guī)劃講義
評(píng)論
0/150
提交評(píng)論