畢業(yè)設(shè)計(jì)(論文)電子秤軟件設(shè)計(jì)_第1頁
畢業(yè)設(shè)計(jì)(論文)電子秤軟件設(shè)計(jì)_第2頁
畢業(yè)設(shè)計(jì)(論文)電子秤軟件設(shè)計(jì)_第3頁
畢業(yè)設(shè)計(jì)(論文)電子秤軟件設(shè)計(jì)_第4頁
畢業(yè)設(shè)計(jì)(論文)電子秤軟件設(shè)計(jì)_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1 引言11 課題研究背景現(xiàn)代社會(huì)的發(fā)展,對(duì)稱重技術(shù)提出了更高的要求。目前,臺(tái)式電子秤在商業(yè)貿(mào)易中的使用已相當(dāng)普遍,但存在較大的局限性:體積大、成本高、需要工頻交流電源供應(yīng)、攜帶不便、應(yīng)用場(chǎng)所受到制約?,F(xiàn)有的便攜秤為桿秤或以彈簧壓縮、拉伸變形來實(shí)現(xiàn)計(jì)量的彈簧秤,居民用戶使用的是國家已經(jīng)明令淘汰的桿秤。多年來,人們一直期待測(cè)量準(zhǔn)確、攜帶方便、價(jià)格低廉的便攜式電子秤投放市場(chǎng)1。質(zhì)量是測(cè)量領(lǐng)域中的一個(gè)重要參數(shù),稱重技術(shù)自古以來就被人們所重視。公元前,人們?yōu)榱藢?duì)貨物交換量進(jìn)行估計(jì),起初采用木材或陶土制作的容器對(duì)交換貨物進(jìn)行計(jì)量。以后,又采用簡(jiǎn)單的秤來測(cè)定質(zhì)量。據(jù)考證,世界上最古老的計(jì)量器具出土于中東和

2、埃及,最古老的衡器和砝碼出自于埃及。秤是最普遍、最普及的計(jì)量設(shè)備,電子秤取代機(jī)械秤是科學(xué)技術(shù)發(fā)展的必然規(guī)律。低成本、高智能化的電子秤無疑具有及其廣闊的市場(chǎng)前景2。12 稱重技術(shù)和衡器的發(fā)展衡器是通過作用于被測(cè)量物體的重力來確定該物體質(zhì)量的計(jì)量器具。在整個(gè)衡器的發(fā)展過程中,先后主要出現(xiàn)了六種類型的衡器:架盤天平、不等臂平臺(tái)秤、吊車秤、傾斜象限桿秤、彈簧秤和自動(dòng)秤。其中,不等臂平臺(tái)秤(“十進(jìn)制”)是當(dāng)今動(dòng)態(tài)軌道衡的鼻祖,至今它仍是最通用的一種秤3。第一次世界大戰(zhàn)后,由于金融貿(mào)易和工業(yè)發(fā)展的需要,急需能進(jìn)行快速稱量的衡器。機(jī)械式衡器在此期間得到很大的發(fā)展。當(dāng)時(shí)以傾斜杠桿案稱占絕大多數(shù),讀數(shù)裝置除扇形

3、度盤外,還有滾筒形度盤,從而擴(kuò)大了讀數(shù)范圍并可附加價(jià)格標(biāo)尺。以后又出現(xiàn)了用于工業(yè)的帶雙擺錘測(cè)量機(jī)構(gòu)的圓形度盤指針式秤和成本低廉、帶投影標(biāo)尺的傾斜式杠桿秤4。第二次世界大戰(zhàn)后出現(xiàn)了電子衡器,它主要由稱重顯示控制器、稱重傳感器和電器控制等部分組成,其發(fā)展過程與其它事物一樣,經(jīng)歷了由簡(jiǎn)單到復(fù)雜、由粗糙到精密、由機(jī)械到機(jī)電結(jié)合再到全電子化、由單一功能到多功能的過程5。近30年以來,工藝流程中的現(xiàn)場(chǎng)稱量、配料定量稱重、以及產(chǎn)品質(zhì)量的監(jiān)測(cè)等工作,都離不開能輸出電信號(hào)的電子衡器。這是因?yàn)殡娮雍馄鞑粌H能給出質(zhì)量或重量值的信號(hào),而且也能作為總系統(tǒng)中的一個(gè)單元承擔(dān)著控制和檢驗(yàn)功能,從而推進(jìn)工業(yè)生產(chǎn)和貿(mào)易交往的自動(dòng)

4、化和合理化。電子衡器具有反應(yīng)速度快、測(cè)量范圍廣、應(yīng)用面廣、結(jié)構(gòu)簡(jiǎn)單、使用操作方便、信號(hào)遠(yuǎn)傳、便于計(jì)算機(jī)控制等特點(diǎn),計(jì)量精度高,而且實(shí)現(xiàn)了多功能、多用途。電子衡器已被廣泛應(yīng)用于各個(gè)行業(yè),近年來愈來愈多地參與到數(shù)據(jù)處理和過程控制之中,使現(xiàn)代稱重技術(shù)和數(shù)據(jù)系統(tǒng)成為工藝技術(shù)、儲(chǔ)運(yùn)技術(shù)、預(yù)包裝技術(shù)、收貨業(yè)務(wù)及商業(yè)銷售領(lǐng)域中不可缺少的組成部分6。13 我國電子秤的發(fā)展現(xiàn)狀電子秤是載于秤的臺(tái)座、盤、鉤上的物品的重量由傳感器蠕變反應(yīng)平衡,而由儀器數(shù)字顯示的電子衡器。電子秤集機(jī)、電、儀于一體,具有多功能、高精度、快速和動(dòng)態(tài)計(jì)量、穩(wěn)定可靠等特征,代表了衡器產(chǎn)品發(fā)展的方向。電子秤屬于日用衡器,為勞動(dòng)密集型產(chǎn)品7。電

5、子秤產(chǎn)品總的發(fā)展趨勢(shì)是小型化、模塊化、集成化、智能化;其技術(shù)性能趨向是速率高、準(zhǔn)確度高、穩(wěn)定性高、可靠性高;其功能趨向是稱重計(jì)量的控制信息和非控制信息并重的“智能化”功能;其應(yīng)用性能趨向于綜合性和組合性8。目前我國產(chǎn)品標(biāo)準(zhǔn)中列入的十大類衡器(案秤、臺(tái)秤、地上衡、地中衡、吊稱、皮帶秤、料斗秤、檢驗(yàn)秤、軌道衡和特種秤)均已實(shí)現(xiàn)了電子化。據(jù)近期統(tǒng)計(jì),工業(yè)用衡器(按銷售量統(tǒng)計(jì))中的電子產(chǎn)品已占三分之二左右,技術(shù)水平比較成熟的靜態(tài)衡器的計(jì)量范圍可以從1g到800t,部分非自動(dòng)衡器(如電子計(jì)價(jià)秤、電子臺(tái)秤、電子地上衡、電子皮帶秤、電子吊秤和電子軌道衡等)已達(dá)到國際九十年代初期水平,有的產(chǎn)品達(dá)到了九十年代中

