單片機(jī)智能電子秤設(shè)計(jì)說(shuō)明書(shū)_第1頁(yè)
單片機(jī)智能電子秤設(shè)計(jì)說(shuō)明書(shū)_第2頁(yè)
單片機(jī)智能電子秤設(shè)計(jì)說(shuō)明書(shū)_第3頁(yè)
單片機(jī)智能電子秤設(shè)計(jì)說(shuō)明書(shū)_第4頁(yè)
單片機(jī)智能電子秤設(shè)計(jì)說(shuō)明書(shū)_第5頁(yè)
已閱讀5頁(yè),還剩21頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上單片機(jī)電子秤說(shuō)明書(shū)秤是一種在實(shí)際工作和生活中經(jīng)常用到的測(cè)量器具。隨著計(jì)量技術(shù)和電子技術(shù)的發(fā)展,傳統(tǒng)純機(jī)械結(jié)構(gòu)的桿秤、臺(tái)秤、磅秤等稱(chēng)量裝置逐步被淘汰,電子稱(chēng)量裝置電子秤、電子天平等以其準(zhǔn)確、快速、方便、顯示直觀等諸多優(yōu)點(diǎn)而受到人們的青睞。和傳統(tǒng)秤相比較,電子秤利用新型傳感器、高精度AD轉(zhuǎn)換器件、單片機(jī)設(shè)計(jì)實(shí)現(xiàn),具有精度高、功能強(qiáng)等特點(diǎn)。本課題設(shè)計(jì)的電子秤具有基本稱(chēng)重、鍵盤(pán)輸入、計(jì)算價(jià)格、顯示、超重報(bào)警功能。該電子秤的測(cè)量范圍為0-10Kg,測(cè)量精度達(dá)到5g,有高精度,低成本,易攜帶的特點(diǎn)。電子秤采用液晶顯示漢字和測(cè)量記過(guò),比傳統(tǒng)秤具有更高的準(zhǔn)確性和直觀性。另外,該電子秤

2、電路簡(jiǎn)單,使用壽命長(zhǎng),應(yīng)用范圍廣,可以應(yīng)用于商場(chǎng)、超市、家庭等場(chǎng)所,成為人們?nèi)粘I钪胁豢缮俚谋匦杵贰R?、功能描?、采用高精度電阻應(yīng)變式壓力傳感器,測(cè)量量程0-10kg,測(cè)量精度可達(dá)5g。2、采用電子秤專(zhuān)用模擬/數(shù)字(A/D)轉(zhuǎn)換器芯片hx711對(duì)傳感器信號(hào)進(jìn)行調(diào)理轉(zhuǎn)換,HX711 采用了海芯科技集成電路專(zhuān)利技術(shù),是一款專(zhuān)為高精度電子秤而設(shè)計(jì)的24 位A/D 轉(zhuǎn)換器芯片。3、采用STC89C52單片機(jī)作為主控芯片,實(shí)現(xiàn)稱(chēng)重、計(jì)算價(jià)格等主控功能。4、采用128*64漢字液晶屏顯示稱(chēng)重重量、單價(jià)、總價(jià)等信息。5、采用4*4矩陣鍵盤(pán)進(jìn)行人機(jī)交互,鍵盤(pán)容量大,操作便捷。6、具有超量程報(bào)警功能,可以通

3、過(guò)蜂鳴器和LED燈報(bào)警。7、系統(tǒng)通過(guò)USB電源供電,單片機(jī)程序也可通過(guò)USB線串行下載。二、硬件設(shè)計(jì)1、硬件方案單片機(jī)電子秤硬件方案如圖1所示:圖1 單片機(jī)電子秤硬件方案稱(chēng)重傳感器感應(yīng)被測(cè)重力,輸出微弱的毫伏級(jí)電壓信號(hào)。該電壓信號(hào)經(jīng)過(guò)電子秤專(zhuān)用模擬/數(shù)字(A/D)轉(zhuǎn)換器芯片hx711對(duì)傳感器信號(hào)進(jìn)行調(diào)理轉(zhuǎn)換。HX711 采用了海芯科技集成電路專(zhuān)利技術(shù),是一款專(zhuān)為高精度電子秤而設(shè)計(jì)的24 位A/D 轉(zhuǎn)換器芯片,內(nèi)置增益控制,精度高,性能穩(wěn)定。HX711芯片通過(guò)2線串行方式與單片機(jī)通信。單片機(jī)讀取被測(cè)數(shù)據(jù),進(jìn)行計(jì)算轉(zhuǎn)換,再液晶屏上顯示出來(lái)。矩陣鍵盤(pán)主要用于計(jì)算金額。當(dāng)被測(cè)物體重量得到后,用戶可以通

