版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
基于51單片機的電子秤系統(tǒng)設計摘要電子秤是將檢測與轉(zhuǎn)換技術(shù)、計算機技術(shù)、信息處理、數(shù)字技術(shù)等技術(shù)綜合一體的現(xiàn)代新型稱重儀器。它與我們?nèi)粘I罹o密結(jié)合息息相關(guān)。電子稱主要以單片機作為中心控制單元,通過稱重傳感器進行模數(shù)轉(zhuǎn)換單元,在配以鍵盤、顯示電路及強大軟件來組成。電子稱不但計量準確、快速方便,更重要的自動稱重、數(shù)字顯示,對人們生活的影響越來越大,廣受歡迎。本系統(tǒng)的設計主要從硬件電路設計,軟件編程調(diào)試,實物焊接調(diào)試三部分進行詳細闡述。硬件電路主要是基于單片機STC89S52為核心的控制單元實現(xiàn)數(shù)據(jù)的處理,采用壓力傳感器對數(shù)據(jù)進行采集,電子秤專用24位AD轉(zhuǎn)換芯片HX711對傳感器采集到的模擬量進行AD轉(zhuǎn)換,轉(zhuǎn)換后的數(shù)據(jù)送到單片機進行處理顯示,數(shù)據(jù)顯示由LCD1602液晶實現(xiàn),液晶顯示效果穩(wěn)定無閃爍。關(guān)鍵字:STC89S52單片機;電子秤;壓力傳感器;HX711。1.緒論稱重技術(shù)自古以來就被人們所重視,作為一種計量手段,廣泛應用于工農(nóng)業(yè)、科研、交通、內(nèi)外貿(mào)易等各個領(lǐng)域,與人民的生活緊密相連。電子秤是電子衡器中的一種,衡器是國家法定計量器具,是國計民生、國防建設、科學研究、內(nèi)外貿(mào)易不可缺少的計量設備,衡器產(chǎn)品技術(shù)水平的高低,將直接影響各行各業(yè)的現(xiàn)代化水平和社會經(jīng)濟效益的提高。稱重裝置不僅是提供重量數(shù)據(jù)的單體儀表,而且作為工業(yè)控制系統(tǒng)和商業(yè)管理系統(tǒng)的一個組成部分,推進了工業(yè)生產(chǎn)的自動化和管理的現(xiàn)代化,它起到了縮短作業(yè)時間、改善操作條件、降低能源和材料的消耗、提高產(chǎn)品質(zhì)量以及加強企業(yè)管理、改善經(jīng)營管理等多方面的作用。稱重裝置的應用已遍及到國民經(jīng)濟各領(lǐng)域,取得了顯著的經(jīng)濟效益。電子秤是稱重技術(shù)中的一種新型儀表,廣泛應用于各種場合。電子秤與機械秤比較有體積小、重量輕、結(jié)構(gòu)簡單、價格低、實用價值強、維護方便等特點,可在各種環(huán)境工作,重量信號可遠傳,易于實現(xiàn)重量顯示數(shù)字化,易于與計算機聯(lián)網(wǎng),實現(xiàn)生產(chǎn)過程自動化,提高勞動生產(chǎn)率。從世界水平看,衡器技術(shù)已經(jīng)經(jīng)歷了四個階段,從傳統(tǒng)的全部由機械元器件組成的機械稱到用電子線路代替部分機械元器件的機電結(jié)合秤,再從集成電路式到目前的單片機系統(tǒng)設計的電子計價秤。我國電子衡器從最初的機電結(jié)合型發(fā)展到現(xiàn)在的全電子型和數(shù)字智能型?,F(xiàn)今電子衡器制造技術(shù)及應用得到了新發(fā)展:電子稱重技術(shù)從靜態(tài)稱重向動態(tài)稱重發(fā)展;計量方法從模擬測量向數(shù)字測量發(fā)展;測量特點從單參數(shù)測量向多參數(shù)測量發(fā)展。常規(guī)的測試儀器儀表和控制裝置被更先進的智能儀器所取代,使得傳統(tǒng)的電子測量儀器在遠離、功能、精度及自動化水平定方面發(fā)生了巨大變化,并相應的出現(xiàn)了各種各樣的智能儀器控制系統(tǒng),使得科學實驗和應用工程的自動化程度得以顯著提高。電子稱重的實現(xiàn)首先是通過壓力傳感器采集到被測物體的重量并將其轉(zhuǎn)換成電壓信號。輸出電壓信號通常很小,需要通過前端信號處理電路進行準確的線性放大。放大后的模擬電壓信號經(jīng)A/D轉(zhuǎn)換電路轉(zhuǎn)換成數(shù)字量被送入到主控電路的單片機中,再經(jīng)過單片機控制譯碼顯示器,從而顯示出被測物體的重量。按照設計的基本要求,系統(tǒng)可分為三大模塊,數(shù)據(jù)采集模塊、控制器模塊、人機交互液晶顯示界面模塊。其中數(shù)據(jù)采集模塊由壓力傳感器、信號的前級處理和A/D轉(zhuǎn)換部分組成。轉(zhuǎn)換后的數(shù)字信號送給控制器處理,由控制器完成對該數(shù)字量的處理,驅(qū)動顯示模塊完成人機間的信息交換。此部分對軟件的設計要求比較高,系統(tǒng)的大部分功能都需要軟件來控制。在擴展功能上,本設計增加了一個過載報警提示功能。2.系統(tǒng)硬件方案設計考慮到此方案設計的電子秤,能夠?qū)崿F(xiàn)電子秤的基本功能,主要包括單價設定、稱重、顯示、回零等操作。因此我選擇了如下的系統(tǒng)硬件設計方案:前端信號處理時,選用放大、信號轉(zhuǎn)換等措施來增加信號采集強度但會增加相應的設計成本;顯示方面采用具有字符圖文顯示功能的LCD顯示器。這種方案不僅加強了人機交換的能力,而且滿足設計要求,可以顯示購物清單、所稱量的物體信息等相關(guān)內(nèi)容,當需要增加擴展功能時可以通過切換液晶顯示界面的方式來實現(xiàn)。結(jié)構(gòu)簡圖如下圖1所示:圖一硬件方案設計結(jié)構(gòu)圖3.系統(tǒng)元器件選型及器件參數(shù)介紹3.1單片機選型單片機的選擇在整個系統(tǒng)設計中至關(guān)重要,要滿足大內(nèi)存、高速率、通用性、價格便宜等要求,鑒于以上考慮本課題選擇AT89S52作為整個系統(tǒng)的主控芯片。AT89S52是一個低功耗,高性能CMOS8位單片機,片內(nèi)含8kBytesISP(In-systemprogrammable)的可反復擦寫10000次的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術(shù)制造,兼容標準MCS-51指令系統(tǒng)及80C51引腳結(jié)構(gòu)[1],芯片內(nèi)集成了通用8位中央處理器和ISPFlash存儲單元,功能強大的微型計算機的AT89S52可為許多嵌入式控制應用系統(tǒng)提供高性價比的解決方案。AT89S52芯片具有以下特性[2]:①指令集和芯片引腳與Intel公司的8051兼容;②8KB片內(nèi)在系統(tǒng)可編程Flash程序存儲器;③時鐘頻率為0~33MHz;④128字節(jié)片內(nèi)隨機讀寫存儲器(RAM);⑤32個可編程輸入/輸出引腳;⑥2個16位定時/計數(shù)器;⑦6個中斷源,2級優(yōu)先級;⑧全雙工串行通信接口;⑨監(jiān)視定時器;⑩2個數(shù)據(jù)指針。AT89S52單片機的40個引腳中有2個專用于主電源引腳,2個外接晶振的引腳,4個控制或與其它電源復用的引腳,以及32條輸入輸出I/O引腳。AT89S52單片機引腳圖如圖2所示:圖二STC89C52單片機引腳圖3.2傳感器的選擇壓電傳感器是一種典型的有源傳感器,又稱自發(fā)電式傳感器。其工作原理是基于某些材料受力后在其相應的特定表面產(chǎn)生電荷的壓電效應。壓電傳感器體積小、重量輕、結(jié)構(gòu)簡單、工作可靠,適用于動態(tài)力學量的測量,不適合測頻率太低的被測量,更不能測靜態(tài)量。目前多用于加速度和動態(tài)力或壓力的測量。壓電器件的弱點:高內(nèi)阻、小功率。功率小,輸出的能量微弱,電纜的分布電容及噪聲干擾影響輸出特性,這對外接電路要求很高。電阻應變式傳感器是一種利用電阻應變效應,將各種力學量轉(zhuǎn)換為電信號的結(jié)構(gòu)型傳感器。電阻應變片式電阻應變式傳感器的核心元件,其工作原理是基于材料的電阻應變效應,電阻應變片即可單獨作為傳感器使用,又能作為敏感元件結(jié)合彈性元件構(gòu)成力學量傳感器。導體的電阻隨著機械變形而發(fā)生變化的現(xiàn)象叫做電阻應變效應。電阻應變片把機械應變信號轉(zhuǎn)換為△R/R后,由于應變量及相應電阻變化一般都很微小,難以直接精確測量,且不便處理。因此,要采用轉(zhuǎn)換電路把應變片的△R/R變化轉(zhuǎn)換成電壓或電流變化。其轉(zhuǎn)換電路常用測量電橋。直流電橋的特點是信號不會受各元件和導線的分布電感及電容的影響,抗干擾能力強,但因機械應變的輸出信號小,要求用高增益和高穩(wěn)定性的放大器放大。圖3為一直流供電的平衡電阻電橋,接直流電源E:圖三傳感器內(nèi)部接線圖當電橋輸出端接無窮大負載電阻時,可視輸出端為開路,此時直流電橋稱為電壓橋,即只有電壓輸出。當忽略電源的內(nèi)阻時,由分壓原理有:=(2.1)當滿足條件R1R3=R2R4時,即(2.2)=0,即電橋平衡。式(2.2)稱平衡條件。應變片測量電橋在測量前使電橋平衡,從而使測量時電橋輸出電壓只與應變片感受的應變所引起的電阻變化有關(guān)。若差動工作,即R1=R-△R,R2=R+△R,R3=R-△R,R4=R+△R,按式(2.1),則電橋輸出為:(2.3)應變片式傳感器有如下特點:(1)應用和測量范圍廣,應變片可制成各種機械量傳感器。(2)分辨力和靈敏度高,精度較高。(3)結(jié)構(gòu)輕小,對試件影響小,對復雜環(huán)境適應性強,可在高溫、高壓、強磁場等特殊環(huán)境中使用,頻率響應好。(4)商品化,使用方便,便于實現(xiàn)遠距離、自動化測量[5]。通過對壓力傳感器與電阻應變式傳感器比較分析,最終選擇了第二種方案。題目要求稱重范圍0~5Kg,滿量程量誤差不大于0.005Kg,考慮到秤臺自重、振動和沖擊分量,還要避免超重損壞傳感器,所以傳感器量程必須大于額定稱重5Kg。我們選擇的是電阻應變片壓力傳感器,量程為5Kg,精度為0.01%,滿足本系統(tǒng)的精度要求。3.3顯示器的選擇在此方案中,選擇LCD12864液晶顯示,帶中文字庫的128X64是一種具有4位/8位并行、2線或3線串行多種接口方式,內(nèi)部含有國標一級、二級簡體中文字庫的點陣圖形液晶顯示模塊;其顯示分辨率為128×64,內(nèi)置8192個16*16點漢字,和128個16*8點ASCII字符集.利用該模塊靈活的接口方式和簡單、方便的操作指令,可構(gòu)成全中文人機交互圖形界面。可以顯示8×4行16×16點陣的漢字.也可完成圖形顯示.低電壓低功耗是其又一顯著特點。由該模塊構(gòu)成的液晶顯示方案與同類型的圖形點陣液晶顯示模塊相比,不論硬件電路結(jié)構(gòu)或顯示程序都要簡潔得多,且該模塊的價格也略低于相同點陣的圖形液晶模塊??偣灿?0根引腳。(1)接口說明表1VSS0V邏輯電源地。
2VDD5.0V邏輯電源正。
3V0LCD驅(qū)動電壓,應用時在VEE與V0之間加一2K可調(diào)電阻。
4D/IH/L數(shù)據(jù)\指令選擇:高電平:數(shù)據(jù)D0-D7將送入顯示RAM;低電平:數(shù)據(jù)D0-D7將送入指令寄存器執(zhí)行。
5R/WH/L讀\寫選擇:高電平:讀數(shù)據(jù);低電平:寫數(shù)據(jù)。
6EH.H/L讀寫使能,高電平有效,下降沿鎖定數(shù)據(jù)。
7DB0H/L數(shù)據(jù)輸入輸出引腳。
8DB1H/L數(shù)據(jù)輸入輸出引腳。
9DB2H/L數(shù)據(jù)輸入輸出引腳。
10DB3H/L數(shù)據(jù)輸入輸出引腳。
11DB4H/L數(shù)據(jù)輸入輸出引腳。
12DB5H/L數(shù)據(jù)輸入輸出引腳。
13DB6H/L數(shù)據(jù)輸入輸出引腳。
14DB7H/L數(shù)據(jù)輸入輸出引腳。
15CS1H/L片選擇信號,低電平時選擇前64列。
16CS2H片選擇信號,低電平時選擇后64列。
17RETL復位信號,低電平有效。
18VEE-10VLCD驅(qū)動電源。
19BLAC背光電源,LED。
20BLAC背光電源,LED-。(2)指令描述1、顯示開/關(guān)設置CODE:R/WD/IDB7DB6
DB5DB4DB3
DB2DB1DB0
L
L
L
L
H
H
H
H
H
H/L
功能:設置屏幕顯示開/關(guān)。DB0=H,開顯示;DB0=L,關(guān)顯示。不影響顯示RAM(DDRAM)中的內(nèi)容。2、設置顯示起始行CODE:R/WD/IDB7DB6
DB5DB4DB3
DB2DB1DB0
L
L
H
H
行地址(0~63)
功能:執(zhí)行該命令后,所設置的行將顯示在屏幕的第一行。顯示起始行是由Z地址計數(shù)器控制的,該命令自動將A0-A5位地址送入Z地址計數(shù)器,起始地址可以是0-63范圍內(nèi)任意一行。Z地址計數(shù)器具有循環(huán)計數(shù)功能,用于顯示行掃描同步,當掃描完一行后自動加一。
3、設置頁地址CODE:R/WD/IDB7DB6
DB5DB4DB3
DB2DB1DB0
L
L
H
L
H
H
H
頁地址(0~7)
功能:執(zhí)行本指令后,下面的讀寫操作將在指定頁內(nèi),直到重新設置。頁地址就是DDRAM的行地址,頁地址存儲在X地址計數(shù)器中,A2-A0可表示
8頁,讀寫數(shù)據(jù)對頁地址沒有影響,除本指令可改變頁地址外,復位信號(RST)可把頁地址計數(shù)器內(nèi)容清零。DDRAM地址映像表Y地址012………616263
4、設置列地址CODE:R/WD/IDB7DB6DB5DB4DB3DB2DB1DB0LLLH列地址(0~63)
功能:DDRAM的列地址存儲在Y地址計數(shù)器中,讀寫數(shù)據(jù)對列地址有影響,在對DDRAM進行讀寫操作后,Y地址自動加一。5、狀態(tài)檢測CODE:R/WD/IDB7DB6DB5DB4DB3DB2DB1DB0HLBFLON/OFFRSTLLLL
功能:讀忙信號標志位(BF)、復位標志位(RST)以及顯示狀態(tài)位(ON/OFF)。BF=H:內(nèi)部正在執(zhí)行操作;BF=L:空閑狀態(tài)。RST=H:正處于復位初始化狀態(tài);RST=L:正常狀態(tài)。ON/OFF=H:表示顯示關(guān)閉;ON/OFF=L:表示顯示開。
6、寫顯示數(shù)據(jù)CODE:R/WD/IDB7DB6DB5DB4DB3DB2DB1DB0LHD7D6D5D4D3D2D1D0
功能:寫數(shù)據(jù)到DDRAM,DDRAM是存儲圖形顯示數(shù)據(jù)的,寫指令執(zhí)行后Y地址計數(shù)器自動加1。D7-D0位數(shù)據(jù)為1表示顯示,數(shù)據(jù)為0表示不顯示。寫數(shù)據(jù)到DDRAM前,要先執(zhí)行“設置頁地址”及“設置列地址”命令。
7、讀顯示數(shù)據(jù)CODE:RSR/WDB7DB6DB5DB4DB3DB2DB1DB0HHD7D6D5D4D3D2D1D0功能:從DDRAM讀數(shù)據(jù),讀指令執(zhí)行后Y地址計數(shù)器自動加1。從DDRAM讀數(shù)據(jù)前要先執(zhí)行“設置頁地址”及“設置列地址”命令。3.4A/D轉(zhuǎn)換芯片選擇電子秤系統(tǒng)中選擇??频腍X711AD芯片,HX711是一款專為高精度電子秤而設計的24位A/D轉(zhuǎn)換器芯片。與同類型其它芯片相比,該芯片集成了包括穩(wěn)壓電源、片內(nèi)時鐘振蕩器等其它同類型芯片所需要的外圍電路,具有集成度高、響應速度快、抗干擾性強等優(yōu)點。降低了電子秤的整機成本,提高了整機的性能和可靠性。該芯片與后端MCU芯片的接口和編程非常簡單,所有控制信號由管腳驅(qū)動,無需對芯片內(nèi)部的寄存器編程。輸入選擇開關(guān)可任意選取通道A或通道B,與其內(nèi)部的低噪聲可編程放大器相連。通道A的可編程增益為128或64,對應的滿額度差分輸入信號幅值分別為±20mV或±40mV。通道B則為固定的64增益,用于系統(tǒng)參數(shù)檢測。芯片內(nèi)提供的穩(wěn)壓電源可以直接向外部傳感器和芯片內(nèi)的A/D轉(zhuǎn)換器提供電源,系統(tǒng)板上無需另外的模擬電源。芯片內(nèi)的時鐘振蕩器不需要任何外接器件。上電自動復位功能簡化了開機的初始化過程。芯片管腳圖如圖4所示:圖四HX711AD芯片管腳圖典型的應用電路如下:4.系統(tǒng)硬件電路設計4.1系統(tǒng)電源電路設計由于該系統(tǒng)中51單片機及AD轉(zhuǎn)換芯片及液晶顯示器所需供電電壓均為5V電壓,所以要保證系統(tǒng)穩(wěn)定可靠的工作,需要設計一個可以穩(wěn)定提供5V電壓的供電系統(tǒng)。本設計采用雙電源接口供電方式,USB接口供電方便程序調(diào)試,也可采用外置電源作為系統(tǒng)的供電電源,但是需另加三端穩(wěn)壓器件LM7805作為系統(tǒng)電源的穩(wěn)壓器件以保證系統(tǒng)電壓為穩(wěn)定的直流5V電壓,同時外置電源的輸出電壓要高于5V輸出,系統(tǒng)電源輸入接口要加濾波電容以確保工作電壓穩(wěn)定。電源輸出接口加上LED電源指示燈,用來判定電源是否正常工作。該系統(tǒng)電源電路設計如圖5所示。圖五系統(tǒng)電源接口電路C1,C2實現(xiàn)對電源濾波,以濾除可能存在的高頻雜波對電源的影響,C4實現(xiàn)對電源電壓的平滑穩(wěn)定作用,當USB接口輸出電壓高時C4用來儲能,當后續(xù)電路負載過高USB供電不足時電解電容C4通過釋放儲存的電能來保證電源電壓不跌落。LED0用作電源指示,其亮滅代表電源工作與否,R0用來限流,以保證LED不被燒壞。4.2系統(tǒng)程序下載電路設計在系統(tǒng)程序下載設計方案中,使用USB總線轉(zhuǎn)接芯片CH340。CH340是一個USB總線的轉(zhuǎn)接芯片,實現(xiàn)USB轉(zhuǎn)串口、USB轉(zhuǎn)IrDA紅外或者USB轉(zhuǎn)打印口。
在串口方式下,CH340提供常用的MODEM聯(lián)絡信號,用于為計算機擴展異步串口,或者將普通的串口設備直接升級到USB總線。它具有以下特點:
1、全速USB設備接口,兼容USBV2.0,外圍元器件只需要晶體和電容。
2、仿真標準串口,用于升級原串口外圍設備,或者通過USB增加額外串口。
3、計算機端Windows操作系統(tǒng)下的串口應用程序完全兼容,無需修改。
4、硬件全雙工串口,內(nèi)置收發(fā)緩沖區(qū),支持通訊波特率50bps—2Mbps.
5、支持常用的MODEM聯(lián)絡信號RTS、DTR、DCD、RI、DSR、CTS.
6、通過外加電平轉(zhuǎn)換器件,提供RS232、RS485、RS422等接口。
7、支持IrDA規(guī)范SIR紅外線通訊,支持波特率240bps—115200bps.
8、由于是通過USB轉(zhuǎn)換的串口,所以只能做到應用層兼容,而無法絕對相同。
9、軟件兼容CH341,可以直接使用CH341的驅(qū)動程序。
10、支持5V電源電壓和3.3V電源電壓。
11、提供SSOP-20無鉛封裝,兼容RoHS.
功能說明:
CH340芯片內(nèi)置了USB上拉電阻,UD+UD引腳應該直接連接到USB總線上。
CH340芯片內(nèi)置了電源上電復拉電路。
CH340芯片正常工作時需要外部向XI引腳提供12MHz的時鐘信號。一般情況下,時鐘信號由CH340芯片內(nèi)置的反相器通過晶體穩(wěn)頻振蕩產(chǎn)生,外圍電路只需要在XI和XO引腳之間連接一個12MHz的晶體,并且分別為XI和XO引腳對地連接振蕩電容。典型的接口電路如圖六:圖六CH340T芯片接口電路4.3單片機控制電路設計系統(tǒng)主控電路由STC89C52單片機及晶振電路和復位電路組成,該電路作為整個系統(tǒng)功能實現(xiàn)的核心單元,其連接方式如圖7所示。圖七單片機主控電路設計復位電路是用來讓單片機返回到初始狀態(tài)的輔助電路,其作用是當單片機程序跑飛或系統(tǒng)出現(xiàn)死機狀態(tài)時可以讓系統(tǒng)從新恢復工作。本系統(tǒng)復位電路的設計具有上電復位和手動按鍵復位兩種復位方式。4.4系統(tǒng)顯示電路設計選擇LCD12864帶字庫的液晶作為系統(tǒng)的顯示模塊,LCD12864不僅可以顯示數(shù)字,字母,還可以顯示中文漢字。其中使用P0口作為數(shù)據(jù)端口,P1.0作為RS端,P1.1作為R/W端,P2.5作為使能端。LCD12864與單片機的接口電路如圖8所示:圖八LCD12864的接口電路4.5超重報警電路設計報警指示電路用來在稱重測量超出最高值時報警提示,以免重量太高的情況下?lián)p壞傳感器。報警指示電路由PNP三極管9012驅(qū)動蜂鳴器來實現(xiàn),單片機IO口控制三極管的基極,當單片機的IO口輸出為低電平時,三極管導通,蜂鳴器的正極與電源接通,蜂鳴器通電發(fā)出報警聲,當單片機IO口輸出高電平時,三極管截止,蜂鳴器停止報警。報警指示電路如圖9所示。圖九報警電路模塊4.6按鍵輸入電路設計按鍵輸入電路用來在電子稱測量過程中輸入單價值,按鍵輸入電路采用3*4矩陣鍵盤實現(xiàn),矩陣鍵盤電路如圖10所示。圖十鍵盤的電路設計電子稱按鍵功能分配如下表所示:0123456789計算清零此電子秤是開機檢測托盤重量,并將托盤重量清零(即電子秤每次開機后檢測托盤重量,并程序中自動將托盤重量保存在一個變量中,稱量過程中每次都將獲得的重量減去托盤重量,而得到所要稱量物體的真正的重量),功能實現(xiàn):在正確輸入了單價之后,按下計算按鍵后自動計算出金額,并在液晶顯示器上顯示出重量、單價、總價。按下清零鍵,即可清零單價。4.7系統(tǒng)硬件電路設計與PCB板的制作本文在硬件電路的設計過程中,原理圖和PCB的繪制采用DXP2004軟件,該軟件是應用于WindowsXP操作系統(tǒng)下的EDA設計軟件,該軟件以其簡單易操作的優(yōu)勢一直以來備受電子工程師的喜愛,因而也成了很多高校電子相關(guān)專業(yè)EDA工具的必選課程。采用DXP2004軟件繪制原理圖和PCB的主要步驟如下所述:首先建立一個工作區(qū)間,再新建一個項目工程,再建立一個原理圖文件。從元件庫中找出所需要的元器件,如果元件庫中沒有所需的元器件,則需要新建一個自己的元件庫,在里面繪制自己所需的元器件。在原理圖頁面中放置所需元器件并按照電氣性能連接各元件,包括放置網(wǎng)絡標號等。給對應的元器件添加相應的封裝形式,如果封裝庫中沒有所需要的封裝形式,則需要自己新建一個封裝庫,在里面按照元器件的實際尺寸繪制出元器件的封裝形式。繪制好電路后進行ERC電氣檢測,并生成網(wǎng)絡表。在工程中建立PCB文件,導入生成的網(wǎng)絡表。在這步中也可以使用向?qū)ЫCB文件,按照提示一步一步的做。使用自動布線,此時系統(tǒng)會按照網(wǎng)絡飛線提示繪制PCB,最后完成DRC檢測,PCB板即可生成。在此步中也可以使用手動布線。按照如上步驟最終完成繪制的電路原理圖如圖11所示,PCB線路板圖如圖12所示。圖十一系統(tǒng)PCB板原理圖圖十二系統(tǒng)PCB板電路圖繪制原理圖與PCB板過程中的體會:本次的電子設計的重點就是在于所選課題的原理圖和PCB板的繪制過程,因此在這一過程當中花費了許多精力和時間,最后通過自己的親自動手完成本次課程設計。在此學習過程中我產(chǎn)生了許多體會與感想。首先學會了如何去自主學習,由于我們沒有接觸過DXP2004這個軟件,因此我們必須自己通過查找各種有關(guān)資料,才能知道如何使用它。第二,在繪制原理圖的過程中,有許多的元器件在元器件庫里根本找不到,這時就需要我們自己去新建一個元件庫并在里面繪制我們需要的元器件,或者可以修改庫的相似元器件的引腳。根據(jù)元器件之間的電氣連接連線或者放置網(wǎng)絡標號。第三,在給對應的元器件添加封裝,如果庫中沒有,我們就需要自己去繪制它的封裝形式。這個是整個過程中最難的,因為我們必須先知道元器件的實際大小,封裝形式,按照實際的大小、尺寸,才能準確的繪制出正確的封裝(包括焊盤的大小,焊盤之間的間隔,焊盤與邊界的間隔等)。第四,在完成以上幾步之后,進行ERC電氣檢測,對出現(xiàn)的錯誤(包括元器件的重復命名,引腳放置不當,封裝有沒有添加,電氣連接是否正確等)進行修改,并生成網(wǎng)絡表。第五,建立PCB文件,導入網(wǎng)絡表。由于考慮到元器件間電磁的干擾,需要調(diào)整元器件的位置(電源模塊要盡量遠離其它模塊)。然后使用自動布線,此時要考慮布線的線寬,在這個PCB板中我設計的線寬是,信號線設置為0.5mm,而電源線、地線則是設置為1.0mm。一般來說如果條件允許,布線的寬度盡量大一些,可以減少彼此間的干擾。5.系統(tǒng)主要程序設計5.1系統(tǒng)的主流程圖本程序的流程主要包括LCD的初始化,A/D轉(zhuǎn)化,鍵盤掃描,LCD的顯示等模塊。系統(tǒng)的主程序流程圖如圖13所示。圖十三主程序流程圖5.2液晶LCD12864的程序設計當要進行寫指令數(shù)據(jù)到LCD時,必須要使得,PS=L,RW=L,E=高電平,D0-D7=指令碼。voidlcd_wcmd(ucharcmd)//寫命令{while(lcd_busy());LCD_RS=0;LCD_RW=0;LCD_EN=0;//_nop_();//_nop_();P0=cmd;delayNOP();LCD_EN=1;delayNOP();LCD_EN=0;}/*當寫顯示數(shù)據(jù)到LCD時,要使得,RS=H,RW=L,E=高電平,D0-D7=數(shù)據(jù)。*/voidlcd_wdat(uchardat) //寫數(shù)據(jù){while(lcd_busy());LCD_RS=1;LCD_RW=0;LCD_EN=0;P0=dat;//delayNOP();LCD_EN=1;delayNOP();LCD_EN=0;}/*遇忙檢測,lcd_busy為1時,忙,等待。lcd-busy為0時,閑,可寫指令與數(shù)據(jù)。*/bitlcd_busy(){bitresult;LCD_RS=0;LCD_RW=1;LCD_EN=1;delayNOP();result=(bit)(P0&0x80);LCD_EN=0;return(result);}//初始化方式,要初始化LCD的工作方式,是否開光標等工作。voidlcd_init(){LCD_PSB=1;//并口方式lcd_wcmd(0x34);//擴充指令操作delay(5);lcd_wcmd(0x30);//基本指令操作delay(5);lcd_wcmd(0x0C);//顯示開,關(guān)光標delay(5);lcd_wcmd(0x01);//清除LCD的顯示內(nèi)容delay(5);}5.3按鍵檢測程序設計按鍵檢測部分主要是去除抖動現(xiàn)象,從矩陣鍵盤分離出獨立鍵盤,并賦予相應的數(shù)值。在這部分中采用延時方式消抖,給每一行線輪流送低電平,檢測列線,判斷按下的對應按鍵。voidkeyscan() //按鍵掃描{uinttemp;P3=0xfe;//給第一行送低電平temp=P3;temp=temp&0xf0;//分離出列線if(temp!=0xf0){delay(10);//延時消抖temp=P3;temp=temp&0xf0;if(temp!=0xf0){temp=P3;switch(temp)//判斷何健被按下,并賦相應的值{case0xee:key=0;break;。。。。。。}while(temp!=0xf0)//檢測按鍵釋放{temp=P3;temp=temp&0xf0;fat=1;}}按鍵設計的程序流程圖:6.實驗總結(jié)經(jīng)過這次的實驗,使我不僅學會了如何使用DXP2004來制作原理圖并且生成PCB板,而且讓我對自己有了更加好的了解。知道了自己該如何去自主學習,發(fā)現(xiàn)問題時該如何去解決。本次實驗涉及到了軟硬件方面的設計,這是對我綜合運用自己所學到的知識如何運用到真正實際當中并作出一個實驗實物,對自己來說也是一個新的挑戰(zhàn),但是經(jīng)過自己的努力,在這個學習的過程中,穩(wěn)扎穩(wěn)打,遇到不懂的就請教老師或同學,網(wǎng)上收集相關(guān)的資料,一步步的做好自己應該做的工作,最終比較完美的完成了這次實驗。這次實驗的成功,增加了自己的信心,為自己以后接受更大的挑戰(zhàn)打下良好的基礎,同時也為自己今后的學習提供了良好的借鑒。程序源代碼:#include<reg52.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedint#defineulongunsignedlong#defineLCD_dataP0//數(shù)據(jù)口sbitLCD_RS=P1^0;//寄存器選擇輸入sbitLCD_RW=P1^1;//液晶讀/寫控制sbitLCD_EN=P2^5;//液晶使能控制sbitLCD_PSB=P1^2;//串/并方式控制sbitwela=P2^6;sbitdula=P2^7;sbithx711_dout=P2^0;sbithx711_sck=P2^1;sbitbuzz=P2^3;uintjiage[4];//存放設計的單價值intkey=0;intfat=0,flag=0; //按鍵的標志位,計算的標志位uintweight,temp,price,money;ucharidataweighttable[]={0,0,0,0};//存放重量的數(shù)組ucharcodedis1[]={"重量:."};ucharcodedis2[]={"單價:元"};ucharcodedis3[]={"金額:元"};ucharcodedis4[]={"歡迎使用電子稱!"};#definedelayNOP();{_nop_();_nop_();_nop_();_nop_();};voiddelay0(ucharx);//x*0.14MSvoidlcd_pos(ucharX,ucharY);//確定顯示位置/*延時函數(shù)*/voiddelay(intms){inti,j;for(i=ms;i>0;i--)for(j=110;j>0;j--);} /*檢查LCD忙狀態(tài)*//*lcd_busy為1時,忙,等待。lcd-busy為0時,閑,可寫指令與數(shù)據(jù)。*/bitlcd_busy(){bitresult;LCD_RS=0;LCD_RW=1;LCD_EN=1;delayNOP();result=(bit)(P0&0x80);LCD_EN=0;return(result);}voidlcd_wcmd(ucharcmd)//寫命令{while(lcd_busy());LCD_RS=0;LCD_RW=0;LCD_EN=0;//_nop_();//_nop_();P0=cmd;delayNOP();LCD_EN=1;delayNOP();LCD_EN=0;}voidlcd_wdat(uchardat) //寫數(shù)據(jù){while(lcd_busy());LCD_RS=1;LCD_RW=0;LCD_EN=0;P0=dat;//delayNOP();LCD_EN=1;delayNOP();LCD_EN=0;}voidlcd_init(){LCD_PSB=1;//并口方式lcd_wcmd(0x34);//擴充指令操作delay(5);lcd_wcmd(0x30);//基本指令操作delay(5);lcd_wcmd(0x0C);//顯示開,關(guān)光標delay(5);lcd_wcmd(0x01);//清除LCD的顯示內(nèi)容delay(5);}voidkeyscan() //按鍵掃描{uinttemp;P3=0xfe;temp=P3;temp=temp&0xf0;if(temp!=0xf0){delay(10);temp=P3;temp=temp&0xf0;if(temp!=0xf0){temp=P3;switch(temp){case0xee:key=0;break;case0xde:key=1;break;case0xbe:key=2;break;case0x7e:key=3;break;default:key=0;}while(temp!=0xf0){temp=P3;temp=temp&0xf0;fat=1;}}}P3=0xfd;temp=P3;temp=temp&0xf0;if(temp!=0xf0){delay(10);temp=P3;temp=temp&0xf0;if(temp!=0xf0){temp=P3;switch(temp){case0xed:key=4;break;case0xdd:key=5;break;case0xbd:key=6;break;case0x7d:key=7;break;default:key=0;}while(temp!=0xf0){temp=P3;temp=temp&0xf0;fat=1; }}}P3=0xfb;temp=P3;temp=temp&0xf0;if(temp!=0xf0){delay(10);temp=P3;temp=temp&0xf0;if(temp!=0xf0){temp=P3;switch(temp){case0xed:key=8;break;case0xdb:key=9;break;case0xbb:key=10;break;case0x7b:key=11;break;default:key=0;}while(temp!=0xf0){temp=P3;temp=temp&0xf0;fat=1;} } } }voidweight_shuzhi(uintaaa){ weighttable[3]=aaa%10; weighttable[2]=aaa/10%10; weighttable[1]=aaa/100%10; weighttable[0]=aaa/1000;}//顯示金額voidmoney_shuzhi(uintbbb){ ucharidatamoneytable[4]={0,0,0,0}; moneytable[3]=bbb%10; moneytable[2]=bbb/10%10; moneytable[1]=bbb/100%10; moneytable[0]=bbb/1000; if(bbb<10) { lcd_wcmd(0x9b); //設置顯示位置 lcd_wdat(0x30+moneytable[2]); lcd_wdat(0x2e); lcd_wdat(0x30+moneytable[3]); } elseif(bbb<100) { lcd_wcmd(0x9b); //設置顯示位置 lcd_wdat(0x30+moneytable[2]); lcd_wdat(0x2e); lcd_wdat(0x30+moneytable[3]); } elseif(bbb<1000) { lcd_wcmd(0x9b); //設置顯示位置 lcd_wdat(0x30+moneytable[1]); lcd_wdat(0x30+moneytable[2]); lcd_wcmd(0x9c); //設置顯示位置 lcd_wdat(0x2e); lcd_wdat(0x30+moneytable[3]); } else { lcd_wcmd(0x9b); //設置顯示位置 lcd_wdat(0x30+moneytable[0]); lcd_wdat(0x30+moneytable[1]); lcd_wdat(0x30+moneytable[2]); lcd_wdat(0x2e); lcd_wdat(0x30+moneytable[3]); }}voidDelay__hx711_us(void) //A/D模塊的延時{ _nop_(); _nop_();}ulongReadCount(void) //增益128{ ulongcount; uchari; hx711_dout=1; Delay__hx711_us(); hx711_sck=0; count=0; while(hx711_dout); for(i=0;i<24;i++) { hx711_sck=1; count=count<<1; hx711_sck=0; if(hx711_dout) count++; } hx711_sck=1; Delay__hx711_us(); hx711_sck=0; return(count);}voidget_pizhong() //獲取皮重,秤盤重量{ uintj; ulonghx711_dat; for(j=0;j<5;j++) delay(10); hx711_dat=ReadCount(); //HX711AD轉(zhuǎn)換數(shù)據(jù)處理 temp=(uint)(hx711_dat/100); delay(1); }voidget_weight() //獲取被測物體重量{ ulonga; uintaa; a=ReadCount(); aa=(uint)(a/100)-temp; weight=(uint)((float)aa/4.4+0.05);//重量轉(zhuǎn)換函數(shù),傳感器型號不同此函數(shù)要適當修改 if(weight<0) weight=0; if(weight>=0) //重量為正 { if(weight>5000) //報警極限范圍 { buzz=0; //重量大于5000g,超重報警 }} } //計算總金額voidzongjia(){ price=(jiage[3]*1000)+(jiage[2]*100)+(jiage[1]*10)+jiage[0];//轉(zhuǎn)換money=(uint)(((long)weight)*((long)price)/1000);//得到金額 }voidzifu(){uchari;delay(10);//延時lcd_pos(0,0);//設置顯示位置為第一行的第1個字符i=0; while(dis4[i]!='\0'){lcd_wdat(dis4[i]);//顯示字符i++;}lcd_pos(1,0);//設置顯示位置為第二行的第1個字符i=0;while(dis1[i]!='\0'){lcd_wdat(dis1[i]);//顯示字符i++;} lcd_pos(2,0);//設置顯示位置為第三行的第1個字符i=0;while(dis2[i]!='\0'){lcd_wdat(dis2[i]);//顯示字符i++;} lcd_pos(3,0);//設置顯示位置為第四行的第1個字符i=0; while(dis3[i]!='\0'){//顯示字符lcd_wdat(dis3[i]);i++;} //顯示重量 lcd_wcmd(0x93); lcd_wdat(0x30+weighttable[0]); lcd_wcmd(0x94); lcd_wdat(0x30+weighttable[1]); lcd_wdat(0x30+weighttable[2]); lcd_wdat(0x30+weighttable[3]); lcd_wcmd(0x96); lcd_wdat(0x4b);//k lcd_wdat(0x67);//g //顯示金額 if(flag==1) { money_shuzhi(money); flag=0; } }voidyeshi(){keyscan();//取得key的值if(key<10&&fat) //判斷輸入的單價值{jiage[3]=jiage[2];jiage[2]=jiage[1];jiage[1]=jiage[0];jiage[0]=key;fat=0;}if(key==10) //使顯示金額的標志位為1{flag=1;}if(key==11) //單價清零{jiage[0]=0;jiage[1]=0;jiage[2]=0;jiage[3]=0;}//確定單價顯示的位數(shù) zifu(); if(jiage[3]!=0) { lcd_wcmd(0x8b); lcd_wdat(0x30+jiage[3]); lcd_wdat(0x30+jiage[2]); lcd_wdat(0x30+jiage[1]); lcd_wdat(0x2e); lcd_wdat(0x30+jiage[0]); delay(10); } if(jiage[3]==0&&(jiage[2]!=0)) { lcd_wcmd(0x8b); lcd_wdat(0x30+jiage[2]); lcd_wdat(0x30+jiage[1]); lcd_wdat(0x2e); lcd_wdat(0x30+jiage[0]); delay(10);} if(jiage[3]==0&&jiage[2]==0) { lcd_wcmd(0x8b); lcd_wdat(0x30+jiage[1]); lcd_wdat(0x2e); lcd_wdat(0x30+jiage[0]); delay(10);}} /*設定顯示位置*/voidlcd_pos(ucharX,ucharY){ucharpos;if(X==0){X=0x80;}elseif(X==1){X=0x90;}elseif(X==2){X=0x88;}elseif(X==3){X=0x98;}pos=X+Y;lcd_wcmd(pos);//顯示地址}voidmain(){wela=0;dula=0;P0=0xff;delay(10);lcd_init();//初始化LCDget_pizhong();while(1){get_weight();weight_shuzhi(weight);yeshi();zongjia();}}基于C8051F單片機直流電動機反饋控制系統(tǒng)的設計與研究目錄第1章設計任務及要求…………………………11.1比賽記分器介紹 ………………11.2課題和分工…………………………1HYPERLINK"file:///H:\\準備修改傳百度文檔\\合并20161210------20160713\\lyy----------2017.11.11-----zqq----11.2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度數(shù)據(jù)中心服務器租賃合同
- 2024醫(yī)院病房清潔服務合同
- 2024年展覽保險服務協(xié)議
- 2024年度0kv線路工程建設的合作開發(fā)合同
- 2024年度婚禮主持委托合同
- 2024年定制版太陽能系統(tǒng)維護合同
- 2024年度太陽能熱水系統(tǒng)安裝合同
- 2024年度城市供水供電供氣合同
- 2024年三人股東責任承擔協(xié)議
- 04版建筑工程合同
- 無肝素透析的護理課件-2
- 每日消防安全巡查記錄表
- 起重作業(yè)吊裝令
- 三角函數(shù)知識點復習總結(jié)填空
- 大學鋼琴即興伴奏教案
- 最新VTE指南解讀(靜脈血栓栓塞癥的臨床護理指南解讀)
- 博鰲亞洲論壇海南年會PPT模板
- 新教材人教版高中化學選擇性必修三全冊教學課件
- 2023年銀行業(yè)風險管理(中級)考試考試題庫(真題整理)
- 監(jiān)護儀培訓-PPT課件
- 溝通技巧游戲
評論
0/150
提交評論