找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 10051|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

PC串口通信RTS,DTR編程控制+方波發(fā)生與檢測(cè)設(shè)計(jì) VB源碼+電路圖+PCB+報(bào)告

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
分享一個(gè)pc串口課設(shè)的全套資料分享給大家,包含vb.net源碼工程,TTL串口的電平轉(zhuǎn)換板子的電路原理圖與pcb工程文件(AD畫(huà)的),word格式的課設(shè)論文與數(shù)據(jù)分析測(cè)試報(bào)告,這些都可以從本帖最后下載附件.

分析及總結(jié)
(1)通過(guò)本次課設(shè),我熟悉了Altium Designer軟件,自己手動(dòng)繪制一個(gè)原理圖過(guò)程中,對(duì)RS232每個(gè)引腳的作用有了一定的了解,同時(shí)熟悉了MAX232芯片的功能,但是在繪制PCB圖時(shí)遇到許多問(wèn)題,作為一個(gè)AD新手,布局布線缺乏經(jīng)驗(yàn),在排版和布線時(shí)遇到很大的困難,一個(gè)PCB的布局布線長(zhǎng)達(dá)一周時(shí)間內(nèi)無(wú)法完成,最后再別人的指導(dǎo)下完成了PCB的布局和布線。
(2)通過(guò)完整的制板流程,對(duì)制版工藝有了深刻的了解。通過(guò)自己的努力做的電路板,然后焊接調(diào)試,最終完成設(shè)計(jì)要求,感覺(jué)特別有成就感。在使用VB編程過(guò)程中,對(duì)VB可視化編程有了初步的接觸,其中直接使用控件,減少了編程的難度,同時(shí),編程方法圖形化、界面化,可以直觀的看到實(shí)現(xiàn)結(jié)果,增加了我對(duì)編程的興趣。課設(shè)最重要的是鍛煉了解決問(wèn)題的能力,通過(guò)串口通信的設(shè)計(jì),對(duì)串口通信有了深刻的理解,計(jì)算機(jī)不再是一個(gè)簡(jiǎn)單的單機(jī),可以通過(guò)串口實(shí)現(xiàn)多個(gè)計(jì)算機(jī)之間數(shù)據(jù)傳輸和信息共享,往更深研究,串口可以完成計(jì)算機(jī)之間圖片共享、資料共享,通過(guò)一個(gè)簡(jiǎn)單的串口,就能實(shí)現(xiàn)雙機(jī)之間的信息共享,低成本實(shí)現(xiàn)了高收益。
(3)在電路板焊接過(guò)程中,存在很多問(wèn)題,由于PCB圖封裝選擇不合適,導(dǎo)致排針無(wú)法焊接,電源線和地線短接,調(diào)試遇到很大問(wèn)題。
(4)通過(guò)DTR和RTS腳產(chǎn)生的方波經(jīng)過(guò)實(shí)際測(cè)試,誤差較小,有一定的實(shí)用性,通過(guò)串口和程序結(jié)合,可以很方便的產(chǎn)生一個(gè)占空比、周期可調(diào)的方波,實(shí)現(xiàn)方法簡(jiǎn)單快捷。

5.3.4 方波檢測(cè)電路結(jié)果分析
通過(guò)測(cè)試30組不同周期,不同占空比的方波,發(fā)現(xiàn)當(dāng)給定頻率大于9000Hz時(shí),輸出方波會(huì)出現(xiàn)失真;占空比小于11%、大于95%時(shí),會(huì)出現(xiàn)波形失真。所以通過(guò)串口產(chǎn)生的周期、占空比可調(diào)的方波,可以使用范圍在:11%—95%占空比時(shí),頻率小于9000Hz時(shí),此時(shí),產(chǎn)生波形的占空比相對(duì)誤差在0.02%左右,周期相對(duì)誤差幾乎為0。
5.3.5 測(cè)試實(shí)物圖
圖5-9 測(cè)試實(shí)物圖

目錄
1 課設(shè)背景
2 設(shè)計(jì)任務(wù)
2.1 功能模塊電路設(shè)計(jì)要求
2.2 課設(shè)設(shè)計(jì)任務(wù)
2.3 課程設(shè)計(jì)成果要求
2.3.1 基本功能設(shè)計(jì)部分
2.3.2 擴(kuò)展設(shè)計(jì)部分
2.4 課設(shè)工作進(jìn)度
3 方案設(shè)計(jì)
3.1 硬件電路設(shè)計(jì)
3.1.1 RS232功能及特點(diǎn)
3.1.2 RS232引腳及功能
3.1.3 MAX232功能及特點(diǎn)
3.1.4 74HC04引腳及功能
3.2 總體電路設(shè)計(jì)方案
3.3 軟件設(shè)計(jì)
4 過(guò)程論述
4.1 AD原理圖電路繪制過(guò)程
4.1.1 電源電路
4.1.2 電平轉(zhuǎn)換電路
4.1.3 方波測(cè)試電路
4.1.4 總原理圖
4.2 AD中PCB圖繪制過(guò)程
4.2.1 PCB圖
4.3 電路板印刷制作過(guò)程
4.3.1 濕膜工藝制單面板簡(jiǎn)易流程
4.3.2 制作流程
4.4 軟件設(shè)計(jì)
4.4.1 軟件設(shè)計(jì)思路
4.4.2 軟件設(shè)計(jì)流程圖
4.4.3 軟件控制面板
4.4.4 軟件源代碼
5 焊裝測(cè)試
5.1 焊接過(guò)程
5.2 焊接后電路板實(shí)物圖
5.3 上電調(diào)試及測(cè)試結(jié)果
5.3.1 電源電路測(cè)試
5.3.2 電平轉(zhuǎn)換電路測(cè)試
5.3.3 方波檢測(cè)電路測(cè)試
5.3.4 方波檢測(cè)電路結(jié)果分析
5.3.5 測(cè)試實(shí)物圖
6 分析及總結(jié)

