版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、 CPLD/FPGA 課程設(shè)計報告題 目: RS-232串口通信設(shè)計 院 (系): 信息科學(xué)與技術(shù) 專業(yè)班級: 通信工程 學(xué)生姓名: 學(xué) 號: 指導(dǎo)教師: 2012年 11 月 1 日至2012年 11 月 6 日華中科技大學(xué)武昌分校制 RS-232串口通信設(shè)計 課程設(shè)計任務(wù)書一、設(shè)計(調(diào)查報告/論文)題目RS-232串口通信設(shè)計二、設(shè)計(調(diào)查報告/論文)主要內(nèi)容下述設(shè)計內(nèi)容需由學(xué)生個人獨立完成:1理解電路原理圖與工作過程;2掌握RS-232電氣特性;3掌握RS-232通信原理及串口通信數(shù)據(jù)格式,并編程完成串行數(shù)據(jù)的接收和顯示;4能正確處理編程與調(diào)試過程中所遇到的問題;三、原始資料1. 通信與
2、電子系統(tǒng)實驗指導(dǎo)書;2. CPLD/FPGA實驗箱。四、要求的設(shè)計(調(diào)查/論文)成果1程序結(jié)構(gòu)合理,語言簡潔,格式規(guī)范,注釋詳細;2. 掌握RS-232的工作機制與原理;3. 格式為:1位起始位,8位數(shù)據(jù)位,1位停止位,無奇偶校驗位,波特率設(shè)定為300Baud。能與計算機正常通信;4. 按要求完成課程設(shè)計報告,格式符合學(xué)校規(guī)范標(biāo)準(zhǔn),字?jǐn)?shù)不少于2000字。五、進程安排第 1 天 理論講解,學(xué)生對實驗箱進行檢測;第 2-3天 軟件編程;第 3 天 軟件調(diào)試,故障排查;第4-5 天 調(diào)測,驗收,評分。六、主要參考資料1 陳曦. 通信與電子系統(tǒng)實驗指導(dǎo)書,武漢:華中科技大學(xué)武昌分校.2 譚會生.EDA
3、技術(shù)及應(yīng)用,西安:西安電子科技大學(xué)出版社,2010.3 潘松,黃繼業(yè).EDA技術(shù)與VHDL,北京:清華大學(xué)出版社,2009.指導(dǎo)教師(簽名):20 年 月 日目 錄1. 課程設(shè)計的目的42. 課程設(shè)計題目描述和求43. 課程設(shè)計報告內(nèi)容43.1 課題設(shè)計方案及基本原理43.2 軟件設(shè)計73.3 調(diào)試144. 總結(jié)155. 參考資料16附錄1 FPGA頂層設(shè)計圖17附錄2 程序清單18正文1. 課程設(shè)計的目的:(1) 學(xué)習(xí)RS-232串口通信數(shù)據(jù)結(jié)構(gòu),并編程完成串行數(shù)據(jù)的接收和顯示。(2) 掌握RS-232的工作機制與原理。(3) 熟練掌握Quartus2軟件的使用。(4) 了解CPLD/FPG
4、A實驗箱。2.課程設(shè)計題目描述和要求:(1)課程設(shè)計題目:基于FPGA的串口通信程序設(shè)計。(2)課程設(shè)計要求: 下述設(shè)計內(nèi)容需由學(xué)生個人獨立完成: 1理解電路原理圖與工作過程; 2掌握RS-232電氣特性; 3掌握RS-232通信原理及串口通信數(shù)據(jù)格式,并編程完成串行數(shù)據(jù)的接收和 顯示; 4能正確處理編程與調(diào)試過程中所遇到的問題; 5. 在FPGA中構(gòu)造一個異步串行通信控制模塊,完成PC機發(fā)送的接收,并設(shè)計 顯示模塊,完成接收數(shù)據(jù)的顯示(3)要求的設(shè)計成果: 1程序結(jié)構(gòu)合理,語言簡潔,格式規(guī)范,注釋詳細; 2. 掌握RS-232的工作機制與原理; 3. 格式為:1位起始位,8位數(shù)據(jù)位,1位停止
5、位,無奇偶校驗位,波特率設(shè)定 為300Baud。能與計算機正常通信; 4. 按要求完成課程設(shè)計報告,格式符合學(xué)校規(guī)范標(biāo)準(zhǔn),字?jǐn)?shù)不少于2000字。3. 課程設(shè)計報告內(nèi)容:3.1課程設(shè)計方案及基本原理:設(shè)計方案: 利用實驗箱上的MAX232芯片控制通過適當(dāng)分頻(分頻的目的是為了達到要求的波特率,控制數(shù)據(jù)傳輸速率)的串行輸入信號,并將其轉(zhuǎn)換為并行信號并通過實驗箱上的數(shù)碼管的后兩位顯示從計算機中傳輸出來的16進制數(shù)。例如在計算機端輸入(FF)則會在試驗箱上看到(000000FF)的顯示圖示?;驹恚?RS-323C標(biāo)準(zhǔn)是美國EIA(電子工業(yè)聯(lián)合會)與BELL等公司一起開發(fā)的1969年公布的通信協(xié)議。
6、它適合于數(shù)據(jù)傳輸速率在020000b/s范圍內(nèi)的通信。這個標(biāo)準(zhǔn)對串行通信接口的有關(guān)問題,如信號線功能、電器特性都作了明確規(guī)定。EIA-RS-232C中+3V+15V之間的電平為0,-3V-15V的電平為1;與TTL以高低電平表示邏輯狀態(tài)的規(guī)定不同。因此,為了能夠同計算機接口或終端的TTL器件連接,必須在EIA-RS-232C與TTL電路之間進行電平和邏輯關(guān)系的變換。實現(xiàn)這種變換的方法可用分立元件,也可用集成電路芯片。目前較為廣泛地使用集成電路轉(zhuǎn)換器件,如MC1488、SN75150芯片可完成TTL電平到EIA電平的轉(zhuǎn)換,而MC1489、SN75154可實現(xiàn)EIA電平到TTL電平的轉(zhuǎn)換。MAX2
7、32芯片可完成TTLEIA雙向電平轉(zhuǎn)換。1. 串口通信:(1)什么是串口通信: 串口是計算機上一種非常通用設(shè)備通信的協(xié)議。大多數(shù)計算機包含兩個基于RS232 的串口。串口同時也是儀器儀表設(shè)備通用的通信協(xié)議;很多GPIB兼容的設(shè)備也帶 有RS-232口。同時,串口通信協(xié)議也可以用于獲取遠程采集設(shè)備的數(shù)據(jù)。 串行 接口(Serial port)又稱“串口”,主要用于串行式逐位數(shù)據(jù)傳輸。常見的有一 般電腦應(yīng)用的RS-232(使用 25 針或 9 針連接器)和工業(yè)電腦應(yīng)用的半雙RS-485 與全雙工RS-422。(2) 串口接口規(guī)格: 串行接口按電氣標(biāo)準(zhǔn)及協(xié)議來分,包括RS-232-C、RS-422、
8、RS485、USB等。 RS-232-C、RS-422與RS-485標(biāo)準(zhǔn)只對接口的電氣特性做出規(guī)定,不涉及接插件、 電纜或協(xié)議。USB是近幾年發(fā)展起來的新型接口標(biāo)準(zhǔn),主要應(yīng)用于高速數(shù)據(jù)傳輸 領(lǐng)域。(3) 串口通信原理: 串口通信的概念非常簡單,串口按位(bit)發(fā)送和接收字節(jié)。盡管比按字節(jié)(byte) 的并行通信慢,但是串口可以在使用一根線發(fā)送數(shù)據(jù)的同時用另一根線接收數(shù)據(jù)。 它很簡單并且能夠?qū)崿F(xiàn)遠距離通信。比如IEEE488定義并行通行狀態(tài)時,規(guī)定設(shè) 備線總長不得超過20米,并且任意兩個設(shè)備間的長度不得超過2米;而對于串口 而言,長度可達1200米。典型地,串口用于ASCII碼字符的傳輸。通信
9、使用3根 線完成:(1)地線,(2)發(fā)送,(3)接收。由于串口通信是異步的,端口能夠在 一根線上發(fā)送數(shù)據(jù)同時在另一根線上接收數(shù)據(jù)。其他線用于握手,但是不是必須 的。 (1)電氣特性: EIA-RS-232C對電器特性、邏輯電平和各種信號線功能都作了規(guī)定。 在TxD和RxD上:邏輯1(MARK)=-3V-15V 邏輯0(SPACE)=+315V 在RTS、CTS、DSR、DTR和DCD等控制線上: 信號有效(接通,ON狀態(tài),正電壓)+3V+15V 信號無效(斷開,OFF狀態(tài),負電壓)=-3V-15(2)RS232接口定義: (3) RS232總線電平轉(zhuǎn)換:(4) RS232數(shù)據(jù)傳輸格式: 串行通
10、信中,線路空閑時,線路的TTL電平總是高,經(jīng)反串行通信中,線路空閑時,線路的TTL電平總是高,經(jīng)反向RS232的電平總是低。一個數(shù)據(jù)的開始RS232線路為高電平,結(jié)束時RS232為低電平。數(shù)據(jù)總是從低位向高位一位一位的傳輸。示波器讀數(shù)時,左邊是數(shù)據(jù)的低位。例如,對于16進制數(shù)據(jù)55H和aaH,當(dāng)采用8位數(shù)據(jù)位、1位停位傳輸時位停止位傳輸時:55H=01010101B,高低位倒序后為10101010B,加入一個起始位0一個停止位155H的數(shù)據(jù)格式為0101010101個起始位0,個停止位1,55H的數(shù)據(jù)格式為:0101010101aaH=10101010B,高低位倒序后為01010101B,加入
11、一個起始位0,一個停止位1,aaH的數(shù)據(jù)格式為:0010101011(5) RS232通信過程: I:開始通信時,信號線為空閑(邏輯),當(dāng)檢測到由到的跳變時,開始對“接收 時鐘”計數(shù)。 II:當(dāng)計到8個時鐘時,對輸入信號進行檢測,若仍為低電平,則確認(rèn)這是“起 始位”,而不是干擾信號。 III:接收端檢測到起始位后,隔16個接收時鐘,對輸入信號檢測一次,把對應(yīng)的值 作為D0位數(shù)據(jù)。若為邏輯1, 作為數(shù)據(jù)位1;若為邏輯0,作為數(shù)據(jù)位0。 IV:再隔16個接收時鐘,對輸入信號檢測一次,把對應(yīng)的值作為D1位數(shù)據(jù)。., 直到全部數(shù)據(jù)位都輸入。 V:檢測校驗位P(如果有的話)。 VI:接收到規(guī)定的數(shù)據(jù)位個
12、數(shù)和校驗位后,通信接口電路希望收到停止位S(邏輯 1),若此時未收到邏輯說明出現(xiàn)了錯誤在狀態(tài)寄存器中置“幀錯誤”標(biāo)志若沒 若此時未收到邏輯1,說明出現(xiàn)了錯誤,在狀態(tài)寄存器中置“幀錯誤”標(biāo)志。若 沒有錯誤,對全部數(shù)據(jù)位進行奇偶校驗,無校驗錯時,把數(shù)據(jù)位從移位寄存器 中送數(shù)據(jù)輸入寄存器。若校驗錯,在狀態(tài)寄存器中置奇偶錯標(biāo)志。 VII:本幀信息全部接收完把線路上出現(xiàn)的高電平作為空閑位。 VIII:當(dāng)信號再次變?yōu)榈蜁r,開始進入下一幀的檢測。(1) Quartus頂層設(shè)計 如上圖所示,整個頂層設(shè)計可以分為4個部分,(1)鎖相環(huán);作用是將輸入的系統(tǒng)時鐘信號(系統(tǒng)時鐘50MHZ)轉(zhuǎn)換為12MHZ的syscl
13、k時鐘,在進入RS232前先進行第一次分頻彌補RS232自身分頻不足的特點。(2)核心模塊RS232;作用是將計算機輸入的串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù)便于給后方的顯示模塊處理。(3)分頻模塊;作用是給顯示模塊提供所需的時鐘,由于顯示模塊的本質(zhì)是一個個顯示,所以為了能同時顯示故將輸入頻率調(diào)至1KHz以上讓人眼無法一個個識別形成同時顯示的效果。(4)顯示模塊;作用是將輸入的并行信號(8位)分成4位一組,即兩組進行處理后在試驗箱的數(shù)碼管上顯示。(1-1)模塊一分析: 從上圖可以看出參數(shù):1.inclk=50MHz 2.DC=50% 3.Ratio=12/25 ,從而可以得出outclk=50MHz*12/
14、25=24MHz,再通過D觸發(fā)器2分頻后得到12MHz的輸出系統(tǒng)時鐘來彌補RS232模塊分頻不足的缺點。(1-2)模塊二分析: 上圖所示的為RS232集成模塊,經(jīng)VHDL編譯生成的模塊文件。輸入為sysclk=12MHz,rxd=計算機輸入的串行數(shù)據(jù)串,disp為8位的并行數(shù)據(jù)段。程序1:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity rs232 isport(sysclk: in std_logic; rxd: in std_logic; disp: out std_logic_v
15、ector(7 downto 0) );end rs232;分析:定義實體。輸入信號,輸入時鐘信號為邏輯信號,輸出信號disp為8位矢量信號,低位為0 高位為7。architecture behv of rs232 is signal b: std_logic_vector(9 downto 0); signal r: std_logic_vector(3 downto 0); signal j: std_logic_vector(15 downto 0); signal frxd,gt,gtclr,cclk,gate: std_logic;begin gate=gt and cclk; di
16、sp(7 downto 0)=b(8 downto 1); 將串行數(shù)據(jù)段的1-8位數(shù)據(jù)位從b中取出至于disp中。 frxd=not rxd;分析:定義機構(gòu)體。先定義可信號b,r,j。其中的b作為數(shù)據(jù)轉(zhuǎn)移的臨時載體。R,j分別作為后 續(xù)程序的計數(shù)單元,其中需要注意的是j的位數(shù)控制,因為當(dāng)需要控制波特率的時候,由于 輸入的sysclk是固定的12MHz的系統(tǒng)時鐘信號無法改變,故能改變的只有RS232中的分頻系 數(shù),但由于分頻的系數(shù)的改變,于是j作為計數(shù)信號其值也將隨之改變,所以在定義j時應(yīng) 注意j的位數(shù)防止溢出。s1:process(sysclk,gt) begin if gt=0 then j
17、0); elsif sysclkevent and sysclk=1 then else j=j+1; end if; end if;end process; 通過計算12M/1250=9600,故可以得知波特率為9600b/s。通過改變j的值可以很方便的來設(shè) 置所需要的波特率。s2:process(j)begin if j=111001 then cclk=1; else cclk=0; end if;end process;分析:s2的段碼作用是當(dāng)j計數(shù)到一定數(shù)值的時候產(chǎn)生一個脈沖,從而實現(xiàn)分頻的作用。其中j值 的設(shè)定關(guān)系到分頻的占空比,只需要j 的值在分頻系數(shù)之內(nèi)即可產(chǎn)生分頻的效果。s3
18、:process(gate,gtclr)begin if gtclr=1 then r=0000; elsif gateevent and gate=1 then r=r+1; end if;end process;s4:process(gate,r)begin if r=1010 then gtclr=not gate; else gtclr=0; end if;end process;分析:s3,s4段碼的作用是計數(shù)從0-10,即計數(shù)輸入數(shù)據(jù)段的10位,0-起始位,1-8-數(shù)據(jù)位,9- 終止位。s5:process(gate,rxd,b)begin if gateevent and gat
19、e=1 then b(9 downto 0)=rxd&b(9 downto 1); 將b的后9位并上rxd 的第一位組合成新的信號b。 end if;end process;分析:s5段碼的作用是,將rxd的輸入信號通過移位寄存的方法將RXD中的數(shù)據(jù)一一取出移動到信 號b中,然后再通過的b的移位從而將rxd中的數(shù)據(jù)段完整的轉(zhuǎn)移到信號b中保存。s6:process(frxd,gtclr)begin if gtclr=1 then gt=0; elsif frxdevent and frxd=1 then gt=1; end if; end process;end behv;分析:s6的段碼的作用
20、是用于判斷起始位,gt做為標(biāo)志位,當(dāng)已經(jīng)確定為開始時,將 gt的值置1。(1-3)模塊三分析:分析:從上圖可以看出其作用是作為分頻,將50MHz的輸入信號先通過PIN1MHZ模塊將50MHZ 分為1Mhz,再將1MHZ的信號輸入到下一個分頻信號中分為頻率為:1HZ,488HZ,1953HZ, 7812HZ,31250HZ,125kHZ,500kHZ的信號。程序1:PIN1hzLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY PIN1MHZ IS PORT(CLKIN:IN STD_
21、LOGIC; CLKOUT:OUT STD_LOGIC);END PIN1MHZ;ARCHITECTURE A OF PIN1MHZ ISBEGINPROCESS(CLKIN)VARIABLE CNTTEMP:INTEGER RANGE 0 TO 49;BEGIN IF CLKIN=1 AND CLKIN EVENT THEN IF CNTTEMP=49 THEN CNTTEMP:=0; ELSE IF CNTTEMP25 THEN CLKOUT=1; ELSE CLKOUT=0; END IF; CNTTEMP:=CNTTEMP+1; END IF ; END IF;END PROCESS;
22、END A;分析:上述程序段中可以知道,使用變量VARIABLE做為計數(shù),從0-49剛好為50個數(shù), 當(dāng)小于25的時候賦值為1,其余為0,使得將50MHZ處理為1MHZ。當(dāng)取值大于或 等于50時復(fù)位為0。從而達到分頻的目的。程序2:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt isport(clk:in std_logic; freq1:out std_logic; freq488:out std_logic; freq1953:out std_logic; freq781
23、2:out std_logic; freq31250:out std_logic; freq125k:out std_logic; freq500k:out std_logic);end cnt;architecture behv of cnt is signal temp:std_logic_vector(19 downto 0);begin process(clk) begin if clk event and clk=1 then temp=00000000000000000000; else temp=temp+1; end if; end if;end process; freq1=
24、temp(19); freq488=temp(10); freq1953=temp(8); freq7812=temp(6); freq31250=temp(4); freq125k=temp(2); freq500k=temp(0); end behv;分析:程序2的設(shè)計思路同樣是使用計數(shù),但和程序1的計數(shù)不完全相同,數(shù)由16進 制表示,4為2進制組成1位16進制,所以從第0位開始可以計數(shù)2位,第一位 可以計數(shù)4位,第二位可以計數(shù)8位,依次可以得出計數(shù)量為2的n+1次方個數(shù), 從而達到同時計數(shù)多個的目的從而產(chǎn)生多個時鐘信號。(1-4)模塊四分析:分析:顯示模塊由兩部分組成,74138的表面作
25、用是譯碼將輸入的sel信號翻譯出來并選中制定的數(shù) 碼管。其實質(zhì)作用是由輸入的信號(0-7計數(shù)為8的計數(shù)信號輸入),來控制數(shù)碼管的片選。 而display的作用是來實現(xiàn)片選,將RS232輸出的并行信號的兩部分(每部分4位組成一個 16進制數(shù))進行處理來實現(xiàn)段選。分析:上圖為display模塊的細節(jié)圖。rxd中的信號分為兩組輸入,分別進入muxer 的第0組和第1 組。其余的組全部拉低,達到出去最低兩位顯示,其余為顯示全0的目的,cnt8為0-7的計 數(shù),作用是控制muxer進入led程序的順序,而led是為了實現(xiàn)段選,點亮數(shù)碼管的特定位來 顯示輸入數(shù)值。程序1.library ieee;use
26、ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt8 isport(clk:in std_logic; q:out std_logic_vector(2 downto 0);end cnt8;architecture behv of cnt8 issignal temp:std_logic_vector(2 downto 0);begin process(clk) begin if clk event and clk=1 then if temp=111 then temp=000; else temp=temp
27、+1; end if; end if; end process; qdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdout=0000000; end case; end process;end behv;分析:程序led是完成段顯,將輸入的數(shù)值0-15翻譯成對應(yīng)的數(shù)碼管編碼。3.3調(diào)試:(1)disp(7 downto 0)=0&b(7 downto 1); 在RS232的結(jié)構(gòu)體中書上的語句是上述語句,按照書上的方式輸入到RS232模塊中去會發(fā)現(xiàn)程序編譯并沒有錯誤,當(dāng)在最后編譯燒錄到MAX232中通過FPGA實驗
28、箱上的數(shù)碼管進行顯示的時候會發(fā)現(xiàn),在輸入0-7FH的時候都能正確的顯示出來,當(dāng)一旦當(dāng)輸入的數(shù)值大于7FH時其值就會出錯,而在后7位的顯示上卻依舊能正確顯示,所以在發(fā)現(xiàn)這個問題的時候我們進行了討論,先是以為問題處在muxer是,于是我們采取了將數(shù)據(jù)分為8組每組為1位來顯示,結(jié)果發(fā)現(xiàn)問題依舊,于是又嘗試了將(1)語句的0改成了1,于是發(fā)現(xiàn)無論怎么輸入高位都是1,通過上面的嘗試我們總結(jié)出,我們的問題應(yīng)該出在數(shù)據(jù)的傳輸過程上,于是我們開始分析數(shù)據(jù)的傳輸形式,發(fā)現(xiàn)了RXD中其實真正的數(shù)據(jù)位為1-8但是(1)語句中卻一直用0代替了本應(yīng)該傳輸?shù)牡?位,于是我們嘗試著將(1)語句改成了disp(7 downt
29、o 0)=b(8 downto 1);,直接將1-8位傳輸給disp發(fā)現(xiàn)問題得以解決。(2) 串口調(diào)試助手:波特率是300的倍數(shù),在不選擇十六進制發(fā)送時輸出為ASCII碼。4.總結(jié): 通過這次課程設(shè)計,讓我認(rèn)識了MODBUS協(xié)議傳輸數(shù)據(jù)的原理,也了解了RS-232的工作機制與原理,并更加熟練的使用Quartus2軟件。將設(shè)計程序下載到實驗板上運行調(diào)試后,最終結(jié)果與預(yù)期效果基本一致,用鍵盤輸入字符到串口調(diào)試軟件,從串口調(diào)試軟件發(fā)送到實驗板上。雖然途中遇到了不少的問題,但是通過查找大量的資料,認(rèn)真的熟讀程序,找到了問題之所在,從中也學(xué)到了不少知識,獲益良多。在驗收階段,老師問及分頻的原理及波特率為
30、什么是15200等問題,起初知其然不知其所以然,在深入研究程序后方才明白其中的究竟。本設(shè)計是采用硬件描述語言和FPGA芯片想組合進行的RS-232串行通信的課程設(shè)計,從中可看出EDA技術(shù)的發(fā)展在一定程度上實現(xiàn)了硬件設(shè)計的軟件化。設(shè)計的過程變得相對簡單,而且容易修改。相信隨著電子技術(shù)的發(fā)展,串行通信的功能會更加多樣化,滿足人們的各種需求。在今后的學(xué)習(xí)中我希望對FPGA做一個更深入飛研究,充分挖掘FPGA的應(yīng)用潛力,更加熟悉FPGA的開發(fā)設(shè)計,模擬仿真等開發(fā)流程。這次實驗增強了我的信心,增強了我對編程的興趣,我會更加的努力,不斷的提高自己的動手能力。參考文獻1 通信與電子系統(tǒng)實驗指導(dǎo)書.武漢:華中
31、科技大學(xué)武昌分校.2 潘松.EDA技術(shù)與VHDL.北京:清華大學(xué)出版社,2009.3 朱運利.EDA技術(shù)應(yīng)用(第二版).北京:電子工業(yè)出版社,2007.4 王行.EDA技術(shù)入門與提高.西安:西安電子科技大學(xué)出版社,2009.5 李莉.電子設(shè)計自動化(EDA).北京:中國電力出版社,2009.附錄1 FPGA頂層設(shè)計圖 附錄2 程序清單:程序1:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity rs232 isport(sysclk: in std_logic; rxd: in std_
32、logic; disp: out std_logic_vector(7 downto 0) );end rs232;architecture behv of rs232 is signal b: std_logic_vector(9 downto 0); signal r: std_logic_vector(3 downto 0); signal j: std_logic_vector(15 downto 0); signal frxd,gt,gtclr,cclk,gate: std_logic;begin gate=gt and cclk; disp(7 downto 0)=b(8 down
33、to 1); frxd=not rxd;s1:process(sysclk,gt) begin if gt=0 then j0); elsif sysclkevent and sysclk=1 then else j=j+1; end if; end if;end process;s2:process(j)begin if j=111001 then cclk=1; else cclk=0; end if;end process;s3:process(gate,gtclr)begin if gtclr=1 then r=0000; elsif gateevent and gate=1 then
34、 r=r+1; end if;end process;s4:process(gate,r)begin if r=1010 then gtclr=not gate; else gtclr=0; end if;end process;s5:process(gate,rxd,b)begin if gateevent and gate=1 then b(9 downto 0)=rxd&b(9 downto 1); end if;end process;s6:process(frxd,gtclr)begin if gtclr=1 then gt=0; elsif frxdevent and frxd=1
35、 then gt=1; end if; end process;end behv;程序2:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY PIN1MHZ IS PORT(CLKIN:IN STD_LOGIC; CLKOUT:OUT STD_LOGIC);END PIN1MHZ;ARCHITECTURE A OF PIN1MHZ ISBEGINPROCESS(CLKIN)VARIABLE CNTTEMP:INTEGER RANGE 0 TO 49;BEGIN IF CLKIN=1 AND CLKIN EVENT THEN IF CNTTEMP=49 THEN CNTTEMP:=0; ELSE IF CNTTEMP25 THEN CLKOUT=1; ELSE CLKOUT=0; END IF; CNTTEMP:=CNTTEMP+1; END IF ; END IF;END PROCES
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024馬腦山養(yǎng)殖戶合同
- 2024樓頂廣告牌安裝合同范本
- 房產(chǎn)交易資金托管服務(wù)合同
- 社區(qū)環(huán)境衛(wèi)生維護合同
- 授權(quán)經(jīng)營合同范本
- 房屋建筑工程協(xié)議2024年
- 標(biāo)準(zhǔn)傷殘賠償協(xié)議書參考
- 2023年高考地理第一次模擬考試卷-(廣東B卷)(考試版)A4
- 【人教版系列】四年級數(shù)學(xué)下冊全冊專項測評(含答案)
- 關(guān)于離婚協(xié)議書的撰寫指南
- 遼寧省大連市金普新區(qū)2024-2025學(xué)年七年級上學(xué)期11月期中英語試題(無答案)
- 生態(tài)文明學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 區(qū)病案質(zhì)控中心匯報
- 期中測試卷(1-4單元)(試題)2024-2025學(xué)年四年級上冊數(shù)學(xué)人教版
- 教育局職業(yè)院校教師培訓(xùn)實施方案
- 《萬維網(wǎng)服務(wù)大揭秘》課件 2024-2025學(xué)年人教版新教材初中信息技術(shù)七年級全一冊
- 2024年新華社招聘應(yīng)屆畢業(yè)生及留學(xué)回國人員129人歷年高頻難、易錯點500題模擬試題附帶答案詳解
- 人教版(2024新版)七年級上冊英語Unit 5單元測試卷(含答案)
- (完整版)新概念英語第一冊單詞表(打印版)
- 美食行業(yè)外賣平臺配送效率提升方案
- 中國民用航空局信息中心招聘筆試題庫2024
評論
0/150
提交評論