單片機(jī)電子秤設(shè)計(jì)報(bào)告_第1頁(yè)
單片機(jī)電子秤設(shè)計(jì)報(bào)告_第2頁(yè)
單片機(jī)電子秤設(shè)計(jì)報(bào)告_第3頁(yè)
單片機(jī)電子秤設(shè)計(jì)報(bào)告_第4頁(yè)
單片機(jī)電子秤設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、單片機(jī)電子秤設(shè)計(jì)報(bào)告秤是一種在實(shí)際工作和生活中經(jīng)常用到的測(cè)量器具。隨著計(jì)量技術(shù)和電電子稱量裝置電子秤、電子天平等以其準(zhǔn)確、快速、方便、顯示直觀等諸多 優(yōu)點(diǎn)而受到人們的青睞。和傳統(tǒng)秤相比較,電子秤利用新型傳感器、高精度 AD 轉(zhuǎn)換器件、單片機(jī)設(shè)計(jì)實(shí)現(xiàn),具有精度高、功能強(qiáng)等特點(diǎn)。本課題設(shè)計(jì)的電子秤具有基本稱重、 鍵盤輸入、計(jì)算價(jià)格、顯示、超重報(bào)警功能。該電子秤的測(cè)量范圍為 0-40Kg, 測(cè)量精度達(dá)到 5g,有高精度,低成本,易攜帶的特點(diǎn)。電子秤采用液晶顯示漢字和測(cè)量記過,比傳統(tǒng)秤具有更高的準(zhǔn)確性和直觀性。另外,該電子秤電路簡(jiǎn)單,使用壽命長(zhǎng),應(yīng)用范圍廣,可以應(yīng)用于商場(chǎng)、超市、家庭等場(chǎng)所, 成為人們

2、日常生活中不可少的必需品。一、功能描述5g。1、采用高精度電阻應(yīng)變式壓力傳感器,測(cè)量量程 0-40kg,測(cè)量精度可達(dá)2、采用電子秤專用模擬 /數(shù)字(A/D)轉(zhuǎn)換器芯片 hx711 對(duì)傳感器信號(hào)進(jìn)HX711 24 A/D 轉(zhuǎn)換器芯片。3STC89C52 能。4、采用 128*64 漢字液晶屏顯示稱重重量、單價(jià)、總價(jià)等信息。5、采用 4*4 矩陣鍵盤進(jìn)行人機(jī)交互,鍵盤容量大,操作便捷。6、具有超量程報(bào)警功能,可以通過蜂鳴器和 LED 燈報(bào)警。7、系統(tǒng)通過 USB 電源供電,單片機(jī)程序也可通過 USB 線串行下載。二、硬件設(shè)計(jì)1、硬件方案單片機(jī)電子秤硬件方案如圖 1 所示:稱重傳感器稱重傳感器24位

3、A/D芯片hx711電路矩陣鍵盤單片機(jī)主控芯片電源系統(tǒng)液晶顯示圖 1 單片機(jī)電子秤硬件方案稱重傳感器感應(yīng)被測(cè)重力,輸出微弱的毫伏級(jí)電壓信號(hào)。該電壓信號(hào)經(jīng) /數(shù)字(A/D)轉(zhuǎn)換器芯片 hx711換。HX711 采用了海芯科技集成電路專利技術(shù),是一款專為高精度電子秤而24A/DHX711片通過 2 線串行方式與單片機(jī)通信。單片機(jī)讀取被測(cè)數(shù)據(jù),進(jìn)行計(jì)算轉(zhuǎn)換, 再液晶屏上顯示出來(lái)。矩陣鍵盤主要用于計(jì)算金額。當(dāng)被測(cè)物體重量得到后,用戶可以通過矩陣鍵盤輸入單價(jià),電子秤自動(dòng)計(jì)算總金額并在液晶屏顯示。電源系統(tǒng)給單片機(jī)、HX711 電路及傳感器供電。2、稱重傳感器傳感器是測(cè)量機(jī)構(gòu)最重要的部件。稱重傳感器本身具有