1 課設(shè)背景
綜合課程設(shè)計(jì)是在完成基本電子技術(shù)類(lèi)、計(jì)算機(jī)類(lèi)課程之后安排的綜合設(shè)計(jì)與訓(xùn)練環(huán)節(jié),目的是要通過(guò)綜合課程設(shè)計(jì)這一實(shí)踐環(huán)節(jié),使得學(xué)生建立起理論聯(lián)系實(shí)際的基本專業(yè)素質(zhì),要求學(xué)生能夠根據(jù)設(shè)計(jì)任務(wù)和技術(shù)指標(biāo)要求完成電子信息系統(tǒng)設(shè)計(jì)全過(guò)程----設(shè)計(jì)、制作一個(gè)既包含硬件電路設(shè)計(jì)制作、又包含程序設(shè)計(jì)開(kāi)發(fā)工作內(nèi)容的小型電子系統(tǒng),利用電子線路CAD軟件(Altium Designer)完成原理圖繪制、PCB版圖設(shè)計(jì),并根據(jù)版圖進(jìn)行制版,然后進(jìn)行安裝和調(diào)試工作;再選擇一種計(jì)算機(jī)編程語(yǔ)言,完成程序設(shè)計(jì)任務(wù)。通過(guò)綜合課程設(shè)計(jì)環(huán)節(jié),使學(xué)生得到電子信息產(chǎn)品的設(shè)計(jì)、制作、調(diào)試、測(cè)試四大環(huán)節(jié)的完整過(guò)程訓(xùn)練,熟悉電子信息產(chǎn)品設(shè)計(jì)的一般過(guò)程。綜合課程設(shè)計(jì)對(duì)于提高學(xué)生綜合應(yīng)用所學(xué)專業(yè)知識(shí)解決實(shí)際問(wèn)題具有重要意義,同時(shí)也是培養(yǎng)學(xué)生獨(dú)立學(xué)習(xí)新知識(shí)的能力以及分析問(wèn)題、發(fā)現(xiàn)問(wèn)題和解決實(shí)際問(wèn)題的能力,也是培養(yǎng)學(xué)生創(chuàng)新意識(shí)和創(chuàng)新精神的重要機(jī)會(huì)。

2 設(shè)計(jì)任務(wù)
2.1 功能模塊電路設(shè)計(jì)要求
(1)計(jì)算機(jī)RS232串口<―>TTL串口的電平轉(zhuǎn)換;                              
(2)基于RTS、DTR功能引腳的數(shù)字控制電路設(shè)計(jì);                                       
(3)綜合設(shè)計(jì)軟件和硬件,使得計(jì)算機(jī)串口成為周期可控、占空比可控的方波發(fā)生器;
(4)編寫(xiě)程序?qū)崿F(xiàn)計(jì)算機(jī)之間的串行通信;                                    
(5)學(xué)有余力可以考慮如何利用串口閑置資源實(shí)現(xiàn)數(shù)據(jù)采集功能。
2.2 課設(shè)設(shè)計(jì)任務(wù)
1. 熟悉綜合課程的內(nèi)容和要求; 對(duì)所要求的內(nèi)容深刻理解,能夠提出綜合課程設(shè)計(jì)的合理方案,設(shè)計(jì)出符合性能指標(biāo)要求的電路,提出軟件開(kāi)發(fā)思路。                                                            
2. 掌握Altium Designer的使用,完成原理圖設(shè)計(jì):熟練的自建元件庫(kù)并繪出符合規(guī)格的原理圖                                          
3. 完成PCB制版圖繪制,掌握PCB設(shè)計(jì)規(guī)則并繪出符合模擬電路的PCB                              
4 制板:熟悉全套工藝的PCB制板過(guò)程,完成PCB板制作, 在此基礎(chǔ)上按照工藝要求安裝并調(diào)試出合格的產(chǎn)品                              
5. 根據(jù)任務(wù)要求,選擇計(jì)算機(jī)可視化程序設(shè)計(jì)語(yǔ)言,編寫(xiě)程序,能夠?qū)崿F(xiàn)計(jì)算機(jī)之間相互通信、數(shù)字狀態(tài)輸出控制、波形發(fā)生等功能                       
5. 測(cè)試與驗(yàn)收:熟悉產(chǎn)品測(cè)試技術(shù),驗(yàn)證設(shè)計(jì)結(jié)果是否實(shí)現(xiàn)設(shè)計(jì)目標(biāo)                                 
8. 撰寫(xiě)課程設(shè)計(jì)報(bào)告。                                             
綜合課程設(shè)計(jì)結(jié)束時(shí),要求學(xué)生寫(xiě)出完整、規(guī)范的課程設(shè)計(jì)報(bào)告(主要包括設(shè)計(jì)任務(wù)及要求、軟硬件總體設(shè)計(jì)方案論證、硬件總體方案、各個(gè)功能電路設(shè)計(jì)、軟件總體方案、各個(gè)功能的程序設(shè)計(jì),以及調(diào)試與測(cè)試,總結(jié)與體會(huì)等內(nèi)容,并附電路原理圖、PCB版圖及實(shí)物圖,程序運(yùn)行界面、源代碼以及測(cè)試數(shù)據(jù)等)。指導(dǎo)教師根據(jù)答辯成績(jī)、批閱課程設(shè)計(jì)報(bào)告成績(jī)、模塊演示成績(jī)?nèi)糠謨?nèi)容確定最終成績(jī)。按照百分制評(píng)定成績(jī):表現(xiàn)(10%)、設(shè)計(jì)制作質(zhì)量(50%)、實(shí)習(xí)報(bào)告(40%)。

