![智能電子稱設(shè)計_第1頁](http://file4.renrendoc.com/view5/M00/11/0A/wKhkGGYxfIGAez0nAAMxdt11gzM738.jpg)
![智能電子稱設(shè)計_第2頁](http://file4.renrendoc.com/view5/M00/11/0A/wKhkGGYxfIGAez0nAAMxdt11gzM7382.jpg)
![智能電子稱設(shè)計_第3頁](http://file4.renrendoc.com/view5/M00/11/0A/wKhkGGYxfIGAez0nAAMxdt11gzM7383.jpg)
![智能電子稱設(shè)計_第4頁](http://file4.renrendoc.com/view5/M00/11/0A/wKhkGGYxfIGAez0nAAMxdt11gzM7384.jpg)
![智能電子稱設(shè)計_第5頁](http://file4.renrendoc.com/view5/M00/11/0A/wKhkGGYxfIGAez0nAAMxdt11gzM7385.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
智能電子秤設(shè)計制作人:肖光敏【摘要】本系統(tǒng)采用單片機AT89S52為控制核心,實現(xiàn)電子秤的根本控制功能。系統(tǒng)的硬件局部包括最小系統(tǒng)板,數(shù)據(jù)采集、人機交互界面三大局部。最小系統(tǒng)局部主要是擴展了外部數(shù)據(jù)存儲器,數(shù)據(jù)采集局部由壓力傳感器、信號的前級處理和A/D轉(zhuǎn)換局部組成。人機界面局部為鍵盤輸入,12864點陣式液晶顯示,可以直觀的顯示中文,使用方便。軟件局部應(yīng)用單片機C語言實現(xiàn)了本設(shè)計的全部控制功能,包括根本的稱重功能,和發(fā)揮局部的顯示購物清單的功能,可以設(shè)置日期和重新設(shè)定10種商品的單價,具有超重報警功能,由于系統(tǒng)資源豐富,還可以方便的擴展其應(yīng)用【關(guān)鍵字】電阻應(yīng)變式傳感器A/D單片機液晶顯示【Abstract】Thesystemusesasingle-chipAT89S52forthecontrolofthecore,therealizationofelectronicscalesbasiccontrolfunctions.Systemhardware,includingtheminimumsystemboard,dataacquisition,threemajorhuman-computerinteractioninterface.MinimumSystemispartoftheexpansionoftheexternaldatastorage,dataacquisitioninpartbythepressuresensors,signalpre-processingandA/Dconversionparts.Partofman-machineinterfaceforkeyboardinput,12,864dot-matrixliquidcrystaldisplaycanshowtheChineseintuitiveandeasytouse.ApplicationsoftwareClanguagerealizationofsingle-chipdesignofallthecontrolfunctions,includingbasicweighingfunctions,Andplaytodisplayalistofsomeofthefeatures,youcansetthedateandre-settingunit10kindsofcommodities,withoverweightalarmfunction,thesystemisrichinresources,butalsofacilitatetheexpansionofitsapplication【Keyword】ResistancestrainsensorA/Dsingle-chipliquidcrystaldisplay【目錄】1、前言……………32、方案比擬及論證………………32.1題目要求…………………32.2主要器件的選擇……….42.2.1單片機主控制器件的選擇………….42.2.2稱重傳感器的選擇………………….42.2.3放大電路芯片的選擇…………………42.2.4A/D轉(zhuǎn)換芯片的選擇……………….52.2.5顯示器件的選擇…….63、硬件系統(tǒng)設(shè)計…………………63.1系統(tǒng)設(shè)計流程圖………….63.2、單元電路設(shè)計…………73.2、1單片機主控器件電路…………………73.2、2信號采集及放大電路……………….73.2、3A/D轉(zhuǎn)換電路…………93.2、4按鍵操作電路………93.2、512864液晶顯示電路………………104、軟件系統(tǒng)設(shè)計…………………114.1單元模塊設(shè)計……………114.1.1A/D轉(zhuǎn)換軟件設(shè)計………………114.1.2按鍵操作設(shè)計…………………124.1.312864液晶顯示…………………125、測試結(jié)果………136、總結(jié)……………137、參考文獻………138、附錄……………141.前言現(xiàn)代信息技術(shù)的三大根底是信息的采集、傳輸和處理技術(shù),即傳感技術(shù)、通信技術(shù)和計算機技術(shù),它們分別構(gòu)成了信息技術(shù)系統(tǒng)的“感官”、“神經(jīng)”和“大腦”。信息采集系統(tǒng)的首要部件是傳感器,且置于系統(tǒng)的最前端。在一個現(xiàn)代自動檢測系統(tǒng)中,如果沒有傳感器.就無法監(jiān)測與控制表征生產(chǎn)過程中各個環(huán)節(jié)的各種參量,也就無法實現(xiàn)自動控制。在現(xiàn)代技術(shù)中,傳感器實際上是現(xiàn)代測試技術(shù)和自動化技術(shù)的根底科學(xué)技術(shù)的飛速開展,由稱重傳感器制作的電子衡器也已廣泛地應(yīng)用到各行各業(yè),實現(xiàn)了對物料的快速、準(zhǔn)確的稱量。特別是隨著微處理機的出現(xiàn),工業(yè)生產(chǎn)過程自動化程度化的不斷提高,稱重傳感器已成為過程控制中的一種必需的裝置,從以前不能稱重的大型罐、料斗等重量計測以及吊車秤、汽車秤等計測控制,到混合分配多種原料的配料系統(tǒng)、生產(chǎn)工藝中的自動檢測和粉粒體進料量控制等,都應(yīng)用了稱重傳感器,目前,稱重傳感器幾乎運用到了所有的稱重領(lǐng)域。為了提高我們對數(shù)據(jù)采集及數(shù)據(jù)處理方面知識的處理能力,并且考慮到作品的實用性和個人興趣等因數(shù),我們設(shè)計了一臺基于51單片機的智能電子秤。本系統(tǒng)通過稱重傳感器采樣,A/D轉(zhuǎn)換后輸入單片機,通過按鍵設(shè)置單價后,經(jīng)過單片機主控制器件的處理后,液晶上就會顯示:商品的名稱、數(shù)量、重量,單價、本次購物總金額,同時語音播報以上內(nèi)容,到達了數(shù)字化、智能化的要求。2方案比擬與論證2.1題目要求2.1.1根本要求:1.采用簡易鍵盤設(shè)置單價,對采集到的代表重量的信號能同時顯示重量、金額和單價商品名稱;2.顯示的單位為公斤,最大稱重為80斤;3.單價的單位為元,最大金額數(shù)值為99.9元;4.總額累加計算功能;5.自擬4種商品名稱,能顯示購物清單,清單內(nèi)容包括:商品名稱,數(shù)量,重量,單價、本次購物總金額;2.1.2發(fā)揮局部:1.允許用電壓值可預(yù)置的直流電壓代表重量采集信號,可以用代號表示購物清單的各項信息。2.具有超重報警功能。2.2主要器件的選擇2.2.1單片機主控制器件的選擇本系統(tǒng)基于51系列單片機來實現(xiàn),因為系統(tǒng)需要大量的控制液晶顯示和鍵盤。不宜采用大規(guī)??删幊踢壿嬈骷篊PLD、FPGA來實現(xiàn)。另外系統(tǒng)沒有其它高標(biāo)準(zhǔn)的要求,我們最終選擇了AT89S52通用的比擬普通單片機來實現(xiàn)系統(tǒng)設(shè)計。內(nèi)部帶有8KB的程序存儲器,在外面擴展了32K數(shù)據(jù)存儲器,以滿足系統(tǒng)要求。2.2.2稱重傳感器的選擇稱重傳感器按轉(zhuǎn)換方法分為光電式、液壓式、電磁力式、電容式、磁極變形式、振動式、陀螺儀式、電陰應(yīng)變式等8類,以電阻應(yīng)變式使用最廣。
電阻應(yīng)變式稱重傳感器是利用電阻應(yīng)變片變形時其電阻也隨之改變的原理工作的,其內(nèi)部結(jié)構(gòu)如圖1所示。主要由彈性元件、電阻應(yīng)變片、測量電路和傳輸電纜4局部組成。電阻應(yīng)變片貼在彈性元件上,彈性元件受力變形時,其上的應(yīng)變片隨之變形,并導(dǎo)致電阻改變。測量電路測出應(yīng)變片電阻的變化并變換為與外力大小成比例的電信號輸出。電信號經(jīng)處理后以數(shù)字形式顯示出被測物的質(zhì)量。圖1CZL-108平行梁式稱重傳感器內(nèi)部原理圖電阻應(yīng)變式傳感器的稱量范圍為300g至數(shù)千kg,計量準(zhǔn)確度達1/1000~1/10000,結(jié)構(gòu)較簡單,可靠性較好。大局部電子衡器均使用此傳感器。2.2.3放大電路芯片的選擇傳感器輸出信號與作用在傳感器上的重力和供橋橋壓成正比,而且供橋橋壓U的變化直接影響電子秤的測量精度,所以要求橋壓很穩(wěn)定。毫伏級的傳感器輸出電壓經(jīng)過放大電路后,要求其輸出的信號要能保證A/D轉(zhuǎn)換電路的正常工作。綜合考慮,我們選用精密放大電路或儀用放大電路。芯片我們選用的是OP07與AD620,具體的電路圖及原理我們后面會詳細(xì)的講解。OP07芯片是一種低噪聲,非斬波穩(wěn)零的雙極性運算放大器。由于它具有非常低的輸入失調(diào)電壓〔對于OP07A最大為25μV〕,所以O(shè)P07在很多應(yīng)用場合不需要額外的調(diào)零措施。OP07同時具有輸入偏置電流低〔OP07A為±2nA〕和開環(huán)增益高〔對于OP07A為300V/mV〕的特點,這種低失調(diào)、高開環(huán)增益的特性使得OP07特別適用于高增益的測量設(shè)備和放大傳感器的微弱信號等方面。AD620為高精密的儀表放大器,所以使用OP07與AD620構(gòu)成一個兩級大電路可以保證A/D正常工作。2.2.4A/D轉(zhuǎn)換芯片的選擇稱重傳感器實質(zhì)就是壓力傳感器,其采集的壓力信號是模擬量,單片機系統(tǒng)內(nèi)部運算時用的都是數(shù)字量,即0和1,因此對于單片機而言我們無法直接操作模擬量,必須將模擬量轉(zhuǎn)換為數(shù)字量。這就需要在單片機前段加上模擬量/數(shù)字量轉(zhuǎn)換器〔A/D〕,所謂A/D轉(zhuǎn)換器就是模擬/數(shù)字轉(zhuǎn)換器〔ADC〕,是將輸入的模擬信號轉(zhuǎn)換成數(shù)字信號。信號輸入端可以是傳感器或轉(zhuǎn)換器的輸出,而ADC的數(shù)字信號也可能提供給微處理器,以便廣泛地應(yīng)用。綜合考慮各種因素我們選用逐次比擬型A/D轉(zhuǎn)換集成芯片ADC0804,它采用CMOS工藝20引腳集成芯片,分辨率為8位,轉(zhuǎn)換時間為100us,輸入電壓范圍為0—5V。芯片內(nèi)部具有三態(tài)輸出數(shù)據(jù)鎖存器,可直接連接在數(shù)據(jù)總線上。圖4為ADC0804雙列直插式封裝引腳圖。圖4ADC0804雙列直插式封裝引腳圖引腳功能介紹:/CS芯片選擇信號。/RD外部讀取轉(zhuǎn)換結(jié)果的控制輸出信號。/RD為HI時,DB0~DB7處理高阻抗:/RD為LO時,數(shù)字?jǐn)?shù)據(jù)才會輸出。/WR:用來啟動轉(zhuǎn)換的控制輸入,相當(dāng)于ADC的轉(zhuǎn)換開始〔/CS=0時〕,當(dāng)/WR由HI變?yōu)長O時,轉(zhuǎn)換器被去除:當(dāng)/WR回到HI時,轉(zhuǎn)換正式開始。CLKIN,CLKR:時鐘輸入或接振蕩無件〔R,C〕頻率約限制在100KHZ~1460KHZ,如果使用RC電路那么其振蕩頻率為1/〔1.1RC〕/INTR:中斷請求信號輸出,低地平動作.VIN(+)VIN(-):差動模擬電壓輸入.輸入單端正電壓時,VIN(-)接地:而差動輸入時,直接參加VIN(+)VIN(-).AGND,DGND:模擬信號以及數(shù)字信號的接地.VREF:輔助參考電壓.DB0~DB7:8位的數(shù)字輸出.VCC:電源供給以及作為電路的參考電壓.2.2.5顯示器件的選擇因為題目要求能顯示購物清單,清單內(nèi)容包括:商品名稱,數(shù)量,重量,單價、本次購物總金額;考慮到顯示直觀,電路結(jié)構(gòu)簡單,變成容易請偶們考慮選擇液晶做顯示器件,再從顯示內(nèi)容上考慮我們選用12864液晶。帶中文字庫的128X64是一種具有4位/8位并行、2線或3線串行多種接口方式,內(nèi)部含有國標(biāo)一級、二級簡體中文字庫的點陣圖形液晶顯示模塊;其顯示分辨率為128×64,內(nèi)置8192個16*16點漢字,和128個16*8點ASCII字符集.利用該模塊靈活的接口方式和簡單、方便的操作指令,可構(gòu)成全中文人機交互圖形界面??梢燥@示8×4行16×16點陣的漢字.也可完成圖形顯示.低電壓低功耗是其又一顯著特點。由該模塊構(gòu)成的液晶顯示方案與同類型的圖形點陣液晶顯示模塊相比,不管硬件電路結(jié)構(gòu)或顯示程序都要簡潔得多,且該模塊的價格也略低于相同點陣的圖形液晶模塊。3.1系統(tǒng)設(shè)計流程圖本系統(tǒng)由信號采集及放大、A/D轉(zhuǎn)換、按鍵操作、單片機、顯示電路組成如圖5所示信號放大信號放大A/D轉(zhuǎn)換單片機存儲電路鍵盤操作信號采集聲響電路12864液晶顯示圖5系統(tǒng)設(shè)計流程圖3.2單元電路設(shè)計3.2.1單片機主控器件電路單片機最小系統(tǒng)能夠運行的必要條件:電源、晶振電路、復(fù)位電路。如圖6所示:其中XTAL1〔19腳〕、XTAL2〔18腳〕外接晶振電路,RST(9腳)接復(fù)位電路。P0口控制12864液晶顯示電路,P1口控制A/D轉(zhuǎn)換電路,P2口控制鍵盤操做電路,P3口控制特殊引腳。圖6單片機控制電路3.2.2信號采集及放大電路電阻應(yīng)變式稱重傳感器實物圖如圖7所示,引出線為四芯,紅〔輸入+〕、白〔輸出-〕、黑(輸入-)、綠(輸出+)。接線方法是紅黑分別接電源正負(fù)端,綠白分別接信號的輸出端,為確保精度,一般不要調(diào)整線長。在電阻應(yīng)變傳感器中其作用的是橋式測量電路。橋式測量電路有四個電阻,電橋的一個對角線接入工作電壓E,另一個對角線為輸出電壓Uo。其特點是:當(dāng)四個橋臂電阻到達相應(yīng)的關(guān)系時,電橋輸出為零,否那么就有電壓輸出,可利用靈敏檢流計來測量,所以電橋能夠精確地測量微小的電阻變化。測量電橋如圖8所示:R1R1R2R3R4R5R6RP1E圖8稱重傳感器測量電橋圖7稱重傳感器實物圖它由箔式電阻應(yīng)變片電阻R1、R2、R3、R4組成測量電橋,測量電橋的電源由穩(wěn)壓電源E供給。物體的重量不同,電橋不平衡程度不同,指針式電表指示的數(shù)值也不同。滑動式線性可變電阻器RP1作為物體重量彈性應(yīng)變的傳感器,組成零調(diào)整電路,當(dāng)載荷為0時,調(diào)節(jié)RP1使數(shù)碼顯示屏顯示零。如圖9所示:AD620儀表放大器的1、8腳跨接一電阻可以調(diào)整放大倍數(shù),4、7腳接正常工作所需的電壓值相等的正負(fù)電壓,2、3腳接輸入電壓即可從6腳輸出放大后的電壓。引腳5那么是參考基準(zhǔn),如果接地那么引腳6的輸出即為與地之間的相對電壓。圖9AD620引腳圖和放大電路由于稱重傳感器采集的電壓信號為毫伏級,而A/D轉(zhuǎn)換電路的工作電壓為0-5V,為了保證A/D正常工作,以及采樣信號的穩(wěn)定性我們采用兩級放大。電路圖為圖10。圖10信號采集及放大電路3.2.3A/D轉(zhuǎn)換電路A/D轉(zhuǎn)換電路完成模擬量到數(shù)字量之間的變換,把稱重傳感器采集的模擬信號轉(zhuǎn)換成單片機可以識別的數(shù)字信號,經(jīng)過預(yù)設(shè)的算法后得到我們想要的結(jié)果。具體連線如圖11所示圖11A/D轉(zhuǎn)換電路3.2.4按鍵操作電路依照題目要求,為實現(xiàn)單價預(yù)設(shè)功能我們采用4*4矩陣鍵盤,由P2口控制。具體連線圖及各按鍵的功能如圖12所示圖12按鍵操作及功能介紹3.2.512864液晶顯示電路12864液晶屬于圖形型液晶,由128列64行組成,即共有128*64個點來顯示各種圖形。12864液晶串行接口與并行接口共用,我們采用的是并行接口。12864液晶與單片機連接圖如圖13所示:圖13液晶驅(qū)動電路4、軟件系統(tǒng)設(shè)計4.1單元模塊設(shè)計4.1.1A/D轉(zhuǎn)換軟件設(shè)計數(shù)字芯片在操作時首先要分析它的操作時序圖,圖16ADC0804啟動轉(zhuǎn)換時序圖,圖17為ADC0804讀取數(shù)據(jù)時序圖。寫程序時只需按圖14與圖15就能準(zhǔn)確地操作A/D轉(zhuǎn)換電路。CSCSWR內(nèi)部轉(zhuǎn)換狀態(tài)INTR上次資料未被讀取轉(zhuǎn)換完成100nSTWI8/F內(nèi)部轉(zhuǎn)換時間TCLK/2300nS~450nSCSWRINTR上次資料已被讀取準(zhǔn)備準(zhǔn)換TW=TWI8/FTCLK/2300nS~450nS圖14ADC0804啟動轉(zhuǎn)換時序圖圖15為ADC0804讀取數(shù)據(jù)時序圖4.1.2按鍵操作設(shè)計按鍵功能參考圖12,軟件設(shè)計流程圖如圖16所示:進入設(shè)定單價模式,每按下一個數(shù)字鍵就將相應(yīng)的數(shù)字存入設(shè)定好的數(shù)組中進入設(shè)定單價模式,每按下一個數(shù)字鍵就將相應(yīng)的數(shù)字存入設(shè)定好的數(shù)組中,完成此功能將會用到S12、S13、S14、S15、S16鍵進入調(diào)用已存儲商品調(diào)用模式進入顯示存儲總金額模式返回判斷S13是否按下Num=1Num=2Num=3Num=4S13按下num次num初值為0圖16按鍵操作流程4.1.312864液晶顯示12864液晶有串行與并行操作方式,我們采用的是并行方式,其并行根本操作時序圖為圖17,漢字顯示坐標(biāo)為圖18。圖1712864并行操作方式時序圖圖1812864漢字顯示坐標(biāo)圖5、測試結(jié)果經(jīng)過硬件與軟件的綜合調(diào)試根本完成了設(shè)計要求的根本功能及發(fā)揮局部的功能。介于對電子秤應(yīng)用的分析與展望,其功能我們還將繼續(xù)開發(fā),盡量將其做得更加完善,以適應(yīng)科技高速開展的需求。6、總結(jié)學(xué)貴以致用,通過幾天的電子秤設(shè)計過程,將從書本上學(xué)到的知識應(yīng)用于實踐,學(xué)會了初步的電子電路仿真設(shè)計,雖然過程中遇到了一些困難,但是在解決這些問題的過程無疑也是對自己自身專業(yè)知識的一種提高。當(dāng)最終調(diào)試成功的時候也是對自己的一種肯定。此次的設(shè)計作業(yè)不僅增強了自己在專業(yè)設(shè)計方面的信心,鼓舞了自己,更是一次興趣的培養(yǎng),為自己以后的學(xué)習(xí)方向的明確了重點。
另外在這次實驗中我們遇到了不少的問題針對不同的問題我們采取不同的解決方法,遇到不懂的問題時,利用網(wǎng)上的資源,搜索查找得到需要的信息。
最終一一解決設(shè)計中遇到的問題。通過錯誤排除最終確認(rèn)是傳感器的問題。我覺得我們能夠順利完成此設(shè)計的關(guān)鍵是團隊合作,當(dāng)然知識儲藏也不能忽略。7、參考文獻[1]童詩白模擬電子技術(shù)根底[]北京:高等教育出版社,2002.78-79.[2]張靖檢測技術(shù)與系統(tǒng)設(shè)計[]北京:中國電力出版社,2001.368-369.[3]何小艇.電子系統(tǒng)設(shè)計[第三版][M].杭州:浙江大學(xué)出版社,2004[4]施漢謙.電子秤技術(shù)[J].北京:中國計量出版社,2001:225-259[5]薛均義.MCS-51系列單片微型計算機應(yīng)用[M].西安:西安交通大學(xué)出版社,2002[6]譚浩強.C程序設(shè)計〔第三版〕.北京:清華大學(xué)出版社,20048、附錄#include<reg52.h>#include<stdlib.h>#include<intrins.h>#include<keyscan.h>#defineucharunsignedchar#defineuintunsignedintsbitLCD_RS=P3^0;sbitLCD_RW=P3^1;sbitLCD_EN=P3^2;sbitLCD_PSB=P3^3;sbitfmq=P3^4;sbitAD_CS=P3^5;sbitAD_WR=P3^6;sbitAD_RD=P3^7;ucharad_data; //ad輸入*0.3125就是重量 ucharnum,m;floatsave=0.0,price;ucharcodedata0[]={"商品:"};ucharcodedata1[]={"單價:"};ucharcodedata2[]={"重量:"};ucharcodedata3[]={"總金額:"};ucharcodedata4[]={"商品總量:"};ucharcodedata0_1[]={"西瓜"};ucharcodedata0_2[]={"橘子"};ucharcodedata0_3[]={"蘋果"};ucharcodedata0_4[]={"梨子"};ucharcodedata5[]={"謝謝!"};voidtotal_price();uintzhishu(ucharx);voiddelay(uintz);ucharkeyscan();voidinit();voidlcd_address(uchara,uchary);voidwrite_lcd(ucharadd,ucharrs);voidad();voidmain(){ init(); while(1){ keyscan(); ad(); total_price(); }}uintzhishu(ucharx){ uchari,a=1; if(x>=1){ for(i=1;i<=x;i++){ a=10*a; } returna; } else{ return1; }}voiddelay(uintz){ uintx,y; for(x=0;x<z;x++){ for(y=0;y<110;y++); }}/*********************讀取單價價格**************/voidtotal_price(){ uchari,j=0,n; uchartotal[9]; floatdanjia; floatk=0; ucharhc[]={0,0,0,0,0};//緩存輸入鍵盤單價數(shù)據(jù) ucharhc1[]={0,0,0,0,0}; ucharflag=0,a=0; uintda1[6]={0,0,0,0,0,0}; flag=0; n=0; while(num==1){ write_lcd(0x01,0); while(keyscan()!=16){ lcd_address(1,0); while(data1[n]!='\0'){ //顯示單價二字 write_lcd(data1[n],1); n++; } n=0; /*************按矩陣鍵盤設(shè)定單價*******/ if(keyscan()==1 ){ hc[flag]=1; hc1[flag]=1+0x30; flag++; } if(keyscan()==2 ){ hc[flag]=2; hc1[flag]=2+0x30; flag++; } if(keyscan()==3 ){ hc[flag]=3; hc1[flag]=3+0x30; flag++; } if(keyscan()==4 ){ hc[flag]=4; hc1[flag]=4+0x30; flag++; } if(keyscan()==5 ){ hc[flag]=5; hc1[flag]=5+0x30; flag++; } if(keyscan()==6 ){ hc[flag]=6; hc1[flag]=6+0x30; flag++; } if(keyscan()==7 ){ hc[flag]=7; hc1[flag]=7+0x30; flag++; } if(keyscan()==8 ){ hc[flag]=8; hc1[flag]=8+0x30; flag++; } if(keyscan()==9 ){ hc[flag]=9; hc1[flag]=9+0x30; flag++; } if(keyscan()==10){ hc[flag]=0; hc1[flag]=0+0x30; flag++; } if(keyscan()==11){ hc[flag]=0x2e; hc1[flag]=0x2e; flag++; j=flag;//j為點的位數(shù) a=1; } if(keyscan()==12){ write_lcd(0x01,0); lcd_address(1,0); while(data1[n]!='\0') { write_lcd(data1[n],1); n++; } n=0; for(i=0;i<flag-1;i++) write_lcd(hc1[i],1); break; } for(i=0;i<flag;i++) write_lcd(hc1[i],1); }/***************顯示重量***************/ da1[0]=(int)(ad_data*0.417)/10+0x30;//轉(zhuǎn)換成重量并保存十位 da1[1]=(int)(ad_data*0.417)%10+0x30; //保存?zhèn)€位 da1[2]='.'; da1[3]=(int)(ad_data*4.17)%10+0x30; //保存十分位 da1[4]=(int)(ad_data*41.7)%10+0x30; //保存百分位 da1[5]=(int)(ad_data*417)%10+0x30; //保存千分位 lcd_address(2,0); while(data2[n]!='\0'){ write_lcd(data2[n],1); //顯示重量 n++; } n=0; lcd_address(2,3); for(i=0;i<6;i++) write_lcd(da1[i],1);/**************測試指數(shù)****************//* tota2[0]=9*zhishu(2)/100+0x30; tota2[1]=8*zhishu(1)%100/10+0x30; tota2[2]=7*zhishu(0)%10+0x30; for(i=0;i<3;i++) write_lcd(tota2[i],1);*//**************將數(shù)字字符串轉(zhuǎn)化十進制數(shù)*************************/ if(a==1) { for(i=1;i<j;i++){ //計算單價整數(shù)局部 k=(hc[i-1])*zhishu(j-1-i)+k; } for(i=j+1;i<=flag;i++){//計算小數(shù)局部 k=(hc[i-1])*1.0/(zhishu(i-j))+k; } } else for(i=1;i<=flag;i++) k=hc[i-1]*zhishu(flag-i)+k; danjia=k; k=0; flag=0;/*************計算和顯示總金額**********************/ price=danjia*(ad_data*0.417); total[0]=(int)price/1000+0x30; //取出總金額的各位 total[1]=(int)price%1000/100+0x30; total[2]=(int)price%100/10+0x30; total[3]=(int)price%10+0x30; total[4]=0x2e; total[5]=(int)price*10%10+0x30; total[6]=(int)price*100%10+0x30; total[7]=(int)price*1000%10+0x30; total[8]=(int)price*10000%10+0x30; lcd_address(3,0); while(data3[n]!='\0'){ write_lcd(data3[n],1); n++; } n=0; for(i=0;i<9;i++) write_lcd(total[i],1);/****************************測試單價值*****************************//* tota2[0]=(int)danjia/10+0x30; //write_lcd(tota2[0]+hc1[0],1); tota2[1]=(int)danjia%10+0x30; tota2[2]=0x2e; tota2[3]=(int)(danjia*10)%10+0x30; for(i=0;i<=3;i++) write_lcd(tota2[i],1);*//******************************************/ while(keyscan()!=13); }/***************************************/ while(num==2){ write_lcd(0x01,0); lcd_address(0,0); while(keyscan()!=16){ switch(keyscan()){ case1:danjia=10; while(data0_1[n]!='\0'){ write_lcd(data0_1[n],1); n++; } n=0; write_lcd(0x31,1); break; case2:danjia=15; while(data0_2[n]!='\0'){ write_lcd(data0_2[n],1); n++; } n=0; write_lcd(0x32,1); break; case3:danjia=20; while(data0_3[n]!='\0'){ write_lcd(data0_3[n],1); n++; } n=0; write_lcd(0x33,1); break; case4:danjia=25; while(data0_4[n]!='\0'){ write_lcd(data0_4[n],1); n++; } n=0; write_lcd(0x34,1); break; } } lcd_address(1,0); while(data1[n]!='\0'){ write_lcd(data1[n],1); n++; } write_lcd((uchar)danjia/10+0x30,1); write_lcd((uchar)danjia%10+0x30,1); n=0; da1[0]=(int)(ad_data*0.417)/10+0x30;//轉(zhuǎn)換成重量并保存十位 da1[1]=(int)(ad_data*0.417)%10+0x30; //保存?zhèn)€位 da1[2]='.'; da1[3]=(int)(ad_data*4,17)%10+0x30; //保存十分位 da1[4]=(int)(ad_data*41.7)%10+0x30; //保存百分位 da1[5]=(int)(ad_data*417)%10+0x30; //保存千分位 lcd_address(2,0); while(data2[n]!='\0'){ write_lcd(data2[n],1); //顯示重量 n++; } n=0; lcd_address(2,3); for(i=0;i<6;i++) write_lcd(da1[i],1); price=danjia*(ad_data*0.417); total[0]=(int)price/1000+0x30; //取出總金額的各位 total[1]=(int)price%1000/100+0x30; total[2]=(int)price%100/10+0x30; total[3]=(int)price%10+0x30; total[4]=0x2e; total[5]=(int)price*10%10+0x30; total[6]=(int)price*100%10+0x30; total[7]=(int)price*1000%10+0x30; total[8]=(int)price*10000%10+0x30; lcd_address(3,0); while(data3[n]!='\0'){ write_lcd(data3[n],1); n++; } n=0; for(i=0;i<9;i++) write_lcd(total[i],1); while(keyscan()!=13); }/********************************************/ while(num==3){ write_lcd(0x01,0); /*************取出總金額的各位并顯示**************/ total[0]=(int)save/1000+0x30; total[1]=(int)save%1000/100+0x30; total[2]=(int)save%100/10+0x30; total[3]=(int)save%10+0x30; total[4]=0x2e; total[5]=(int)save*10%10+0x30; total[6]=(int)save*100%10+0x30; total[7]=(int)save*1000%10+0x30; total[8]=(int)save*10000%10+0x30; lcd_address(2,0); while(data3[n]!='\0'){ write_lcd(data3[n],1); n++; } n=0; for(i=0;i<9;i++) write_lcd(total[i],1); lcd_address(1,0); while(data4[n]!='\0'){ write_lcd(data4[n],1); n++; } n=0; write_lcd(0x30+m,1); lcd_address(3,5); while(data5[n]!='\0') { write_lcd(data5[n],1); n++; } n=0; while(keyscan()!=13); }/****************************************/ if(num==4){ num=0; write_lcd(0x01,0); } }ucharkeyscan(){ uchara; ucharkey; P2=0xfe; a=P2&0xf0; fmq=1;//蜂鳴器 while(a!=0xf0) { delay(10); a=P2&0xf0; switch(a) { case0xe0:key=1;break; case0xd0:key=2;break; case0xb0:key=3;break; case0x70:key=4;break; } fmq=0; while(a!=0xf0){ a=P2&0xf0; } fmq=1; returnkey; } P2=0xfd; a=P2&0xf0; while(a!=0xf0) { delay(10); a=P2&0xf0; switch(a) { case0xe0:key=5;break; case0xd0:key=6;break; case0xb0:key=7;break; case0
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- Unit1 Making friends(說課稿)-2024-2025學(xué)年人教PEP版(2024)英語三年級上冊
- 2024-2025學(xué)年高中化學(xué) 第一章 物質(zhì)結(jié)構(gòu)元素周期律 第一節(jié) 元素周期表第3課時說課稿3 新人教版必修2
- 陽光板雨棚施工方案
- 盤錦石雕石欄桿施工方案
- 徐州市彩色地面施工方案
- 寫結(jié)算傭金合同范例
- 劃撥土地房屋購買合同范例
- 產(chǎn)品購售合同范例
- 農(nóng)產(chǎn)品預(yù)付款合同范例
- 2024年01月江西2024年江西銀行贛州分行招考筆試歷年參考題庫附帶答案詳解
- 17~18世紀(jì)意大利歌劇探析
- 微課制作技術(shù)與技巧要點
- β內(nèi)酰胺類抗生素與合理用藥
- 何以中國:公元前2000年的中原圖景
- 第一章:公共政策理論模型
- 中藥審核處方的內(nèi)容(二)
- (完整)金正昆商務(wù)禮儀答案
- RB/T 101-2013能源管理體系電子信息企業(yè)認(rèn)證要求
- GB/T 4513.7-2017不定形耐火材料第7部分:預(yù)制件的測定
- GB/T 10205-2009磷酸一銨、磷酸二銨
- 公司財務(wù)制度及流程
評論
0/150
提交評論