6、期水平;由于近十年來電子技術(shù)的迅速發(fā)展,商用衡器的加工能力迅速增長,產(chǎn)品成本大幅度降低,市場(chǎng)穩(wěn)步發(fā)展?,F(xiàn)在,電子計(jì)量稱重技術(shù)已越來越多地應(yīng)用于工業(yè)生產(chǎn)過程控制中,電子衡器的功能及應(yīng)用拓展到更廣泛領(lǐng)域。隨著我國加入wto組織,經(jīng)濟(jì)市場(chǎng)的開放度加大,一批具有國際先進(jìn)水平的衡器產(chǎn)品和技術(shù)(如定量包裝秤、自動(dòng)重量檢測(cè)秤、標(biāo)簽計(jì)價(jià)秤、電腦組合秤、耐壓式計(jì)量給煤機(jī)等,以及應(yīng)變計(jì)、稱重傳感器、稱重顯示器生產(chǎn)技術(shù))進(jìn)入我國,這對(duì)電子秤的進(jìn)一步普及和提高必將產(chǎn)生積極的、巨大的影響9。14 電子秤軟件設(shè)計(jì)實(shí)現(xiàn)的意義電子秤軟件的設(shè)計(jì),它主要由電源、稱重傳感器、單片機(jī)、lcd顯示器等部分構(gòu)成。新型便攜式電子秤體積小、

7、計(jì)量準(zhǔn)確、攜帶方便、操作簡(jiǎn)單、稱量速度快,能夠滿足商業(yè)貿(mào)易和居民家庭的使用需求,具有廣闊的應(yīng)用前景10。電子稱重技術(shù)的發(fā)展規(guī)律就是不斷的加強(qiáng)基礎(chǔ)研究并擴(kuò)大應(yīng)用,擴(kuò)展新技術(shù)領(lǐng)域,向相鄰學(xué)科和行業(yè)滲透,綜合各種技術(shù)方法解決稱重計(jì)量、自動(dòng)控制、信息處理等問題。對(duì)某些商用電子計(jì)價(jià)秤而言,只具備稱重、計(jì)價(jià)、顯示、打印功能還遠(yuǎn)遠(yuǎn)不夠,現(xiàn)代商業(yè)系統(tǒng)還要求它能提供各種銷售信息,把稱重與管理自動(dòng)化緊密結(jié)合,使稱重、計(jì)價(jià)、進(jìn)庫、銷售管理一體化,實(shí)現(xiàn)管理自動(dòng)化。這就要求電子計(jì)價(jià)秤能與電子計(jì)算機(jī)聯(lián)網(wǎng),把稱重系統(tǒng)與計(jì)算機(jī)系統(tǒng)組成一個(gè)完整的綜合控制系統(tǒng),為現(xiàn)代商業(yè)貿(mào)易物流的高效率發(fā)展提供強(qiáng)有力的支持11。2 軟件設(shè)計(jì)的原

8、理和思路21 軟件設(shè)計(jì)原理電子秤設(shè)計(jì)過程遵循了簡(jiǎn)化硬件電路、以軟件代替硬件的設(shè)計(jì)原則,力求最大限度地減小儀器的體積和重量,降低儀器成本12。隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展及其廣泛應(yīng)用,遠(yuǎn)程控制以及數(shù)據(jù)采集系統(tǒng)多采用上位機(jī)和下位機(jī)的主從工作方式,由于串行通信具有高效可靠、價(jià)格便宜,遵循統(tǒng)一的標(biāo)準(zhǔn)等特點(diǎn),因而成為主要的通信手段。微機(jī)的分析處理能力較強(qiáng),有很好的人機(jī)界面和大容量的多種存儲(chǔ)方式,所以上位機(jī)一般采用微機(jī)。而單片機(jī)具有價(jià)格低,功能強(qiáng),抗干擾能力好,溫限寬和面向控制等特點(diǎn),所以下位機(jī)采用單片機(jī)來構(gòu)成主從式多機(jī)工作模式。在需要對(duì)采集的數(shù)據(jù)進(jìn)行分析處理或在遠(yuǎn)程需要對(duì)控制對(duì)象的控制過程進(jìn)行統(tǒng)計(jì)或有條件控

9、制時(shí),采用數(shù)據(jù)庫訪問技術(shù)能有效地解決這類問題13。軟件設(shè)計(jì)的總體思想是,根據(jù)預(yù)先編制的程序?qū)y(cè)量進(jìn)行控制,軟件設(shè)計(jì)采用模塊化結(jié)構(gòu)。根據(jù)儀器的設(shè)定功能,將軟件劃分為若干個(gè)功能相對(duì)獨(dú)立的模塊,主要有儀器主程序、系統(tǒng)初始化、中斷控制、重量讀取、lcd顯示、單片機(jī)與pc機(jī)串口通信模塊。22 軟件設(shè)計(jì)思路電子秤軟件設(shè)計(jì)包括兩大部分,上位機(jī)(pc機(jī))和下位機(jī)(單片機(jī))。串口通信的概念非常簡(jiǎn)單,串口按位(bit)發(fā)送和接收字節(jié)。盡管比按字節(jié)(byte)的并行通信慢,但是串口可以在使用一根線發(fā)送數(shù)據(jù)的同時(shí)用另一根線接收數(shù)據(jù)。它很簡(jiǎn)單并且能夠?qū)崿F(xiàn)遠(yuǎn)距離通信。比如ieee488定義并行通行狀態(tài)時(shí),規(guī)定設(shè)備線總長不

10、得超過20米,并且任意兩個(gè)設(shè)備間的長度不得超過2米;而對(duì)于串口而言,長度可達(dá)1200米。典型地,串口用于ascii碼字符的傳輸。通信使用3根線完成:地線、發(fā)送、接收。由于串口通信是異步的,端口能夠在一根線上發(fā)送數(shù)據(jù)同時(shí)在另一根線上接收數(shù)據(jù)。其他線用于握手,但是不是必須的。串口通信最重要的參數(shù)是波特率、數(shù)據(jù)位、停止位和奇偶校驗(yàn)。對(duì)于兩個(gè)進(jìn)行通行的端口,這些參數(shù)必須匹配14。(1)波特率:這是一個(gè)衡量通信速度的參數(shù)。它表示每秒鐘傳送的bit的個(gè)數(shù)。例如300波特表示每秒鐘發(fā)送300個(gè)bit。當(dāng)我們提到時(shí)鐘周期時(shí),我們就是指波特率例如如果協(xié)議需要4800波特率,那么時(shí)鐘是4800hz。這意味著串口通

11、信在數(shù)據(jù)線上的采樣率為4800hz。通常電話線的波特率為14400,28800和36600。波特率可以遠(yuǎn)遠(yuǎn)大于這些值,但是波特率和距離成反比。高波特率常常用于放置的很近的儀器間的通信,典型的例子就是gpib設(shè)備的通信。(2)數(shù)據(jù)位:這是衡量通信中實(shí)際數(shù)據(jù)位的參數(shù)。當(dāng)計(jì)算機(jī)發(fā)送一個(gè)信息包,實(shí)際的數(shù)據(jù)不會(huì)是8位的,標(biāo)準(zhǔn)的值是5、7和8位。如何設(shè)置取決于你想傳送的信息。比如,標(biāo)準(zhǔn)的ascii碼是0127(7位)。擴(kuò)展的ascii碼是0255(8位)。如果數(shù)據(jù)使用簡(jiǎn)單的文本(標(biāo)準(zhǔn) ascii碼),那么每個(gè)數(shù)據(jù)包使用7位數(shù)據(jù)。每個(gè)包是指一個(gè)字節(jié),包括開始/停止位,數(shù)據(jù)位和奇偶校驗(yàn)位。由于實(shí)際數(shù)據(jù)位取決于