2.3 課程設(shè)計(jì)成果要求
2.3.1 基本功能設(shè)計(jì)部分   
1)正確實(shí)現(xiàn)RS232與TTL電平之間的相互轉(zhuǎn)換;                     
2)計(jì)算機(jī)串行端口實(shí)現(xiàn)至少3種功能(雙機(jī)通信、輸出控制、波形發(fā)生器);                                                      
3)設(shè)計(jì)必要的數(shù)字電路,為輸出控制功能的驗(yàn)證,提供操作對(duì)象。   
4)可視化程序設(shè)計(jì)結(jié)果支持硬件系統(tǒng)工作,能夠保證功能正確實(shí)現(xiàn),界面友好,布局合理;                                       
2.3.2 擴(kuò)展設(shè)計(jì)部分      
具有數(shù)據(jù)采集功能——利用串口相關(guān)引腳,實(shí)現(xiàn)數(shù)字狀態(tài)的采集;                                            
設(shè)計(jì)必要的數(shù)字電路形成2路數(shù)字狀態(tài)發(fā)生電路,為數(shù)據(jù)采集提供信號(hào)源。
2.4 課設(shè)工作進(jìn)度

3 方案設(shè)計(jì)

3.1 硬件電路設(shè)計(jì)
3.1.1 RS232功能及特點(diǎn)
(1)RS232是在1970年由美國(guó)電子工業(yè)協(xié)會(huì)(EIA)聯(lián)合貝爾系統(tǒng)、調(diào)制解調(diào)器廠家及計(jì)算機(jī)終端生產(chǎn)廠家共同制定的用于串行通訊的標(biāo)準(zhǔn)。它的全名是“數(shù)據(jù)終端設(shè)備(DTE)和數(shù)據(jù)通訊設(shè)備(DCE)之間串行二進(jìn)制數(shù)據(jù)交換接口技術(shù)標(biāo)準(zhǔn)”該標(biāo)準(zhǔn)規(guī)定采用一個(gè)25個(gè)腳的DB-25連接器,對(duì)連接器的每個(gè)引腳的信號(hào)內(nèi)容加以規(guī)定,還對(duì)各種信號(hào)的電平加以規(guī)定。后來(lái)IBM的PC機(jī)將RS232簡(jiǎn)化成了DB-9連接器,從而成為事實(shí)標(biāo)準(zhǔn)。而工業(yè)控制的RS-232口一般只使用RXD、TXD、GND三條線。
(2)在RS-232-C中任何一條信號(hào)線的電壓均為負(fù)邏輯關(guān)系。即:邏輯“1”為-3到-15V;邏輯“0”為+3到+15V。
RS-232-C接口連接器一般使用型號(hào)為DB-9插頭座,通常插頭在DCE端,插座在DTE端。PC機(jī)的RS-232口為9芯針插座。一些設(shè)備與PC機(jī)連接的RS-232接口,因?yàn)椴皇褂脤?duì)方的傳送控制信號(hào),只需要三條接口線,即“發(fā)送數(shù)據(jù)TXD”、“接收數(shù)據(jù)RXD”和“信號(hào)地GND”。RS-232傳輸線采用屏蔽雙絞線。
(3)由RS-232-C標(biāo)準(zhǔn)規(guī)定在碼元畸變小于4%的情況下,傳輸電纜長(zhǎng)度應(yīng)為50英尺,其實(shí)這個(gè)4%的碼元畸變是很保守的,在實(shí)際應(yīng)用中,約有99%的用戶是按碼元畸變10%-20%的范圍工作的,所以實(shí)際使用中最大距離會(huì)遠(yuǎn)超過(guò)50英尺,美國(guó)DEC公司曾規(guī)定容許畸變?yōu)?0%而得出下面實(shí)驗(yàn)結(jié)果。其中1號(hào)電纜為屏蔽電纜,型號(hào)為DECP.NO.9107723內(nèi)有三對(duì)雙絞線,每對(duì)有22#AWG組成,其外覆以屏蔽線。2號(hào)電纜為不帶屏蔽的電纜。
(4)接口的信號(hào)電平值較高,易損壞接口電路的芯片,又因?yàn)榕cTTL電平不兼容故需使用電平轉(zhuǎn)換電路方能與TTL電路連接。
(5)傳輸速率較低,在異步傳輸時(shí),波特率為20Kbps;因此在“南方的老樹(shù)51CPLD開(kāi)發(fā)板”中,綜合程序波特率只能采用19200,也是這個(gè)原因。
(6)接口使用一根信號(hào)線和一根信號(hào)返回線而構(gòu)成共地的傳輸形式,這種共地傳輸容易產(chǎn)生共模干擾,所以抗噪聲干擾性弱。
(7)傳輸距離有限,最大傳輸距離標(biāo)準(zhǔn)值為50英尺,實(shí)際上也只能用在50米左右。(通過(guò)外接RS-232增強(qiáng)器可將傳輸距離擴(kuò)大到1000米左右)
3.1.2 RS232引腳及功能
表3-1 RS232引腳功能
針腳
符號(hào)
輸入/輸出
說(shuō)明
1
DCD
輸入
數(shù)據(jù)載波檢測(cè)
2
RXD
輸入
接收數(shù)據(jù)
3
TXD
輸出
發(fā)送數(shù)據(jù)
4
DTR
輸出
數(shù)據(jù)終端順備好
5
GND
信號(hào)地
6
DSR
輸入
數(shù)據(jù)終端準(zhǔn)備好
7
RTS
輸出
請(qǐng)求發(fā)送
8
CTS
輸入
允許發(fā)送
9
RI
輸入
振鈴指示