4、過(guò)矩陣鍵盤(pán)輸入單價(jià),電子秤自動(dòng)計(jì)算總金額并在液晶屏顯示。電源系統(tǒng)給單片機(jī)、HX711電路及傳感器供電。2、稱(chēng)重傳感器傳感器是測(cè)量機(jī)構(gòu)最重要的部件。稱(chēng)重傳感器本身具有單調(diào)性,其主要參數(shù)指標(biāo)是靈敏度、總誤差和溫度漂移。(1) 靈敏度稱(chēng)重傳感器的電靈敏度為滿負(fù)荷輸出電壓與激勵(lì)電壓的比值,典型值是2mV/V。當(dāng)使用2 mV/V靈敏度和5 V激勵(lì)電壓的傳感器時(shí),其滿度輸出電壓為10 mV。通常,為了使用稱(chēng)重傳感器線性度最好的一段稱(chēng)重范圍,應(yīng)當(dāng)僅使用滿度范圍的三分之二。因此滿度輸出電壓應(yīng)當(dāng)大約為6mV。當(dāng)電子秤應(yīng)用于工業(yè)環(huán)境時(shí),在6mV滿度范圍內(nèi)測(cè)量微小的信號(hào)變化并非易事。(2) 總誤差總誤差是指輸出誤差

5、和額定誤差的比值。典型電子秤的總誤差指標(biāo)大約是0.02%,這一技術(shù)指標(biāo)相當(dāng)重要,它限制了使用理想信號(hào)調(diào)節(jié)電路所能達(dá)到的精確度,決定了ADC分辨率的選擇以及放大電路和濾波器的設(shè)計(jì)。(3) 漂移稱(chēng)重傳感器也產(chǎn)生與時(shí)間相關(guān)的漂移。目前常用的稱(chēng)重傳感器有電阻應(yīng)變式壓力傳感器、電容壓力傳感器、壓電式壓力傳感器。選用時(shí)應(yīng)按穩(wěn)定行、精度登記、壽命和安裝環(huán)境要求考慮,其主要特點(diǎn)如下:(1) 電容式壓力傳感器穩(wěn)定性較差,精度和靈敏度較高,壽命較短,對(duì)環(huán)境要求苛刻,不易長(zhǎng)距離傳輸。(2) 壓電式壓力傳感器穩(wěn)定性好,精度和靈敏度高,壽命長(zhǎng),但大量程的壓力傳感器尚待進(jìn)一步研究。(3) 電阻應(yīng)變式壓力傳感器穩(wěn)定性較好,