12、通信協(xié)議的選取,術(shù)語“包”指任何通信的情況。(3)停止位:用于表示單個(gè)包的最后一位。典型的值為1,1.5和2位。由于數(shù)據(jù)是在傳輸線上定時(shí)的,并且每一個(gè)設(shè)備有其自己的時(shí)鐘,很可能在通信中兩臺(tái)設(shè)備間出現(xiàn)了小小的不同步。因此停止位不僅僅是表示傳輸?shù)慕Y(jié)束,并且提供計(jì)算機(jī)校正時(shí)鐘同步的機(jī)會(huì)。適用于停止位的位數(shù)越多,不同時(shí)鐘同步的容忍程度越大,但是數(shù)據(jù)傳輸率同時(shí)也越慢。(4)奇偶校驗(yàn)位:在串口通信中一種簡(jiǎn)單的檢錯(cuò)方式。有四種檢錯(cuò)方式:偶、奇、高和低。當(dāng)然沒有校驗(yàn)位也是可以的。對(duì)于偶和奇校驗(yàn)的情況,串口會(huì)設(shè)置校驗(yàn)位(數(shù)據(jù)位后面的一位),用一個(gè)值確保傳輸?shù)臄?shù)據(jù)有偶個(gè)或者奇?zhèn)€邏輯高位。例如,如果數(shù)據(jù)是011,那

13、么對(duì)于偶校驗(yàn),校驗(yàn)位為0,保證邏輯高的位數(shù)是偶數(shù)個(gè)。如果是奇校驗(yàn),校驗(yàn)位位1,這樣就有3個(gè)邏輯高位。高位和低位不真正的檢查數(shù)據(jù),簡(jiǎn)單置位邏輯高或者邏輯低校驗(yàn)。這樣使得接收設(shè)備能夠知道一個(gè)位的狀態(tài),有機(jī)會(huì)判斷是否有噪聲干擾了通信或者是否傳輸和接收數(shù)據(jù)是否不同步15。2.2.1 軟件設(shè)計(jì)上位機(jī)(pc機(jī))部分上位機(jī)程序的編寫是通過visual basic 6.0軟件實(shí)現(xiàn)的。visual basic 6.0以其強(qiáng)大的功能、使用簡(jiǎn)單、能在短時(shí)間內(nèi)開發(fā)出高效的通信程序而成為windows系統(tǒng)開發(fā)的主要編程語言。首先表現(xiàn)在vb可直接使用戶自定義控件vbx或ocx文件;其次表現(xiàn)在vb可通過調(diào)用動(dòng)態(tài)鏈接庫(dl

14、l,dynamic link library)來加快應(yīng)用程序關(guān)鍵部分的執(zhí)行速度。利用vb提供的這些功能可方便地完成程序設(shè)計(jì),本設(shè)計(jì)將利用vb6.0通信控件mscomm .vbx及其編程方法,編寫計(jì)算機(jī)與單片機(jī)進(jìn)行數(shù)據(jù)通信的基本程序。 vb提供的通信控件mscomm32.ocx,使用前只需從project菜單下的components中選擇microsoft comm control6.0把mscomm32.ocx控件調(diào)入工具框中即可使用。利用該控件可對(duì)串行通信的數(shù)據(jù)發(fā)送和接收進(jìn)行設(shè)置,還可對(duì)串口狀態(tài)及串行通信的信息格式和協(xié)議進(jìn)行設(shè)置。在通信過程中可以通過觸發(fā)oncomm事件來追蹤、處理通信和錯(cuò)誤

15、事件的發(fā)生。由于每個(gè)通信控件對(duì)應(yīng)一個(gè)串口,如果要訪問多個(gè)通信口,則要設(shè)計(jì)多個(gè)通信控件16。通信控件mscomm32.ocx提供了兩種處理通信的方法: (1)事件驅(qū)動(dòng)方式它是一種功能很強(qiáng)的處理串行通信問題的方法,在實(shí)際工作中,往往要處理許多通信中的相關(guān)事件,可通過對(duì)oncomm屬性值進(jìn)行編程來處理,它也包括檢測(cè)和處理通信錯(cuò)誤等方面的問題,commevent值返回最近的通信事件或錯(cuò)誤的數(shù)字代碼17。 (2)查詢方式 在每個(gè)重要的程序功能之后檢查commevent屬性值來檢測(cè)事件和通信錯(cuò)誤。這種方式常用于應(yīng)用程序較簡(jiǎn)單和相對(duì)獨(dú)立的應(yīng)用程序設(shè)計(jì)中。 通信控件的基本屬性 為支持串行通信的實(shí)現(xiàn),vb6.0

16、中mscomm控件提供了眾多的串行通信屬性,主要有:commport:設(shè)置和返回pc機(jī)串行端口號(hào);settings:初始化傳輸波特率、奇偶校驗(yàn)位、數(shù)據(jù)位寬度和停止位寬度;input:從輸入緩沖區(qū)中讀取數(shù)據(jù);inputlen:輸入緩沖區(qū)數(shù)據(jù)長度;inputmode:輸入模式,ascii字符或二進(jìn)制數(shù)據(jù);output:將數(shù)據(jù)寫入輸出緩沖區(qū);inbuffersize:設(shè)置并返回接收緩沖區(qū)的字節(jié)數(shù);outbuffersize:設(shè)置并返回輸出緩沖區(qū)的字節(jié)數(shù);portopen:布爾型,用于打開或關(guān)閉串行通信端口;oncomm:在發(fā)生通訊事件或錯(cuò)誤時(shí),將觸發(fā)oncomm事件,commevent屬性值將被改變

17、;rthreshold:引發(fā)接收事件的字節(jié)數(shù),為0時(shí)不引發(fā)接收事件;sthreshold:引發(fā)發(fā)送事件的字節(jié)數(shù),為0時(shí)不引發(fā)發(fā)送事件。以下程序分別是獲取重量、顯示重量和繪制曲線的重要程序。獲取重量測(cè)量值并顯示每發(fā)送一次指令,觸發(fā)下面事件,返回?cái)?shù)據(jù)串private sub mscomm1_oncomm() dim inbyte() as byte dim buffer as string dim datatemp2a, datatemp2b as string dim datatemp2 as string if num 199 then call renew 讀取儀表返回?cái)?shù)據(jù)串 select

18、case mscomm1.commevent case comevreceive inbyte = mscomm1.input for i = lbound(inbyte) to ubound(inbyte) buffer = buffer + hex(inbyte(i) + chr(32) next i case comevsend end select顯示測(cè)量重量值 if datatemp(num) 0 then grid.col = 1: grid.row = num + 1 grid.text = format$(datatemp(num), 000) temptext = forma

19、t$(datatemp(num), 000) 10進(jìn)制顯示,保留一位小數(shù) text2.text = datatemp2 16進(jìn)制顯示 num = num + 1 call draw 調(diào)用繪曲線過程 end ifend sub繪制重量實(shí)時(shí)變化曲線private sub draw() picture1.cls picture1.drawwidth = 1 picture1.backcolor = qbcolor(15) picture1.scale (-10, 100)-(200, 0) for i = 1 to num - 1 x1 = (i - 1): y1 = datatemp(i - 1)

20、 x2 = i: y2 = datatemp(i) picture1.line (x1, y1)-(x2, y2), qbcolor(12) next iend sub本設(shè)計(jì)中的上位機(jī)(pc機(jī))通信界面,如圖2.1所示。圖2.1 上位機(jī)(pc機(jī))通信界面2.2.2 軟件設(shè)計(jì)下位機(jī)(單片機(jī))部分下位機(jī)程序部分是用c語言編寫的。c語言是一種計(jì)算機(jī)程序設(shè)計(jì)語言,它既具有高級(jí)語言的特點(diǎn),又具有匯編語言的特點(diǎn)。它可以作為工作系統(tǒng)設(shè)計(jì)語言,編寫系統(tǒng)應(yīng)用程序,也可以作為應(yīng)用程序設(shè)計(jì)語言,編寫不依賴計(jì)算機(jī)硬件的應(yīng)用程序。因此,它的應(yīng)用范圍廣泛,不僅僅是在軟件開發(fā)上,而且各類科研都需要用到c語言,具體應(yīng)用比如單

21、片機(jī)以及嵌入式系統(tǒng)開發(fā)。編寫本部分程序是利用keil軟件進(jìn)行的,圖2.2就是keil c51集成開發(fā)環(huán)境。圖2.2 keil c51集成開發(fā)環(huán)境c語言具有如下五大特點(diǎn):(1)c是中級(jí)語言。它把高級(jí)語言的基本結(jié)構(gòu)和語句與低級(jí)語言的實(shí)用性結(jié)合起來。c 語言可以像匯編語言一樣對(duì)位、字節(jié)和地址進(jìn)行操作, 而這三者是計(jì)算機(jī)最基本的工作單元。(2)c是結(jié)構(gòu)式語言。結(jié)構(gòu)式語言的顯著特點(diǎn)是代碼及數(shù)據(jù)的分隔化,即程序的各個(gè)部分除了必要的信息交流外彼此獨(dú)立。這種結(jié)構(gòu)化方式可使程序?qū)哟吻逦阌谑褂?、維護(hù)以及調(diào)試。c 語言是以函數(shù)形式提供給用戶的,這些函數(shù)可方便的調(diào)用,并具有多種循環(huán)、條件語句控制程序流向,從而使程