3.1.3 MAX232功能及特點(diǎn)
(1)MAX232是一種雙組驅(qū)動(dòng)器/接收器,片內(nèi)含有一個(gè)電容性電壓發(fā)生器以便在單5V電源供電時(shí)提供EIA/TIA-232-E電平。當(dāng)用單片機(jī)和PC機(jī)通過(guò)串口進(jìn)行通信,盡管單片機(jī)有串行通信的功能,但單片機(jī)提供的信號(hào)電平和RS232的標(biāo)準(zhǔn)不一樣,因此要通過(guò)max232這種類(lèi)似的芯片進(jìn)行電平轉(zhuǎn)換。
(2) MAX232引腳
第一部分是電荷泵電路。由1、2、3、4、5、6腳和4只電容構(gòu)成。功能是產(chǎn)生+12v和-12v兩個(gè)電源,提供給RS-232串口電平的需要。
第二部分是數(shù)據(jù)轉(zhuǎn)換通道。由7、8、9、10、11、12、13、14腳構(gòu)成兩個(gè)數(shù)據(jù)通道。
其中13腳(R1IN)、12腳(R1OUT)、11腳(T1IN)、14腳(T1OUT)為第一數(shù)據(jù)通道。
8腳(R2IN)、9腳(R2OUT)、10腳(T2IN)、7腳(T2OUT)為第二數(shù)據(jù)通道。
TTL/CMOS數(shù)據(jù)從11引腳(T1IN)、10引腳(T2IN)輸入轉(zhuǎn)換成RS-232數(shù)據(jù)從14腳(T1OUT)、7腳(T2OUT)送到電腦DB9插頭;DB9插頭的RS-232數(shù)據(jù)從13引腳(R1IN)、8引腳(R2IN)輸入轉(zhuǎn)換成TTL/CMOS數(shù)據(jù)后從12引腳
(R1OUT)、9引腳(R2OUT)輸出。
第三部分是供電。15腳GND、16腳VCC(+5v)。
3.1.4 74HC04引腳及功能
74HC04/74HCT04是六反相器,高速CMOS器件,低功耗肖特基的TTL(LSTTL)電路 。
圖3-1 74HC04
3.2 總體電路設(shè)計(jì)方案
將RS232每個(gè)腳通過(guò)3片MAX232電平轉(zhuǎn)換,之后再將轉(zhuǎn)換之后的輸出通過(guò)反相器增強(qiáng)驅(qū)動(dòng)能力,然后接LED燈來(lái)檢測(cè)電平是否轉(zhuǎn)換;通過(guò)RS232的4腳(DTR)、7腳(RTS)利用軟件產(chǎn)生占空比、頻率可調(diào)的方波,然后接兩個(gè)LED燈來(lái)檢測(cè)方波;通過(guò)RS232的3腳(TXD)、2腳(RXD)實(shí)現(xiàn)數(shù)據(jù)的發(fā)送和接收。在VB中用TXD發(fā)送數(shù)據(jù),外接LED燈來(lái)檢測(cè)是否接收到數(shù)據(jù)。
3.3 軟件設(shè)計(jì)
在VS2013開(kāi)發(fā)環(huán)境中,編寫(xiě)VB程序,通過(guò)一個(gè)下拉選擇框CheckBox來(lái)選擇串口,兩個(gè)文本框,一個(gè)用來(lái)發(fā)送數(shù)據(jù),一個(gè)用來(lái)接收數(shù)據(jù)。4個(gè)Button按鈕,一個(gè)用來(lái)打開(kāi)串口,一個(gè)關(guān)閉串口,一個(gè)發(fā)送數(shù)據(jù),一個(gè)停止方波的產(chǎn)生。DTR、RTS產(chǎn)生占空比可調(diào),頻率可調(diào)的方波,當(dāng)串口打開(kāi)時(shí),在DTR、RTS使能端有效時(shí),通過(guò)選擇相應(yīng)的選擇框,即可產(chǎn)生方波,當(dāng)頻率和占空比文本框輸入為空時(shí),設(shè)定的頻率為1000,占空比為50,當(dāng)輸入不為空時(shí),頻率和占空比為當(dāng)前輸入的值,進(jìn)而實(shí)現(xiàn)頻率和占空比可調(diào)。同時(shí)LED燈的D3,D5會(huì)按方波周期性閃亮。當(dāng)3腳發(fā)送數(shù)據(jù)時(shí),LED的D4會(huì)閃亮,起來(lái)通信提示作用。
4 過(guò)程論述4.1 AD原理圖電路繪制過(guò)程
打開(kāi)Altium Designer,新建一個(gè)工程,為工程添加一個(gè)原理圖和一個(gè)PCB圖,
然后在Altium Designer中找到相應(yīng)元器件的庫(kù)極其封裝,將所用到的元器件庫(kù)導(dǎo)入,封裝大小應(yīng)根據(jù)實(shí)際元器件的尺寸大小來(lái)選擇,找到合適的元器件封裝后,按照設(shè)計(jì)好的電路圖繪制原理圖,原理畫(huà)完之后,編譯原理圖,如果有錯(cuò)誤,根據(jù)提示修改原理圖,編譯通過(guò)后,將原理圖導(dǎo)入PCB。然后將元器件布局,按照元器件之間交線盡可能小的原則將每個(gè)元器件放到合理的位置,然后通過(guò)手動(dòng)布線將PCB圖連起來(lái),最后生成最終的PCB圖。
4.1.1 電源電路
圖中所示P5排針用來(lái)上電測(cè)試時(shí)接電源,通電時(shí),LED燈D6亮,用來(lái)測(cè)試電源電路是否接通。
圖4-1 電源電路
4.1.2 電平轉(zhuǎn)換電路
將RS232的輸出端通過(guò)3片MAX232電平轉(zhuǎn)換,將串口RS232信號(hào)電平(-10,+10V)轉(zhuǎn)換為T(mén)TL信號(hào)電平(0,+5V),MAX232的1,2,3,4,5,6引腳和4個(gè)電容構(gòu)成電荷泵電路,其功能是產(chǎn)生+12V和-12V電源,提供給RS232供電。
圖4-2 電平轉(zhuǎn)換電路
4.1.3 方波測(cè)試電路
將轉(zhuǎn)換電平后的輸出經(jīng)過(guò)反相器增強(qiáng)驅(qū)動(dòng)之后,外接LED燈,當(dāng)RS232輸出端給輸出時(shí),LED燈點(diǎn)亮,當(dāng)DTR和RTS輸出方波時(shí),D3和D5會(huì)按照方波周期性閃爍。
圖4-3 方波檢測(cè)電路
4.1.4 總原理圖
圖4-4 總原理圖
4.2 AD中PCB圖繪制過(guò)程
將元器件導(dǎo)入PCB后,將元器件布局,按照元器件之間交線盡可能小的原則將每個(gè)元器件放到合理的位置,然后通過(guò)手動(dòng)布線將PCB圖連起來(lái),最后生成最終的PCB圖。在畫(huà)PCB圖的過(guò)程中,線寬應(yīng)在30mil之間,焊盤(pán)大小和過(guò)孔應(yīng)選擇適當(dāng)。
4.2.1 PCB圖
圖4-5 PCB圖
4.3 電路板印刷制作過(guò)程
4.3.1 濕膜工藝制單面板簡(jiǎn)易流程
底片輸出—裁板—鉆孔—拋光—烘干—刷感光線路油墨—貼線路層底片—曝光—顯影—水洗—蝕刻—水洗—脫膜—拋光—烘干—刷感光阻焊油墨—烘干—貼底片曝光—顯影—水洗—烘干—刷感光文字油墨—烘干—貼底片曝光—顯影—水洗—沉錫—切邊。
4.3.2 制作流程
1)打印底片:線路層、字符層、底片。
2)裁板(保留20mm工藝邊)
3)鉆孔(鉆頭尖離板0.5mm)
4)拋光 (去除表面氧化物及油污,去除鉆孔時(shí)產(chǎn)生的毛刺)
5)烘干(去除孔內(nèi)殘余水分)
6)刷感光線路油墨(90T絲網(wǎng)框)
7)烘干油墨(85℃,15分鐘)
8)貼底片曝光(時(shí)間16s,先底片對(duì)位)
9)顯影(45℃-50℃ )20-40s
10)水洗及二次固化(85℃,5-10min)
11)蝕刻(溫度50℃)30s-75s 通常50s
12)水洗
13)脫膜
14)水洗
15)刷感光阻焊油墨(感光阻焊油墨:固化劑=3:1,如果油墨比較黏的話,需要增加油墨稀釋劑調(diào)整)
16)油墨烘干(85℃,20min)
17)貼底片曝光(45s)
18)顯影 20-40s
19)水洗
20)烘干
21)刷感光文字油墨(感光字符油墨:固化劑=3:1,如果油墨比較黏,需要增加油墨稀釋劑,油墨一定要調(diào)整)
22)油墨烘干(85℃,10-20分鐘)
23)貼底片 曝光(60s)45s
24)顯影
25)水洗
27)切邊
4.4 軟件設(shè)計(jì)
4.4.1 軟件設(shè)計(jì)思路
在VS2013開(kāi)發(fā)環(huán)境中,編寫(xiě)VB程序,通過(guò)一個(gè)下拉選擇框CheckBox來(lái)選擇串口,兩個(gè)文本框,一個(gè)用來(lái)發(fā)送數(shù)據(jù),一個(gè)用來(lái)接收數(shù)據(jù)。4個(gè)Button按鈕,一個(gè)用來(lái)打開(kāi)串口,一個(gè)關(guān)閉串口,一個(gè)發(fā)送數(shù)據(jù),一個(gè)停止方波的產(chǎn)生。DTR、RTS產(chǎn)生占空比可調(diào),頻率可調(diào)的方波,當(dāng)串口打開(kāi)時(shí),在DTR、RTS使能端有效時(shí),通過(guò)選擇相應(yīng)的選擇框,即可產(chǎn)生方波,當(dāng)頻率和占空比文本框輸入為空時(shí),設(shè)定的頻率為1000,占空比為50,當(dāng)輸入不為空時(shí),頻率和占空比為當(dāng)前輸入的值,進(jìn)而實(shí)現(xiàn)頻率和占空比可調(diào)。同時(shí)LED燈的D3,D5會(huì)按方波周期性閃亮。當(dāng)3腳發(fā)送數(shù)據(jù)時(shí),LED的D4會(huì)閃亮,起來(lái)通信提示作用。
4.4.2 軟件設(shè)計(jì)流程圖
圖4-6 發(fā)送數(shù)據(jù)流程圖
圖4-7 產(chǎn)生方波流程圖
圖4-8 方波測(cè)試流程圖
4.4.3 軟件控制面板
圖4-9 VB控制面板
4.4.4 軟件源代碼詳見(jiàn)附件




