一、課程設計(論文)的內容
1、用4只LED數碼管輸出顯示重量。
2、可通過按鍵設置重量功能,且停鬧無須手工操作。
3、可通過按鍵設置重量的單位。
4、稱重時的誤差少于10g。
二、課程設計(論文)的要求與數據
1、系統框圖、方案論證;
2、各部分的硬件電路原理圖及功能說明;
3、程序流程圖及分析;
4、系統調試與分析;
5、源程序清單。
三、課程設計(論文)應完成的工作
1. 畫出系統框圖,論證系統設計方案;
2、器件選型,給出系統各個組成部分的硬件電路原理圖;
3、給出程序流程圖;
4、進行源程序的設計及調試;
5、撰寫課程設計報告的。
四、課程設計(論文)進程安排
序號 | 設計(論文)各階段內容 | 地點 | 起止日期 |
1 | 選擇課題,明確設計要求,查閱資料 | 校內 | 5.12 |
2 | 方案論證、系統總體設計 | 校內 | 5.13~5.14 |
3 | 硬件電路原理圖設計 | 校內 | 5.15~5.16 |
4 | 程序流程圖的設計、源程序的編制及系統調試 | 校內 | 5.17~5.18 |
5 | 撰寫課程設計報告 | 校內 | 5.19~5.20 |
6 |
|
|
|
五、應收集的資料及主要參考文獻
[1] MCS-51系列單片微型計算機及其應用
[2] MCS-51系列單片機實用設計
發出任務書日期: 2017年 05月12 日 指導教師簽名:
計劃完成日期: 2017年 05月20 日 教學單位責任人簽章:
目錄
1系統分析
1.1功能要求
1.2方案論證
2 系統設計
2.1 系統硬件電路的設計
2.2 系統程序的設計 9
3 結束語 18
參考文獻 19
附錄1材料清單 20
附錄2電路原理圖 21
附錄3實物圖 22
附錄4主要程序清單 23
1系統分析
1.1功能要求
本課題的主要設計思路是:利用壓力傳感器采集因壓力變化產生的電壓信號,經過電壓放大電路放大,然后再經過模數轉換器轉換為數字信號,最后把數字信號送入單片機。單片機經過相應的處理后,得出當前所稱物品的重量及總額,然后再顯示出來。此外,還可通過鍵盤設定所稱物品的價格。
本文主要主要以下幾個方面的工作:
(1)詳細講解了稱重器工作原理。
(2)對稱重器系統進行總體方案的設計。
(3)對于稱重器的硬件系統,重點介紹關于精度、轉換速率的壓力傳感器和A/D轉換模塊器件的選取。
(4)對于稱重器的軟件系統,通過解說LCD液晶顯示的使用及鍵盤的工作原理,對于主程序的編寫與調試提供重要的依據。
(5)依據稱重系統的總電路,通過Keil軟件C語言編程和Proteus仿真,實現模擬的稱重顯示。
(6)對稱重系統的測量值與顯示值的差值,進行系統的調試與誤差校正。
主要技術指標為:稱量范圍0~10Kg;分度值0.01kg;精度等級Ⅲ級;電源DC1.5V(一節5號電池供電)。
數碼管顯示。結構如圖1.2所示:
圖1.2數碼管顯示方案
此方案利用數碼管顯示物體重量,簡單可行,可以采用內部帶有模數轉換功能的單片機。此設計的硬件部分簡單,接口電路易于實現,并且在編程時大大減少程序量,在電路結構上只有簡單的輸出輸入關系。缺點是:硬件部分簡單,雖然可以實現電子稱基本的稱重功能,但是不能實現外部數據的輸入,無法實時地設定各種控制參數。由于數碼管只能實現簡單的數字和英文字符的顯示,不能顯示漢字以及其他的復雜字符,不能達到顯示購物清單的要求。又因為采用了具有模數轉換功能的單片機,系統電路過于簡單,系統硬件的擴展必受到限制,電子秤的功能過于單一,達不到設計的標準。
2 系統設計
2.1 系統硬件電路的設計
2.1.1 AT89S52的最小系統電路構成
AT89S52單片機的最小系統由時鐘電路、復位電路、電源電路及單片機構成。單片機的時鐘信號用來提供單片機片內各種操作的時間基準,復位操作則使單片機的片內電路初始化,使單片機從一種確定的初態開始運行。
單片機的時鐘信號通常用兩種電路形式得到:內部振蕩方式和外部振蕩方式。在引腳XTAL1和XTAL2外接晶體振蕩器(簡稱晶振)或陶瓷諧振器,就構成了內部振蕩方式。由于單片機內部有一個高增益反相放大器,當外接晶振后,就構成了自激振蕩器并產生振蕩時鐘脈沖。
當單片機的復位引腳RST出現2個機器周期以上的高電平時,單片機就執行復位操作。如果RST持續為高電平,單片機就處于循環復位狀態。根據應用的要求,復位操作通常有兩種基本形式:上電復位和上電或開關復位。上電復位要求接通電源后,自動實現復位操作。
上電或開關復位要求電源接通后,單片機自動復位,并且在單片機運行期間,用開關操作也能使單片機復位。單片機的復位操作使單片機進入初始化狀態,其中包括使程序計數器PC=0000H,這表明程序從0000H地址單元開始執行。
系統復位是任何微機系統執行的第一步,使整個控制芯片回到默認的硬件狀態下。51單片機的復位是由RESET引腳來控制的,此引腳與高電平相接超過24個振蕩周期后,51單片機即進入芯片內部復位狀態,而且一直在此狀態下等待,直到RESET引腳轉為低電平后,才檢查EA引腳是高電平或低電平,若為高電平則執行芯片內部的程序代碼,若為低電平便會執行外部程序。
圖2.1AT89S52最小系統電路
2.2.2 A/D轉換器與AT89S52單片機接口電路
AD574是美國Analog Device公司生產的12位單片A/D轉換器。它采用逐次逼近型的A/D轉換器,最大轉換時間為25us,轉換精度為0.05%,所以適合于高精度的快速轉換采樣系統。芯片內部包含微處理器借口邏輯(有三態輸出緩沖器),故可直接與各種類型的8位或者16位的微處理器連接,而無需附加邏輯接口電路,切能與CMOS及TTL電路兼容。AD574采用28腳雙列直插標準封裝。
圖2.2AD574芯片引腳圖
A/D574有5根控制線,邏輯控制輸入信號有: A0:字節選擇控制信號。 CE:片啟動信號。
/CS:片選信號。當/CS=0,CE=1同時滿足時,AD574才處于工作狀態,否則工作被禁止。
R/-C:讀數據/轉換控制信號。
12/-8:數據輸出格式選擇控制信號。當其為高電平時,對應12位并行輸出;為低電平時,對應8位輸出。
當R/-C=0,啟動A/D轉換:當A0=0,啟動12位A/D轉換方式;當A0=1,啟動8位轉換方式。
當R/-C=1,數據輸出,A0=0時,高8位數據有效;A0=1時,低4位數據有效,中間4位為0,高4位為三態。 輸出信號有:
STS:工作狀態信號線。當啟動A/D進行轉換時,STS為高電平;當A/D轉換結束時為低電平。則可以利用此線驅動一信號二極管的亮滅,從而表示是否處于A/D轉換。
由于對AD574 的8、10、12引腳的外接電路有不同連接方式,所以AD574與單片機的接口方案有兩種,一種是單極性接法,可實現輸入信號0~10V或者0~20V的轉換;另一種為雙極性接法,可實現輸入信號-5~+5V或者-10~+10V之間轉換。本次設計采用單極性接法。
圖2.3 AD574與AT89S52的接線圖
根據芯片管腳的原理,無論啟動、轉換還是結果輸出,都要保證CE端為高電平,所以可以將單片機的/RD引腳和/WR端通過與非門與AD574的CE端連接起來。轉換結果分高8位、低4位與P0口相連,分兩次讀入,所以12/-8端接地。同時,為了使CS、A0、R/-C在讀取轉換結果時保持相應的電平,可以將來自單片機的控制信號經74LS373鎖存后再接入。CPU可采用中斷、查詢或者程序延時等方式讀取AD574的轉換結果,本設計采用查詢方式。
2.1.3 顯示電路與AT89S52單片機的接口電路
圖2.4 單片機與LCD接線圖
3.4 鍵盤電路與AT89S52的接口電路設計
鍵盤一般是由若干按鍵組成的開關矩陣,若按照其接線方式的不同,可分為兩種: 一種是獨立式接法,一種是矩陣式接法;若按照按鍵的結構原理,可分為兩類:一類是觸點式開關按鍵,如機械式開關、導電橡膠式開關等,一類是無觸點式開關按鍵,如電氣式按鍵、磁感應按鍵等。前者造價低,后者壽命長。
按鍵按下時,與此鍵相連的行線與列線導通,行線在無鍵按下時處于高電平。顯然如果讓所有的列線也處在高電平,那么按鍵按下與否不會引起行線電平的變化,因此,必須使所有的列線處在低電平。只有這樣,當按鍵按下時,該鍵所在的行電平才會由高電平變為低電平。CPU根據行電平的變化,便能判定相應的行有鍵按下。
對應鍵盤的相應取決于鍵盤的工作方式,鍵盤的工作方式應根據實際應用系統中CPU的工作情況而定,其選取的原則既要保證CPU能及時響應按鍵操作,又不要過多的占用CPU的工作時間。通常,鍵盤的工作方式有3種,即編程掃描、定時掃描和中斷掃描。
① 編程掃描方式:利用CPU完成其他工作的空余時間,調用鍵盤掃描子程序來響應鍵盤輸入要求。在執行鍵功能程序時,CPU不再響應鍵輸入要求,直到CPU重新掃描鍵值為止。
② 定時掃描方式,定時掃描方式就是每隔一段時間對鍵盤掃描一次,它利用單片機內部的定時器產生一定時間(列如10ms)的定時,當定時時間到,就會產生定時器溢出中斷。CPU響應中斷后對鍵盤進行掃描,并在有鍵按下時識別出該鍵,再執行該鍵的子程序。
③ 中斷掃描方式:采用上述兩種掃描方式時,無論是否有鍵按下,CPU都要定時掃描鍵盤,而單片機應用系統工作時,并非經常需要鍵盤輸入,因此,CPU經常處于空掃描狀態。為提高CPU工作效率,可采用中斷掃描工作方式。其工作過程如下:當無鍵按下時,CPU處理自己程序,當有鍵按下時,產生中斷請求,CPU轉去執行鍵盤掃描子程序,并識別鍵號。
說明此(低電平)行沒有鍵被按下。接著進行下一行“0”行掃描與列讀入,知道4行關不檢查完為止,若無鍵按下,則返回。
矩陣式鍵盤的結構與工作原理: 在鍵盤中按鍵數量較多時,為了減少I/矩陣式鍵盤有兩種識別鍵是否被按下的方法:行掃描法和線反轉法。行掃描法又稱逐行零掃描查詢法,及逐行輸出行掃描信號“0”,使各行依次為低電平,然后分別讀取列數據,檢查此(低電平)行中是否有鍵被按下。如果讀得某列線為低電平,則表示此(低電平)行線與列線的交叉處有鍵按下,再對該鍵該鍵譯碼計算,得到鍵值,然后轉入該鍵的功能子程序入口地址;如果沒有任何一根列線為低電平,則O口的占用,通常將按鍵排列成矩陣形式。在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過一個按鍵加以連接。這樣,一個端口(如P1口)就可以構成4*4=16個按鍵,比之直接將端口線用于鍵盤多出了一倍,而且線數越多,區別越明顯,比如再多加一條線就可以構成20鍵的鍵盤,而直接用端口線則只能多出一鍵(9鍵)。由此可見,在需要的鍵數比較多時,采用矩陣法來做鍵盤是合理的。
矩陣式鍵盤的按鍵識別方法 :確定矩陣式鍵盤上何鍵被按下介紹一種“行掃描法”。行掃描法 行掃描法又稱為逐行(或列)掃描查詢法,是一種最常用的按鍵識別方法,如下圖所示鍵盤,介紹過程如下。判斷鍵盤中有無鍵按下 將全部行線R0-R3置低電平,然后檢測列線的狀態。只要有一列的電平為低,則表示鍵盤中有鍵被按下,而且閉合的鍵位于低電平線與4根行線相交叉的4個按鍵之中。若所有列線均為高電平,則鍵盤中無鍵按下。 判斷閉合鍵所在的位置 在確認有鍵按下后,即可進入確定具體閉合鍵的過程。其方法是:依次將行線置為低電平,即在置某根行線為低電平時,其它線為高電平。在確定某根行線位置為低電平后,再逐行檢測各列線的電平狀態。若某列為低,則該列線與置為低電平的行線交叉處的按鍵就是閉合的按鍵。
在本系統中鍵盤采用矩陣式鍵盤并采用編程掃描的工作方式。鍵盤為4 X 4鍵盤,包括0、1、2、3、4、5、6、7、8、9、十個數字及確認和清除鍵。
圖2.5 單片機與鍵盤接口電路
各個按鍵的功能說明:
數字鍵:.、0、1、2、3、4、5、6、7、8、9被按下時直接顯示在LCD液晶顯示屏上。
啟動鍵:當按下此鍵時,LCD液晶顯示開啟。
單價鍵:當此按鍵被按下時,此刻要求輸入稱重物品單價,即要求按下數字鍵。 確定鍵:前提是單價已輸入完畢,當此按鍵被按下時,LCD屏幕顯示當前稱重物品的總價格。
總價鍵:當稱重物品單價不變、重量改變時,按下此按鍵時,LCD液晶屏上顯示當前重量物品的總價格。
清除鍵:當此鍵按下時,單價及總價處的顯示清零。
2.2 系統程序的設計
2.2.1 主程序設計
在單片機應用系統的開發中,軟件的設計是最復雜和困難的,大部分情況下工作量都較大,特別是對那些控制系統比較復雜的情況。如果是機電一體化的設計人員,往往需要同時考慮單片機的軟硬件資源分配。本系統的軟件設計主要分為系統初始化、按鍵、顯示處理及信號頻率輸入處理。
程序設計是一件復雜的工作,為了把復雜的工作條理化,就要有相應的步驟和方法。其步驟可概括為以下三點:
(1) 分析系統控制要求,確定算法:對復雜的問題進行具體的分析,找出合理的計算方法及適當的數據結構,從而確定編寫程序的步驟。這是能否編制出高質量程序的關鍵。
(2) 根據算法畫流程圖:畫程序框圖可以把算法和解題步驟逐步具體化,以減少出錯的可能性。
(3)編寫程序:根據程序框圖所表示的算法和步驟,選用適當的指令排列起來,構成一個有機的整體,即程序。
程序數據的一種理想方法是結構化程序設計方法。結構化程序設計是對利用到的控制結構類程序做適當的限制,特別是限制轉向語句(或指令)的使用,從而控制了程序的復雜性,力求程序的上、下文順序與執行流程保持一致性,使程序易讀易理解,減少邏輯錯誤和易于修改、調試。根據系統的控制任務,本系統的軟件設計主要由主程序、初始化程序、A/D轉換子程序、鍵盤掃描子程序和顯示子程序等組成。
2.2.2 C語言在單片機中的應用
C語言是一種通用的計算機程序設計語言,在國際上非常流行。它既可以用來編寫計算機的系統程序,也可以用來編寫一般的應用程序。以前計算機的系統軟件主要用匯編語言編寫,單片機應用系統更是如此。C語言是當前最流行的程序設計語言,它像其它高級語言一樣,面向用戶,面向解題的過程,編程者不必熟悉具體的計算機內部結構和指令;C語言又像匯編語言一樣,可以對機器硬件進行操作。如進行端口0,1操作、位操作、地址操作,并可內嵌匯編指令,將匯編指令當作它的語句一樣。我們知道,匯編語言將涉及計算機硬件,所以C語言又像低級語言一樣,可以對計算機硬件進行控制,因此人們把它稱為介于高級語言與低級語言之間的一種中級語言。正是因為C語言具有這樣的特性,所以很適合編寫要對硬件進行操作的軟件程序。本文采用C語言進行編寫.因為經系統軟件比較,本系統存儲量較大,因此必須應用C語言編程了。 4.1.2 電子稱的軟件設計與實現
電子稱軟件設計均采用模塊化設計,整個程序包括主程序、A/D轉換模塊程序、鍵盤掃描程序、液晶顯示子程序等模塊。所有程序均采用C語言編寫。電子計價秤的軟件設計思路說明如下:主程序的作用為程序初始化,計算單價×物體重量(單價通過鍵盤給出,物體重量通過壓力傳感器獲得),并實時顯示十進制的物重,單價,總價。設定T0為計數工作方式,T1為定時工作方式。其中R0為標志位寄存器當為OOH時為正常顯示方式。當為01H時為累計顯示方式,在T1定時中斷程序中。一秒鐘采樣物料重量(已轉成脈沖頻率),并賦值重量計算RAM區和顯示RAM區。在INTO外部中斷程序中,采樣單價并賦值單價計算。
2.2.3 系統主程序流程圖
主程序流程圖給出了系統工作的基本過程,描述了信號的基本流向,起到一個向導的作用。
本系統的軟件系統主要可分為主程序和定時器中斷程序兩大模塊。在程序過程中,加入了抗干擾措施。下面對部分模塊作介紹。
圖2.6 稱重總設計的仿真圖
圖2.7 系統總程序圖
2.2.4 系統子程序設計
系統子程序主要包括A/D轉換啟動及數據讀取程序設計、鍵盤輸入控制程序設計以及顯示程序設計等。
2.2.5 A/D轉換啟動及數據讀取程序設計
A/D轉換子程序主要是指在系統開始運行時,把稱重傳感器傳遞過來的模擬信號轉換成數字信號并傳遞到單片機所涉及到的程序設計
圖2.8 A/D轉換啟動及數據讀取程序流程圖
圖2.9 A/D0832轉換后的顯示圖像
2.2.6 顯示程序設計
顯示子程序主要是來判斷是否需要顯示,以及如何去顯示,也是十分重要的程序之一。
圖2.11 顯示子程序流程圖
圖2.12 顯示啟動按鍵按下后
圖2.13 顯示歡迎界面
2.2.7 鍵盤輸入控制程序設計
鍵盤電路設計成4X4矩陣式,由鍵盤編碼方式可以得出0,1,2,3,4,5,6,7,8,9以及啟動等功能選擇鍵。在程序中可以先判斷按鍵編碼,然后根據編碼將鍵盤代表的數值送到相應的存儲單元,再進行功能選擇或數據處理。
矩陣式鍵盤又叫行列式鍵盤。就是用I/O口線組成行、列結構,按鍵設置在行列的交點上。在按鍵較多時多用矩陣鍵盤,可以節省I/O口線。列如:占用8個I/O口線的4×4矩陣式結構可以構成16個鍵的鍵盤。當有鍵按下時,要逐行或逐列掃描來判斷是哪個按鍵按下。通常的掃描方式有掃描法和反轉法。
圖2.14 鍵盤逐行掃描過程
本文唯一的不足是只對研發方案成果的進行了仿真設計,沒有運用實物進行驗證方案是否可行,有待進一步的研發。雖然沒有做出實物,但基于51單片機雙精度電子稱依然是一個具有前景的電子衡器產品,非常適合于中小型市場的物體稱重,如果雙精度電子稱進一步發展,與虛擬串口技術融合,將會實現與上位機的無線通訊,實現遠程監測,將更有價值。
參考文獻
[1] 黃堅,金惟偉.中小型電機產品近年出口情況簡述[J].中小型電機,2005,32(1) 9--12.
[1]趙茂泰. 智能儀器原理及應用[M].北京:電子工業出版社.2004
[2]張毅剛. MCS-51單片機應用設計[M].哈爾濱:哈爾濱工業大學出版社.2003 [3]賈伯年, 俞樸.傳感器技術[M].東南大學出版社.2000
[4]單成祥.傳感器理論設計基礎及其應用[M].北京:國防工業出版社.1999 [5]李道華,李玲,朱艷 .傳感器電路分析與[M].武漢:武漢大學出版社.2000 [6]沙占友 ,王彥朋等. 智能傳感器系統設計與應用[M].北京:電子工業出版社2004.6
[7]何希才,薛永毅. 傳感器及其應用實例[J].北京:機械工業出版社.2004.1 [8]李群芳. 單片機微型計算機與接口技術[M].電子工業出版社. [9]周立功. 單片機實驗與實踐[M].北京航空航天大學出版社.2004.6
[10]全國大學生電子設計競賽組委會.全國大學生電子設計競賽獲獎作品匯編[J].北京理工大學出版社.2005.11
[11]何立民 .單片機高級教材[M].北京:航空航天大學出版社.2000 [12]童詩白,華成英 .模擬電子技術基礎[M]. 北京:北京高等教育出社.2001 [13]程林 ,超省電型電子秤的設計方案[J].福建:福建省計量科學技術研究所. 2008.3
附錄1材料清單
名稱 | 型號 | 數量 |
單片機 | AT89C2051 | 1 |
數字集成芯片 | CD4017 | 2 |
數字集成芯片 | CD4069 | 1 |
超高亮數碼管 | 共陽 尺寸0.5inch | 4 |
高亮發光二極管 | 13 | |
高亮發光二極管 | 3綠、透明 | 50 |
普通二極管 | IN4001 | 4 |
普通二極管 | IN4148 | 2 |
穩壓二極管 | C4V7( 4.7V) | 1 |
三極管 | 9012 | 5 |
三極管 | 9013 | 1 |
輕觸按鍵 | 小(尺寸6×6mm×5.5) | 3 |
蜂鳴器 | 5 V | 1 |
晶振 | 6M(小體積) | 1 |
底座 | 14腳 | 1 |
底座 | 16腳 | 2 |
底座 | 20腳 | 1 |
底座 | 40腳 | 1 |
電阻 | 220歐姆,1/8瓦 | 8 |
電阻 | 4.7K,1/8瓦 | 5 |
電阻 | 100歐姆,1/8瓦 | 1 |
電阻 | 10k,1/8瓦 | 4 |
電阻 | 270歐姆,1/8瓦 | 1 |
電容 | 100微法/25伏 | 2 |
電容 | 220微法/25伏 | 1 |
電容 | 30P 瓷片 | 3 |
電容 | 104(0.1微法) | 3 |
變壓器 | 5 V/100 M A | 1 |
電源線 | 150cm | 1 |
固定腳 | 銅 | 3套 |
PCB線路板 | 直徑11.5 | 1 |
附錄2電路原理圖
附錄3實物圖
附錄4主要程序清單
| 歡迎光臨 (http://www.raoushi.com/bbs/) | Powered by Discuz! X3.1 |