22、序完全結(jié)構(gòu)化。(3)c語言功能齊全。具有各種各樣的數(shù)據(jù)類型,并引入了指針概念,可使程序效率更高。另外c語言也具有強(qiáng)大的圖形功能,支持多種顯示器和驅(qū)動(dòng)器。而且計(jì)算功能、邏輯判斷功能也比較強(qiáng)大,可以實(shí)現(xiàn)決策目的的游戲。(4)c語言適用范圍大。適合于多種操作系統(tǒng),如windows、dos、unix等等;也適用于多種機(jī)型。(5)c語言文件由數(shù)據(jù)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件。結(jié)構(gòu)化程序就是用高級(jí)語言表示的結(jié)構(gòu)化算法。結(jié)構(gòu)化程序設(shè)計(jì)的思路是,把復(fù)雜問題分解成一些容易理解和處理的小問題,而這些小問題在結(jié)構(gòu)安排上、組合層次上都有自己的準(zhǔn)確定位,每一個(gè)小問題的解決都為這一復(fù)雜問題的解決服務(wù)。如何合理地

23、在算法上這些小問題加以考慮和在結(jié)構(gòu)上作正確的安排是解決復(fù)雜問題必須面對(duì)的關(guān)鍵問題18。解決復(fù)雜問題首先應(yīng)該進(jìn)行模塊的劃分,把一個(gè)較大的問題劃分為若干個(gè)功能模塊,每一個(gè)功能模塊相對(duì)獨(dú)立;每一個(gè)模塊又可繼續(xù)劃分為更小的模塊。經(jīng)過模塊劃分后,會(huì)使得程序具有一種層次結(jié)構(gòu)。現(xiàn)階段,模塊化程序設(shè)計(jì)主要有以下兩種設(shè)計(jì)方法。1、自頂向下自頂向下程序設(shè)計(jì)是先設(shè)計(jì)第一層(即頂層),然后步步深入,逐層細(xì)分,逐步求精,直到整個(gè)問題可用程序設(shè)計(jì)語言明確地描述出來為止。(1)步驟:首先對(duì)問題進(jìn)行仔細(xì)分析,確定其輸入、輸出數(shù)據(jù),寫出程序運(yùn)行的主要過程和任務(wù);然后從大的功能方面把一個(gè)問題的解決過程分成幾個(gè)問題,每個(gè)子問題形成

24、一個(gè)模塊。(2)特點(diǎn):先整體后局部,先抽象后具體。2、自底向上自底向上程序設(shè)計(jì)是先設(shè)計(jì)底層,最后設(shè)計(jì)頂層。(1)優(yōu)點(diǎn):由表及里、由淺入深地解決問題。(2)不足:在逐步細(xì)化的過程中,可能發(fā)現(xiàn)原來的分解細(xì)化不夠完善。程序設(shè)計(jì)的步驟可簡(jiǎn)單概括如下。(1)分析問題。對(duì)于待解決的問題,通過分析,明確題目的要求,列出所有已知量、未知量,找出題目的求解范圍、解的精度等。(2)建立數(shù)學(xué)模型。對(duì)實(shí)際問題進(jìn)行分析之后,找出它的內(nèi)在規(guī)律,就可以建立數(shù)學(xué)模型。只有建立了模型的問題,才有可能利用計(jì)算機(jī)來解決。(3)確定算法。建立數(shù)學(xué)模型后,還不能著手編程序,必須根據(jù)數(shù)據(jù)結(jié)構(gòu),設(shè)計(jì)問題的算法。一般設(shè)計(jì)算法要注意:算法的邏

25、輯結(jié)構(gòu)盡可能簡(jiǎn)單;除了要滿足算法的基本要求外,還應(yīng)注意以下問題。算法所要求的存儲(chǔ)量應(yīng)盡可能地少。避免不必要的循環(huán),減少算法的執(zhí)行時(shí)間。在滿足題目條件要求下,使所需的計(jì)算量最小。(4)編寫程序。把整個(gè)程序看作一個(gè)整體,先全局后局部,自頂向下,一層一層分解處理,如果某些問題的算法相同而僅參數(shù)不同,可以用模塊化的方式來實(shí)現(xiàn)。(5)調(diào)試運(yùn)行。(6)分析結(jié)果。(7)寫出程序的文檔。文檔主要是對(duì)程序中的變量、函數(shù)或過程作必要的說明,解釋編程思路,畫出程序流程圖,討論運(yùn)行結(jié)果等。面對(duì)一項(xiàng)復(fù)雜的任務(wù),通常采取模塊化的解決方法。首先,分解該復(fù)雜任務(wù)成幾個(gè)大的功能模塊,根據(jù)需要還可以繼續(xù)細(xì)分,直到分解成一個(gè)個(gè)功能

26、獨(dú)立的模塊為止。分解的結(jié)果可以描述為一棵倒立的大樹,其中大任務(wù)類似于樹根,中間層的小任務(wù)類似于樹枝,最小的小任務(wù)類似于樹葉。其次,對(duì)最小的模塊單獨(dú)編寫程序代碼并調(diào)試。最后,把這些最小的模塊按原來分解的逆序組合成最初的大任務(wù)。模塊化解決問題的實(shí)際方法可簡(jiǎn)單描述為拆分編碼組裝。這樣做可以使復(fù)雜問題簡(jiǎn)單化,同時(shí)可以達(dá)到程序結(jié)構(gòu)清晰、層次分明、程序便于編寫、便于維護(hù)的目的。任務(wù)中模塊的功能可以用高級(jí)語言的子程序或函數(shù)來實(shí)現(xiàn)19。函數(shù)是構(gòu)成c語言程序的基本功能模塊,它完成一項(xiàng)相對(duì)獨(dú)立的任務(wù)。一個(gè)c語言程序是若干函數(shù)構(gòu)成的,在構(gòu)成c程序的諸多函數(shù)中有且只有一個(gè)主函數(shù)。函數(shù)是程序的最小組成單位。所有函數(shù)之間

