智能小車(chē)聲音引導(dǎo)系統(tǒng)設(shè)計(jì)與制作報(bào)告.doc
聲音引導(dǎo)系統(tǒng)設(shè)計(jì)與制作報(bào)告一、方案選擇與論證 1、整體方案選擇方案一:本方案采用音頻收發(fā)的方式,由核心控制模塊80C51F020發(fā)出一個(gè)特定頻率的音頻脈沖信號(hào),前置音頻接收模塊接收并識(shí)別這個(gè)脈沖信號(hào)。將其轉(zhuǎn)變成TTL電平。采用FPGA對(duì)接受的信號(hào)進(jìn)行處理,經(jīng)過(guò)無(wú)線收發(fā)模塊通訊,將小車(chē)的定點(diǎn)位置傳至核心模塊單片機(jī)處理并控制小車(chē)在特定的范圍內(nèi)運(yùn)動(dòng)。 方案二:本方案采用語(yǔ)音收發(fā)的方式來(lái)控制小車(chē)的運(yùn)動(dòng),由核心控制模塊控制語(yǔ)音芯片,發(fā)送特定的語(yǔ)音信號(hào),再由語(yǔ)音識(shí)別模塊對(duì)語(yǔ)音進(jìn)行采集和數(shù)字化。采用FPGA對(duì)接受的信號(hào)進(jìn)行處理,經(jīng)過(guò)無(wú)線收發(fā)模塊通訊,將小車(chē)的定點(diǎn)位置傳至核心模塊單片機(jī)處理并控制小車(chē)在特定的范圍內(nèi)運(yùn)動(dòng)。方案比較:方案一的核心控制算法由80C51F020完成。單片機(jī)的算法控制比較簡(jiǎn)單,容易實(shí)現(xiàn)。而FPGA的算法較復(fù)雜,但其對(duì)邊沿信號(hào)反應(yīng)時(shí)間快,所以利用FPGA處理接受音頻信號(hào)。方案二用到語(yǔ)音收發(fā)的方式,由于識(shí)別語(yǔ)音的收發(fā)模塊實(shí)現(xiàn)困難,所以本設(shè)計(jì)采用方案一。2、控制理論計(jì)算方案選擇方案一:可移動(dòng)聲源在運(yùn)動(dòng)前發(fā)出音頻信號(hào),根據(jù)三個(gè)接收器接收音頻的時(shí)間不同,可以算出聲源到接收器間的距離和聲源到中線OX的距離,即可移動(dòng)聲源起始位置定位。然后控制小車(chē)做垂直中線OX運(yùn)動(dòng),到達(dá)中線OX。再第二次發(fā)音頻信號(hào),定位此時(shí)可移動(dòng)聲源的位置,得出與中心點(diǎn)W的距離,使小車(chē)轉(zhuǎn)動(dòng)90度,運(yùn)動(dòng)至W點(diǎn)。方案二:可移動(dòng)聲源發(fā)出音頻信號(hào)后,得到定位。根據(jù)弧度的計(jì)算,控制小車(chē)做弧線運(yùn)動(dòng)。到達(dá)至中線OX??梢苿?dòng)聲源第二次發(fā)出音頻信號(hào),得到與中心點(diǎn)W的距離,控制小車(chē)到達(dá)W點(diǎn)。方案比較:方案一直接利用走垂直線的方法,算法簡(jiǎn)單。方案二用到弧長(zhǎng)和角度的算法,控制困難,且調(diào)試繁瑣。為了滿(mǎn)足方案的要求,所以本設(shè)計(jì)選擇方案一。二、硬件設(shè)計(jì)與實(shí)現(xiàn)硬件系統(tǒng)的框圖如圖1所示。單片機(jī)與FPGA通過(guò)無(wú)線的方式通訊。單片機(jī)FPGA電機(jī)控制音頻發(fā)送無(wú)線收發(fā)音頻接受無(wú)線收發(fā)紅外對(duì)管測(cè)速液晶顯示圖1、硬件系統(tǒng)框圖主要模塊電路如下:1、 控制器模塊實(shí)現(xiàn)音頻的接受和無(wú)線收發(fā)功能。FPGA模塊電路如圖2所示。接收經(jīng)過(guò)鎖相環(huán)選頻后的信號(hào)和單片機(jī)控制發(fā)送的同步無(wú)線信號(hào),通過(guò)處理后利用無(wú)線通訊將命令發(fā)會(huì)單片機(jī)。圖2、FPGA控制模塊2、 音頻接收模塊 該模塊通過(guò)駐極體話筒采集音頻信號(hào),駐極體話筒具有結(jié)構(gòu)簡(jiǎn)單、重量輕、體積小、無(wú)方向性、頻率響應(yīng)寬、保真度好等優(yōu)點(diǎn)。音頻信號(hào)通過(guò)前置放大、濾波。再將放大信號(hào)通過(guò)LM567鎖相環(huán)音頻譯碼芯片,構(gòu)建選頻電路,當(dāng)輸入信號(hào)的頻率落在其內(nèi)部壓控振蕩器中心頻率時(shí),輸出端將由原來(lái)的高電平變?yōu)榈碗娖?。鎖相環(huán)內(nèi)部壓控振蕩器中心頻率(f=1/1.1RC)由5、6腳外接的電阻與電容決定。所以在5腳接入10K的滑動(dòng)變阻器調(diào)節(jié),可確定被選定的頻率。經(jīng)過(guò)多次計(jì)算與驗(yàn)證,前置放大電路用TL082集成運(yùn)放。當(dāng)麥克風(fēng)接收到6k赫茲左右的頻率時(shí),輸出會(huì)有很明顯的電平跳變。電路原理如圖3。圖3、音頻接收模塊原理圖3、 電機(jī)控制模塊根據(jù)大賽要求,電機(jī)控制采用MMC-ASSP作為電機(jī)驅(qū)動(dòng)的主控芯片。采用串口通信UART模式。該芯片提供三個(gè)通道控制電機(jī),即可同時(shí)控制三個(gè)電機(jī)運(yùn)轉(zhuǎn)。每一路直流電機(jī)需要CHnDCPWM和CHnDCDIR兩個(gè)引腳,CHnDCPWM用于PWM波輸出,CHnDCDIR用于指定電機(jī)轉(zhuǎn)向,外接一個(gè)全橋驅(qū)動(dòng)芯片控制直流電機(jī)工作。通過(guò)調(diào)節(jié)占空比控制電機(jī)的轉(zhuǎn)速。數(shù)據(jù)的輸入輸出端口(TXD和RXD)與主控MCU相連。如圖4所示。采用了H橋驅(qū)動(dòng)元件L298,避免了使用分立元件帶來(lái)的電路板復(fù)雜的問(wèn)題,電路簡(jiǎn)潔。且可以提供最大為4A的電流。MMC-ASSP控制電路如圖4所示,L298驅(qū)動(dòng)電路如圖5所示。雙H橋驅(qū)動(dòng)IC雙H橋驅(qū)動(dòng)IC雙H橋驅(qū)動(dòng)ICCH1DCPWMCH1DCDIRCH1DCPWMCH1DCDIRCH1DCPWMCH1DCDIRVddUART/SPIRESETSLEEPRXD/SITXD/SOREGCVssI/OTXDRXDVddGND電機(jī)1電機(jī)2電機(jī)3主控MCUMMC-1圖4、UART模式下直流電機(jī)控制模塊圖5、電機(jī)驅(qū)動(dòng)模塊原理圖4、 紅外對(duì)管測(cè)速模塊用黑線將小車(chē)車(chē)輪圓盤(pán)平均15等分,采用光電傳感器RCRT5000檢測(cè)黑線,在一定時(shí)間內(nèi)計(jì)數(shù)檢測(cè)到的黑線條數(shù),計(jì)算出車(chē)速,由80C51F020控制液晶顯示。紅外對(duì)管模塊如圖6。 圖6、紅外對(duì)管測(cè)速原理圖5、顯示模塊顯示模塊主要由80C51F020的開(kāi)發(fā)板作為控制核心,另外顯示電路作為外圍電路。主要功能:紅外對(duì)管采集車(chē)輪轉(zhuǎn)動(dòng)的數(shù)據(jù),由單片機(jī)處理后經(jīng)過(guò)1602液晶顯示小車(chē)的車(chē)速。三、軟件系統(tǒng)設(shè)計(jì)1、80C51F020和FPGA總體程序流程初始化定時(shí)器開(kāi) 計(jì)數(shù)等待接收到無(wú)線命令音頻結(jié)束關(guān)定時(shí)器換算距離延時(shí)無(wú)線發(fā)送初始化發(fā)送無(wú)線信號(hào)發(fā)送6kHZ音頻信號(hào)延時(shí)是否否是定位聲源接收無(wú)線信號(hào)(幾乎同時(shí)發(fā)送)控制電機(jī)圖7、程序流程圖2、MMC-1 ASSP電機(jī)控制程序流程電機(jī)驅(qū)動(dòng)需要配置相對(duì)應(yīng)的寄存器,占空比給定寄存器(chnDuty)在用于直流電機(jī)驅(qū)動(dòng)時(shí)需要配置,主要是通過(guò)設(shè)定該寄存器選擇不同占空比,進(jìn)而調(diào)節(jié)電機(jī)轉(zhuǎn)速。另外,在配置完chnDuty寄存器后,還要設(shè)置工作模式寄存器(chnMode)選擇驅(qū)動(dòng)電機(jī)的類(lèi)型。本方案選擇的是直流電機(jī)。具體程序流程如圖8所示。延時(shí)50us,初始化結(jié)束MMC-1上電初始化設(shè)置chnDuty寄存器設(shè)置chnMode寄存器是否結(jié)束圖8、MMC-1電機(jī)控制程序流程四、硬件與軟件調(diào)試本方案所用到的硬件電路不多,主要是音頻接收模塊、電機(jī)驅(qū)動(dòng)模塊和核心板電路。有關(guān)的硬件模塊調(diào)試主要就是音頻的接收。該操作比較簡(jiǎn)單。難度較大的是軟件調(diào)試,本方案軟件控制是核心。通過(guò)對(duì)音頻的控制和無(wú)線接受模塊控制小車(chē)在特定要求下運(yùn)動(dòng)。主要用到核心控制器80C51F020和FPGA進(jìn)行協(xié)同控制。調(diào)試在控制時(shí)序方面較困難,對(duì)音頻的采集處理有難度。五、性能與指標(biāo)測(cè)試1、測(cè)試儀器數(shù)字示波器 DS1102C 功率函數(shù)信號(hào)發(fā)生器 YB1605P直流穩(wěn)壓電源 YB1732A2A 秒表、2米卷尺2、測(cè)試分析本次設(shè)計(jì)用到聲音的引導(dǎo),會(huì)受到較大的干擾,前置的音頻接受與轉(zhuǎn)換的硬件也存在一定的誤差,導(dǎo)致FPGA測(cè)得的時(shí)序浮度比較大,所測(cè)得的數(shù)據(jù)穩(wěn)定性不高。不過(guò)對(duì)小車(chē)的控制比較到位。六、總結(jié)經(jīng)過(guò)4天3夜的努力,我們終于完成了本題的制作,在參數(shù)和功能上盡量完成要求。在理論設(shè)計(jì)計(jì)算方面,我們充分運(yùn)用了我們所掌握的知識(shí),力爭(zhēng)做到更好。在實(shí)際過(guò)程中,關(guān)于音頻信號(hào)的處理和相關(guān)時(shí)序處理遇到的問(wèn)題較大。這一方面成為本設(shè)計(jì)的關(guān)鍵所在。說(shuō)明了我們還是缺少相關(guān)知識(shí)技術(shù)和實(shí)際的工程經(jīng)驗(yàn)。通過(guò)此次大賽,我們隊(duì)的每個(gè)成員都獲益非淺。 參考文獻(xiàn)1 綜合電子設(shè)計(jì)與實(shí)踐田良南京:東南大學(xué)出版社,2002.32 FPGA設(shè)計(jì)與應(yīng)用劉皖,何道君,譚明北京:清華大學(xué)出版社,20063 C8051F單片機(jī)原理及應(yīng)用. 鮑可進(jìn). 北京:中國(guó)電力出版社,2006.4 FPGA原理與實(shí)踐張慶玲, 楊勇北京:北京航空航天大學(xué)出版社,2006附錄附錄單片機(jī)源程序/020 串口UART0發(fā)送程序模塊#include<c8051f020.h>unsigned int count,count1,count2;unsigned char lcd=0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39;unsigned int cnt; /用于控制發(fā)6KHz的方波的個(gè)數(shù)unsigned int a,b,c;bit flag_sound; /標(biāo)志位,用于控制發(fā)送方波的個(gè)數(shù)bit flag,flag1,flag2;bit key_flag;sbit key1=P05;sbit key2=P06; sbit sound=P07;sbit RS=P25;/液晶sbit RW=P26;sbit EN=P27;sbit P30=P30;/EN_1,EN_2sbit P31=P31;sbit P33=P23;void Delay(unsigned int i);void PORT_Init(void);void SYSCLK_Init(void);void UART0_INT();void UART1_INT();void E_int(void);void Wait_Busy(void);void Write_Data(unsigned char data_in);void Write_Code(unsigned char code_in);void Lcd_Init(void);void stright(void);void zhuanwan_left(void);void zhuanwan_right(void);void stop_8s(void);void delay_long(void);void stop();void key_puanduan();void Timer_INT();void Delay(unsigned int i)/延時(shí)子程序 while(i-);void Timer_INT() interrupt 1 using 1 if (cnt=b) /發(fā)10個(gè)周期的6KHz的方波 TL0=0x69; /6KHz的頻率產(chǎn)生的定時(shí)器的值 TH0=0xff; flag_sound=1; TR0=0; cnt=0; else TL0=0x69; TH0=0xff; sound=sound; cnt+; flag_sound=0; TR0=1; void PORT_Init(void) /*端口的初始化*/ XBR0=0x04; /使UART0的TXD和RXD分別連接到P0.0,P0.1 XBR1=0x04; XBR2=0x44; P0MDOUT=0x60; /*P口輸出方式的設(shè)置*/ P1MDOUT=0X00; P2MDOUT&=0x00; P3MDOUT&=0x00;void SYSCLK_Init(void) /*系統(tǒng)時(shí)鐘初始化*/ unsigned int Q=0; /*外部時(shí)鐘的配置*/ OSCXCN=0x67; for(Q=0;Q<255;Q+); while(OSCXCN&0xe7)!=0xe7); OSCICN=0x88;void wait_busy(void) P1|=0x80; RS=0; RW=1; EN=1; Delay(10); while(P1&0x80); EN=0; void Write_Data(unsigned char data_in) /*發(fā)送數(shù)據(jù)函數(shù)*/ Wait_Busy(); RS=1; RW=0; EN=1; P1=data_in; Delay(100); EN=0;void Write_Code(unsigned char code_in) /*發(fā)送指令函數(shù)*/ Wait_Busy(); RS=0; RW=0; EN=1; P1=code_in; Delay(100); EN=0;void LCD_Init(void) /*液晶初始化*/ Write_Code(0x01); Delay(100); Write_Code(0x38); Delay(100); Write_Code(0x0c); Delay(100); Write_Code(0x06); Delay(100);void T1_inter() interrupt 3 /*計(jì)時(shí)對(duì)數(shù)據(jù)進(jìn)行處理*/ if (count2=a) TR1=0; TL1=0xFF; TH1=0x6f; flag2=1;count2=0; else TL1=0xff; TH1=0x6f; TR1=1; flag2=0; count2+;void E_int() interrupt 0/外部中斷函數(shù) if (count1=c) flag=1; count1=0; P30=0; P31=0; else count1=count1+1; count=count+1;void stright(void)/直走50cm/直走/*/通道1PWMchnfreq的配置TB80=1; /發(fā)送0X53-5-寫(xiě)命令字,3-通道1占空比給定寄存器SBUF0=0X53;while(TI0);TI0=0;Delay(10000);TB80=1;/發(fā)送0Xcc-占空比(控制轉(zhuǎn)速)SBUF0=0Xf6;while(TI0);TI0=0;Delay(10000);/*/通道2PWMchnfreq的配置TB80=0;/發(fā)送0X57SBUF0=0X57;while(TI0);TI0=0;Delay(10000);TB80=0;/發(fā)送0XCcSBUF0=0Xf8;while(TI0);TI0=0;Delay(10000);/*/通道1,2不同步的同步模式寄存器synmode的設(shè)置TB80=1;/發(fā)送0X5CSBUF0=0X5C;while(TI0);TI0=0;Delay(10000);TB80=1;/發(fā)送0X00SBUF0=0X00;while(TI0);TI0=0;Delay(10000);/*/通道1chnmode的配置TB80=1;/發(fā)送0X50SBUF0=0X50;while(TI0);TI0=0;Delay(10000);TB80=1;/發(fā)送0Xc0SBUF0=0Xc0;while(TI0);TI0=0;Delay(10000);/*/通道2chnmode的配置TB80=0;/發(fā)送0X54SBUF0=0X54;while(TI0);TI0=0;Delay(10000);TB80=1;/發(fā)送0Xc0SBUF0=0XC0;while(TI0);TI0=0;P30=1; P31=1;void stop_8s(void) while(flag); flag=0; SCON1&=0xfd;SBUF1=0x0d; /發(fā)送13cm/s while(SCON1&0x02=0x00); Write_Code(0x80); Write_Data(0x31); Write_Data(0x33); Write_Data(0x63); Write_Data(0x6d); Write_Data(0x2f); Write_Data(0x73);/停止/ a=400; TR1=1; flag2=0; while(flag2) Delay(10000); P33=P33; flag2=0; count2=0; P33=0;void zhuanwan_left(void)/右轉(zhuǎn)EA=0;EX0=0;/轉(zhuǎn)90度/*/通道1PWMchnfreq的配置TB80=1; /發(fā)送0X53SBUF0=0X53;while(TI0);TI0=0;Delay(10000);TB80=1;/發(fā)送0X33SBUF0=0XB4;/SBUF0=0Xf6;while(TI0);TI0=0;Delay(10000);/*/通道2PWMchnfreq的配置TB80=0;/發(fā)送0X57SBUF0=0X57;while(TI0);TI0=0;Delay(10000);TB80=1;/發(fā)送0X33SBUF0=0XB4;/SBUF0=0Xf7;while(TI0);TI0=0;Delay(10000);/*/通道1,2不同步的同步模式寄存器synmode的設(shè)置TB80=1;/發(fā)送0X5CSBUF0=0X5C;while(TI0);TI0=0;Delay(10000);TB80=1;/發(fā)送0X00SBUF0=0X00;while(TI0);TI0=0;Delay(10000);/*/通道1chnmode的配置TB80=1;/發(fā)送0X50SBUF0=0X50;while(TI0);TI0=0;Delay(10000);TB80=1;/發(fā)送0Xe0SBUF0=0XC0;while(TI0);TI0=0;Delay(10000);/*/通道2chnmode的配置TB80=0;/發(fā)送0X54SBUF0=0X54;while(TI0);TI0=0;Delay(10000);TB80=0;/發(fā)送0Xe0SBUF0=0XE0;while(TI0);/發(fā)送0X80TI0=0;P30=1;P31=1;void stop(void)/停止/P30=0;P31=0; Write_Code(0x80); Write_Data(0x20); Write_Data(0x20); Write_Data(0x20); Write_Data(0x20); Write_Data(0x20); Write_Data(0x20);void zhuanwan_right(void)/左轉(zhuǎn)EA=0;EX0=0;/轉(zhuǎn)90度/*/通道1PWMchnfreq的配置TB80=1; /發(fā)送0X53SBUF0=0X53;while(TI0);TI0=0;Delay(10000);TB80=1;/發(fā)送0X33SBUF0=0XB4;/SBUF0=0Xf6;while(TI0);TI0=0;Delay(10000);/*/通道2PWMchnfreq的配置TB80=0;/發(fā)送0X57SBUF0=0X57;while(TI0);TI0=0;Delay(10000);TB80=1;/發(fā)送0X33SBUF0=0XB4;/SBUF0=0Xf7;while(TI0);TI0=0;Delay(10000);/*/通道1,2不同步的同步模式寄存器synmode的設(shè)置TB80=1;/發(fā)送0X5CSBUF0=0X5C;while(TI0);TI0=0;Delay(10000);TB80=1;/發(fā)送0X00SBUF0=0X00;while(TI0);TI0=0;Delay(10000);/*/通道1chnmode的配置TB80=1;/發(fā)送0X50SBUF0=0X50;while(TI0);TI0=0;Delay(10000);TB80=0;/發(fā)送0Xe0SBUF0=0Xe0;while(TI0);TI0=0;Delay(10000);/*/通道2chnmode的配置TB80=0;/發(fā)送0X54SBUF0=0X54;while(TI0);TI0=0;Delay(10000);TB80=1;/發(fā)送0Xe0SBUF0=0Xc0;while(TI0);/發(fā)送0X80TI0=0;P30=1;P31=1;void main(void) c=0; WDTCN=0xde; /*關(guān)看門(mén)狗*/ WDTCN=0xad; count=0;count1=0; cnt=0;flag_sound=0; PORT_Init(); SYSCLK_Init(); LCD_Init(); SCON0=0xD0; /UART0工作在方式2,9位UART,可變波特率 SCON1=0x50; /UART1工作在方式1,8位UART,可變波特率 T2CON=0x30; T4CON=0x30; RCAP2L=0xb8; /設(shè)置波特率(定時(shí)器2作為波特率發(fā)生器) RCAP2H=0xff; RCAP4L=0x0b8; /設(shè)置波特率(定時(shí)器4作為波特率發(fā)生器) RCAP4H=0xff; EA=1; TR2=1; T4CON|=0x04; /開(kāi)定時(shí)器4 TI0=0; IT0=1; EX0=1; CKCON=0x00; /*定時(shí)器0,1用的時(shí)鐘為系統(tǒng)時(shí)鐘的12分頻*/ TMOD=0x11; /*定時(shí)器1用來(lái)定時(shí),定時(shí)器0用來(lái)計(jì)被測(cè)脈沖*/ TH1=0x6f;TL1=0xff; /*定時(shí)器1的初值*/ ET1=1; TR1=0; /*配置定時(shí)器0*/ TL0=0x69; TH0=0xff; ET0=1; EA=1; TR0=0; flag=0; flag1=0; / P33=1; while(1) P30=0;P31=0;/ P33=1; while(key1&&key2); if (key1=0) key_flag=1; if (key2=0) key_flag=0; b=1000; TR0=1;/開(kāi)定時(shí)器0,6Khz方波 while(flag_sound); flag2=0; a=30; TR1=1; while(flag2); Delay(100);/主控MCU延時(shí)50US c=50; stright(); stop_8s(); if (key_flag=0) zhuanwan_left(); else zhuanwan_right(); stop();EA=1;b=1500;/音量 TR0=1;/開(kāi)定時(shí)器0,6Khz方波while(flag_sound);a=30;TR1=1;while(flag2);c=33;flag=0;P30=1;P31=1;EA=1;EX0=1;stright();while(flag);P30=0;P31=0; SCON1&=0xfd;SBUF1=0xc;while(SCON1&0x02=0x00);Write_Code(0x80); Write_Data(0x31);Write_Data(0x32);Write_Data(0x63);Write_Data(0x6d);Write_Data(0x2f);Write_Data(0x73);附錄VHDL源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY TOP ISPORT( iCLK_50M : in std_logic; irst_n : in std_logic; iRXD :in std_logic; oRW : out std_logic; oRS : out std_logic; oEN : out std_logic; oLCD_DATA : out std_logic_vector(7 downto 0); F_CS,SD_CS : out std_logic );end;ARCHITECTURE behave OF TOP ISsignal R_data_done:std_logic_vector(7 downto 0);signal data1,data2,data3:std_logic_vector(7 downto 0);component rec isPORT( iCLK_50M : in std_logic; irst_n : in std_logic; iRXD : in std_logic; oR_data : out std_logic_vector(7 downto 0) );end component;component manage isPORT( iCLK_50M : in std_logic; irst_n : in std_logic; iR_data : in std_logic_vector(7 downto 0); odata_1,odata_2,odata_3 : out std_logic_vector(7 downto 0) );end component;component LCD_1602 isport( irst_n : in std_logic; -復(fù)位信號(hào) iCLK_50M : in std_logic; -50M時(shí)鐘輸入端 iData_1,iData_2,iData_3 : in std_logic_vector(7 downto 0); -預(yù)置值緩存 oRW : out std_logic; -LCD1602控制端RW oRS : out std_logic; -LCD1602控制端RS oEN : out std_logic; -LCD1602控制端EN oLCD_DATA : out std_logic_vector(7 downto 0) -LCD1602數(shù)據(jù)接口 );end component;BEGIN F_CS<=1; SD_CS<=1;u1:rec port map(iCLK_50M=>iCLK_50M, irst_n=>irst_n, iRXD=>iRXD, oR_data=>R_data_done);u2:manage port map(iCLK_50M=>iCLK_50M, irst_n=>irst_n, iR_data=>R_data_done, odata_1=>data1, odata_2=>data2, odata_3=>data3);u3:LCD_1602 port map(irst_n=>irst_n, iCLK_50M=>iCLK_50M, iData_1=>data1, iData_2=>data2, iData_3=>data3, oRW=>oRW, oRS=>oRS, oEN=>oEN, oLCD_DATA=>oLCD_DATA);end;附錄3. 電路圖附錄3.1 FPGA核心板極其配置電路附錄3.2 音頻接受模塊電路附錄3.3 電機(jī)驅(qū)動(dòng)模塊電路圖附錄3.4 紅外對(duì)管測(cè)速原理圖附錄3.5電源電路模塊電路