4、單調(diào)性,其主要參數(shù)指標(biāo)是靈敏度、總誤差和溫度漂移。靈敏度稱重傳感器的電靈敏度為滿負(fù)荷輸出電壓與激勵(lì)電壓的比值,典型值是2mV/V。當(dāng)使用 2 mV/V5 V10mV。通常,為了使用稱重傳感器線性度最好的一段稱重范圍,應(yīng)當(dāng)僅使用滿度范圍的三分之二。因此滿度輸出電壓應(yīng)當(dāng)大約為 6mV6mV總誤差總誤差是指輸出誤差和額定誤差的比值。典型電子秤的總誤差指標(biāo)大約0.02的精確度,決定了 ADC漂移稱重傳感器也產(chǎn)生與時(shí)間相關(guān)的漂移。目前常用的稱重傳感器有電阻應(yīng)變式壓力傳感器、電容壓力傳感器、壓電式壓力傳感器。選用時(shí)應(yīng)按穩(wěn)定行、精度登記、壽命和安裝環(huán)境要求考慮, 其主要特點(diǎn)如下:環(huán)境要求苛刻,不易長(zhǎng)距離傳輸

5、。的壓力傳感器尚待進(jìn)一步研究。對(duì)測(cè)量環(huán)境要求不太嚴(yán)格。適的。電阻應(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)生不平衡電壓,不平衡電壓與作用在傳感器上的載菏 P 成正比,從而將非電

6、量轉(zhuǎn)化成電量輸出。R1R2R3R42輸出電壓,其工作原理如圖 3圖 3 測(cè)量電橋原理324 AD HX711 及其電路HX711 采用了海芯科技集成電路專利技術(shù),是一款專為高精度電子秤而設(shè)計(jì)的 24 位 A/D 轉(zhuǎn)換器芯片。與同類型其它芯片相比,該芯片集成了包括穩(wěn)壓電源、片內(nèi)時(shí)鐘振蕩器等其它同類型芯片所需要的外圍電路,具有集成度高、響應(yīng)速度快、抗干擾性強(qiáng)等優(yōu)點(diǎn)。降低了電子秤的整機(jī)成本,提高了整機(jī)的性能和可靠性。該芯片與后端 MCU 芯片的接口和編程非常簡(jiǎn)單,所有控制信號(hào)由管腳驅(qū)動(dòng),無(wú)需對(duì)芯片內(nèi)部的寄存器編程。輸入選擇開關(guān)可任意選取通道A 或通道B,與其內(nèi)部的低噪聲可編程放大器相連。通道A 的可

7、編程增益為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)化了開機(jī)的初始化過程。 HX711 內(nèi)部方框圖如圖 4 所示。其外部管腳如圖 5 所示。圖4HX711內(nèi)部方框圖圖5HX711外部管腳圖5HX711鐘振蕩器(XI=0),10Hz 的輸出數(shù)據(jù)速率(RATE=0)(2.75.5V)MCU 芯片相同的供電電源。通道 AB電阻與電池相連,用于檢測(cè)電池電壓。圖6HX

8、711計(jì)價(jià)秤應(yīng)用參考電路本課題設(shè)計(jì)的HX711電路如圖7所示:圖7HX711電路4、單片機(jī) STC89C52 及其電路STC89C52 單片機(jī)概述STC89C52/機(jī)器周期(1T)高速/低功耗/80518051, 8-12MAX810STC89C52 單片機(jī)特點(diǎn)增強(qiáng)型 8051/8051;工作電壓: 5.5V - 3.5V(5V);工作頻率范圍:040MHz,8051080MHz;用戶應(yīng)用程序空間 4K/8K/16k/32K/64K1280RAM;I/O(32/36),復(fù)位后為準(zhǔn)雙向口/弱上拉(8051I/O);在系統(tǒng)可編程在應(yīng)用可編程/仿真器。I/O20mA,120mA;可通過串口(P3.0

9、/P3.1)直接下載用戶程序,數(shù)秒即可完成一片;EEPROM看門狗;MAX810(12M1K);時(shí)鐘源:外部高精度晶體/R/CR/C 振蕩器還是外部晶體時(shí)鐘;R/C 振蕩器頻率為:5.0V11MHz 17MHz;4168051/計(jì)數(shù)器,16T0T12,但有獨(dú)立波特率發(fā)生器做串行通訊的波特2PCA216外部中斷I/O4上升沿中斷的 PCA 模塊,Power Down 模式可由外部中斷喚醒;通用全雙工異步串行口(UART) ;工作溫度范圍:-40 +85(工業(yè)級(jí)) / 0 75(商業(yè)級(jí)) ;封裝:PDIP-40, PLCC-44。STC89C52 單片機(jī)管腳及封裝STC89C5240DIP8圖 8