27、的關(guān)系式平行的,沒有從屬的概念。函數(shù)的平行關(guān)系使得函數(shù)的編寫相對(duì)獨(dú)立,便于模塊化程序設(shè)計(jì)的實(shí)現(xiàn)。c程序的執(zhí)行總是從主函數(shù)開始,又從主函數(shù)結(jié)束,其他函數(shù)只有通過調(diào)用關(guān)系發(fā)生作用。在主函數(shù)執(zhí)行的過程中直接或間接調(diào)用其他函數(shù),并將程序的執(zhí)行控制權(quán)交給被調(diào)函數(shù),調(diào)用結(jié)束后,繼續(xù)執(zhí)行主函數(shù)直到結(jié)束,才能結(jié)束整個(gè)程序的執(zhí)行過程。c語言規(guī)定只允許主函數(shù)調(diào)用其他函數(shù),反之不能。函數(shù)之間可以互相調(diào)用,同一函數(shù)可以調(diào)用多個(gè)函數(shù),一個(gè)函數(shù)也可以被多個(gè)函數(shù)調(diào)用,函數(shù)也可以自己調(diào)用自己20。隨著結(jié)構(gòu)化程序設(shè)計(jì)方法的發(fā)展和廣泛的應(yīng)用,模塊化設(shè)計(jì)方法逐步成為結(jié)構(gòu)化程序設(shè)計(jì)方法的主流。模塊化設(shè)計(jì)方法的主要思想是將整個(gè)軟件系統(tǒng)

28、分解成若干個(gè)功能相對(duì)獨(dú)立的模塊,這些功能模塊可以單獨(dú)命名、單獨(dú)設(shè)計(jì)、單獨(dú)編程和調(diào)試。下位機(jī)(單片機(jī))程序主要包括系統(tǒng)初始化、中斷控制、重量讀取、lcd顯示、單片機(jī)與pc機(jī)串口通信等若干模塊程序。根據(jù)要求實(shí)現(xiàn)的功能和設(shè)計(jì)程序的順序,做出了如圖2.3所示的程序流程圖。ri=1計(jì)算重量定時(shí)550ms讀取頻率串口中斷開中斷開始receivea發(fā)送數(shù)據(jù)報(bào)警receivebri=0初始化lcd,串口軟件濾波lcd顯示圖2.3 程序流程圖3 電子秤軟件設(shè)計(jì)所使用的各類軟件介紹電子秤軟件設(shè)計(jì)所使用的軟件有proteus軟件、keil軟件、visual basic軟件開發(fā)工具、串口調(diào)試助手。31 proteus

29、軟件3.1.1 為什么選擇proteus軟件protues軟件是英國labcenter electronics公司出版的eda工具軟件。它不僅具有其它eda工具軟件的仿真功能,還能仿真單片機(jī)及外圍器件。它是目前最好的仿真單片機(jī)及外圍器件的工具。雖然目前國內(nèi)推廣剛起步,但已受到單片機(jī)愛好者、從事單片機(jī)教學(xué)的教師、致力于單片機(jī)開發(fā)應(yīng)用的科技工作者的青睞。proteus是世界上著名的eda工具(仿真軟件),從原理圖布圖、代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真,一鍵切換到pcb設(shè)計(jì),真正實(shí)現(xiàn)了從概念到產(chǎn)品的完整設(shè)計(jì)。是目前世界上唯一將電路仿真軟件、pcb設(shè)計(jì)軟件和虛擬模型仿真軟件三合一的設(shè)計(jì)平臺(tái),其處理器

30、模型支持8051、hc11、pic10/12/16/18/24/30/dspic33、avr、arm、8086和msp430等,2010年即將增加cortex和dsp系列處理器,并持續(xù)增加其他系列處理器模型21。protues軟件具有其它eda工具軟件(例:multisim)的功能。這些功能是:(1)原理布圖;(2)pcb自動(dòng)或人工布線;(3)spice電路仿真。protues軟件具有革命性的特點(diǎn):(1)互動(dòng)的電路仿真用戶甚至可以實(shí)時(shí)采用諸如ram,rom,鍵盤,馬達(dá),led,lcd,ad/da,部分spi器件,部分iic器件。(2)仿真處理器及其外圍電路可以仿真51系列、avr、pic、ar

31、m、等常用主流單片機(jī)。還可以直接在基于原理圖的虛擬原型上編程,再配合顯示及輸出,能看到運(yùn)行后輸入輸出的效果。圖3.1就是該軟件仿真環(huán)境。配合系統(tǒng)配置的虛擬邏輯分析儀、示波器等,protues建立了完備的電子設(shè)計(jì)開發(fā)環(huán)境。圖3.1 protues軟件仿真環(huán)境3.1.2 proteus軟件詳細(xì)介紹proteus軟件由isis和ares兩個(gè)軟件構(gòu)成,其中isis是一款便捷的電子系統(tǒng)仿真平臺(tái)軟件,并且是一個(gè)操作簡(jiǎn)便且功能強(qiáng)大的原理繪圖工具,它整合了spice的仿真模型,擁有超過8000個(gè)元件的龐大庫結(jié)構(gòu)。ares 是一款高級(jí)的布線編輯軟件,可將isis的仿真原理圖生成pcb版圖22。protues提供

32、了豐富的資源:(1)protues可提供的仿真元器件資源:仿真數(shù)字和模擬、交流和直流等數(shù)千種元器件,有30多個(gè)元件庫。(2)protues可提供的仿真儀表資源 :示波器、邏輯分析儀、虛擬終端、spi調(diào)試器、i2c調(diào)試器、信號(hào)發(fā)生器、模式發(fā)生器、交直流電壓表、交直流電流表。理論上同一種儀器可以在一個(gè)電路中隨意的調(diào)用。(3)除了現(xiàn)實(shí)存在的儀器外,protues還提供了一個(gè)圖形顯示功能,可以將線路上變化的信號(hào),以圖形的方式實(shí)時(shí)地顯示出來,其作用與示波器相似,但功能更多。這些虛擬儀器儀表具有理想的參數(shù)指標(biāo),例如極高的輸入阻抗、極低的輸出阻抗。這些都盡可能減少了儀器對(duì)測(cè)量結(jié)果的影響。(4)protues

33、可提供的調(diào)試手段 protues提供了比較豐富的測(cè)試信號(hào)用于電路的測(cè)試。這些測(cè)試信號(hào)包括模擬信號(hào)和數(shù)字信號(hào)。protues在仿真方面有很強(qiáng)的優(yōu)勢(shì),在protues繪制好原理圖后,調(diào)入已編譯好的目標(biāo)代碼文件:*.hex,可以在protues的原理圖中看到模擬的實(shí)物運(yùn)行狀態(tài)和過程。protues 是單片機(jī)課堂教學(xué)的先進(jìn)助手。protues不僅可將許多單片機(jī)實(shí)例功能形象化,也可將許多單片機(jī)實(shí)例運(yùn)行過程形象化。前者可在相當(dāng)程度上得到實(shí)物演示實(shí)驗(yàn)的效果,后者則是實(shí)物演示實(shí)驗(yàn)難以達(dá)到的效果。它的元器件、連接線路等卻和傳統(tǒng)的單片機(jī)實(shí)驗(yàn)硬件高度對(duì)應(yīng)。這在相當(dāng)程度上替代了傳統(tǒng)的單片機(jī)實(shí)驗(yàn)教學(xué)的功能,例:元器件選