6、精度和靈敏度較高,壽命較長(zhǎng),對(duì)測(cè)量環(huán)境要求不太嚴(yán)格。綜上所述,選用電阻應(yīng)變式壓力傳感器作為電子秤稱(chēng)重傳感器是最為合適的。電阻應(yīng)變式壓力傳感器主要由彈性體、電阻應(yīng)變片電纜線等組成,內(nèi)部線路采用惠更斯電橋,當(dāng)彈性體承受載荷產(chǎn)生變形時(shí),電阻應(yīng)變片(轉(zhuǎn)換元件)受到拉伸或壓縮應(yīng)變片變形后,它的阻值將發(fā)生變化(增大或減?。瑥亩闺姌蚴テ胶?,產(chǎn)生相應(yīng)的差動(dòng)信號(hào),供后續(xù)電路測(cè)量和處理。電阻應(yīng)變式傳感器測(cè)量原理如圖2所示。圖2 電阻應(yīng)變式傳感器測(cè)量原理當(dāng)垂直正壓力P作用于梁上時(shí),梁產(chǎn)生形變,電阻應(yīng)變片R1、R3受壓彎拉伸,阻值增加;R2、R4受壓縮,阻值減小。電橋失去平衡,產(chǎn)生不平衡電壓,不平衡電壓與作用在

7、傳感器上的載菏P成正比,從而將非電量轉(zhuǎn)化成電量輸出。R1、R2、R3和R4組成惠更斯電橋,將2對(duì)電阻應(yīng)變片的阻值變化轉(zhuǎn)變成輸出電壓,其工作原理如圖3所示。圖3 測(cè)量電橋原理3、電子秤專(zhuān)用24位AD轉(zhuǎn)換芯片HX711及其電路HX711 采用了海芯科技集成電路專(zhuān)利技術(shù),是一款專(zhuān)為高精度電子秤而設(shè)計(jì)的24 位A/D 轉(zhuǎn)換器芯片。與同類(lèi)型其它芯片相比,該芯片集成了包括穩(wěn)壓電源、片內(nèi)時(shí)鐘振蕩器等其它同類(lèi)型芯片所需要的外圍電路,具有集成度高、響應(yīng)速度快、抗干擾性強(qiáng)等優(yōu)點(diǎn)。降低了電子秤的整機(jī)成本,提高了整機(jī)的性能和可靠性。該芯片與后端MCU 芯片的接口和編程非常簡(jiǎn)單,所有控制信號(hào)由管腳驅(qū)動(dòng),無(wú)需對(duì)芯片內(nèi)部的

8、寄存器編程。輸入選擇開(kāi)關(guān)可任意選取通道A 或通道B,與其內(nèi)部的低噪聲可編程放大器相連。通道A 的可編程增益為128 或64,對(duì)應(yīng)的滿額度差分輸入信號(hào)幅值分別為±20mV或±40mV。通道B 則為固定的32 增益,用于系統(tǒng)參數(shù)檢測(cè)。芯片內(nèi)提供的穩(wěn)壓電源可以直接向外部傳感器和芯片內(nèi)的A/D 轉(zhuǎn)換器提供電源,系統(tǒng)板上無(wú)需另外的模擬電源。芯片內(nèi)的時(shí)鐘振蕩器不需要任何外接器件。上電自動(dòng)復(fù)位功能簡(jiǎn)化了開(kāi)機(jī)的初始化過(guò)程。 HX711內(nèi)部方框圖如圖4所示。其外部管腳如圖5所示。圖4 HX711內(nèi)部方框圖圖5 HX711外部管腳圖圖5為HX711芯片應(yīng)用于計(jì)價(jià)秤的一個(gè)參考電路圖。該方案使用內(nèi)

9、部時(shí)鐘振蕩器(XI=0),10Hz的輸出數(shù)據(jù)速率(RATE=0)。電源(2.75.5V)直接取用與MCU 芯片相同的供電電源。通道A與傳感器相連,通道B通過(guò)片外分壓電阻與電池相連,用于檢測(cè)電池電壓。圖6 HX711計(jì)價(jià)秤應(yīng)用參考電路圖 本課題設(shè)計(jì)的HX711電路如圖7所示:圖7 HX711電路4、單片機(jī)STC89C52及其電路(1) STC89C52 單片機(jī)概述STC89C52系列單片機(jī)是宏晶科技生產(chǎn)的單時(shí)鐘/機(jī)器周期(1T)的單片機(jī),是高速/低功耗/超強(qiáng)抗干擾的新一代8051單片機(jī),指令代碼完全兼容傳統(tǒng)8051,但速度快8-12倍,內(nèi)部集成MAX810專(zhuān)用復(fù)位電路。(2) STC89C52

10、單片機(jī)特點(diǎn)l 增強(qiáng)型 8051 CPU,1T,單時(shí)鐘/機(jī)器周期,指令代碼完全兼容傳統(tǒng)8051;l 工作電壓: 5.5V - 3.5V(5V單片機(jī));l 工作頻率范圍:040MHz,相當(dāng)于普通8051的 080MHz;l 用戶應(yīng)用程序空間 4K/8K/16k/32K/64K字節(jié);l 片上集成1280字節(jié) RAM;l 通用I/O口(32/36個(gè)),復(fù)位后為準(zhǔn)雙向口/弱上拉(普通8051傳統(tǒng)I/O口);l ISP(在系統(tǒng)可編程)/IAP(在應(yīng)用可編程),無(wú)需專(zhuān)用編程器/仿真器。l 每個(gè)I/O口驅(qū)動(dòng)能力均可達(dá)到20mA,但整個(gè)芯片最大不要超過(guò)120mA;l 可通過(guò)串口(P3.0/P3.1)直接下載用戶

11、程序,數(shù)秒即可完成一片;l 有EEPROM功能;l 看門(mén)狗;l 內(nèi)部集成MAX810專(zhuān)用復(fù)位電路(外部晶體12M以下時(shí),復(fù)位腳可直接1K電阻到地);l 時(shí)鐘源:外部高精度晶體/時(shí)鐘,內(nèi)部R/C振蕩器;l 用戶在下載用戶程序時(shí),可選擇是使用內(nèi)部R/C 振蕩器還是外部晶體/ 時(shí)鐘;l 常溫下內(nèi)部R/C 振蕩器頻率為:5.0V 單片機(jī)為: 11MHz 17MHz;l 共4個(gè)16位定時(shí)器,兩個(gè)與傳統(tǒng)8051兼容的定時(shí)器/計(jì)數(shù)器,16位定時(shí)器T0和T1,沒(méi)有定時(shí)器2,但有獨(dú)立波特率發(fā)生器做串行通訊的波特率發(fā)生器,再加上2路PCA模塊可再實(shí)現(xiàn)2個(gè)16位定時(shí)器;l 外部中斷I/O口4路,傳統(tǒng)的下降沿中斷或低

12、電平觸發(fā)中斷,并新增支持上升沿中斷的PCA模塊,Power Down模式可由外部中斷喚醒;l 通用全雙工異步串行口(UART) ;l 工作溫度范圍:-40 +85(工業(yè)級(jí)) / 0 75(商業(yè)級(jí)) ;l 封裝:PDIP-40, PLCC-44。 (3) STC89C52 單片機(jī)管腳及封裝STC89C52單片機(jī)有多種封裝形式,本設(shè)計(jì)中選用40DIP封裝,其管腳定義如圖8所示。圖8 STC89C52 管腳圖 本課題設(shè)計(jì)的電子秤的單片機(jī)應(yīng)用電路如圖9所示:圖9 STC89C52單片機(jī)電路圖中DOUT和PDSCK為單片機(jī)與HX711的AD轉(zhuǎn)換電路交換數(shù)據(jù)的通信線。beep為蜂鳴器報(bào)警信號(hào)線,alert

13、為報(bào)警燈信號(hào)線,RXD和TXD為串口通信線,也可以用于單片機(jī)程序的串行ISP下載。5、液晶屏電路圖10 LCD顯示電路液晶屏電路如圖10所示。LCD_CS、LCD_RES、LCD_RS、LCD_SDA、LCD_SCK為液晶模塊與單片機(jī)接口的控制線。CS_ZK、SCK_ZK、SO_ZK和SI_ZK為字庫(kù)和單片機(jī)接口的控制線。該液晶為晶訊聯(lián)公司的128*64漢字屏JLX12864G-086-PC顯示信息。該顯示模塊既可以當(dāng)成普通的圖像型液晶顯示模塊使用(即顯示普通圖像型的單色圖片功能),又含有JLX-GB2312 字庫(kù)IC,可以從字庫(kù)IC 中讀出內(nèi)置的字庫(kù)的點(diǎn)陣數(shù)據(jù)寫(xiě)入到LCD 驅(qū)動(dòng)IC 中,以達(dá)

14、到顯示漢字的目的。其接口引腳功能介紹:表一 液晶模塊接口引腳功能6、矩陣鍵盤(pán)電路矩陣鍵盤(pán)電路如圖11所示:圖11 矩陣鍵盤(pán)電路圖中4*4矩陣鍵盤(pán)可以顯示0-9數(shù)字、小數(shù)點(diǎn)和五個(gè)功能鍵。鍵盤(pán)行掃描信號(hào)為ROW1ROW4,列掃描信號(hào)為COL1COL4。行信號(hào)為輸入信號(hào),低電平有效;列信號(hào)為輸出信號(hào)。當(dāng)沒(méi)有鍵按下時(shí),即使行掃描輸入低電平信號(hào),列信號(hào)仍為高電平;當(dāng)行掃描為低電平并且有鍵按下時(shí),相應(yīng)的列輸出低電平。該低電平信號(hào)可以定位至按下鍵的位置。7、聲光報(bào)警電路聲光報(bào)警電路如圖12所示。圖12 聲光報(bào)警電路 當(dāng)測(cè)量重量超過(guò)量程時(shí),beep和alert給出低電平信號(hào),驅(qū)動(dòng)蜂鳴器鳴響,報(bào)警燈亮。8電源電

15、路本設(shè)計(jì)采用USB接口供電,電源電壓5V。同時(shí),USB接口通過(guò)內(nèi)含PL2303芯片的轉(zhuǎn)換電路對(duì)單片機(jī)進(jìn)行程序編寫(xiě)。其電路原理如圖所示。圖16 供電及程序下載電路三、Protel硬件開(kāi)發(fā)軟件Protel是目前國(guó)內(nèi)最流行的通用EDA軟件,它是將電路原理圖設(shè)計(jì)、PCB板圖設(shè)計(jì)、電路仿真和PLD設(shè)計(jì)等多個(gè)實(shí)用工具軟件組合后構(gòu)成的EDA工作平臺(tái),是第一個(gè)將EDA軟件設(shè)計(jì)成基于Windows的普及型產(chǎn)品。它集成了軟件界面、仿真功能和PLD設(shè)計(jì)和信號(hào)完整性分析,在此基礎(chǔ)上Protel 99SE又增加了一些新的功能,用戶使用更加方便靈活。Protel的功能十分強(qiáng)大,在電子電路設(shè)計(jì)領(lǐng)域占有極其重要的地位。它以其

16、強(qiáng)大功能和實(shí)用性,逐漸獲得廣大硬件設(shè)計(jì)人員的青睞,是目前眾多EDA設(shè)計(jì)軟件中用戶最多的產(chǎn)品之一。1Protel軟件組成Protel軟件主要由電路原理圖設(shè)計(jì)模塊、印制電路板設(shè)計(jì)模塊(PCB設(shè)計(jì)模塊)、電路信號(hào)仿真模塊和PLD邏輯器件設(shè)計(jì)模塊等組成,各模塊具有強(qiáng)大的功能,可以很好的實(shí)現(xiàn)電路設(shè)計(jì)與分析。(1) 原理圖設(shè)計(jì)模塊(Schematic模塊)電路原理圖是表示電氣產(chǎn)品或電路工作原理的重要技術(shù)文件,電路原理圖主要由代表各種電子器件的圖形符號(hào)、線路和結(jié)點(diǎn)組成。圖4.1所示為一張電路原理圖。該原理圖是由Schematic模塊設(shè)計(jì)完成的。Schematic模塊具有如下功能:豐富而靈活的編輯功能、在線庫(kù)

17、編輯及完善的庫(kù)管理功能、強(qiáng)大的設(shè)計(jì)自動(dòng)化功能、支持層次化設(shè)計(jì)功能等。 (2) 印制電路板設(shè)計(jì)模塊(PCB設(shè)計(jì)模塊)印制電路板(PCB)制板圖是由電路原理圖到制作電路板的橋梁。設(shè)計(jì)了電路原理圖后,需要根據(jù)原理圖生設(shè)計(jì)成印制電路板的制板圖,然后在根據(jù)制板圖制作具體的電路板。印制電路板設(shè)計(jì)模塊具有如下主要功能和特點(diǎn):可完成復(fù)雜印制電路板(PCB)的設(shè)計(jì);方便而又靈活的編輯功能;強(qiáng)大的設(shè)計(jì)自動(dòng)化功能;在線式庫(kù)編輯及完善的庫(kù)管理;完備的輸出系統(tǒng)等。(3) 電路信號(hào)仿真模塊電路信號(hào)仿真模塊是一個(gè)功能強(qiáng)大的數(shù)字/模擬混合信號(hào)電路仿真器,能提供連續(xù)的模擬信號(hào)和離散的數(shù)字信號(hào)仿真。它運(yùn)行在Protel的EDA/

18、Client集成環(huán)境下,與Protel Advanced Schematic原理圖輸入程序協(xié)同工作,作為Advanced Schematic的擴(kuò)展,為用戶提供了一個(gè)完整的從設(shè)計(jì)到驗(yàn)證仿真設(shè)計(jì)環(huán)境。在Protel中進(jìn)行仿真,只需從仿真用元器件庫(kù)中放置所需的元器件,連接好原理圖,加上激勵(lì)源,然后單擊防真按鈕即可自動(dòng)開(kāi)始。2PCB板設(shè)計(jì)(1) 定元件的封裝 打開(kāi)網(wǎng)絡(luò)表(可以利用一些編輯器輔助編輯),將所有封裝瀏覽一遍,確保所有元件的封裝都正確無(wú)誤并且元件庫(kù)中包含所有元件的封裝,網(wǎng)絡(luò)表中所有信息全部大寫(xiě),一面載入出問(wèn)題,或PCB BOM不連續(xù)。 標(biāo)準(zhǔn)元件全部采用公司統(tǒng)一元件庫(kù)中的封裝。 元件庫(kù)中不存在

19、的封裝,應(yīng)自己建立元器件庫(kù)。(2) 建立PCB板框 根據(jù)PCB結(jié)構(gòu)圖,或相應(yīng)的模板建立PCB文件,包括安裝孔、禁布區(qū)等相關(guān)信息。 尺寸標(biāo)注。在鉆孔層中應(yīng)標(biāo)明PCB的精確結(jié)構(gòu),且不可以形成封閉尺寸標(biāo)注。(3) 載入網(wǎng)絡(luò)表 載入網(wǎng)表并排除所有載入問(wèn)題,具體請(qǐng)看PROTEL技術(shù)大全。其他軟件載入問(wèn)題有很多相似之處,可以借鑒。 如果使用PROTEL,網(wǎng)表須載入兩次以上(沒(méi)有任何提示信息)才可以確認(rèn)載入無(wú)誤。(4) 布局 首先要確定參考點(diǎn)。一般參考點(diǎn)都設(shè)置在左邊和底邊的邊框線的交點(diǎn)(或延長(zhǎng)線的交點(diǎn))上或印制板的插件的第一個(gè)焊盤(pán)。 一但參考點(diǎn)確定以后,元件布局、布線均以此參考點(diǎn)為準(zhǔn)。布局推薦使用25MIL

20、網(wǎng)格。 根據(jù)要求先將所有有定位要求的元件固定并鎖定。 布局的基本原則 A. 遵循先難后易、先大后小的原則。B. 布局可以參考硬件工程師提供的原理圖和大致的布局,根據(jù)信號(hào)流向規(guī)律放置主要原器件。C. 總的連線盡可能的短,關(guān)鍵信號(hào)線最短。D. 強(qiáng)信號(hào)、弱信號(hào)、高電壓信號(hào)和弱電壓信號(hào)要完全分開(kāi)。E. 高頻元件間隔要充分。F. 模擬信號(hào)、數(shù)字信號(hào)分開(kāi)。 相同結(jié)構(gòu)電路部分應(yīng)盡可能采取對(duì)稱(chēng)布局。 按照均勻分布、重心平衡、版面美觀的標(biāo)準(zhǔn)來(lái)優(yōu)化布局。(5) PCB設(shè)計(jì)遵循的規(guī)則 地線回路規(guī)則:圖17 地線回路規(guī)則環(huán)路最小規(guī)則,即信號(hào)線與其回路構(gòu)成的環(huán)面積要盡可能小,環(huán)面積要盡可能小,環(huán)面積越小,對(duì)外的輻射越少

21、,接收外界的干擾也越小。針對(duì)這一規(guī)則,在地平面分割時(shí),要考慮到地平面與重要信號(hào)走線的分布,防止由于地平面開(kāi)槽等帶來(lái)的問(wèn)題;在雙層板設(shè)計(jì)中,在為電源留下足夠空間的情況下,應(yīng)該將留下的部分用參考地填充,且增加一些必要的過(guò)孔,將雙面信號(hào)有效連接起來(lái),對(duì)一些關(guān)鍵信號(hào)盡量采用地線隔離,對(duì)一些頻率較高的設(shè)計(jì),需特別考慮其地平面信號(hào)回路問(wèn)題,建議采用多層板為宜。 竄擾控制竄擾(CrossTalk)是指PCB上不同網(wǎng)絡(luò)之間因較長(zhǎng)的平行布線引起的相互干擾,主要是由于平行線間的分布電容和分布電感的作用??朔Z擾的主要措施是:A.加大平行布線的間距,遵循3W規(guī)則。B.在平行線間插入接地的隔離線。C.減少布線層與地平

22、面的距離 屏蔽保護(hù)圖18 屏蔽保護(hù)對(duì)應(yīng)地線回路規(guī)則,實(shí)際上也是為了盡量減小信號(hào)的回路面積,多用于一些比較重要的信號(hào),如時(shí)鐘信號(hào),同步信號(hào);對(duì)一些特別重要,頻率特別高的信號(hào),應(yīng)該考慮采用銅軸電纜屏蔽結(jié)構(gòu)設(shè)計(jì),即將所布的線上下左右用地線隔離,而且還要考慮好如何有效的讓屏蔽地與實(shí)際地平面有效結(jié)合。 走線方向控制規(guī)則相鄰層的走線方向成正交結(jié)構(gòu),避免將不同的信號(hào)線在相鄰層走成同一方向,以減少不必要的層間竄擾;當(dāng)由于板結(jié)構(gòu)限制(如某些背板)難以避免出現(xiàn)該情況,特別是信號(hào)速率較高時(shí),應(yīng)考慮用地平面隔離各布線層,用地信號(hào)線隔離各信號(hào)線。 電源與地線層的完整性規(guī)則對(duì)于導(dǎo)通孔密集的區(qū)域,要注意避免孔在電源和地層的

23、挖空區(qū)域相互連接,形成對(duì)平面層的分割,從而破壞平面層的完整性,并進(jìn)而導(dǎo)致信號(hào)線在地層 的回路面積增大。四、 軟件設(shè)計(jì)1、軟件流程圖本設(shè)計(jì)主程序使用了定時(shí)器,用來(lái)實(shí)現(xiàn)每0.5秒稱(chēng)重一次的功能,流程圖如圖19所示。鍵盤(pán)掃描程序如圖20所示。 圖19 時(shí)鐘中斷程序流程圖 圖20 鍵盤(pán)掃描程序流程圖主程序軟件流程如圖21所示。 圖21 主程序流程圖 3、主程序 下面介紹main.c主程序編寫(xiě),其他程序略。(1) 頭文件和一些宏定義#include <reg52.h>#include <intrins.h>#include <string.h>#include &qu

24、ot;lcd.h"#include "hx711.h"#include "keyboard.h"/定義量程系數(shù)#define RATIO 2114/1623(2) 管腳、常量、變量定義/定義標(biāo)識(shí)volatile bit FlagTest = 0;/定時(shí)測(cè)試標(biāo)志,每0.5秒置位,測(cè)完清0volatile bit FlagKeyPress = 0; /有鍵按下標(biāo)志,處理完畢清0volatile bit FlagSetPrice = 0; /價(jià)格設(shè)置狀態(tài)標(biāo)志,設(shè)置好為1。/管腳定義sbit LedA = P22;sbit beep = P10;sbi

25、t alert = P11;/顯示用變量int Counter;uchar idata str16 = ""int i, iTemp;/稱(chēng)重用變量unsigned long idata FullScale; /滿量程AD值/1000unsigned long AdVal; /AD采樣值unsigned long weight; /重量值,單位gunsigned long idata price; /單價(jià),長(zhǎng)整型值,單位為分 unsigned long idata money; /總價(jià),長(zhǎng)整型值,單位為分/鍵盤(pán)處理變量uchar keycode;uchar DotPos; /

26、小數(shù)點(diǎn)標(biāo)志及位置 (3) 函數(shù)聲明void int2str(int, char *);void Data_Init();void Port_Init(); void Timer0_Init();void Timer0_ISR () ;void INT1_Init();void KeyPress(uchar);void To_Zero();void Display_Price();void Display_Weight();void Display_Money();(4) 各子程序/整型轉(zhuǎn)字符串的函數(shù),轉(zhuǎn)換范圍0-65536void int2str(int x, char* str) int i

27、=1; int tmp=10; while(x/tmp!=0) i+; tmp*=10; tmp=x; stri='0' while(i>1) str-i='0'+(tmp%10); tmp/=10; str0=tmp+'0' /重新找回零點(diǎn),每次測(cè)量前調(diào)用void To_Zero() FullScale=ReadCount()/1000; price=0;/顯示單價(jià),單位為元,四位整數(shù),兩位小數(shù)void Display_Price() unsigned int i,j; display_GB2312_string(5,44,"

28、"); i = price/100; /得到整數(shù)部分 j = price - i*100;/得到小數(shù)部分 int2str(i,str1); /顯示整數(shù)部分 if (i>=1000) display_GB2312_string(5,44,str1); else if (i>=100) display_GB2312_string(5,52,str1); else if (i>=10) display_GB2312_string(5,60,str1); else display_GB2312_string(5,68,str1); /顯示小數(shù)點(diǎn) display_GB2312

29、_string(5,76,"."); /顯示小數(shù)部分 int2str(j,str1); if (j<10) display_GB2312_string(5,84,"0"); display_GB2312_string(5,92,str1); else display_GB2312_string(5,84,str1); /顯示重量,單位kg,兩位整數(shù),三位小數(shù)void Display_Weight() unsigned int i,j; display_GB2312_string(3,60," "); /weight單位是g i

30、= weight/1000; /得到整數(shù)部分 j = weight - i*1000;/得到小數(shù)部分 int2str(i,str1); if (i>=10) display_GB2312_string(3,60,str1); else display_GB2312_string(3,68,str1); display_GB2312_string(3,76,"."); int2str(j,str1); if (j<10) display_GB2312_string(3,84,"00"); display_GB2312_string(3,100,

31、str1); else if (j<100) display_GB2312_string(3,84,"0"); display_GB2312_string(3,92,str1); else display_GB2312_string(3,84,str1); /顯示總價(jià),單位為元,四位整數(shù),兩位小數(shù)void Display_Money() unsigned int i,j; display_GB2312_string(7,44," "); if (money>) /超出顯示量程 display_GB2312_string(7,44,"

32、-"); return; i = money/100; /得到整數(shù)部分 j = money - i*100;/得到小數(shù)部分 int2str(i,str1); /顯示整數(shù)部分 if (i>=1000) display_GB2312_string(7,44,str1); else if (i>=100) display_GB2312_string(7,52,str1); else if (i>=10) display_GB2312_string(7,60,str1); else display_GB2312_string(7,68,str1); /顯示小數(shù)點(diǎn) displ

33、ay_GB2312_string(7,76,"."); /顯示小數(shù)部分 int2str(j,str1); if (j<10) display_GB2312_string(7,84,"0"); display_GB2312_string(7,92,str1); else display_GB2312_string(7,84,str1); /數(shù)據(jù)初始化void Data_Init() price = 0; DotPos = 0; beep = 1; alert = 1;/管腳配置void Port_Init()/定時(shí)器0初始化void Timer0_I

34、nit()ET0 = 1; /允許定時(shí)器0中斷TMOD = 1; /定時(shí)器工作方式選擇TL0 = 0x06; TH0 = 0xf8; /定時(shí)器賦予初值TR0 = 1; /啟動(dòng)定時(shí)器/定時(shí)器0中斷void Timer0_ISR (void) interrupt 1 using 0TL0 = 0x06;TH0 = 0xf8; /定時(shí)器賦予初值/每0.5秒鐘刷新重量 Counter +; if (Counter >= 200) FlagTest = 1; Counter = 0; /按鍵響應(yīng)程序,參數(shù)是鍵值/返回鍵值:/ 7 8 9 10(清0)/ 4 5 6 11(刪除)/ 1 2 3 12

35、(未定義)/ 14(未定義) 0 15(.) 13(確定價(jià)格)void KeyPress(uchar keycode) switch (keycode) case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: /目前在設(shè)置整數(shù)位,要注意price是整型,存儲(chǔ)單位為分 if (DotPos = 0) /最多只能設(shè)置到千位if (price<) price=price*10+keycode*100; /目前在設(shè)置小數(shù)位 else if (DotPos=1) /小數(shù)點(diǎn)后第一位 price=p

36、rice+keycode*10;DotPos+; else if (DotPos=2) price=price+keycode; Display_Price(); break; case 10: /清零鍵 To_Zero(); Display_Price(); FlagSetPrice = 0; DotPos = 0; break; case 11:/刪除鍵,按一次刪除最右一個(gè)數(shù)字 if (DotPos=2) price=price/10;price=price*10;DotPos-; else if (DotPos=1) price=price/100;price=price*100;Dot

37、Pos-; else if (DotPos=0) price=price/1000;price=price*100; Display_Price(); break; case 13: /確認(rèn)鍵 FlagSetPrice = 1; break; case 15: /小數(shù)點(diǎn)按下 if (DotPos = 0) DotPos = 1; /小數(shù)點(diǎn)后第一位 break; /=main program=/void main(void) Rom_CS=1; initial_lcd(); EA = 0; Data_Init(); Port_Init(); Timer0_Init(); /初始化完成,開(kāi)中斷 EA = 1; /背光 LedA = 1; clear_screen(); /clear all dots display_GB2312_string(1,1,"電子秤初始化."); To_Zero(); display_GB2312_string(1,1,"電子秤初始化成功"); display_GB2312_string(3,1,"重量: kg"); display_GB2312_string

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論