10、 STC89C52 管腳圖本課題設(shè)計(jì)的電子秤的單片機(jī)應(yīng)用電路如圖 9 所示:圖9STC89C52單片機(jī)電路圖中DOUTPDSCKHX711AD為蜂鳴器報(bào)警信號(hào)線,alert,RXDTXDISP5、液晶屏電路圖10LCD顯示電路液晶屏電路如圖 10 所示。LCD_CS、LCD_RES、LCD_RS、LCD_SDALCD_SCK CS_ZK、SCK_ZK、SO_ZK SI_ZK 為字庫(kù)和單片機(jī)接口的控制線。128*64 JLX12864G-086-PC 顯示信息。該顯(即顯示普通圖像型的單色圖片功能JLX-GB2312I,可以從字庫(kù)IC中讀出內(nèi)置的字庫(kù)的點(diǎn)LCD IC 表一 液晶模塊接口引腳功能6

11、、矩陣鍵盤電路矩陣鍵盤電路如圖 11 所示:11 矩陣鍵盤電路4*4 0-9 數(shù)字、小數(shù)點(diǎn)和五個(gè)功能鍵。鍵盤行掃描信ROW1ROW4COL1COL4。行信號(hào)為輸入信號(hào),低電7、聲光報(bào)警電路聲光報(bào)警電路如圖 12 所示。圖12聲光報(bào)警電路當(dāng)測(cè)量重量超過量程時(shí),beep alert 給出低電平信號(hào),驅(qū)動(dòng)蜂鳴器鳴響,報(bào)警燈亮。8電源電路本設(shè)計(jì)采用 USB 接口供電,電源電壓 5V。同時(shí),USB 接口通過內(nèi)含 PL2303芯片的轉(zhuǎn)換電路對(duì)單片機(jī)進(jìn)行程序編寫。其電路原理如圖所示。圖16供電及程序下載電路三、Protel 硬件開發(fā)軟件Protel 是目前國(guó)內(nèi)最流行的通用 EDA 軟件,它是將電路原理圖設(shè)計(jì)

12、、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ǔ)上Protel99SE又增加了一些新的功能,用戶使用更加方便靈活。Protel的功能十分強(qiáng)大,在電子電路設(shè)計(jì)領(lǐng)域占有極其重要的地位。它以其強(qiáng)大功能和實(shí)用性,逐漸獲得廣大硬件設(shè)計(jì)人員的青睞,是目前眾多EDA 計(jì)軟件中用戶最多的產(chǎn)品之一。Protel 軟件組成Protel 軟件主要由電路原理圖設(shè)計(jì)模塊、印制電路板設(shè)計(jì)模塊(PCB 計(jì)模塊、電路信號(hào)仿真模塊和 PLD邏輯器件設(shè)計(jì)模塊等

13、組成,各模塊具有強(qiáng)大的功能,可以很好的實(shí)現(xiàn)電路設(shè)計(jì)與分析。原理圖設(shè)計(jì)模塊(Schematic)電路原理圖是表示電氣產(chǎn)品或電路工作原理的重要技術(shù)文件,電路原理圖主要由代表各種電子器件的圖形符號(hào)、線路和結(jié)點(diǎn)組成。圖 4.1 為一張電路原理圖。該原理圖是由 Schematic 模塊設(shè)計(jì)完成的。 Schematic 模塊具有如下功能:豐富而靈活的編輯功能、在線庫(kù)編輯及完善的庫(kù)管理功能、強(qiáng)大的設(shè)計(jì)自動(dòng)化功能、支持層次化設(shè)計(jì)功能等。印制電路板設(shè)計(jì)模塊(PCB)印制電路板( PCB)制板圖是由電路原理圖到制作電路板的橋梁。設(shè)計(jì)了電路原理圖后,需要根據(jù)原理圖生設(shè)計(jì)成印制電路板的制板圖,然后 在根據(jù)制板圖制作具

14、體的電路板。印制電路板設(shè)計(jì)模塊具有如下主要功能 和特點(diǎn):可完成復(fù)雜印制電路板(PCB)的設(shè)計(jì);方便而又靈活的編輯能;強(qiáng)大的設(shè)計(jì)自動(dòng)化功能;在線式庫(kù)編輯及完善的庫(kù)管理;完備的輸出 系統(tǒng)等。電路信號(hào)仿真模塊電路信號(hào)仿真模塊是一個(gè)功能強(qiáng)大的數(shù)字/模擬混合信號(hào)電路仿真器, 能提供連續(xù)的模擬信號(hào)和離散的數(shù)字信號(hào)仿真。它運(yùn)行在 ProtelEDA/Client集成環(huán)境下,與 ProtelAdvancedSchematic原理圖輸入程序協(xié)同工作,作為 Advanced Schematic的擴(kuò)展,為用戶提供了一個(gè)完整的從設(shè) 計(jì)到驗(yàn)證仿真設(shè)計(jì)環(huán)境。在 Protel 中進(jìn)行仿真,只需從仿真用元器件庫(kù)中放置所需的元

15、器件, 連接好原理圖,加上激勵(lì)源,然后單擊防真按鈕即可自動(dòng)開始。PCB 板設(shè)計(jì)定元件的封裝 打開網(wǎng)絡(luò)表(可以利用一些編輯器輔助編輯) ,將所有封裝瀏覽一遍,確保所有元件的封裝都正確無(wú)誤并且元件庫(kù)中包含所有元件的封裝,網(wǎng)絡(luò)表中所有信息全部大寫,一面載入出問題,或PCB BOM 不連續(xù)。 標(biāo)準(zhǔn)元件全部采用公司統(tǒng)一元件庫(kù)中的封裝。 元件庫(kù)中不存在的封裝,應(yīng)自己建立元器件庫(kù)。PCB 板框 根據(jù) PCB 結(jié)構(gòu)圖,或相應(yīng)的模板建立 PCB 文件,包括安裝孔、禁布區(qū)等相關(guān)信息。 尺寸標(biāo)注。在鉆孔層中應(yīng)標(biāo)明PCB 的精確結(jié)構(gòu),且不可以形成閉尺寸標(biāo)注。載入網(wǎng)絡(luò)表 載入網(wǎng)表并排除所有載入問題,具體請(qǐng)看PROTEL

16、 技術(shù)大全其他軟件載入問題有很多相似之處,可以借鑒。 如果使用 PROTEL ,網(wǎng)表須載入兩次以上(沒有任何提示信息) 才可以確認(rèn)載入無(wú)誤。布局 首先要確定參考點(diǎn)。一般參考點(diǎn)都設(shè)置在左邊和底邊的邊框線的交點(diǎn)(或延長(zhǎng)線的交點(diǎn)) 上或印制板的插件的第一個(gè)焊盤。推薦使用 25MIL 網(wǎng)格。 根據(jù)要求先將所有有定位要求的元件固定并鎖定。 布局的基本原則遵循先難后易、先大后小的原則。流向規(guī)律放置主要原器件??偟倪B線盡可能的短,關(guān)鍵信號(hào)線最短。強(qiáng)信號(hào)、弱信號(hào)、高電壓信號(hào)和弱電壓信號(hào)要完全分開。高頻元件間隔要充分。模擬信號(hào)、數(shù)字信號(hào)分開。 相同結(jié)構(gòu)電路部分應(yīng)盡可能采取對(duì)稱布局。 按照均勻分布、重心平衡、版面

17、美觀的標(biāo)準(zhǔn)來(lái)優(yōu)化布局。PCB 設(shè)計(jì)遵循的規(guī)則 地線回路規(guī)則:17 地線回路規(guī)則要盡可能小,環(huán)面積越小,對(duì)外的輻射越少,接收外界的干擾也越小。針對(duì)這一規(guī)則,在地平面分割時(shí),要考慮到地平面與重要信號(hào)走線的分布, 防止由于地平面開槽等帶來(lái)的問題;在雙層板設(shè)計(jì)中,在為電源留下足夠?qū)㈦p面信號(hào)有效連接起來(lái),對(duì)一些關(guān)鍵信號(hào)盡量采用地線隔離,對(duì)一些頻率較高的設(shè)計(jì), 需特別考慮其地平面信號(hào)回路問題, 建議采用多層板為宜。 竄擾控制(CrossTalk PCB 相互干擾,主要是由于平行線間的分布電容和分布電感的作用??朔Z擾 的主要措施是:加大平行布線的間距,遵循3W 規(guī)則。在平行線間插入接地的隔離線。減少布線層

18、與地平面的距離 屏蔽保護(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ū)域,要注意避免孔在電源和地

19、層的挖空區(qū)域相互連接,形成對(duì)平面層的分割,從而破壞平面層的完整性,并進(jìn)而導(dǎo)致信號(hào)線在地層 的回路面積增大。四、 軟件設(shè)計(jì)1、軟件流程圖時(shí)鐘中斷入口Counter累加逐列掃描有鍵按下?0.5 19 時(shí)鐘中斷入口Counter累加逐列掃描有鍵按下?置稱重標(biāo)志取鍵值19返回時(shí)鐘中斷程序流程圖20返回鍵盤掃描程序流程圖主程序軟件流程如圖 21 所示。數(shù)據(jù)初始化數(shù)據(jù)初始化端口初始化顯示初始化定時(shí)器初始化進(jìn)入后臺(tái)while循環(huán)無(wú)有稱重標(biāo)志嗎?有稱重并計(jì)算總價(jià)顯示重量和總價(jià)鍵盤掃描圖21主程序流程圖3、主程序下面介紹 main.c 主程序編寫,其他程序略。#include 頭文件和一些宏定義#include

20、 #include #include #include #include #include lcd.h#include lcd.h#include hx711.h#include hx711.h#include keyboard.h#include keyboard.h/定義量程系數(shù)#define #define 2114/1623/定義標(biāo)識(shí)/定義標(biāo)識(shí)volatile bit FlagTest = 0;volatile bit FlagTest = 0;/0.5 0volatile bit FlagKeyPress = 0;/volatile bit FlagKeyPress = 0;/0vo

21、latile bit FlagSetPrice = 0;/volatile bit FlagSetPrice = 0;/1。sbit LedA = P22;/sbit LedA = P22;/管腳定義sbit beep = P10;sbit beep = P10;sbit alert = P11;sbit alert = P11;/顯示用變量int Counter;int Counter;uchar idata str16 = 000000;uchar idata str16 = 000000;int i, iTemp;int i, iTemp;/稱重用變量unsigned long idat

22、a FullScale; /unsigned long idata FullScale; /AD 值/1000unsigned long AdVal;unsigned long AdVal;/AD 采樣值unsigned long weight;unsigned long weight;/重量值,單位gunsigned long idata price;unsigned long idata price;/單價(jià),長(zhǎng)整型值,單位為分unsigned long idata money;unsigned long idata money;/總價(jià),長(zhǎng)整型值,單位為分/鍵盤處理變量uchar keyco

23、de;uchar keycode;uchar DotPos;uchar DotPos;/小數(shù)點(diǎn)標(biāo)志及位置void int2str(int, char *);函數(shù)聲明void int2str(int, char *);void Data_Init();void Data_Init();void Port_Init();void Port_Init();void Timer0_Init();void Timer0_Init();void Timer0_ISR () ;void Timer0_ISR () ;void INT1_Init();void INT1_Init();void KeyPres

24、s(uchar);void KeyPress(uchar);void To_Zero();void To_Zero();void Display_Price();void Display_Price();void Display_Weight();void Display_Weight();void Display_Money();void Display_Money();/0-65536void int2str(int x, char* str)void int2str(int x, char* str)int i=1;int i=1;int tmp=10;int tmp=10;while(

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

26、Display_Price()void Display_Price()unsigned int i,j;unsigned int i,j;display_GB2312_string(5,44,display_GB2312_string(5,44,);i = price/100;i = price/100;/得到整數(shù)部分j = price - i*100;/j = price - i*100;/得到小數(shù)部分int2str(i,str1);int2str(i,str1);/顯示整數(shù)部分if (i=1000)if (i=1000)display_GB2312_string(5,44,str1);di

27、splay_GB2312_string(5,44,str1);else if (i=100)else if (i=100)display_GB2312_string(5,52,str1);display_GB2312_string(5,52,str1);else if (i=10)else if (i=10)display_GB2312_string(5,60,str1);display_GB2312_string(5,60,str1);elseelsedisplay_GB2312_string(5,68,str1);display_GB2312_string(5,68,str1);/顯示小數(shù)

28、點(diǎn)/顯示小數(shù)部分/顯示小數(shù)部分display_GB2312_string(5,76,.);int2str(j,str1);int2str(j,str1);if (j10)if (j=10)if (i=10)display_GB2312_string(3,60,str1);display_GB2312_string(3,60,str1);elseelsedisplay_GB2312_string(3,68,str1);display_GB2312_string(3,68,str1);display_GB2312_string(3,76,.);display_GB2312_string(3,76,

29、.);int2str(j,str1);int2str(j,str1);if (j10)if (j10)display_GB2312_string(3,84,00);display_GB2312_string(3,84,00);display_GB2312_string(3,100,str1);display_GB2312_string(3,100,str1);else if (j100)else if (j999999)if (money999999)/超出顯示量程display_GB2312_string(7,44,);display_GB2312_string(7,44,);return;

30、return;i = money/100;i = money/100;/得到整數(shù)部分j = money - i*100;/j = money - i*100;/得到小數(shù)部分int2str(i,str1);int2str(i,str1);/顯示整數(shù)部分if (i=1000)if (i=1000)display_GB2312_string(7,44,str1);display_GB2312_string(7,44,str1);else if (i=100)else if (i=100)display_GB2312_string(7,52,str1);display_GB2312_string(7,

31、52,str1);else if (i=10)else if (i=10)display_GB2312_string(7,60,str1);display_GB2312_string(7,60,str1);elseelsedisplay_GB2312_string(7,68,str1);display_GB2312_string(7,68,str1);/顯示小數(shù)點(diǎn)display_GB2312_string(7,76,.);display_GB2312_string(7,76,.);/顯示小數(shù)部分int2str(j,str1);int2str(j,str1);if (j10)if (j= 200

32、)Counter +;if (Counter = 200)Counter +;FlagTest = 1;FlagTest = 1;Counter = 0;Counter = 0;/按鍵響應(yīng)程序,參數(shù)是鍵值/返回鍵值:/78910(清 0)/45611(刪除)/12312(未定義)/14(未定義) 015(.)13(確定價(jià)格)void KeyPress(uchar keycode)void KeyPress(uchar keycode)switch (keycode)switch (keycode)case 0:case 0:case 1:case 1:case 2:case 2:case 3:

33、case 3:case 4:case 4:case 5:case 5:case 6:case 6:case 7:case 7:case 8:case 8:case 9:case 9:/目前在設(shè)置整數(shù)位,要注意price 是整型,存儲(chǔ)單位為分if (DotPos = 0)if (DotPos = 0)/最多只能設(shè)置到千位if (price100000)if (price0 x8000) weight=0;if (weight0 x8000) weight=0;weight=10000*weight/FullScale;weight=10000*weight/FullScale;weight=we

34、ight*RATIO;weight=weight*RATIO;/如果超量程,則報(bào)警if (weight = 40000)if (weight = 40000)beep = 0;beep = 0;alert = 0;alert = 0;display_GB2312_string(3,60,);display_GB2312_string(3,60,);display_GB2312_string(7,44,);display_GB2312_string(7,44,);/如果不超量程elseelsebeep = 1;beep = 1;alert = 1;alert = 1;/顯示重量值Display_

35、Weight();Display_Weight();/如果單價(jià)設(shè)定好了,則計(jì)算價(jià)格if (FlagSetPrice = 1)if (FlagSetPrice = 1)money = weight*price/1000;/moneymoney = weight*price/1000;/money單位為分/顯示總金額Display_Money();Display_Money();elseelsedisplay_GB2312_string(7,44,display_GB2312_string(7,44,);/清測(cè)試標(biāo)志FlagTest = 0;FlagTest = 0;/獲取按鍵keycode =

36、Getkeyboard();keycode = Getkeyboard();/0-15if (keycode16)&(FlagKeyPress=0)if (keycode16)&(FlagKeyPress=0)FlagKeyPress = 1;FlagKeyPress = 1;KeyPress(keycode);KeyPress(keycode);FlagKeyPress = 0;FlagKeyPress = 0;delay(20);delay(20);五、 下載與調(diào)試提供例程在 uVision4 環(huán)境下編譯,如果是其他版本 uVision,只需將所有.c和.h 文件拷貝至新建項(xiàng)目,重新編譯即可。當(dāng)編譯生成.hex 文件后,就可以下載并進(jìn)行調(diào)試了。1、USB 轉(zhuǎn)串口驅(qū)動(dòng)安裝USB PL2303_Prolific_DriverInstaller_v130.exe USB USB 始-(Prolific USB-to-Serial Comm Port(COMX)X 表示串

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論