34、擇、電路連接、電路檢測(cè)、電路修改、軟件調(diào)試、運(yùn)行結(jié)果等。課程設(shè)計(jì)、畢業(yè)設(shè)計(jì)是學(xué)生走向就業(yè)的重要實(shí)踐環(huán)節(jié)。由于protues提供了實(shí)驗(yàn)室無法相比的大量的元器件庫,提供了修改電路設(shè)計(jì)的靈活性、提供了實(shí)驗(yàn)室在數(shù)量、質(zhì)量上難以相比的虛擬儀器、儀表,因而也提供了培養(yǎng)學(xué)生實(shí)踐精神、創(chuàng)造精神的平臺(tái)隨著科技的發(fā)展,計(jì)算機(jī)仿真技術(shù)已成為許多設(shè)計(jì)部門重要的前期設(shè)計(jì)手段。它具有設(shè)計(jì)靈活,結(jié)果、過程的統(tǒng)一的特點(diǎn)。可使設(shè)計(jì)時(shí)間大為縮短、耗資大為減少,也可降低工程制造的風(fēng)險(xiǎn)。相信在單片機(jī)開發(fā)應(yīng)用中protues也能茯得愈來愈廣泛的應(yīng)用。32 keil軟件3.2.1 keil軟件開發(fā)背景單片機(jī)開發(fā)中除必要的硬件外,同樣離不

35、開軟件,我們寫的匯編語言源程序要變?yōu)閏pu可以執(zhí)行的機(jī)器碼有兩種方法,一種是手工匯編,另一種是機(jī)器匯編,目前已極少使用手工匯編的方法了。機(jī)器匯編是通過匯編軟件將源程序變?yōu)闄C(jī)器碼,用于mcs-51單片機(jī)的匯編軟件有早期的a51,隨著單片機(jī)開發(fā)技術(shù)的不斷發(fā)展,從普遍使用匯編語言到逐漸使用高級(jí)語言開發(fā),單片機(jī)的開發(fā)軟件也在不斷發(fā)展,keil軟件是目前最流行開發(fā)mcs-51系列單片機(jī)的軟件,這從近年來各仿真機(jī)廠商紛紛宣布全面支持keil即可看出。keil提供了包括c編譯器、宏匯編、連接器、庫管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個(gè)集成開發(fā)環(huán)境(uvision)將這些部份組合在一起。

36、運(yùn)行keil軟件需要pentium或以上的cpu,16mb或更多ram、20m以上空閑的硬盤空間、win98、nt、win2000、winxp等操作系統(tǒng)。掌握這一軟件的使用對(duì)于使用51系列單片機(jī)的人來說是十分必要的,如果你使用c語言編程,那么keil幾乎就是你的不二之選(目前在國內(nèi)你只能買到該軟件、而你買的仿真機(jī)也很可能只支持該軟件),即使不使用c語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強(qiáng)大的軟件仿真調(diào)試工具也會(huì)令你事半功倍。3.2.2 keil軟件綜述keil c51是美國keil software公司出品的51系列兼容單片機(jī)c語言軟件開發(fā)系統(tǒng),與匯編相比,c語言在功能上、結(jié)構(gòu)性、可讀

37、性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。用過匯編語言后再使用c來開發(fā),體會(huì)更加深刻。keil c51軟件提供豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全windows界面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會(huì)到keil c51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語言的優(yōu)勢(shì)23。3.2.3 keil c51單片機(jī)軟件開發(fā)系統(tǒng)的整體結(jié)構(gòu)c51工具包的整體結(jié)構(gòu),如圖3.2所示,其中uvision是c51 for windows的集成開發(fā)環(huán)境(ide),可以完成編輯、編譯、連接、調(diào)試、仿真等整個(gè)開發(fā)流程。開發(fā)人員可用id

38、e本身或其它編輯器編輯c或匯編源文件。然后分別由c51及a51編譯器編譯生成目標(biāo)文件(.obj)。目標(biāo)文件可由lib51創(chuàng)建生成庫文件,也可以與庫文件一起經(jīng)l51連接定位生成絕對(duì)目標(biāo)文件(.abs)。abs文件由oh51轉(zhuǎn)換成標(biāo)準(zhǔn)的hex文件,以供調(diào)試器dscope51或tscope51使用進(jìn)行源代碼級(jí)調(diào)試,也可由仿真器使用直接對(duì)目標(biāo)板進(jìn)行調(diào)試,也可以直接寫入程序存貯器如eprom中。圖3.2 keil c51集成開發(fā)環(huán)境3.2.4 如何正確使用keil軟件keil軟件支持c 語言和匯編語言編寫程序,并且成功的將編譯和仿真軟件統(tǒng)一為vision。keil 提供包括c 編譯器、宏匯編、連接器、庫

39、管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,由以下幾部分組成:vision ide 集成開發(fā)環(huán)境(包括工程管理器、源程序編輯器、程序調(diào)試器)、c51 編譯器、a51 匯編器、lib51 庫管理器、bl51 連接/定位器、oh51 目標(biāo)文件生成器以及monitor-51、rtx51 實(shí)時(shí)操作系統(tǒng)。應(yīng)用keil 進(jìn)行軟件程序編寫的主要步驟為:編寫源程序并保存、建立工程并添加源文件、設(shè)置工程、編譯/匯編、連接、產(chǎn)生目標(biāo)文件、程序調(diào)試。keil 使用“工程”(project)的概念,對(duì)工程進(jìn)行編譯/匯編、連接等操作。工程的建立、設(shè)置、編譯/匯編及連接產(chǎn)生目標(biāo)文件的方法如下:(1)選擇菜單fil

40、enew,在源程序編輯器中輸入?yún)R編語言或c 語言源程序(或選擇fileopen,直接打開已用其他編輯器編輯好的源程序文檔)并保存,注意保存時(shí)必須在文件名后加上擴(kuò)展名.asm(.a51)或.c;(2)選擇菜單projectnew project,建立新工程并保存(保存時(shí)無需加擴(kuò)展名,也可加上擴(kuò)展名.uv2);(3)工程保存后會(huì)立即彈出一個(gè)設(shè)備選擇對(duì)話框,選擇cpu 后點(diǎn)確定返回主界面。這時(shí)工程管理窗口的文件頁(files)會(huì)出現(xiàn)“target1”,將其前面+號(hào)展開,接著選擇source group1,右擊鼠標(biāo)彈出快捷菜單,選擇“add file to group source group1”,出

41、現(xiàn)一個(gè)對(duì)話框,要求尋找并加入源文件(在加入一個(gè)源文件后,該對(duì)話框不會(huì)消失,而是等待繼續(xù)加入其他文件);(4)加入文件后點(diǎn)close 返回主界面,展開“source group1”前面+號(hào),就會(huì)看到所加入的文件,雙擊文件名,即可打開該源程序文件;(5)對(duì)工程進(jìn)行設(shè)置,通過選擇工程管理窗口的target1,再選擇projectoptionfor target target1,打開工程屬性對(duì)話框,共有8 個(gè)選項(xiàng)卡,這些設(shè)置工作包括在target 選項(xiàng)卡中設(shè)置晶振頻率、在debug 選項(xiàng)卡中設(shè)置實(shí)驗(yàn)仿真板等,如要寫片,還必須在output 選項(xiàng)卡中選中“creat hex fi”;其他選項(xiàng)卡內(nèi)容一般可

42、取默認(rèn)值。工程設(shè)置結(jié)束后進(jìn)行編譯/匯編、連接以及產(chǎn)生目標(biāo)文件。(6)成功編譯/匯編、連接后,選擇菜單debugstart/stop debug session(或按ctrl+f5 鍵)進(jìn)入程序調(diào)試狀態(tài),keil 提供對(duì)程序的模擬調(diào)試功能,內(nèi)建一個(gè)功能強(qiáng)大的仿真cpu 以模擬執(zhí)行程序。keil 能以單步執(zhí)行(按f11 或選擇debugstep)、過程單步執(zhí)行(按f10 或選擇debugstep over)、全速執(zhí)行等多種運(yùn)行方式進(jìn)行程序調(diào)試。如果發(fā)現(xiàn)程序有錯(cuò),可采用在線匯編功能對(duì)程序進(jìn)行在線修改(debuginline assambly),不必執(zhí)行先退出調(diào)試環(huán)境、修改源程序、對(duì)工程重新進(jìn)行編譯/

