




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、-. z基于單片機(jī)的智能電子秤設(shè)計(jì)-. z目錄 TOC o 1-3 h z u HYPERLINK l _Toc3246030201 緒論HYPERLINK l _Toc3246030211.1 選題的背景和意義 PAGEREF _Toc324603021 h 3HYPERLINK l _Toc3246030221.2 研究現(xiàn)狀 PAGEREF _Toc324603022 h 3HYPERLINK l _Toc3246030231.3 論文主要研究容 PAGEREF _Toc324603023 h 3HYPERLINK l _Toc3246030242 總體方案設(shè)計(jì)2HYPERLINK l _
2、Toc3246030252.1 電子秤整體方案2HYPERLINK l _Toc3246030262.2 主控制器的方案2HYPERLINK l _Toc3246030272.3 稱重傳感器的方案3HYPERLINK l _Toc3246030282.4 放大器的方案5HYPERLINK l _Toc3246030292.5 模數(shù)轉(zhuǎn)換器的方案6HYPERLINK l _Toc3246030302.6 鍵盤(pán)局部的方案7HYPERLINK l _Toc3246030312.7 顯示局部的方案8HYPERLINK l _Toc3246030322.8 過(guò)載報(bào)警局部的方案8HYPERLINK l _T
3、oc3246030333 電子秤的硬件設(shè)計(jì)8HYPERLINK l _Toc3246030343.1 系統(tǒng)設(shè)計(jì)的總體思路8HYPERLINK l _Toc3246030353.2 單片機(jī)AT89S51最小系統(tǒng)8HYPERLINK l _Toc3246030363.3 放大電路9HYPERLINK l _Toc3246030373.4 模數(shù)轉(zhuǎn)換器與單片機(jī)接口電路10HYPERLINK l _Toc3246030383.5 顯示電路與單片機(jī)接口電路11HYPERLINK l _Toc3246030393.6 鍵盤(pán)電路與單片機(jī)接口電路12HYPERLINK l _Toc3246030403.7 報(bào)警
4、電路13HYPERLINK l _Toc3246030413.8 電源電路13HYPERLINK l _Toc3246030424 電子秤系統(tǒng)的軟件設(shè)計(jì)15HYPERLINK l _Toc3246030434.1 主程序的設(shè)計(jì)15HYPERLINK l _Toc3246030444.2 子程序的設(shè)計(jì)16HYPERLINK l _Toc3246030454.2.1 模數(shù)轉(zhuǎn)換子程序的設(shè)計(jì)16HYPERLINK l _Toc3246030464.2.2 鍵盤(pán)掃描子程序的設(shè)計(jì)17HYPERLINK l _Toc3246030474.2.3 顯示子程序的設(shè)計(jì)18HYPERLINK l _Toc32460
5、30484.2.4 價(jià)格計(jì)算子程序的設(shè)計(jì)29HYPERLINK l _Toc3246030494.2.5 報(bào)警子程序的設(shè)計(jì)20HYPERLINK l _Toc3246030505 系統(tǒng)調(diào)試22HYPERLINK l _Toc3246030515.1 軟件調(diào)試22HYPERLINK l _Toc3246030525.2 硬件調(diào)試23結(jié)論24HYPERLINK l _Toc324603056致25HYPERLINK l _Toc324603057參考文獻(xiàn)26HYPERLINK l _Toc324603058附錄A27HYPERLINK l _Toc324603059附錄B28HYPERLINK l
6、 _Toc324603060附錄C29-. z1 緒論1.1 選題的背景和意義電子秤是日常生活中常用的稱重器材,廣泛應(yīng)用于超市、大中型商場(chǎng)、物流配送中心。電子秤在構(gòu)造和原理上取代了以杠桿平衡為原理的傳統(tǒng)機(jī)械式稱量工具。相比傳統(tǒng)的機(jī)械式稱量工具,電子秤具有稱量精度高、裝機(jī)體積小、應(yīng)用圍廣、易于操作使用等優(yōu)點(diǎn),在外形布局、工作原理、構(gòu)造和材料上都是全新的計(jì)量衡器。電子秤的設(shè)計(jì)首先是通過(guò)壓力傳感器采集到被測(cè)物體的重量并將其轉(zhuǎn)換成電壓信號(hào)。經(jīng)放大后的模擬電壓信號(hào)經(jīng)A/D轉(zhuǎn)換電路轉(zhuǎn)換成數(shù)字量被送入到主控微處理器中,再經(jīng)過(guò)單片機(jī)控制譯碼顯示器,從而顯示出被測(cè)物體的重量。1.2 研究現(xiàn)狀電子秤不僅要向高精度
7、、高可靠方向開(kāi)展,而且更需向多種功能的方向開(kāi)展。據(jù)悉,目前電子秤的附加功能主要有以下幾種:1.電子秤附加了處理機(jī)構(gòu)計(jì)算機(jī)信息補(bǔ)償裝置,可以進(jìn)展自診斷、自校正和多種補(bǔ)償計(jì)算和處理。2.具有皮重、凈重顯示等特種功能。電子秤有些已具備了動(dòng)物稱量模式,即通過(guò)進(jìn)展算術(shù)平均、積分處理和自動(dòng)調(diào)零等方法,消除上述的誤差。3.附加特殊的數(shù)據(jù)處理功能。目前的電子秤有附加多種計(jì)算和數(shù)據(jù)處理功能,以滿足多種使用的要求。今后,隨著電子高科技的飛速開(kāi)展,電子秤技術(shù)的開(kāi)展定將日新月異。同時(shí),功能更加齊全的高精度、高智能的先進(jìn)電子秤將會(huì)不斷問(wèn)世,其應(yīng)用圍也會(huì)更加拓寬。1.3 論文主要研究容本文主要是設(shè)計(jì)的容是簡(jiǎn)易電子秤,它用
8、單片機(jī)作為處理核心,信號(hào)由壓力傳感器感受后經(jīng)放大器放大和模數(shù)轉(zhuǎn)換后輸入到單片機(jī)處理,同時(shí)該電子秤具有LCD顯示和鍵盤(pán)輸入。該電子秤具體實(shí)現(xiàn)的功能是能夠測(cè)量一定質(zhì)量物體的質(zhì)量,能夠利用鍵盤(pán)輸入價(jià)格,具有清零,可以計(jì)算總價(jià),并能通過(guò)LCD直接顯示出來(lái),超過(guò)所測(cè)重量時(shí)能夠報(bào)警。2 總體方案設(shè)計(jì)2 電子秤整體方案電子秤設(shè)計(jì)的整體方案是:傳感器采集到因壓力變化產(chǎn)生的電信號(hào),但是一般這樣產(chǎn)生的電信號(hào)很小,需要利用放大電路將其放大,放大的電信號(hào)通過(guò)模數(shù)轉(zhuǎn)換器轉(zhuǎn)換為數(shù)字信號(hào)后送入到微處理器中處理,微處理器處理后輸出信號(hào)控制顯示器顯示出來(lái)。同時(shí)還需要鍵盤(pán)對(duì)物品單價(jià)等信息輸?shù)轿⑻幚砥鞑?,還需要有過(guò)載報(bào)警裝置。其整
9、體設(shè)計(jì)方案如圖2-1所示:放大電路傳感器A/D轉(zhuǎn)換器報(bào)警電路主控制器LCD顯示鍵盤(pán)輸入圖21 電子秤整體設(shè)計(jì)方案圖2.2 主控制器的方案主控制器是電子秤的核心局部,它需要承受轉(zhuǎn)換后的傳感器信號(hào),同時(shí)也能掃描承受到鍵盤(pán)的輸入信號(hào),計(jì)算價(jià)格后控制顯示器的輸出,當(dāng)超過(guò)稱重量量程時(shí)還要控制報(bào)警裝置報(bào)警。主控制器的選擇有兩個(gè)如下兩個(gè)方案。方案一:?jiǎn)纹瑱C(jī)作為主控制器單片機(jī)控作為主控制器其優(yōu)點(diǎn)有:可以做成專(zhuān)用的控制系統(tǒng),程序被固化,可靠性較高,操作簡(jiǎn)單,易于維護(hù),并且本錢(qián)低。在比擬小型的控制系統(tǒng)中,最適合的應(yīng)是單片機(jī)作為控制核心。但在大型的控制系統(tǒng)中,控制系統(tǒng)各方面性能要求很高,或者工作環(huán)境很惡劣,有很強(qiáng)的
10、電噪聲、電磁干擾、機(jī)械振動(dòng)、極端溫度和濕度很大的環(huán)境中,如果利用單片機(jī)作為控制系統(tǒng),其性能會(huì)受到相應(yīng)的影響。方案二:PLC作為主控制器PLC作為主控制器應(yīng)用廣泛,它具有接線簡(jiǎn)單,通用性好,編程簡(jiǎn)單,使用方便,可連接為控制網(wǎng)絡(luò)系統(tǒng),易于安裝,便于維護(hù),其主要應(yīng)用在準(zhǔn)確、精細(xì)、快速、穩(wěn)定和多點(diǎn)控制的系統(tǒng)中,但是其價(jià)格昂貴。本文設(shè)計(jì)的簡(jiǎn)易電子秤精度不需要很高,它需要控制器及程序被固化,并且工作環(huán)境適宜。單片機(jī)作為處理器完全能夠滿足要求,并且單片機(jī)價(jià)格低廉,體積小,最終我選擇了市面上常見(jiàn)的51系列的單片機(jī)AT89S51作為主控制器。2.3 稱重傳感器的方案稱重傳感器按轉(zhuǎn)換方法分為光電式、液壓式、電磁力
11、式、電容式、磁極變形式、振動(dòng)式、陀螺儀式、電阻應(yīng)變式等8類(lèi),我選擇應(yīng)用最廣泛的電阻應(yīng)變式傳感器。電阻應(yīng)變式稱重傳感器是利用電阻應(yīng)變片變形時(shí)其電阻也隨之改變的原理工作的,根據(jù)傳感器理論可知,設(shè)長(zhǎng)為L(zhǎng)、截面積為S、電阻率為的電阻絲,其阻值為:2-1當(dāng)電阻絲兩端有機(jī)械應(yīng)力F時(shí),、L、S都會(huì)發(fā)生變化,從而導(dǎo)致電阻發(fā)生變化。這種應(yīng)變片式傳感器是基于材料的電阻應(yīng)變效應(yīng),電阻應(yīng)變片即可單獨(dú)作為傳感器使用,又能作為敏感元件結(jié)合彈性元件構(gòu)成力學(xué)量傳感器。電阻應(yīng)變片把機(jī)械應(yīng)變信號(hào)轉(zhuǎn)換為R/R后,由于應(yīng)變量及相應(yīng)電阻變化一般都很微小,難以直接準(zhǔn)確測(cè)量,且不便處理。因此,要采用轉(zhuǎn)換電路把應(yīng)變片的R/R變化轉(zhuǎn)換成電壓或
12、電流變化。其轉(zhuǎn)換電路常用測(cè)量電橋4。如圖2-2所示為常見(jiàn)的直流供電的平衡差動(dòng)測(cè)量電橋:圖22 直流供電的平衡差動(dòng)測(cè)量電橋圖中, QUOTE 為供橋電源電壓,當(dāng)初始有 QUOTE 時(shí),則電橋輸出電壓或電流為零,這時(shí)電橋處于平衡狀態(tài)。其測(cè)量原理:用應(yīng)變片測(cè)量時(shí),將其粘貼在彈性體上。當(dāng)彈性體受力變形時(shí),應(yīng)變片的敏感柵也隨同變形,其電阻值發(fā)生相應(yīng)變化,通過(guò)轉(zhuǎn)換電路轉(zhuǎn)換為電壓或電流的變化。由于部線路采用惠更斯電橋,當(dāng)彈性體承受載荷產(chǎn)生變形時(shí),輸出信號(hào)電壓可由下式給出:2-2本文的目的是設(shè)計(jì)一簡(jiǎn)易電子秤,最大稱重約為2.5千克,重量誤差不大于0.01千克;考慮到與其相配置的各種電路的設(shè)計(jì)的難易程度和設(shè)計(jì)性
13、價(jià)比,最終選擇了CZAF-6058電阻應(yīng)變式稱重傳感器,其稱重規(guī)模為5kg。2.4 放大器的方案壓力傳感器感受重力轉(zhuǎn)換后輸出的信號(hào)一般電平較低;經(jīng)由電橋等電路變換后的信號(hào)亦難以直接用來(lái)顯示、記錄、控制或進(jìn)展模數(shù)轉(zhuǎn)換。為此,測(cè)量電路中需要模擬放大環(huán)節(jié)。這一環(huán)節(jié)目前主要依靠由集成運(yùn)算放大器的根本元件構(gòu)成具有各種特性的放大器來(lái)完成。所采用的傳感器輸出電壓振幅圍010mV。而模數(shù)轉(zhuǎn)換的輸入電壓要求為02V,因此放大環(huán)節(jié)至少200倍的增益,此處我們需要放大500倍。根據(jù)本設(shè)計(jì)的實(shí)際情況增列出了兩種方案。方案一:由高精度低漂移運(yùn)算放大器構(gòu)成差動(dòng)放大器。差動(dòng)放大器具有高輸入阻抗,增益高的特點(diǎn),可以利用普通運(yùn)
14、放 ( 如 OP07) 做成一個(gè)差動(dòng)放大器,其部電路如圖2-3所示。圖23 差動(dòng)放大器部電路電阻 R1、R2電容C1、C2、C3、C4用于濾除前級(jí)的噪聲,C1、C2為普通小電容,可以濾除高頻干擾,C3、C4為大的電解電容,主要用于濾除低頻噪聲。優(yōu)點(diǎn):輸入級(jí)參加射隨放大器,增大了輸入阻抗,中間級(jí)為差動(dòng)放大電路,滑動(dòng)變阻器 R6 可以調(diào)節(jié)輸出零點(diǎn),最后一級(jí)可以用于微調(diào)放大倍數(shù),使輸出滿足滿量程要求。輸出級(jí)為反向放大器,所以輸出電阻不是很大,比擬符合應(yīng)用要求。缺點(diǎn):此電路要求 R3、R4相等,誤差將會(huì)影響輸出精度,難度較大。實(shí)際測(cè)量,每一級(jí)運(yùn)放都會(huì)引入較大噪聲,對(duì)精度影響較大。方案二:采用專(zhuān)用儀表放
15、大器12,如:INA128,INA129等。此類(lèi)芯片部采用差動(dòng)輸入,共模抑制比高,差模輸入阻抗大,增益高,精度也非常好,且外部接口簡(jiǎn)單。以INA128為例,引腳圖如2-4所示:圖2-4 INA128引腳圖放大器增益G=1+50k/Rg,通過(guò)改變Rg的大小來(lái)改變放大器的增益。因?yàn)榉糯蟮谋稊?shù)是500,所以大致選用100歐姆的電阻就可以了?;谝陨戏治?,采用專(zhuān)用儀表放大器能跟好的滿足要求,我最終選擇了INA128。2.5 模數(shù)轉(zhuǎn)換器的方案稱重傳感器采集的壓力信號(hào)是模擬量,單片機(jī)系統(tǒng)部運(yùn)算時(shí)用的都是數(shù)字量,即0和1,因此對(duì)于單片機(jī)而言我們無(wú)法直接操作模擬量,必須將模擬量轉(zhuǎn)換為數(shù)字量。這就需要在單片機(jī)前
16、段加上模數(shù)轉(zhuǎn)換器,模數(shù)轉(zhuǎn)換器就是將輸入的模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)。而模數(shù)轉(zhuǎn)換器的數(shù)字信號(hào)提供應(yīng)微處理器處理?,F(xiàn)在模數(shù)轉(zhuǎn)換的根本方法有十幾種,常用的有計(jì)數(shù)法、逐次比擬法、雙斜積分法和并行轉(zhuǎn)換法。由于逐次比擬法模數(shù)轉(zhuǎn)換具有速度快、分辨率高等特點(diǎn),而且采用這種方法的ADC芯片本錢(qián)較低,所以我們選用逐次比擬型模數(shù)轉(zhuǎn)換集成芯片ADC0832,ADC0832 是美國(guó)國(guó)家半導(dǎo)體公司生產(chǎn)的一種8 位分辨率、雙通道模數(shù)轉(zhuǎn)換芯片,其輸入輸出電平與TTL/CMOS相兼容,電源供電時(shí)輸入電壓在05V之間,工作頻率為250KHZ轉(zhuǎn)換時(shí)間為32S,一般功耗僅為15mW;由于它體積小,兼容性,性價(jià)比高而深受單片機(jī)愛(ài)好者及企業(yè)
17、歡送,其目前已經(jīng)有很高的普及率。圖2-5為AD0832雙列直插式封裝引腳圖。圖2-5 ADC0832引腳圖2.6 鍵盤(pán)局部的方案鍵盤(pán)局部有兩個(gè)可行的方案,第一是采用34的矩陣鍵盤(pán)構(gòu)造的鍵盤(pán)接口電路,第二是采用44的矩陣鍵盤(pán)構(gòu)造的鍵盤(pán)接口電路。由于電子秤需要設(shè)置單價(jià)十個(gè)數(shù)字鍵,還具有確認(rèn)、清零等功能,總共需設(shè)置13個(gè)鍵包括一個(gè)復(fù)位鍵,其中復(fù)位可以單獨(dú)拿出來(lái)。所以我們采用34的矩陣鍵盤(pán)構(gòu)造的鍵盤(pán)接口電路。34矩陣式鍵盤(pán)的特點(diǎn)是把檢測(cè)線分成兩組,一組為行線,一組列線,按鍵放在行線和列線的穿插點(diǎn)上。圖2-6給出了一個(gè)34的矩陣鍵盤(pán)構(gòu)造的鍵盤(pán)接口電路,圖中的每一個(gè)按鍵都通過(guò)不同的行線和列線與主機(jī)相連這。
18、34矩陣式鍵盤(pán)共可以安裝12個(gè)鍵,但只需要7條測(cè)試線。圖26 34矩陣式鍵盤(pán)圖顯示局部的方案:數(shù)據(jù)顯示是電子秤的一項(xiàng)重要功能,是人機(jī)交換的主要組成局部,它可以將測(cè)量電路測(cè)得的數(shù)據(jù)經(jīng)過(guò)微處理器處理后直觀的顯示出來(lái)。數(shù)據(jù)顯示局部可以有以下兩種方案供選擇:一是 LED數(shù)碼管顯示,二是LCD液晶。LED顯示每一個(gè)數(shù)碼管只能顯示一個(gè)數(shù)字,電子秤系統(tǒng)需要許多數(shù)碼管,會(huì)使線路變得復(fù)雜化。LCD液晶顯示器是一種極低功耗顯示器,其能夠多行顯示,并且能夠顯示漢字或英文字母,應(yīng)用于電子秤中能夠更人性化,更容易操作。所以最終選擇了兩行顯示的LCD1602,LCD1602的引腳圖如2-7所示。圖27 液晶顯示器LCD1
19、6022.8 過(guò)載報(bào)警局部的方案智能儀器一般都具有報(bào)警和通訊功能,報(bào)警主要用于系統(tǒng)運(yùn)行出錯(cuò)、當(dāng)測(cè)量的數(shù)據(jù)超過(guò)儀表量程或者是超過(guò)用戶設(shè)置的上下限時(shí)為提醒用戶而設(shè)置。在本系統(tǒng)中,設(shè)置報(bào)警的目的就是在超出電子秤測(cè)量圍時(shí),發(fā)出聲光報(bào)警信號(hào),提示用戶,防止損壞儀器。超限報(bào)警電路是由單片機(jī)的I/O口來(lái)控制的,當(dāng)稱重物體重量超過(guò)系統(tǒng)設(shè)計(jì)所允許的重量時(shí),通過(guò)程序使單片機(jī)的I/O值為高電平,從而三極管導(dǎo)通,使蜂鳴器SPEAKER發(fā)出報(bào)警聲,同時(shí)使二極管發(fā)光。3 電子秤的硬件設(shè)計(jì)3.1 系統(tǒng)設(shè)計(jì)的總體思路物體放在壓力傳感器上,傳感器發(fā)生形變,阻抗就發(fā)生變化,產(chǎn)生一個(gè)變化的模擬信號(hào),該信號(hào)需要有放大電路放大后輸入到
20、模數(shù)轉(zhuǎn)換器,轉(zhuǎn)換為數(shù)字信號(hào)后輸入到微處理器處理。微處理器根據(jù)鍵盤(pán)命令以及程序?qū)⒔Y(jié)果輸出到顯示器,直到顯示結(jié)果。如下列圖所示3-1所示。壓力傳感器放大電路模數(shù)轉(zhuǎn)換微處理器鍵 盤(pán)* = 0.8* = 0.8* = 0.8* = 0.8* = 0.8* = 0.8* = 0.8* = 0.8* = 0.8* = 0.8* = 0.8* = 0.8* = 0.8* = 0.8* = 0.8* = 0.8LCD顯示* = 0.8* = 0.8* = 0.8* = 0.8* = 0.8* = 0.8* = 0.8* = 0.8* = 0.8* = 0.8* = 0.8* = 0.8* = 0.8* = 0
21、.8* = 0.8* = 0.8圖3-1 硬件設(shè)計(jì)的總體思路3.2 單片機(jī)AT89S51最小系統(tǒng)AT89S51是一種帶4K字節(jié)FLASH存儲(chǔ)器的低電壓、高性能CMOS 8位微處理器,128字節(jié)RAM,32個(gè)雙向I/O 口線,兩個(gè)16位定時(shí)器/計(jì)數(shù)器,5個(gè)中斷源,一個(gè)全雙工串行通信口,片振蕩器及時(shí)鐘電路。同時(shí),AT89S51可降至0Hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停頓CPU的工作,但允許RAM,定時(shí)/計(jì)數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM中的容,但振蕩器停頓工作并制止其它所有部件工作直到下一個(gè)硬件復(fù)位。AT89S51的P0口為一個(gè)8位漏級(jí)開(kāi)路雙向I
22、/O口,P1、P2和P3口是一個(gè)部提供上拉電阻的8位雙向I/O口,同時(shí)P3口還作為AT89S51的一些特殊功能口16。AT89S51是片有ROM/EPROM的單片機(jī),其最小系統(tǒng)簡(jiǎn)單、可靠,僅由時(shí)鐘電路、復(fù)位電路、電源電路構(gòu)成。如圖3-2所示。時(shí)鐘電路AT89S51雖然有部振蕩電路,但要形成時(shí)鐘,必須外部附加電路。AT89S51單片機(jī)的時(shí)鐘產(chǎn)生方法有兩種。部時(shí)鐘方式和外部時(shí)鐘方式。本設(shè)計(jì)采用最常用的部時(shí)鐘方式,即用外接晶體和電容組成的并聯(lián)諧振回路。振蕩晶體可在1.2MHZ到12MHZ之間選擇。電容取值對(duì)振蕩頻率輸出的穩(wěn)定性、大小、振蕩電路起振速度有少許影響,可在20pF到100pF之間取值。所以
23、本設(shè)計(jì)中,振蕩晶體選擇12MHZ,電容選擇22pF11。圖32 AT89C52最小系統(tǒng)的設(shè)計(jì)復(fù)位電路AT89S51的復(fù)位電路是由外部的復(fù)位電路來(lái)實(shí)現(xiàn)的。只需給復(fù)位引腳RST加上大于2個(gè)機(jī)器周期的高電平就可使其復(fù)位。復(fù)位電路通常采用上電自動(dòng)復(fù)位和按鍵復(fù)位兩種方式。本設(shè)計(jì)就是用的按鍵手動(dòng)復(fù)位。其中電平復(fù)位是通過(guò)RST端經(jīng)電阻與電源Vcc接通而實(shí)現(xiàn)的。電源電路AT89S51的電源腳分別為20腳Vss和40腳Vcc圖中已默認(rèn)連接,未顯示出來(lái)。這兩個(gè)腳分別接地和+5V直流電源,31腳EA為外存儲(chǔ)器的控制端,接+5V允許訪問(wèn)外部存儲(chǔ)器。3.3 放大電路傳感器檢測(cè)電路的功能是把電阻應(yīng)變片的電阻變化轉(zhuǎn)變?yōu)殡妷?/p>
24、輸出,本設(shè)計(jì)中選用的是CZAF-605電阻應(yīng)變式稱重傳感器,因?yàn)橥ㄟ^(guò)其得到的電壓信號(hào)很小,為所以還需要放大器放大信號(hào)??紤]到干擾的作用,對(duì)傳感器的信號(hào)進(jìn)展了濾波處理,最終設(shè)計(jì)如圖3-3所示。圖33 傳感器與放大器的接口電路INA128的2和3腳為信號(hào)輸入端,4、5和7腳為電源引腳。微弱信號(hào)放大后從INA128的第6腳輸出。通過(guò)調(diào)節(jié)Rg的阻值可以來(lái)改變放大倍數(shù),使得輸出電壓在A/D轉(zhuǎn)換的基準(zhǔn)電壓要求圍之。根據(jù)要求,A/D轉(zhuǎn)換器的輸入電壓變化圍是0V4.999V,傳感器的輸出電壓信號(hào)在010mv,因此取放大器的放大倍數(shù)500。因此代入公式,。3.4 模數(shù)轉(zhuǎn)換器與單片機(jī)接口電路ADC0832 為8位
25、分辨率A/D轉(zhuǎn)換芯片,其最高分辨可達(dá)256級(jí),可以適應(yīng)一般的模擬量轉(zhuǎn)換要求。其部電源輸入與參考電壓的復(fù)用,使得芯片的模擬電壓輸入在05V之間。芯片轉(zhuǎn)換時(shí)間僅為32S,據(jù)有雙數(shù)據(jù)輸出可作為數(shù)據(jù)校驗(yàn),以減少數(shù)據(jù)誤差,轉(zhuǎn)換速度快且穩(wěn)定性能強(qiáng)。獨(dú)立的芯片使能輸入,使多器件掛接和處理器控制變的更加方便。通過(guò)DI 數(shù)據(jù)輸入端,可以輕易的實(shí)現(xiàn)通道功能的選擇21。正常情況下ADC0832 與單片機(jī)的接口應(yīng)為4條數(shù)據(jù)線,分別是CS、CLK、DO、DI。但由于DO端與DI端在通信時(shí)并未同時(shí)有效并與單片機(jī)的接口是雙向的,所以電路設(shè)計(jì)時(shí)可以將DO和DI 并聯(lián)在一根數(shù)據(jù)線上使用。當(dāng)ADC0832未工作時(shí)其CS輸入端應(yīng)為
26、高電平,此時(shí)芯片禁用,CLK 和DO/DI 的電平可任意。當(dāng)要進(jìn)展A/D轉(zhuǎn)換時(shí),須先將CS使能端置于低電平并且保持低電平直到轉(zhuǎn)換完全完畢。此時(shí)芯片開(kāi)場(chǎng)轉(zhuǎn)換工作,同時(shí)由處理器向芯片時(shí)鐘輸入端CLK 輸入時(shí)鐘脈沖,DO/DI端則使用DI端輸入通道功能選擇的數(shù)據(jù)信號(hào)。在第1 個(gè)時(shí)鐘脈沖的下沉之前DI端必須是高電平,表示啟始信號(hào)。在第2、3個(gè)脈沖下沉之前DI端應(yīng)輸入2 位數(shù)據(jù)用于選擇通道功能9。作為單通道模擬信號(hào)輸入時(shí)ADC0832的輸入電壓是05V且8位分辨率時(shí)的電壓精度為19.53mV。如果作為由IN+與IN-輸入的輸入時(shí),可是將電壓值設(shè)定在*一個(gè)較大圍之,從而提高轉(zhuǎn)換的寬度。但值得注意的是,在進(jìn)
27、展IN+與IN-的輸入時(shí),如果IN-的電壓大于IN+的電壓則轉(zhuǎn)換后的數(shù)據(jù)結(jié)果始終為00H。ADC0832與單片機(jī)的接口電路如圖3-4所示。圖34 ADC0832與單片機(jī)的接口電路圖3.5 顯示電路與單片機(jī)接口電路本設(shè)計(jì)采用的是LCD1602顯示,LCD1602液晶也叫1602字符型液晶它是一種專(zhuān)門(mén)用來(lái)顯示字母、數(shù)字、符號(hào)等的點(diǎn)陣型液晶模塊它有假設(shè)干個(gè)57或者511等點(diǎn)陣字符位組成,每個(gè)點(diǎn)陣字符位都可以顯示一個(gè)字符。每位之間有一個(gè)點(diǎn)距的間隔每行之間也有間隔起到了字符間距和行間距的作用,正因?yàn)槿绱怂运荒茱@示圖形。1602LCD是指顯示的容為162,即可以顯示兩行,每行16個(gè)字符液晶模塊顯示字符
28、和數(shù)字。1602采用標(biāo)準(zhǔn)的16腳接口,其中1和2腳為電源正負(fù)極,3腳為比照度調(diào)整端,4腳RS為存放器選擇,5腳RW為讀寫(xiě)信號(hào)線,6腳為使能端,7到14腳為8為雙向數(shù)據(jù)端。15和16腳為電源背光極。LCD1602與單片機(jī)的連接如圖3-5所示。3腳VEE接一個(gè)滑動(dòng)變阻器,滑動(dòng)變阻器兩端接電源和地。調(diào)試歡動(dòng)變阻器的值可以改變LCD的比照度。因?yàn)長(zhǎng)CD為共陽(yáng)極,所以D0到D7有參加上拉電阻。圖35 單片機(jī)與LCD1602接線圖3.6 鍵盤(pán)電路與單片機(jī)接口電路矩陣式鍵盤(pán)的構(gòu)造與工作原理:在鍵盤(pán)中按鍵數(shù)量較多時(shí),為了減少I(mǎi)/O口的占用,通常將按鍵排列成矩陣形式。在矩陣式鍵盤(pán)中,每條水平線和垂直線在穿插處不
29、直接連通,而是通過(guò)一個(gè)按鍵加以連接。這樣,一個(gè)端口如P1口就可以構(gòu)成34=12個(gè)按鍵,比之直接將端口線用于鍵盤(pán)多出了一倍,而且線數(shù)越多,區(qū)別越明顯,比方再多加一條線就可以構(gòu)成16鍵的鍵盤(pán),而直接用端口線則只能多出一鍵。由此可見(jiàn),在需要的鍵數(shù)比擬多時(shí),采用矩陣法來(lái)做鍵盤(pán)是合理的。矩陣式鍵盤(pán)的按鍵識(shí)別方法:確定矩陣式鍵盤(pán)上何鍵被按下介紹一種行掃描法。行掃描法行掃描法又稱為逐行或列掃描查詢法,是一種最常用的按鍵識(shí)別方法,如上圖所示鍵盤(pán),介紹過(guò)程如下。判斷鍵盤(pán)中有無(wú)鍵按下將全部行線Y0-Y3置低電平,然后檢測(cè)列線的狀態(tài)。只要有一列的電平為低,則表示鍵盤(pán)中有鍵被按下,而且閉合的鍵位于低電平線與4根行線相
30、穿插的3個(gè)按鍵之中。假設(shè)所有列線均為高電平,則鍵盤(pán)中無(wú)鍵按下。判斷閉合鍵所在的位置在確認(rèn)有鍵按下后,即可進(jìn)入確定具體閉合鍵的過(guò)程。其方法是:依次將行線置為低電平,即在置*根行線為低電平時(shí),其它線為高電平。在確定*根行線位置為低電平后,再逐行檢測(cè)各列線的電平狀態(tài)。假設(shè)*列為低,則該列線與置為低電平的行線穿插處的按鍵就是閉合的按鍵。在本系統(tǒng)中鍵盤(pán)采用矩陣式鍵盤(pán)并采用中斷工作方式。鍵盤(pán)為34鍵盤(pán),包括0、1、2、3、4、5、6、7、8、9、十個(gè)數(shù)字及確認(rèn)和去除鍵。采用中斷工作方式提高了CPU的利用效率,沒(méi)鍵按下時(shí)沒(méi)有中斷請(qǐng)求,有鍵按下時(shí),向CPU提出中斷請(qǐng)求,CPU響應(yīng)后執(zhí)行中斷效勞程序,在中斷程序
31、中才對(duì)鍵盤(pán)進(jìn)展掃描。下列圖就是鍵盤(pán)電路與AT89S52單片機(jī)接口電路圖。圖3-6 鍵盤(pán)電路與單片機(jī)的連接圖3.7 報(bào)警電路當(dāng)電路檢測(cè)到稱重的物體超過(guò)儀器的測(cè)量限制時(shí),將產(chǎn)生一個(gè)信號(hào)給報(bào)警電路。使報(bào)警電路報(bào)警從而提醒工作人員注意,超限報(bào)警電路如下列圖所示。圖37 報(bào)警電路圖它是有AT89C52的R*D口來(lái)控制的,R*D本來(lái)為低電平,當(dāng)超過(guò)設(shè)置的重量時(shí)5Kg,通過(guò)程序使R*D口值為高電平,從而使三極管導(dǎo)通,報(bào)警電路接通,使蜂鳴器SPEAKER發(fā)出報(bào)警聲,同時(shí)使報(bào)警燈LED發(fā)光。這一任務(wù)的實(shí)現(xiàn)主要靠程序來(lái)完成。3.8 電源電路一般電網(wǎng)電壓為交流220V,而本文設(shè)計(jì)的電子秤系統(tǒng)需要的電壓是直流5V,顯
32、然不能滿足實(shí)際要求,所以需要設(shè)計(jì)一個(gè)直流穩(wěn)壓電源。直流穩(wěn)壓電源一般由電源變壓器、整流電路、濾波電路和穩(wěn)壓電路組成。根本框圖如3-8所示。圖3-8直流穩(wěn)壓電源框圖電源變壓器T將220V的交流電源變換成整流濾波電路所需要的5V交流電壓。5V交流電壓通過(guò)整流電路變換成5V的脈動(dòng)電壓,濾波電路濾除較大的波紋成分,輸出較小的波紋成分到穩(wěn)壓電路,穩(wěn)壓電路輸出穩(wěn)定的5V電壓。根據(jù)上述介紹,電源電路包括變壓器、整流電路、濾波電路、穩(wěn)壓電路等模塊組成,這里參加LED進(jìn)展電源工作狀態(tài)指示。穩(wěn)壓局部用LM7805三端穩(wěn)壓IC來(lái)組成穩(wěn)壓電源,其優(yōu)點(diǎn)是所需的外圍元件極少,電路部還有過(guò)流、過(guò)熱及調(diào)整管的保護(hù)電路,使用起來(lái)
33、可靠、方便,而且價(jià)格廉價(jià)。具體的5V電源電路如圖3-9所示。圖3-9 5V直流穩(wěn)壓電源圖4 電子秤系統(tǒng)的軟件設(shè)計(jì)程序設(shè)計(jì)是一件復(fù)雜的工作,為了把復(fù)雜的工作條理化,就要有相應(yīng)的步驟和方法。其步驟可概括為以下三點(diǎn):首先需要分析系統(tǒng)控制要求,確定算法:對(duì)復(fù)雜的問(wèn)題進(jìn)展具體的分析,找出合理的計(jì)算方法及適當(dāng)?shù)臄?shù)據(jù)構(gòu)造,從而確定編寫(xiě)程序的步驟。這是能否編制出高質(zhì)量程序的關(guān)鍵。其次是根據(jù)算法畫(huà)流程圖:畫(huà)程序框圖可以把算法和解題步驟逐步具體化,以減少出錯(cuò)的可能性。最后就是編寫(xiě)程序:根據(jù)程序框圖所表示的算法和步驟,選用適當(dāng)?shù)闹噶钆帕衅饋?lái),構(gòu)成一個(gè)有機(jī)的整體,即程序。程序數(shù)據(jù)的一種理想方法是構(gòu)造化程序設(shè)計(jì)方法。構(gòu)
34、造化程序設(shè)計(jì)是對(duì)利用到的控制構(gòu)造類(lèi)程序做適當(dāng)?shù)南拗疲貏e是限制轉(zhuǎn)向語(yǔ)句(或指令)的使用,從而控制了程序的復(fù)雜性,力求程序的上、下文順序與執(zhí)行流程保持一致性,使程序易讀易理解,減少邏輯錯(cuò)誤和易于修改、調(diào)試。根據(jù)系統(tǒng)的控制任務(wù),監(jiān)控軟件采用模塊技術(shù)設(shè)計(jì),根據(jù)系統(tǒng)功能,將軟件分為假設(shè)干個(gè)功能相對(duì)獨(dú)立的模塊,為每一個(gè)模塊設(shè)計(jì)程序流程圖。該電子秤功能程序模塊包括:A/D轉(zhuǎn)換啟動(dòng)及數(shù)據(jù)讀取程序設(shè)計(jì)、顯示子程序設(shè)計(jì)、鍵盤(pán)掃描子的程序設(shè)計(jì)、價(jià)格計(jì)算子程序設(shè)計(jì)、以及報(bào)警子程序設(shè)計(jì)等。4.1 主程序的設(shè)計(jì)主程序是系統(tǒng)信息處理的關(guān)鍵,主程序模塊主要完成編程芯片的初始化及按需要調(diào)用各模塊子程序,在系統(tǒng)初始化過(guò)程中,初
35、始化程序?qū)AM的30H到5FH單元清零,R*D引腳置成低電平,防止誤報(bào)警,同時(shí)將系統(tǒng)設(shè)置成2.5Kg量程,并寫(xiě)2.5Kg量程標(biāo)志。設(shè)計(jì)流程圖如圖5-1所示。主程序主要完成編程芯片的初始化及按需要調(diào)用各子程序,上電啟動(dòng)后,系統(tǒng)初始化,單片機(jī)讀取模數(shù)轉(zhuǎn)換器的數(shù)據(jù),然后調(diào)用顯示子程序顯示重量,同時(shí)掃描鍵盤(pán)子程序,調(diào)用價(jià)格計(jì)算子程序計(jì)算價(jià)格并顯示出來(lái)。圖4 SEQ 圖 * ARABIC s 1 1電子秤系統(tǒng)程序設(shè)計(jì)流程圖4.2子程序的設(shè)計(jì)主程序按需要調(diào)用各子程序。系統(tǒng)子程序主要包括A/D轉(zhuǎn)換啟動(dòng)及數(shù)據(jù)讀取程序設(shè)計(jì)、顯示子程序設(shè)計(jì)、鍵盤(pán)掃描子的程序設(shè)計(jì)、價(jià)格計(jì)算子程序設(shè)計(jì)、以及報(bào)警子程序設(shè)計(jì)等。4.2
36、.1 模數(shù)轉(zhuǎn)換子程序的設(shè)計(jì)A/D轉(zhuǎn)換啟動(dòng)及數(shù)據(jù)讀取子程序設(shè)計(jì)主要是上電運(yùn)行后,ADC0832完成初始化,把經(jīng)放大的稱重傳感器傳遞過(guò)來(lái)的模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)并傳遞到單片機(jī)所涉及到的程序設(shè)計(jì)設(shè)計(jì)流程圖如圖4-2所示。ADC0832進(jìn)展模數(shù)轉(zhuǎn)換時(shí),須現(xiàn)將CS是能端置于低電平并且保存低電平直到完全完畢。芯片開(kāi)場(chǎng)轉(zhuǎn)換工作,同時(shí)由處理器向芯片時(shí)鐘輸入端CLK 輸入時(shí)鐘脈沖,DO和DI端則使用DI端輸入通道功能選擇的數(shù)據(jù)信號(hào)。在第1 個(gè)時(shí)鐘脈沖的下沉之前DI端必須是高電平,表示啟始信號(hào)。在第2、3個(gè)脈沖下沉之前DI端應(yīng)輸入2 位數(shù)據(jù)用于選擇通道功能,到第3 個(gè)脈沖的下沉之后DI端的輸入電平就失去輸入作用,
37、此后DO/DI端則開(kāi)場(chǎng)利用數(shù)據(jù)輸出DO進(jìn)展轉(zhuǎn)換數(shù)據(jù)的讀取。從第4個(gè)脈沖下沉開(kāi)場(chǎng)由DO端輸出轉(zhuǎn)換數(shù)據(jù)最高位DATA7,隨后每一個(gè)脈沖下沉DO端輸出下一位數(shù)據(jù)。直到第11個(gè)脈沖時(shí)發(fā)出最低位數(shù)據(jù)DATA0,一個(gè)字節(jié)的數(shù)據(jù)輸出完成。從第11個(gè)字節(jié)的下沉輸出DATA0。隨后輸出8位數(shù)據(jù),到第19 個(gè)脈沖時(shí)數(shù)據(jù)輸出完成,也標(biāo)志著一次A/D轉(zhuǎn)換的完畢23。最后將CS置高電平禁用芯片。圖42 A/D轉(zhuǎn)換啟動(dòng)及數(shù)據(jù)讀取程序流程圖4.2.2 鍵盤(pán)掃描子程序的設(shè)計(jì)鍵盤(pán)掃描子程序主要是掃描鍵盤(pán)的輸入,調(diào)用顯示子程序顯示,輸出輸入的參數(shù),計(jì)算總價(jià)是調(diào)用價(jià)格計(jì)算子程序計(jì)算總價(jià)格。鍵盤(pán)電路設(shè)計(jì)成34矩陣式,由鍵盤(pán)編碼方式可
38、以得出1、2、3、4、5、6、7、8、9、0及清零和計(jì)價(jià)各鍵對(duì)應(yīng)的鍵值:0*31,0*32,0*33,0*34,0*35,0*36,0*37,0*38,0*39,0*3d,0*30,0*2e。在程序中可以先判斷按鍵編碼,然后根據(jù)編碼將鍵盤(pán)代表的數(shù)值送到相應(yīng)的存儲(chǔ)單元,再進(jìn)展功能選擇或數(shù)據(jù)處理。圖43 鍵盤(pán)掃描子程序流程圖顯示子程序的設(shè)計(jì)單片機(jī)應(yīng)用系統(tǒng)通常都需要進(jìn)展人機(jī)對(duì)話。其中包括人對(duì)應(yīng)用系統(tǒng)的狀態(tài)干預(yù)與數(shù)據(jù)輸入,應(yīng)用系統(tǒng)必須向操作者顯示狀態(tài)與運(yùn)行結(jié)果等信息。顯示器是單片機(jī)應(yīng)用系統(tǒng)中最常用的人機(jī)交互設(shè)備。顯示子程序是字符顯示,首先初始化,輸出一些根本信息,然后調(diào)用事先編好的鍵盤(pán)顯示子程序,輸出
39、顯示命令,顯示過(guò)程中還需要調(diào)用延時(shí)子程序。當(dāng)輸入通道采集了一個(gè)信號(hào),或人為的鍵入一個(gè)值,或系統(tǒng)與儀表出現(xiàn)異常情況顯示管理軟件應(yīng)及時(shí)調(diào)用顯示驅(qū)動(dòng)程序模塊,用來(lái)更新當(dāng)前數(shù)據(jù)顯示符號(hào)。設(shè)計(jì)顯示子程序的流程圖如下列圖4-4所示:圖44 顯示子程序流程圖4.2.4 價(jià)格計(jì)算子程序的設(shè)計(jì)價(jià)格計(jì)算子程序由鍵盤(pán)計(jì)價(jià)鍵控制,當(dāng)輸入單價(jià)后,在沒(méi)有清零的情況下,點(diǎn)計(jì)價(jià)鍵,計(jì)算出總價(jià)后,調(diào)用顯示子程序顯示出中重量。該子程序中利用各工作存放器2組,數(shù)據(jù)存在以40H單元為首址的連續(xù)單元中。價(jià)格計(jì)算公式總價(jià)=單價(jià)重量。這個(gè)程序需要兩次的數(shù)制轉(zhuǎn)換,輸入單價(jià)后需要將單價(jià)轉(zhuǎn)化為二進(jìn)制后才能與二進(jìn)制的重量進(jìn)展計(jì)算。計(jì)算后的結(jié)果必須
40、轉(zhuǎn)換為十進(jìn)制數(shù)顯示出來(lái)。圖45 價(jià)格程序流程圖4.2.5 報(bào)警子程序的設(shè)計(jì)因?yàn)閴毫鞲衅鞯乃軌毫τ袠O限,所以稱重量必須有在一定圍,超過(guò)重量時(shí)必須有報(bào)警程序。主程序初始化設(shè)定閾值為2.5Kg,報(bào)警子程序?qū)⒃O(shè)定的閾值與實(shí)時(shí)顯示的值進(jìn)展比擬,先比擬高位,假設(shè)高位大,即設(shè)定值小于實(shí)時(shí)顯示的值,這時(shí)將R*D置為1,將發(fā)光二極管點(diǎn)亮,且使蜂鳴器發(fā)出聲音。假設(shè)高位相等,就比擬低位,同理假設(shè)設(shè)定值低位小于實(shí)際顯示值,將R*D置為1,將發(fā)光二極管點(diǎn)亮,且使蜂鳴器發(fā)出聲音。這就需要一段比擬程序以及一小段置1清0程序。圖46 報(bào)警子程序流程圖5系統(tǒng)調(diào)試5.1 軟件調(diào)試在設(shè)計(jì)電子秤的過(guò)程中,先在軟件中仿真,仿真成功
41、后,再制作出實(shí)物。仿真采用的是proteus軟件,是一專(zhuān)門(mén)基于單片機(jī)的及其外圍電路的仿真軟件。仿真的第一步是先進(jìn)展軟件調(diào)試,是通過(guò)對(duì)程序的匯編、連接、執(zhí)行來(lái)發(fā)現(xiàn)程序中存在的語(yǔ)法錯(cuò)誤與邏輯錯(cuò)誤并加以排除糾正錯(cuò)誤的過(guò)程。軟件調(diào)試的方法是先分塊后組合。在編出完整的程序并確保無(wú)誤后進(jìn)展綜合調(diào)試。在調(diào)試程序之前,先檢查各硬件模塊間的連接是否無(wú)誤,有無(wú)斷路現(xiàn)象。確認(rèn)連接無(wú)誤后就給系統(tǒng)通電進(jìn)展調(diào)試。正式調(diào)試時(shí),首先進(jìn)展總體調(diào)試,即觀察系統(tǒng)的運(yùn)行情況以便快速地發(fā)現(xiàn)存在的問(wèn)題。然后進(jìn)展各硬件模塊調(diào)試,主要針對(duì)有問(wèn)題的硬件模塊及其程序進(jìn)展調(diào)試,以便準(zhǔn)確地查出問(wèn)題的原因并解決問(wèn)題。我在實(shí)際仿真的時(shí)候出現(xiàn)了LCD無(wú)顯
42、示,最終找出原因是LCD是共陽(yáng)極的需要接上拉電阻。同時(shí)還發(fā)現(xiàn)蜂鳴器超重后都不報(bào)警但是LED發(fā)亮,最后發(fā)現(xiàn)是蜂鳴器的響應(yīng)時(shí)間設(shè)置太大產(chǎn)生的。軟件調(diào)試如圖5-1所示。圖5-1軟件調(diào)試圖5.2硬件調(diào)試按照設(shè)計(jì)好的電子秤系統(tǒng)原理圖,計(jì)算出各個(gè)元器件的參數(shù),選擇相應(yīng)的器件,制作出了實(shí)際的電子秤系統(tǒng)后。首先檢查連線是否與邏輯圖一致,用萬(wàn)用表檢查有無(wú)短路、虛焊等現(xiàn)象。器件的型號(hào)、規(guī)格、規(guī)格、極性是否有誤,插接方向是否正確。檢查完畢,可用萬(wàn)用表檢測(cè)儀下電路板正負(fù)電源之間的電阻,排除電源短路的可能。之后將生成的he*文件燒到單片機(jī)中,得到響應(yīng)的實(shí)物,觀察現(xiàn)象,并排除問(wèn)題。剛開(kāi)場(chǎng)通電后,發(fā)現(xiàn)LCD顯示畫(huà)面不理想,
43、之后調(diào)節(jié)上拉電阻后到達(dá)了滿意的效果。同時(shí)出現(xiàn)報(bào)警裝置沒(méi)有用,之后檢查發(fā)現(xiàn)是因?yàn)閷?shí)際買(mǎi)的三極管極性與理論圖不一樣。換了正負(fù)極方向就可以了。同時(shí)測(cè)量的重物質(zhì)量與實(shí)際相比嚴(yán)重偏大,之后修改程序中的轉(zhuǎn)換倍數(shù)后正常了。結(jié)論本論文主要研究的是簡(jiǎn)易電子秤的設(shè)計(jì),主要是基于超市的電子秤,在小重量圍的稱量。具有如下的功能:1、能用簡(jiǎn)易鍵盤(pán)設(shè)置單價(jià),能夠同時(shí)顯示重量和金額;2、重量顯示:?jiǎn)挝粸榍Э?;最大稱重為2.5千克,重量誤差不大于0.01千克;3、具有清零功能和復(fù)位功能。4、超出所測(cè)的重量時(shí)能夠報(bào)警。此電子秤采用LCD1602顯示,能夠同時(shí)顯示重量?jī)r(jià)格,并且具有很高的性價(jià)比,能夠廣泛的應(yīng)用少于2.5kg重量的
44、圍的交易。致經(jīng)過(guò)兩周的努力終于完成了本次設(shè)計(jì),其中由于經(jīng)歷的匱乏,難免有許多考慮不周全的地方,但由于同學(xué)及教師的幫助大多都得以解決,真是辛苦大家了。在這里要感我的教師牛月蘭教師平常的悉心教誨,正是由于她的辛勤教誨才能有足夠的知識(shí)完成這份設(shè)計(jì),教師為人和藹可親,經(jīng)常給我們解決一些難題,她治學(xué)嚴(yán)謹(jǐn)和科學(xué)研究的精神也是我永遠(yuǎn)學(xué)習(xí)的典范,并將積極影響我今后的學(xué)習(xí)和工作。最后還要感之前指導(dǎo)過(guò)我們的所有的教師,正是由于他們,我們才能打好專(zhuān)業(yè)知識(shí)的根底;同時(shí)還要感所有的同學(xué)們,正是因?yàn)橛辛四銈兊闹С趾凸膭?lì)。此次課程設(shè)計(jì)才會(huì)順利完成。參考文獻(xiàn)毅剛單片機(jī)原理及應(yīng)用M:高等教育,2010.介華電子技術(shù)課程設(shè)計(jì)指導(dǎo)
45、M:高等教育,2008.常健生檢測(cè)與轉(zhuǎn)換技術(shù)M:機(jī)械工業(yè),2004.何立民單片機(jī)應(yīng)用技術(shù)選編M:航空航天大學(xué),2007梁瑞林傳感器實(shí)用電路設(shè)計(jì)與制作M:科學(xué),2007.-. z附錄A 系統(tǒng)原理圖附錄B 仿真圖-. z附錄C 程序清單.#include#include#include #include #define uchar unsigned char#define uint unsigned int#define BUSY 0*80 /常量定義#define DATAPORT P0sbit ADCS =P35; sbit ADDI =P37; sbit ADDO =P37; sbit AD
46、CLK =P36; sbit LCM_RS=P20;sbit LCM_RW=P21;sbit LCM_EN=P22;uint *1,y1,z1=0,w1,j,temp1;uchar ad_data,k,n,m,e,num,s; /采樣值存儲(chǔ)sbit speaker=P30; char press_data; /標(biāo)度變換存儲(chǔ)單元unsigned char ad_alarm; /報(bào)警值存儲(chǔ)單元unsigned char press_ge=0; /顯示值百位unsigned char press_shifen=0; /顯示值十位unsigned char press_baifen=0; /顯示值個(gè)位
47、unsigned char press_qianfen=0; /顯示值十分位uchar code str0=Weight: . Kg ;uchar code str2=Price: ;uchar code str3=Total: ;uchar code table2=0*37,0*38,0*39,0*34,0*35,0*36, 0*31,0*32,0*33,=0*3d,0*30,0*2e ; /鍵盤(pán)碼void delay(uint);void lcd_wait(void);void delay_LCM(uint); /LCD延時(shí)子程序void initLCM( void); /LCD初始化子程
48、序void lcd_wait(void); /LCD檢測(cè)忙子程序void WritemandLCM(uchar WCLCM,uchar BusyC); /寫(xiě)指令到ICM子函數(shù)void WriteData LCM(uchar WDLCM); /寫(xiě)數(shù)據(jù)到LCM子函數(shù)void DisplayOneChar(uchar *,uchar Y,uchar DData); /顯示指定坐標(biāo)的一個(gè)字符子函數(shù)void DisplayListChar(uchar *,uchar Y,uchar code *DData);/顯示指定坐標(biāo)的一串字符子函數(shù)void weishu(uint m); void weishu1
49、(uint m); void display(void); uchar Adc0832(unsigned char channel);void alarm(void);void data_pro(void);/*主程序*/void main(void) delay(500); /系統(tǒng)延時(shí)500ms啟動(dòng)/ad_data=0; /采樣值存儲(chǔ)單元初始化為0 initLCM( ); WritemandLCM(0*01,1); /清顯示屏 DisplayListChar(0,0,str0); DisplayListChar(0,1,str2);while(1) ad_data =Adc0832(0);
50、/采樣值存儲(chǔ)單元初始化為0 alarm(); data_pro(); display();if(k=1) DisplayOneChar(s+7),1,table2num-1); *1=m; y1=n; y1=y1*10+*1; if(k=*) data_pro(); WritemandLCM(0*01,1); weishu(z1); k=0; if(k=) z1=z1*temp1; WritemandLCM(0*01,1); DisplayListChar(0,1,str3);s=0; weishu1(temp1*n); k=0;j=temp1;if(k= ) WritemandLCM(0*8
51、0+0*40,1); WritemandLCM(0*01,1); z1=0; s=0; /防止清零時(shí)指針后移動(dòng) /*延時(shí)程序K*1ms,12.000mhz*/void delay(uint k) uint i,j; for(i=0;ik;i+) for(j=0;j100;j+); /*寫(xiě)指令到ICM子函數(shù)*/void WritemandLCM(uchar WCLCM,uchar BusyC) if(BusyC)lcd_wait();DATAPORT=WCLCM; LCM_RS=0; / 選中指令存放器 LCM_RW=0; LCM_RW=0; / 寫(xiě)模式 LCM_EN=1; _nop_(); _
52、nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); LCM_EN=0; /*寫(xiě)數(shù)據(jù)到LCM子函數(shù)*/void WriteDataLCM(uchar WDLCM) lcd_wait( ); /檢測(cè)忙信號(hào)DATAPORT=WDLCM; LCM_RS=1; / 選中數(shù)據(jù)存放器 LCM_RW=0; / 寫(xiě)模式 LCM_EN=1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();_nop_(); LCM_EN=0;/*lcm部等待函數(shù)*/void lcd_wait(void)
53、 DATAPORT=0*ff; /讀LCD前假設(shè)單片機(jī)輸出低電平,而讀出LCD為高電平, /則沖突,Proteus仿真會(huì)有顯示邏輯黃色LCM_EN=1; LCM_RS=0; LCM_RW=0; LCM_RW=1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();_nop_(); while(DATAPORT&BUSY) LCM_EN=0; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); LCM_EN=1; _nop_(); _nop_();
54、_nop_(); _nop_(); _nop_();_nop_();_nop_(); LCM_EN=0;/*LCM初始化子函數(shù)*/void initLCM( ) LCM_EN=0; DATAPORT=0;delay(15);WritemandLCM(0*38,0); /三次顯示模式設(shè)置,不檢測(cè)忙信號(hào) delay(5); WritemandLCM(0*38,0); delay(5); WritemandLCM(0*38,0); delay(5); WritemandLCM(0*38,1); /8bit數(shù)據(jù)傳送,2行顯示,5*7字型,檢測(cè)忙信號(hào) WritemandLCM(0*08,1); /關(guān)閉顯
55、示,檢測(cè)忙信號(hào) WritemandLCM(0*01,1); /清屏,檢測(cè)忙信號(hào) WritemandLCM(0*06,1); /顯示光標(biāo)右移設(shè)置,檢測(cè)忙信號(hào) WritemandLCM(0*0c,1); /顯示屏翻開(kāi),光標(biāo)不顯示,不閃爍,檢測(cè)忙信號(hào) TMOD=0*11;EA=1; ET1=1;TR1=1;k=0;*1=0;y1=0;z1=0;/*顯示指定坐標(biāo)的一個(gè)字符子函數(shù)*/void DisplayOneChar(uchar *,uchar Y,uchar DData) Y&=0*01; *&=0*0f; if(Y)*|=0*40; /假設(shè)y為1顯示第二行,地址碼+0*40 *|=0*80; /
56、指令碼為地址碼+0*80 WritemandLCM(*,1); WriteDataLCM(DData);/*顯示指定坐標(biāo)的一串字符子函數(shù)*/void DisplayListChar(uchar *,uchar Y,uchar code *DData) uchar ListLength=0; Y&=0*01; *&=0*0f; while(*1)&0*1; _nop_(); _nop_(); ADCLK=0;/拉低CLK端,形成下降沿3 ADDI=1;/控制命令完畢 _nop_(); _nop_(); dat=0; for(i=0;i8;i+) dat|=ADDO;/收數(shù)據(jù) ADCLK=1; _
57、nop_(); _nop_(); ADCLK=0;/形成一次時(shí)鐘脈沖 _nop_(); _nop_(); dat=1; if(i=7)dat|=ADDO; for(i=0;i8;i+) j=0; j=j|ADDO;/收數(shù)據(jù) ADCLK=1; _nop_(); _nop_(); ADCLK=0;/形成一次時(shí)鐘脈沖 _nop_(); _nop_(); j=j7; ndat=ndat|j; if(i=1; ADCS=1;/拉低CS端 ADCLK=0;/拉低CLK端 ADDO=1;/拉高數(shù)據(jù)端,回到初始狀態(tài) dat=8; dat|=ndat; return(dat); /return ad k void data_pro(void) unsigned int; float press; if(0ad_data223) speaker=0; /則啟動(dòng)報(bào)警 else speaker=1; void weishu(uint m) uchar wei4,wei3,wei2,wei1,wei0; wei4=m/10000; wei3=m%10000/1000; wei2=m%1000/100; wei1=m%100/10; wei0=m%10; DisplayOn
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度建筑工人勞動(dòng)合同(附創(chuàng)新技術(shù)培訓(xùn)內(nèi)容)
- 二零二五年度國(guó)際酒店餐飲業(yè)勞務(wù)供應(yīng)協(xié)議
- 二零二五年度生活垃圾清運(yùn)與環(huán)保技術(shù)研發(fā)應(yīng)用合同
- 電子商務(wù)平臺(tái)代運(yùn)營(yíng)服務(wù)協(xié)議
- 采購(gòu)合同辣椒采購(gòu)合同
- 音樂(lè)課本中的歌曲背后的故事征文
- 專(zhuān)業(yè)保潔服務(wù)合作協(xié)議
- 簡(jiǎn)愛(ài)人物形象塑造分析:世界名著導(dǎo)讀課程教案
- 人力資源招聘與培訓(xùn)流程說(shuō)明
- 企業(yè)綠色信用修復(fù)服務(wù)協(xié)議
- 心理健康教育課《在變化中成長(zhǎng)》課件
- JJF 1341-2012 鋼筋銹蝕測(cè)量?jī)x校準(zhǔn)規(guī)范-(高清現(xiàn)行)
- 人教版數(shù)學(xué)五年級(jí)下冊(cè) 全冊(cè)各單元教材解析
- 給水排水管道工程質(zhì)量通病以及防治
- 偏癱臨床路徑流程
- 計(jì)算機(jī)視覺(jué)全套課件
- GB-T 9251-2022 氣瓶水壓試驗(yàn)方法(高清版)
- 基于單片機(jī)的電子廣告牌設(shè)計(jì)畢業(yè)設(shè)計(jì)論文
- 中國(guó)聯(lián)通IMS接口規(guī)范 第三分冊(cè):Sh接口 V1.0
- 判斷抽樣(課堂PPT)
- 通用橫版企業(yè)報(bào)價(jià)單模板
評(píng)論
0/150
提交評(píng)論