5 焊裝測(cè)試

5.1 焊接過(guò)程
將元器件按照原理圖上的正負(fù)插到板子中相應(yīng)的位置,然后按照先低后高、先小后大的順序依次焊接元器件,焊接過(guò)程中應(yīng)該邊焊接邊測(cè)試,以便于后面的調(diào)試。焊接完成后對(duì)應(yīng)原理圖將每條線進(jìn)行檢查,確定沒(méi)有虛焊、漏焊和短路情況時(shí),然后上電測(cè)試。
5.2 焊接后電路板實(shí)物圖
圖5-1 電路板實(shí)物圖
5.3 上電調(diào)試及測(cè)試結(jié)果
5.3.1 電源電路測(cè)試
將元器件焊接到板子上之后,用萬(wàn)用表對(duì)每個(gè)電路模塊進(jìn)行排線檢查,確定沒(méi)有虛焊、短路之后,上電測(cè)試。首先對(duì)電源電路進(jìn)行上電測(cè)試,給電源外接3V電壓,電源電路指示燈亮,說(shuō)明電源電路工作正常,然后對(duì)其他模塊電路進(jìn)行檢測(cè)。測(cè)試實(shí)物及接線圖如下圖所示。
圖5-2 電源電路實(shí)物測(cè)試
5.3.2 電平轉(zhuǎn)換電路測(cè)試
在VB控制面板,選擇當(dāng)前設(shè)備識(shí)別到的串口,并打開(kāi)該串口。然后發(fā)送一個(gè)數(shù)據(jù),與電平轉(zhuǎn)換電路轉(zhuǎn)換后的輸出端連接的LED燈(D4)瞬間點(diǎn)亮,說(shuō)明RES232負(fù)邏輯電平經(jīng)過(guò)MAX232之后,已經(jīng)轉(zhuǎn)換為T(mén)TL電平。
圖5-3 電平轉(zhuǎn)換電路實(shí)物測(cè)試
5.3.3 方波檢測(cè)電路測(cè)試
在VB控制面板,選擇當(dāng)前設(shè)備識(shí)別到的串口,并打開(kāi)該串口。選擇DTR和RTS使能端,然后選擇RTS和DTR方波產(chǎn)生,LED燈D3和D5按照給定頻率點(diǎn)亮和熄滅。然后用示波器分別測(cè)量RTS和DTR腳,觀察實(shí)際產(chǎn)生方波的頻率和占空比,并且與設(shè)定周期和占空比進(jìn)行比較,計(jì)算周期和占空比的絕對(duì)誤差、相對(duì)誤差。絕對(duì)誤差=|示值-標(biāo)準(zhǔn)值|;相對(duì)誤差=|示值-標(biāo)準(zhǔn)值|/真實(shí)值。測(cè)試數(shù)據(jù)如下:
USB轉(zhuǎn)RS232串口輸出電壓測(cè)試(直接測(cè)USB轉(zhuǎn)串口9針線有關(guān)參數(shù))
DTR邏輯輸出高電平時(shí)RS232實(shí)際電壓:4.89V拉電流:26mA
DTR邏輯輸出低電平時(shí)RS232實(shí)際電壓:-0.68V灌電流:0
RTS邏輯輸出高電平時(shí)RS232實(shí)際電壓:-0.67V拉電流:40mA
RTS邏輯輸出低電平時(shí)RS232實(shí)際電壓:-0.7V灌電流:0.2mA
多功能串口板卡TTL信號(hào)輸出電平測(cè)試(測(cè)課程設(shè)計(jì)完成板卡的TTL端有關(guān)參數(shù))
DTR邏輯輸出高電平時(shí)實(shí)際TTL端電壓:4.98V拉電流:70mA
DTR邏輯輸出低電平時(shí)實(shí)際TTL端電壓:0.02V灌電流:0
RTS邏輯輸出高電平時(shí)實(shí)際TTL端電壓:4.78V拉電流:40mA
RTS邏輯輸出低電平時(shí)實(shí)際TTL端電壓:0.04V灌電流:0
第一組測(cè)試:(設(shè)定周期、占空比,觀測(cè)實(shí)際結(jié)果)
設(shè)定周期:1000ms實(shí)際周期:1000ms設(shè)定占空比:50%實(shí)際占空比:50%
輸出信號(hào)幅度:2.88V 周期絕對(duì)誤差:0周期相對(duì)誤差:0 占空比絕對(duì)誤差:0占空比相對(duì)誤差:0
第二組測(cè)試:(改變周期、占空比,觀測(cè)實(shí)際結(jié)果)
設(shè)定周期:4000ms實(shí)際周期:4009ms設(shè)定占空比:80%實(shí)際占空比:79.8%
輸出信號(hào)幅度:2.79V 周期絕對(duì)誤差:9ms周期相對(duì)誤差:0.22%
占空比絕對(duì)誤差:0.718占空比相對(duì)誤差:0.25%
第三組測(cè)試:(改變周期、占空比,觀測(cè)實(shí)際結(jié)果)
設(shè)定周期:  2000ms 實(shí)際周期: 2013ms 設(shè)定占空比: 80% 實(shí)際占空比: 79.2%         
輸出信號(hào)幅度:2.89V 周期絕對(duì)誤差 13ms 周期相對(duì)誤差: 0.64%      
占空比絕對(duì)誤差 0.008 占空比相對(duì)誤差:0.01%   
圖5-4 周期(2000ms)占空比(80%)的方波
圖5-5 周期(0.1ms)占空比(80%)的方波
第三組測(cè)試:(改變周期、占空比,觀測(cè)實(shí)際結(jié)果)
設(shè)定周期:2000ms實(shí)際周期:2013ms設(shè)定占空比:80%實(shí)際占空比:79.2%
輸出信號(hào)幅度:2.89V 周期絕對(duì)誤差:13ms周期相對(duì)誤差:0.64%
占空比絕對(duì)誤差:0.008占空比相對(duì)誤差:0.01%
  輸出波形截圖(粘貼下方):