43、匯編和連接、然后再次進(jìn)入調(diào)試狀態(tài)的步驟。對(duì)于一些必須滿足一定條件(如按鍵被按下等)才能被執(zhí)行的、難以用單步執(zhí)行方式進(jìn)行調(diào)試的程序行,可采用斷點(diǎn)設(shè)置的方法處理(debuginsert/remove breakpoint 或debugbreakpoints等)。在模擬調(diào)試程序后,還須通過編程器將.hex 目標(biāo)文件燒寫入單片機(jī)中才能觀察目標(biāo)樣機(jī)真實(shí)的運(yùn)行狀況。33 visual basic軟件開發(fā)工具3.3.1 visual basic的發(fā)展basic是20世紀(jì)60年代由美國達(dá)特茅斯大學(xué)的兩位教授共同設(shè)計(jì)的計(jì)算機(jī)程序設(shè)計(jì)語言,其全稱是beginners all-purpose symbolic in

44、struction code,意為“初學(xué)者通用的符號(hào)指令代碼”,是國際上廣泛使用的一種計(jì)算機(jī)高級(jí)語言。basic語言簡(jiǎn)單易學(xué)、人機(jī)交互容易、程序調(diào)試簡(jiǎn)便,目前仍是計(jì)算機(jī)程序設(shè)計(jì)初學(xué)者入門學(xué)習(xí)的主要語言之一24。1964年basic語言問世時(shí),它只有十幾條指令組成,隨后經(jīng)過了幾十年的發(fā)展歷程,其功能和界面也在不斷更新。到了20世紀(jì)80年代中至20世紀(jì)90年代初,結(jié)構(gòu)化basic語言出現(xiàn)了,其對(duì)前面版本進(jìn)行了較大的擴(kuò)充,并且增加了數(shù)據(jù)類型和程序控制結(jié)構(gòu)。特別是20世紀(jì)90年代初,由于windows操作平臺(tái)的出現(xiàn),pc的操作方式開始由命令方式向圖形方式轉(zhuǎn)變,圖形用戶界面程序設(shè)計(jì)語也言應(yīng)運(yùn)而生visu

45、al basic程序設(shè)計(jì)語言。1991年,微軟推出了visual basic 1.0版,它是第一個(gè)“可視”的編程軟件。這使得程序員都嘗試在visual basic的平臺(tái)上進(jìn)行軟件創(chuàng)作。隨著windows操作平臺(tái)的不斷成熟,visual basic產(chǎn)品由1.0版本升級(jí)到3.0版,利用visual basic 3.0產(chǎn)品可以非常快速地創(chuàng)建各種應(yīng)用程序,如多媒體應(yīng)用程序,各種圖形操作界面等,且從visual basic 3.0開始,微軟將access的數(shù)據(jù)庫驅(qū)動(dòng)集成到了visual basic中,大大提高了visual basic的在數(shù)據(jù)庫方面的編程能力。在visual basic4.0版本中,提供

46、了創(chuàng)建自定義類模塊,屬性及過程功能,利用這些功能,用戶可以創(chuàng)建自定義類和對(duì)象;還提供了強(qiáng)大的數(shù)據(jù)庫管理能力,通過dao模型和odbc,用戶可以訪問任何一種類型的數(shù)據(jù)庫。隨著互聯(lián)網(wǎng)的出現(xiàn)和迅速發(fā)展,微軟公司推出了activex技術(shù),并且將這一技術(shù)引入到了visual basic 6.0版本中,visual basic 6.0在面向?qū)ο缶幊痰募夹g(shù)上也做了許多擴(kuò)展,用戶可以自定義對(duì)象所處理的事件,還可以定義構(gòu)造函數(shù)和析構(gòu)函數(shù)。此外,visual basic 6.0還提供了用組件編程的概念,實(shí)際上是對(duì)象編程的擴(kuò)展。目前,visual basic已經(jīng)成為一種真正專業(yè)化的開發(fā)語言,用戶不僅可以用visua

47、l basic快速創(chuàng)建windows程序,還可以編寫企業(yè)水平的客戶/服務(wù)器程序和強(qiáng)大的數(shù)據(jù)庫應(yīng)用程序3.3.2 visual basic的特點(diǎn)visual指的是可視化、圖形化的應(yīng)用程序開發(fā)方法,它不需要編寫大量代碼去描述界面元素的外觀和位置,而只要把預(yù)先建立的對(duì)象拖放到窗口的適當(dāng)位置上即可,這是visual basic最顯著的特點(diǎn)。visual basic是一個(gè)強(qiáng)大的在 windows平臺(tái)上使用的開發(fā)工具,從開發(fā)個(gè)人或小組使用的小工具,到大型企業(yè)應(yīng)用系統(tǒng),甚至通過internet遍及全球的分布式應(yīng)用軟件,都可以使用visual basic語言進(jìn)行開發(fā)。visual basic有著廣泛的應(yīng)用,具

48、有以下幾個(gè)主要特點(diǎn):(1)真正的面向?qū)ο缶幊?,使開發(fā)人員在維護(hù)系統(tǒng)運(yùn)行時(shí)只需要修改很少的代碼,同時(shí)也加快了系統(tǒng)開發(fā)的速度。(2)可視化的編程方法,以及向?qū)У墓δ?,使開發(fā)人員幾乎不用輸入太多的代碼就可以開發(fā)windows程序。(3)數(shù)據(jù)訪問特性允許對(duì)包括microsoft sql server和其他企業(yè)數(shù)據(jù)庫在內(nèi)的大部分?jǐn)?shù)據(jù)庫格式建立數(shù)據(jù)庫和前端應(yīng)用程序。(4)通過activex技術(shù)可以廣泛地使用其他應(yīng)用程序程序提供的功能,例如,microsoft word字處理軟件,microsoft excel電子表格及其他 windows應(yīng)用程序,甚至可以直接使用visual basic創(chuàng)建應(yīng)用程序和對(duì)象

49、。(5)支持internet,很容易通過internet訪問文檔和應(yīng)用程序。(6)已經(jīng)完成的應(yīng)用程序是真正的*.exe文件,并提供運(yùn)行時(shí)的可自由發(fā)布的動(dòng)態(tài)鏈接庫(dll)。3.3.3 visual basic的語言特性vb的中心思想就是要便于使用,無論是新手或者專家。vb使用了可以簡(jiǎn)單建立應(yīng)用程序的gui系統(tǒng),但是又可以開發(fā)相當(dāng)復(fù)雜的程序。vb的程序是一種基于窗體的可視化組件安排的聯(lián)合,并且增加代碼來指定組件的屬性和方法。因?yàn)槟J(rèn)的屬性和方法已經(jīng)有一部分定義在了組件內(nèi),所以程序員不用寫多少代碼就可以完成一個(gè)簡(jiǎn)單的程序。過去的版本里面vb程序的性能問題一直被放在了桌面上,但是隨著計(jì)算機(jī)速度的飛速

