版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
其主程序如下所示。voidmain(){ beep=0; delay_1ms(100); P0=P1=P2=P3=0xff; init_1602(); get_pizhong(); while(1) { key(); //獨(dú)立按鍵 if(key_can<20) key_with(); flag_300ms++; if(flag_300ms>=300) { flag_300ms=0; get_weight(); if(weight>=0) write_1602_yl(1,5,weight); z_price=weight*price/1000; write_lcd4_price(2,11,z_price); if(weight>=5000) beep=~beep; else beep=1; yuying();//語(yǔ)音函數(shù) } delay_1ms(1); }}該片段程序是用main()函數(shù)為主體的主程序部分,該主程序的主要作用是進(jìn)行初始化操作顯示。初始化操作流程有先將蜂鳴器置零,然后通過(guò)delay_1ms函數(shù)延時(shí),等待系統(tǒng)穩(wěn)定后,讓單片機(jī)的I/O口初始化為高電平,即0xff。接著調(diào)用init_1602函數(shù)對(duì)LCD1602進(jìn)行初始化,再調(diào)用get_pizhong()函數(shù),從傳感器讀取并儲(chǔ)存皮重和秤盤的質(zhì)量。最后進(jìn)入主循環(huán)去實(shí)現(xiàn)其他各模塊的功能。4.2系統(tǒng)顯示部分設(shè)計(jì)在電子秤設(shè)計(jì)中,系統(tǒng)顯示子程序的作用至關(guān)重要。它負(fù)責(zé)判斷何時(shí)以及如何展示信息,設(shè)計(jì)流程圖如圖11所示。圖11系統(tǒng)顯示部分流程圖界面初始化程序如下所示。voidinit_1602() { write_com(0x38); write_com(0x0c); write_com(0x06); write_string(1,0,"W:0.000kg"); write_string(2,0,"P:00.00Z:00.00"); write_zifu(2,7,0x5c); }語(yǔ)音播報(bào)部分程序如下所示。voidyuying(){ longz_p; if(weight!=0) if(weight==z_p) { bojia(); } z_p=weight;}該部分程序?yàn)槌跏蓟缑嬉约罢Z(yǔ)音播報(bào)的部分程序。首先在init_1602()函數(shù)中發(fā)送指令,然后調(diào)用write_string和write_zifu函數(shù)來(lái)初始化LCD1602,讓LCD1602顯示重量信息。同時(shí)調(diào)用yuying()函數(shù),觸發(fā)語(yǔ)音功能,當(dāng)被測(cè)物體重量穩(wěn)定時(shí)進(jìn)行語(yǔ)音播報(bào)重量。4.3系統(tǒng)按鍵調(diào)整部分設(shè)計(jì)鍵盤電路采用4×4矩陣式設(shè)計(jì),程序運(yùn)行時(shí),首先設(shè)定鍵碼,接著根據(jù)鍵碼將相應(yīng)鍵值傳輸至對(duì)應(yīng)存儲(chǔ)單元,隨后執(zhí)行功能選擇或數(shù)據(jù)處理操作。設(shè)計(jì)流程圖如圖12所示。圖12按鍵調(diào)整程序流程圖按鍵部分程序如下所示。voidkey_with(){ if(key_can<=9)//數(shù)字鍵 { if(flag_p>=4) { flag_p=0; } if(flag_p==0) price=key_can; else { price=price*10+key_can; } write_lcd4_price(2,2,price); flag_p++; } if(key_can==15) { if(price!=0) { flag_p--; price/=10; write_lcd4_price(2,2,price); } } if(key_can==14) { get_pizhong(); } if(key_can==13) { flag_p=0; price=0; write_lcd4_price(2,2,price); }}該按鍵控制部分程序主要根據(jù)按鍵值key_can函數(shù)去執(zhí)行相應(yīng)的操作。其中0到9代表數(shù)字鍵,當(dāng)按下數(shù)字鍵時(shí)便在單價(jià)欄進(jìn)行單價(jià)輸入。13代表價(jià)格清零鍵,如果按下該按鍵,會(huì)將price置為0,即單價(jià)清零。14代表去皮鍵,如果按下此按鍵,將會(huì)調(diào)用get_pizhong()函數(shù)獲得皮重,即當(dāng)前重量顯示為0。15代表刪除鍵,按下表示刪除上一個(gè)輸入的數(shù)字,會(huì)更新顯示LCD1602上的單價(jià)。5系統(tǒng)制作及實(shí)物測(cè)試與結(jié)果5.1電路的繪制與PCB板的制作在成功完成系統(tǒng)電路的原理圖設(shè)計(jì)及程序編寫后,下一步的工作就是進(jìn)行實(shí)物的制作。由于電路中元件數(shù)目眾多,所以必須通過(guò)手工或機(jī)械方式對(duì)其進(jìn)行排列和固定。制作實(shí)物的第一步是進(jìn)行電路的排版和布線工作。為了提高工作效率和工作質(zhì)量,通常采用自動(dòng)布線方法來(lái)實(shí)現(xiàn)對(duì)電路板上元器件的有效布置。雖然AltiumDesigner軟件擁有自動(dòng)布局布線的功能,并且操作簡(jiǎn)單高效,但是自動(dòng)布線還是存在一些問(wèn)題,如信號(hào)線與電源線因距離的不合理會(huì)形成信號(hào)的交叉干擾,還有一些自動(dòng)生成的走線是直角影響數(shù)據(jù)的傳輸?shù)鹊?。因此我還是選擇了自己手動(dòng)布線,在手動(dòng)布線的過(guò)程中,我翻閱書(shū)籍,為了讓布線更加合理。我始終遵循以下幾點(diǎn):(1)有意地將模擬信號(hào)和數(shù)字信號(hào)進(jìn)行區(qū)分,以防止兩者之間產(chǎn)生不必要的干擾。(2)每一條線路,如果可以縮短就縮短,這樣可以減少線路的長(zhǎng)電阻礙所帶來(lái)的效應(yīng)。(3)在繪制地線和電源線時(shí),應(yīng)盡量選擇電路板的邊緣,并確保電源線的描繪略粗。(4)在走線方向發(fā)生變化時(shí),優(yōu)先選擇45°角轉(zhuǎn)彎,避免直角轉(zhuǎn)折。在完成PCB板的繪制之后,用平整的油紙對(duì)PCB圖進(jìn)行打印,打印完成后,將油紙上的走線圖完整的覆在已經(jīng)清洗干凈的銅板上,將用油紙包好的銅板放入加熱的轉(zhuǎn)印機(jī)中,轉(zhuǎn)印兩次,確保將墨完全印在銅板上。然后將覆上墨的銅板放入配制好比例腐蝕溶液中把多余的銅腐蝕掉。為了加快腐蝕,我不斷地?cái)嚢韬蛽u動(dòng)腐蝕液使其充分反應(yīng)。最后將腐蝕好的板子,洗凈、烘干后進(jìn)行打孔。在打孔時(shí)我時(shí)刻注意著焊盤的大小,換用不同的粗細(xì)的針進(jìn)行打孔,以確保焊盤上的銅箔不掉,方便后續(xù)的焊接。最后制成的電路板如下圖13所示。圖13電路板實(shí)物圖5.2實(shí)物焊接及測(cè)試電路板實(shí)物制做完以后,就可以先將元件安裝在制作好的電路板上的相應(yīng)位置,然后便是將這些元件焊接在電路板上。由于焊接時(shí)老是不容易沾錫,我就在焊接這塊電路時(shí),自己先在之前多打印的銅板上練習(xí)焊接,在掌握了焊錫的要領(lǐng)和精髓之后,就迅速成熱打鐵對(duì)該電路進(jìn)行了焊接。在焊接完該電路之后,我便對(duì)PCB板進(jìn)行了檢查,檢查電路是否有漏焊或其他問(wèn)題。然后對(duì)電路進(jìn)行測(cè)試,確保該電路沒(méi)有短路。最終焊接的效果如下圖14所示。圖14焊接效果圖5.3實(shí)物調(diào)試及結(jié)果分析在完成實(shí)物焊接以及電路測(cè)試正常以后,在keil中將編寫好的程序生成.hex文件,用已經(jīng)下載好的普中下載軟件將程序燒錄下載到單片機(jī)儲(chǔ)存器中。然后用USB轉(zhuǎn)接口對(duì)該電路提供穩(wěn)定的5V電源。按下復(fù)位按鈕,LCD屏幕顯示初始化狀態(tài)如下圖15所示。(其中第一行W表示被測(cè)物體重量,第二行的P表示單價(jià),Z表示被測(cè)物體的總價(jià))圖15LCD初始化顯示經(jīng)過(guò)初始化顯示之后,接下來(lái)就是用標(biāo)準(zhǔn)化砝碼依次將50g、100g、150g、200g放在該電子秤上進(jìn)行稱重,通過(guò)LCD進(jìn)行重量顯示,并且進(jìn)行語(yǔ)音播報(bào)。顯示的結(jié)果如下圖16所示。圖16稱重測(cè)量結(jié)果顯示該電子秤顯示的重量依次為49g、99g、149g、199g,通過(guò)電子秤重量顯示數(shù)據(jù)說(shuō)明該電子秤還是存在一定的誤差。并且顯示重量數(shù)據(jù)一直在準(zhǔn)確值與誤差值之間跳動(dòng)閃爍。針對(duì)上述的偏差,經(jīng)過(guò)多次的測(cè)量和調(diào)試,最終成功地識(shí)別了這些誤差的根源。引起這一結(jié)果的兩個(gè)原因如下:首先,測(cè)試過(guò)程中應(yīng)變片稱重傳感器與HX711轉(zhuǎn)換模塊的連接線部分出現(xiàn)了曲折或折疊;另一個(gè)原因是電源電壓可能不穩(wěn)定,導(dǎo)致其波動(dòng),進(jìn)而使LCD1602的顯示數(shù)字出現(xiàn)跳躍?;谏鲜龅膬蓚€(gè)原因,采取了相應(yīng)措施。在處理應(yīng)變片稱重傳感器與HX711轉(zhuǎn)換模塊間的連線彎曲折疊問(wèn)題上,仔細(xì)檢查了連接線以確保其完好無(wú)損或接觸狀態(tài)良好,以防止再次出現(xiàn)彎曲和折疊情況。為了進(jìn)一步提高測(cè)量精確度,確保電子秤處于一個(gè)相對(duì)穩(wěn)定的位置,并避免因震動(dòng)等外部因素引發(fā)的測(cè)量偏差。通過(guò)上述改良方法,電子秤在重量顯示誤差方面得到改進(jìn)。為了更加深入地證實(shí)改進(jìn)的實(shí)效性,最后進(jìn)行了多次的測(cè)量測(cè)試,測(cè)試結(jié)果表明數(shù)據(jù)穩(wěn)定。最后正確的測(cè)量結(jié)果顯示如下圖17所示。圖17正確測(cè)量結(jié)果6總結(jié)本次基于單片機(jī)的電子秤設(shè)計(jì),初步完成了預(yù)期效果,能夠進(jìn)行對(duì)小型物品的稱重顯示并且進(jìn)行語(yǔ)音播報(bào)重量和總價(jià)。在實(shí)物測(cè)試過(guò)程中,本設(shè)計(jì)的電子秤稱重精度可達(dá)1克。并且能夠防止超重?fù)p壞傳感器而進(jìn)行設(shè)置了蜂鳴器報(bào)警。在此次設(shè)計(jì)中,在硬件選擇方面,選擇了STC89C52單片機(jī)、LCD1602液晶顯示屏以及HX711等器件,在價(jià)格方面比較經(jīng)濟(jì)并且便于攜帶。將硬件選擇好后,AD畫圖軟件上進(jìn)行合理地設(shè)計(jì)電路連接,完成電路原理圖的設(shè)計(jì)。然后用該軟件畫出PCB板,接著打板,焊錫,連接好實(shí)物。采用Keil4軟件編寫程序,并將編寫好的程序通過(guò)燒錄軟件燒錄至單片機(jī)內(nèi)部。在調(diào)試過(guò)程中,剛開(kāi)始調(diào)試的時(shí)候電子秤并沒(méi)有反應(yīng),檢查發(fā)現(xiàn)串口連接問(wèn)題導(dǎo)致程序并沒(méi)有燒錄到單片機(jī)中,經(jīng)過(guò)修正以后,再次對(duì)電子秤進(jìn)行稱重顯示測(cè)試,在測(cè)試的過(guò)程中由于擺放不平整以及稱重傳感器與轉(zhuǎn)換芯片之間的連接線的彎曲折疊導(dǎo)致稱重結(jié)果存在誤差,經(jīng)過(guò)多次調(diào)整和優(yōu)化,最終成功實(shí)現(xiàn)了預(yù)期的稱重顯示和語(yǔ)音播報(bào)功能。盡管這次的設(shè)計(jì)成功地實(shí)現(xiàn)了其基本功能,但仍有許多地方需要注意,如稱重精度還可進(jìn)一步提高,按鍵設(shè)置功能需要進(jìn)一步加強(qiáng),以及因電源電壓波動(dòng)引起的顯示不穩(wěn)定性等問(wèn)題。在接下來(lái)的學(xué)術(shù)研究與實(shí)際應(yīng)用期間,我打算進(jìn)一步優(yōu)化電子秤的設(shè)計(jì)框架,以提升其功能效率和穩(wěn)定性,確保其在各種應(yīng)用場(chǎng)景中都能有效發(fā)揮作用。經(jīng)過(guò)這次畢業(yè)設(shè)計(jì),我對(duì)電子秤的設(shè)計(jì)與調(diào)整有了更進(jìn)一步的了解,在這個(gè)過(guò)程中學(xué)習(xí)鞏固了專業(yè)知識(shí),并積累了相關(guān)經(jīng)驗(yàn)。在我未來(lái)的學(xué)業(yè)和職業(yè)生涯中,我將繼續(xù)努力,以不斷提升我的專業(yè)能力。參考文獻(xiàn)張建平,劉焦萍,李壯,等.基于51單片機(jī)的簡(jiǎn)易體重測(cè)量?jī)x控制電路設(shè)計(jì)[J].中國(guó)西部科技,2015,14(06):20-23.高平.電子衡器的應(yīng)用及趨勢(shì)[J].中國(guó)檢驗(yàn)檢測(cè),2021,29(03):46-47+84.向洮,張建雷.單片機(jī)電氣傳動(dòng)及控制系統(tǒng)的設(shè)計(jì)研究[J].科技風(fēng),2018,(19):93.車輪.淺析電子計(jì)價(jià)秤的正確使用方法及故障排除[J].衡器,2019,48(05):28-30.孫黎明.基于89C52單片機(jī)的電子秤設(shè)計(jì)與實(shí)現(xiàn)[J].福建電腦,2017,33(08):99-100+129.左蘭,肖潔.基于單片機(jī)的智能電子秤的設(shè)計(jì)與實(shí)現(xiàn)[J].農(nóng)業(yè)裝備技術(shù),2023,49(03):42-46.趙云,李振,李海楓,等.基于51單片機(jī)電子秤重量報(bào)警系統(tǒng)[J].軟件,2020,41(04):88-92.張蕾,李博,高陽(yáng).壓阻式柔性應(yīng)變傳感器研究進(jìn)展[J].材料導(dǎo)報(bào),2022,36(19):48-58.張洗玉,陳鄆城,王晗亞,等.基于嵌入式的高精度簡(jiǎn)易電子秤的研制[J].中國(guó)儀器儀表,2019,(01):56-61.郝景程,何志剛,邱彬.基于51單片機(jī)信號(hào)發(fā)生器的設(shè)計(jì)[J].電腦知識(shí)與技術(shù),2014,10(35):8553-8554.KuangHX,YaoYZ,YaoYZ,etal.HighPrecisionElectronicScaleDesignBasedonMCU[J].AppliedMechanicsandMaterials,2013,2748(427-429):616-619.XiaoyuZ,NingL,GuoruiW,etal.Researchstatusofpolysiloxane-basedpiezoresistiveflexiblehumanelectronicsensors.[J].RSCadvances,2023,13(24):16693-16711.系統(tǒng)部分代碼:#include<reg52.h> #defineucharunsignedchar#defineuintunsignedint #defineulongunsignedlongsbitrs=P1^0; sbitrw=P1^1; sbite=P1^2; sbithx711_dout=P2^1; sbithx711_sck=P2^0; sbitbeep=P2^7;longweight; unsignedlongWeight_Maopi; #defineGapValue437.0ucharflag_300ms; ulongprice,z_price;ucharflag_p;/***********************語(yǔ)音模塊控制IO口的定義************************/sbitVRST=P1^3;sbitVBUSY=P1^4; sbitVDATA=P1^5; sbitVCS=P1^6;sbitVCLK=P1^7; /******1ms延時(shí)函數(shù)***12M晶振**************/voiddelay_1ms(uintq){ uinti,j; for(i=0;i<q;i++) for(j=0;j<120;j++);}/***********************語(yǔ)音模塊子程序************************/voidSend_threelines(unsignedcharaddr){unsignedchari; VRST=0; VRST=1; VCS=0; for(i=0;i<8;i++) { VCLK=0; if(addr&0x01==0x01) { VDATA=1; } else VDATA=0; addr>>=1; VCLK=1; } VCS=1; while(VBUSY==0); }voiddelay_uint(uintq){ while(q--);}voidwrite_com(ucharcom){ rs=0; rw=0; P0=com; delay_uint(25); e=1; delay_uint(100); e=0;}voidwrite_data(uchardat){ rs=1; rw=0; P0=dat; delay_uint(25); e=1; delay_uint(100); e=0; }voidwrite_string(ucharhang,ucharadd,uchar*p){ if(hang==1) write_com(0x80+add); else write_com(0x80+0x40+add); while(1) { if(*p=='\0')break; write_data(*p); p++; } }////////////////在指定位置顯示指定字符//////////voidwrite_zifu(ucharhang,ucharadd,uchardat){ if(hang==1) write_com(0x80+add); else write_com(0x80+0x40+add); write_data(dat);}voidwrite_lcd4_price(ucharhang,ucharadd,uintdate){ if(hang==1) write_com(0x80+add); else write_com(0x80+0x40+add); write_data(0x30+date/1000%10); write_data(0x30+date/100%10); write_data('.'); write_data(0x30+date/10%10); write_data(0x30+date%10); }/***********************lcd1602初始化設(shè)置************************/voidinit_1602() //lcd1602初始化設(shè)置{ write_com(0x38); // write_com(0x0c); write_com(0x06); write_string(1,0,"W:0.000kg"); write_string(2,0,"P:00.00Z:00.00"); write_zifu(2,7,0x5c); }/*******************重量顯示程序***********************/voidwrite_1602_yl(ucharhang,ucharadd,uintdate){ if(hang==1) write_com(0x80+add); else write_com(0x80+0x40+add); write_data(0x30+date/10000%10); write_data(0x30+date/1000%10); write_data('.'); write_data(0x30+date/100%10); write_data(0x30+date/10%10); write_data(0x30+date%10); write_data('K'); write_data('g');}/*********************AD采集程序*********************/unsignedlongHX711_Read(void) //增益128{ unsignedlongcount; unsignedchari; hx711_dout=1; hx711_sck=0; count=0; for(i=0;i<24;i++) { hx711_sck=1; count=count<<1; hx711_sck=0; if(hx711_dout) count++; } hx711_sck=1;count=count^0x800000; hx711_sck=0; return(count);}voidget_pizhong() { Weight_Maopi=HX711_Read(); }voidget_weight() { weight=HX711_Read(); weight=weight-Weight_Maopi; if(weight>0) { weight=(unsignedint)((float)weight/GapValue); } else { weight=0; }}/*****************語(yǔ)音報(bào)價(jià)********************/voidbojia()//語(yǔ)音報(bào)價(jià){ Send_threelines(z_price/1000%10); Send_threelines(10); Send_threelines(z_price/100%10); Send_threelines(11); Send_threelines(z_price/10%10); Send_threelines(z_price%10); Send_threelines(93);}/*****************語(yǔ)音函數(shù)********************/voidyuying()//語(yǔ)音函數(shù){ longz_p; if(weight!=0) if(weight==z_p) { bojia(); } z_p=weight;}/********************獨(dú)立按鍵程序*****************/ucharkey_can; //按鍵值voidkey() //獨(dú)立按鍵程序{ staticucharkey_new=0,key_l; key_can=20; P3=0x0f; if((P3&0x0f)!=0x0f) { delay_1ms(1); if(((P3&0x0f)!=0x0f)&&(key_new==1)) { key_new=0; key_l=P3|0xf0; P3=key_l; switch(P3) { case0xee:key_can=1;break; case0xde:key_can=4;break; case0xbe:key_can=7;break; case0x7e:key_can=10;break; case0xed:key_can=2;break; case0xdd:key_can=5;break; case0xbd:key_can=8;break; case0x7d:key_can=0;break; case0xeb:key_can=11;break; case0xdb:key_can=9;break; case0xbb:key_can=6;break; case0x7b:key_can=3;break; case0xe7:key_can=15;break; case0xd7:key_can=14;break; case0xb7:key_can=13;break; case0x77:key_can=12;break; } beep=0;//蜂鳴器叫一聲 delay_1m
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度園林景觀綠化工程養(yǎng)護(hù)管理合同匯編3篇
- 2025版醫(yī)療機(jī)構(gòu)護(hù)士規(guī)范化培訓(xùn)及勞動(dòng)合同3篇
- 2025年度個(gè)人對(duì)個(gè)人小額消費(fèi)貸款合同書(shū)2篇
- 二零二五年度網(wǎng)絡(luò)安全風(fēng)險(xiǎn)評(píng)估與治理合同集3篇
- 2025年度留學(xué)簽證逾期處理合同4篇
- 2025年機(jī)動(dòng)車質(zhì)押借款合同解除及賠償條款3篇
- 二零二五年度零食店收銀員食品安全責(zé)任承諾合同4篇
- 二零二五年度大型工業(yè)鍋爐設(shè)備采購(gòu)合同2篇
- 2025年度塔吊操作人員勞務(wù)派遣及技能培訓(xùn)合同
- 二零二五年度企業(yè)項(xiàng)目管理培訓(xùn)服務(wù)合同標(biāo)準(zhǔn)3篇
- 電化學(xué)儲(chǔ)能電站安全規(guī)程
- 幼兒園學(xué)習(xí)使用人民幣教案教案
- 2023年浙江省紹興市中考科學(xué)真題(解析版)
- 語(yǔ)言學(xué)概論全套教學(xué)課件
- 大數(shù)據(jù)與人工智能概論
- 《史記》上冊(cè)注音版
- 2018年湖北省武漢市中考數(shù)學(xué)試卷含解析
- 測(cè)繪工程產(chǎn)品價(jià)格表匯編
- 《腎臟的結(jié)構(gòu)和功能》課件
- 裝飾圖案設(shè)計(jì)-裝飾圖案的形式課件
- 護(hù)理學(xué)基礎(chǔ)教案導(dǎo)尿術(shù)catheterization
評(píng)論
0/150
提交評(píng)論