圖5-6 周期(2000ms)占空比(80%)的方波
第四組測(cè)試:(改變周期、占空比,觀測(cè)實(shí)際結(jié)果)
設(shè)定周期:1000ms實(shí)際周期:1000ms設(shè)定占空比:60%實(shí)際占空比:60%
輸出信號(hào)幅度:4.7V周期絕對(duì)誤差:0周期相對(duì)誤差:0
占空比絕對(duì)誤差:0占空比相對(duì)誤差:0
  輸出波形截圖(粘貼下方):
圖5-7 周期(1000ms)占空比(50%)的方波
第五組測(cè)試:(改變周期、占空比,觀測(cè)實(shí)際結(jié)果)
設(shè)定周期:3000ms實(shí)際周期:3000ms設(shè)定占空比:50%實(shí)際占空比:52.67%
輸出信號(hào)幅度:4.8V周期絕對(duì)誤差:0周期相對(duì)誤差:0
占空比絕對(duì)誤差:0.0267占空比相對(duì)誤差:0.051%
圖5-8 周期(3000ms)占空比(50%)的方波

源程序:
  1. Imports System.IO.Ports
  2. Imports System.Threading
  3. Imports System.Security.Permissions
  4. '允許在程序內(nèi)部各個(gè)線程對(duì)于窗體控件進(jìn)行操作
  5. <PermissionSet(SecurityAction.Demand, Name:="FullTrust")>
  6. <System.Runtime.InteropServices.ComVisibleAttribute(True)>
  7. Public Class Form1
  8.     Dim thread1, thread2 As Threading.Thread
  9.     Dim t1, t2 As Integer 'DTR,RTS周期
  10.     Dim Dutyfactor1, Dutyfactor2 As Integer    'DTR,RTS的占空比
  11.     Dim txtfile As String
  12.     Dim MyFile As Object
  13.     Dim wwh As Object
  14.     Private Property Str As String
  15.     Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  16.         '允許線程對(duì)窗口控件進(jìn)行操作
  17.         Control.CheckForIllegalCrossThreadCalls = False
  18.         '復(fù)選框初始為空
  19.         ComboBox_SelectPort.Items.Clear()
  20.         '將電腦設(shè)備中所有串口添加到復(fù)選框中
  21.         For Each port As String In My.Computer.Ports.SerialPortNames
  22.             ComboBox_SelectPort.Items.Add(port)
  23.         Next
  24.         ComboBox_SelectPort.SelectedIndex = 0
  25.         '設(shè)置關(guān)閉串口按鈕無(wú)法點(diǎn)擊
  26.         Button_Close.Enabled = False
  27.         '設(shè)置發(fā)送按鈕無(wú)法點(diǎn)擊
  28.         Button_send.Enabled = False
  29.     End Sub
  30.     Private Sub Button_open_Click_1(sender As Object, e As EventArgs) Handles Button_open.Click
  31.         '打開(kāi)串口
  32.         With SerialPort1
  33.             '波特率
  34.             .BaudRate = 9600
  35.             '停止位
  36.             .StopBits = 1
  37.             '數(shù)據(jù)位
  38.             .DataBits = 8
  39.             '奇偶校驗(yàn)位
  40.             .Parity = IO.Ports.Parity.None
  41.             '在復(fù)選框中選擇串口
  42.             .PortName = ComboBox_SelectPort.SelectedItem.ToString
  43.         End With
  44.         SerialPort1.Open()
  45.         MsgBox("串口已經(jīng)打開(kāi)")
  46.         '設(shè)置打開(kāi)按鈕為不可點(diǎn)擊
  47.         Button_open.Enabled = False
  48.         '設(shè)置關(guān)閉按鈕為不可點(diǎn)擊
  49.         Button_Close.Enabled = True
  50.         '設(shè)置發(fā)送按鈕為不可點(diǎn)擊
  51.         Button_send.Enabled = True
  52.     End Sub
  53.     Private Sub Button_Close_Click(sender As Object, e As EventArgs) Handles Button_Close.Click
  54.         SerialPort1.Close()
  55.         MsgBox("串口已經(jīng)關(guān)閉")
  56.         '設(shè)置打開(kāi)按鈕可選
  57.         Button_open.Enabled = True
  58.         '設(shè)置關(guān)閉按鈕為不可點(diǎn)擊
  59.         Button_Close.Enabled = False
  60.         '設(shè)置發(fā)送按鈕為不可點(diǎn)擊
  61.         Button_send.Enabled = False
  62.     End Sub
  63.     Private Sub Button_send_Click(sender As Object, e As EventArgs) Handles Button_send.Click
  64.         '發(fā)送數(shù)據(jù)
  65.         If TextBox_Send.Text = "" Then
  66.             MsgBox("發(fā)送信息不能為空")
  67.         End If
  68.         '將文本框中待發(fā)送數(shù)據(jù)寫(xiě)入串口
  69.         SerialPort1.Write(TextBox_Send.Text)
  70.     End Sub
  71.     Private Sub SerialPort1_DataReceived(sender As Object, e As SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
  72.         Dim str As String
  73.         str = SerialPort1.ReadExisting
  74.         '將字符串顯示到接受數(shù)據(jù)文本框
  75.         TextBox_Receive.Text += str
  76.     End Sub
  77.     Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox_DTRenAble.CheckedChanged
  78.         'DTR
  79.         '如果DTR使能端選中
  80.         If CheckBox_DTRenAble.Checked = True Then
  81.             'DTR使能端有效
  82.             SerialPort1.DtrEnable = True
  83.             'DTR使能端按鈕變?yōu)榧t色
  84.             Button_DTREnable.BackColor = Color.Red
  85.         Else
  86.             'DTR未選中
  87.             SerialPort1.DtrEnable = False
  88.             'DTR使能端按鈕變?yōu)榘咨?br />
  89.             Button_DTREnable.BackColor = Color.White
  90.         End If
  91.     End Sub
  92.     Private Sub CheckBox2_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox_RTSEnable.CheckedChanged
  93.         'RTS
  94.         '如果RTS使能端選中
  95.         If CheckBox_RTSEnable.Checked = True Then
  96.             'RTS使能端有效
  97.             SerialPort1.RtsEnable = True
  98.             'RTS使能端按鈕變?yōu)榧t色
  99.             Button_RtsEnable.BackColor = Color.Red
  100.         Else
  101.             'RTS使能端無(wú)效
  102.             SerialPort1.RtsEnable = False
  103.             'RTS使能端按鈕顯示變?yōu)榘咨?br />
  104.             Button_RtsEnable.BackColor = Color.White
  105.         End If
  106.     End Sub
  107.     Private Sub TextBox_DTR_T_TextChanged(sender As Object, e As EventArgs) Handles TextBox_DTR_T.TextChanged
  108.     End Sub
  109.     Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox_SelectPort.SelectedIndexChanged
  110.     End Sub
  111.     Sub DTRWaveGenerate()
  112.         '實(shí)現(xiàn)DTR方波函數(shù)
  113.         Do While True
  114.             'DTR方波檢測(cè)按鈕變?yōu)榧t色
  115.             Button_DtrText.BackColor = Color.Red
  116.             'DTR使能端有效
  117.             SerialPort1.DtrEnable = True
  118.             '線程休眠
  119.             Thread.Sleep(t1 * Dutyfactor1 * 0.01)
  120.             'DTR方波檢測(cè)按鈕變?yōu)榧t色
  121.             Button_DtrText.BackColor = Color.Yellow
  122.             'DTR使能端無(wú)效
  123.             SerialPort1.DtrEnable = False
  124.             '線程休眠
  125.             Thread.Sleep(t1 * (1 - Dutyfactor1 * 0.01))
  126.         Loop
  127.     End Sub
  128.     Sub RTSWaveGenerate()
  129.         'RST方波實(shí)現(xiàn)函數(shù)
  130.         Do While True
  131.             'RTS方波檢測(cè)按鈕變?yōu)榧t色
  132.             Button_RtsText.BackColor = Color.Red
  133.             'RTS使能端有效
  134.             SerialPort1.RtsEnable = True
  135.             '線程休眠
  136.             Thread.Sleep(t2 * Dutyfactor2 * 0.01)
  137.             'RTS方波檢測(cè)按鈕變?yōu)榧t色
  138.             Button_RtsText.BackColor = Color.Yellow
  139.             'RTS使能端無(wú)效
  140.             SerialPort1.RtsEnable = False
  141.             '線程休眠
  142.             Thread.Sleep(t2 * (1 - Dutyfactor2 * 0.01))
  143.         Loop
  144.     End Sub
  145. Private Sub Button_DTREnable_Click(sender As Object, e As EventArgs) Handles Button_DTREnable.Click
  146.     End Sub
  147.     Private Sub Button_DtrText_Click(sender As Object, e As EventArgs) Handles Button_DtrText.Click
  148.     End Sub
  149.     Private Sub CheckBox3_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox_DTRWave.CheckedChanged
  150.         'DTR方波
  151.         If CheckBox_DTRWave.Checked = True Then
  152.             '啟動(dòng)
  153.             '如果頻率文本框?yàn)榭,初始化周期?000ms
  154.             If TextBox_DTR_T.Text = "" Then
  155.                 t1 = 1000
  156.             Else
  157.                 '如果頻率文本框不為空,則設(shè)置頻率為當(dāng)前文本框中的值
  158.                 t1 = CInt(TextBox_DTR_T.Text)
  159.             End If
  160.             '如果占空比文本框?yàn)榭眨跏蓟伎毡葹?0
  161.             If TextBox_DTR_Duty.Text = "" Then
  162.                 Dutyfactor1 = 50
  163.                 '如果占空比文本框不為空,則設(shè)置占空比為當(dāng)前文本框中的值
  164.             Else
  165.                 Dutyfactor1 = CInt(TextBox_DTR_Duty.Text)
  166.             End If
  167.             '創(chuàng)建一個(gè)DTR方波線程
  168.             thread1 = New Threading.Thread(AddressOf DTRWaveGenerate)
  169.             '線程開(kāi)始
  170.             thread1.Start()
  171.         Else
  172.             Try
  173.                 '線程掛起
  174.                 thread1.Abort()
  175.             Catch ex As Exception
  176.             End Try
  177.         End If
  178.     End Sub
  179.     Private Sub CheckBox4_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox_RTSWave.CheckedChanged
  180.         'RTS方波
  181.         If CheckBox_RTSWave.Checked = True Then
  182.             '啟動(dòng)
  183.             '如果頻率文本框?yàn)榭,初始化周期?00ms
  184.             If TextBox_RTS_T.Text = "" Then
  185.                 t2 = 500
  186.             Else
  187.                 '如果頻率文本框不為空,則設(shè)置頻率為當(dāng)前文本框中的值
  188.                 t2 = CInt(TextBox_RTS_T.Text)
  189.             End If
  190.             '如果占空比文本框?yàn)榭眨跏蓟伎毡葹?0
  191.             If TextBox_RTS_Duty.Text = "" Then
  192.                 Dutyfactor2 = 50
  193.             Else
  194.                 '如果占空比文本框不為空,則設(shè)置占空比為當(dāng)前文本框中的值
  195.                 Dutyfactor2 = CInt(TextBox_RTS_Duty.Text)
  196.             End If
  197.             '創(chuàng)建一個(gè)RTS方波線程
  198.             thread2 = New Threading.Thread(AddressOf RTSWaveGenerate)
  199.             '線程開(kāi)始
  200.             thread2.Start()
  201.         Else
  202.             Try
  203.                 '線程掛起
  204.                 thread2.Abort()
  205.             Catch ex As Exception
  206.             End Try
  207.         End If
  208.     End Sub
  209.     Private Sub TextBox_DTR_Duty_TextChanged(sender As Object, e As EventArgs) Handles TextBox_DTR_Duty.TextChanged
  210.     End Sub
  211.     Private Sub TextBox_Duty_TextChanged(sender As Object, e As EventArgs) Handles TextBox_RTS_Duty.TextChanged, TextBox_DTR_Duty.TextChanged
  212.     End Sub
  213.     Private Sub TextBox_RTS_T_TextChanged(sender As Object, e As EventArgs) Handles TextBox_RTS_T.TextChanged
  214.     End Sub
  215.     Private Sub Button_Stop_Click(sender As Object, e As EventArgs) Handles Button_Stop.Click
  216.         '點(diǎn)擊后設(shè)置DTR,RTS方波選擇框不被選中,即停止方波產(chǎn)生
  217.         CheckBox_DTRWave.Checked = False
  218.         CheckBox_RTSWave.Checked = False
  219.         Try
  220.             'DTR線程休眠
  221.             thread1.Abort()
  222.         Catch ex As Exception
  223.         End Try
  224.         Try
  225.             'RTS線程休眠
  226.             thread2.Abort()
  227.         Catch ex As Exception
  228. …………
  229. …………
  230. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼


全部資料51hei下載地址(包含vb.net源碼工程文件,pcb與電路圖AD工程,WORD格式的設(shè)計(jì)報(bào)告):
http://www.torrancerestoration.com/bbs/dpj-112682-1.html



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表