50、增加,關(guān)于性能的爭(zhēng)論已經(jīng)越來越少。窗體控件的增加和改變可以用拖放技術(shù)實(shí)現(xiàn)。一個(gè)排列滿控件的工具箱用來顯示可用控件(比如文本框或者按鈕)。每個(gè)控件都有自己的屬性和事件。默認(rèn)的屬性值會(huì)在控件創(chuàng)建的時(shí)候提供,但是程序員也可以進(jìn)行更改。很多的屬性值可以在運(yùn)行時(shí)候隨著用戶的動(dòng)作和修改進(jìn)行改動(dòng),這樣就形成了一個(gè)動(dòng)態(tài)的程序。舉個(gè)例子來說:窗體的大小改變事件中加入了可以改變控件位置的代碼,在運(yùn)行時(shí)候每當(dāng)用戶更改窗口大小,控件也會(huì)隨之改變位置。在文本框中的文字改變事件中加入相應(yīng)的代碼,程序就能夠在文字輸入的時(shí)候自動(dòng)翻譯或者阻止某些字符的輸入。vb的程序可以包含一個(gè)或多個(gè)窗體,或者是一個(gè)主窗體和多個(gè)子窗體,類似于

51、操作系統(tǒng)的樣子。有很少功能的對(duì)話框窗口(比如沒有最大化和最小化按鈕的窗體)可以用來提供彈出功能。vb的組件既可以擁有用戶界面,也可以沒有。這樣一來服務(wù)器端程序就可以處理增加的模塊。vb使用參數(shù)計(jì)算的方法來進(jìn)行垃圾收集,這個(gè)方法中包含有大量的對(duì)象,提供基本的面向?qū)ο笾С?。因?yàn)樵絹碓蕉嘟M建的出現(xiàn),程序員可以選用自己需要的擴(kuò)展庫。和有些語言不一樣,vb對(duì)大小寫不敏感,但是能自動(dòng)轉(zhuǎn)換關(guān)鍵詞到標(biāo)準(zhǔn)的大小寫狀態(tài),以及強(qiáng)制使得符號(hào)表入口的實(shí)體的變量名稱遵循書寫規(guī)則。默認(rèn)情況下字符串的比較是對(duì)大小寫敏感的,但是可以關(guān)閉這個(gè)功能25。vb使得大量的外界控件有了自己的生存空間。大量的第三方控件針對(duì)vb提供。vb也

52、提供了建立、使用和重用這些控件的方法,但是由于語言問題,從一個(gè)應(yīng)用程序創(chuàng)建另外一個(gè)并不簡(jiǎn)單。3.3.4 visual basic 6.0軟件的主要功能介紹visual basic 6.0軟件的主要功能如下:(1)集成的可視化數(shù)據(jù)庫工具:visual basic 6.0提供一整套工具以便任何應(yīng)用程序中集成數(shù)據(jù)庫??梢詠碓O(shè)計(jì)和修改sql server,oracle8.0或以上版本及as/400的數(shù)據(jù)庫。(2)數(shù)據(jù)環(huán)境設(shè)計(jì)器:使用拖放功能來可視化地創(chuàng)建可重用的記錄集命令對(duì)象。綁定到多個(gè)數(shù)據(jù)源上,以聚集和操作數(shù)據(jù)。(3)用拖放式創(chuàng)建綁有數(shù)據(jù)的表格報(bào)告:使用新的數(shù)據(jù)環(huán)境設(shè)計(jì)器,開發(fā)者可迅速拖放自定義的綁

53、有數(shù)據(jù)的控件來創(chuàng)建表格;可用新的數(shù)據(jù)報(bào)表設(shè)計(jì)器來創(chuàng)建報(bào)表。創(chuàng)建自定義數(shù)據(jù)階結(jié)構(gòu)也非常容易,只需填寫一個(gè)對(duì)話框,再將命令拖入表格中即可。(4)visual basic webclass 設(shè)計(jì)器:創(chuàng)建可在任何平臺(tái)上用任何web瀏覽器訪問的服務(wù)器方應(yīng)用或構(gòu)件。(5)動(dòng)態(tài)html頁面設(shè)計(jì)器:開發(fā)用文檔對(duì)象模型和動(dòng)態(tài)html平面做用戶界面的富于多媒體的應(yīng)用程序。(6)新的性能方面的增強(qiáng):使用新的字符串函數(shù)和諸如駐留內(nèi)存(retain in memory)的技術(shù)來創(chuàng)建更快,可調(diào)節(jié)性更好的應(yīng)用程序和構(gòu)件。visual basic 6.0集成的visual component manager(可視化組件管理器

54、)和visual modeler(可視化模塊設(shè)計(jì)器)提供了最有效的管理方式。通過vcm,可以在vb工程中方便地組織,查找和插入各種窗體,模版和類模版,甚至整個(gè)工程,為代碼的重利用提供了最大的方便,如圖3.3所示,此軟件編寫vb程序的界面非常方便使用。而visual modeler功能則更加強(qiáng)大,可以將其設(shè)計(jì)的類和組件轉(zhuǎn)化成visual c+或visual basic 的代碼,與visual component manager結(jié)合使用,可以將vb中編寫的類在其他工程甚至vc的工程中使用。圖3.3 vb軟件操作界面34 串口調(diào)試助手串口調(diào)試助手,支持常用的300-115200bps波特率,能設(shè)置校

55、驗(yàn)、數(shù)據(jù)位和停止位,能以ascii碼或十六進(jìn)制接收或發(fā)送任何數(shù)據(jù)或字符(包括中文),可以任意設(shè)定自動(dòng)發(fā)送周期,并能將接收數(shù)據(jù)保存成文本文件,能發(fā)送任意大小的文本文件。適宜單片機(jī)編程時(shí)對(duì)rs232通訊測(cè)試用。支持ascii,hex碼收發(fā)和顯示,支持單次發(fā)送、多次發(fā)送、循環(huán)發(fā)送等,支持xmodem modem 協(xié)議文件傳輸,作為avr ,stm32 通用bootloader軟件 pc端升級(jí)工具。圖3.4為其操作界面。圖3.4 串口調(diào)試助手操作界面4 總結(jié)軟件設(shè)計(jì)在當(dāng)今社會(huì)無處不在,軟件對(duì)于社會(huì)所起的作用是十分關(guān)鍵的。對(duì)某些商用電子計(jì)價(jià)秤而言,只具備稱重、計(jì)價(jià)、顯示、打印功能還遠(yuǎn)遠(yuǎn)不夠,現(xiàn)代商業(yè)系統(tǒng)

56、還要求它能提供各種銷售信息,把稱重與管理自動(dòng)化緊密結(jié)合,使稱重、計(jì)價(jià)、進(jìn)庫、銷售管理一體化,實(shí)現(xiàn)管理自動(dòng)化。這就要求電子計(jì)價(jià)秤能與電子計(jì)算機(jī)聯(lián)網(wǎng),把稱重系統(tǒng)與計(jì)算機(jī)系統(tǒng)組成一個(gè)完整的綜合控制系統(tǒng),為現(xiàn)代商業(yè)貿(mào)易物流的高效率發(fā)展提供強(qiáng)有力的支持。電子秤的軟件設(shè)計(jì)中上位機(jī)(pc機(jī))部分,用的是vb語言編寫的。限于本人對(duì)vb的運(yùn)用并不是很成熟,界面做的不是很好,所以,我覺得在把功能實(shí)現(xiàn)的前提下能夠讓界面更加人性化、美觀化、實(shí)用化,是非常有實(shí)用意義的。我認(rèn)為電子秤未來的發(fā)展方向,應(yīng)該是在稱重、計(jì)價(jià)、顯示、打印這些最基本的功能下,能夠把各種銷售信息和庫存、進(jìn)價(jià)等貿(mào)易活動(dòng),實(shí)現(xiàn)自動(dòng)化管理,即計(jì)價(jià)秤和計(jì)算機(jī)連接組成一個(gè)有機(jī)整體,為現(xiàn)代商業(yè)貿(mào)易更好的服務(wù)。附錄a 上位機(jī)(pc機(jī))設(shè)計(jì)程序清單及部

溫馨提示

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