單片機應用技術 課件 項目4 產品計數(shù)器設計與實現(xiàn)_第1頁
單片機應用技術 課件 項目4 產品計數(shù)器設計與實現(xiàn)_第2頁
單片機應用技術 課件 項目4 產品計數(shù)器設計與實現(xiàn)_第3頁
單片機應用技術 課件 項目4 產品計數(shù)器設計與實現(xiàn)_第4頁
單片機應用技術 課件 項目4 產品計數(shù)器設計與實現(xiàn)_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

項目4產品計數(shù)器設計與實現(xiàn)素質目標1.通過數(shù)碼管低功耗節(jié)能顯示培養(yǎng)學生節(jié)約意識。2.培養(yǎng)學生的代碼編寫規(guī)范、勇于實踐的勞動精神和精益求精的工匠精神。知識目標1.能說出數(shù)碼管常見型號和類型和數(shù)碼管靜態(tài)顯示方式。2.能提供數(shù)碼管靜態(tài)電路設計。3.能說出C語言一維數(shù)組的使用。能力目標1.能分析電路原理圖和能使用常用元器件設計數(shù)碼管靜態(tài)顯示電路模塊。2.能夠基于C語言,熟練使用一維數(shù)組的查表功能,學會數(shù)碼管靜態(tài)顯示的程序編寫調試。設計要求:設計一個產品計數(shù)器的單片機應用系統(tǒng),即單片機的某個I/O口作輸入口,外接紅外線光電傳感器作為實時產品計數(shù),1個獨立按鍵為計數(shù)值復位清零的功能按鈕;單片機的某些I/O口作輸出口,接2個1位數(shù)碼管,通過編程實現(xiàn)產品計數(shù)顯示效果?;趩纹瑱C的產品計數(shù)器產品計數(shù)器簡介計數(shù)器是一種可以用在不同工作、生活場合,對超市、停車場、公交汽車、銀行、圖書館、快遞業(yè)、印刷業(yè)等場合的人數(shù)、車數(shù)或者產品數(shù)量進行統(tǒng)計和管理。產品計數(shù)器利用單片機技術和光電傳感器、按鍵、數(shù)碼管等組成系統(tǒng),通過光電傳感器檢測已加工的產品,并將這一自動檢測信息送入單片機系統(tǒng)中;通過獨立按鍵完成復位清零操作;通過數(shù)碼管顯示計數(shù)數(shù)量信息,采用數(shù)碼管靜態(tài)顯示方式,可以保證其長時間運作,也具備了高亮度、可視性、小功耗、使用壽命長等優(yōu)點。數(shù)碼管簡介數(shù)碼管是一種用于顯示數(shù)字和一些字母符號的電子元件,通常由LED或熒光燈組成,其基本單元是發(fā)光二極管。通過對其不同的管腳輸入相對應的電流,會使其發(fā)亮,從而能夠顯示時間、日期、溫度等所有可用數(shù)字表示的參數(shù)。由于它的價格便宜,被廣泛用作數(shù)字儀器儀表、自動化控制裝置、計算機的數(shù)顯器件,特別是在家用電器領域應用極為普遍,如空調、熱水器、冰箱等。數(shù)碼管實物圖常見的數(shù)碼管包括七段數(shù)碼管和十六段數(shù)碼管。七段數(shù)碼管由七個LED燈組成,分別表示數(shù)字0-9以及一些字母符號。十六段數(shù)碼管則由16個LED燈組成,除了數(shù)字0-9以外,還可以表示更多的字母符號和圖形。數(shù)碼管可以作為一種節(jié)能的顯示器件來使用,它的功耗通常比液晶顯示器等其他顯示器件要低得多,數(shù)碼管是固態(tài)器件,使用壽命比其他顯示器件要長,數(shù)碼管通常只顯示數(shù)字和字母,而不需要顯示復雜的圖形和圖像,因此它們可以使用較低的分辨率和較少的像素。這意味著數(shù)碼管所需的計算和圖形處理能力更低,從而減少了能源消耗。數(shù)碼管的主要特點是:(1)驅動發(fā)光只需要低電壓、小電流的條件,并且其能與CMOS電路、TTL電路兼容。(2)數(shù)碼管的響應時間非常短(<0.1μs),它的高頻特性好,單色性好,亮度高。(3)數(shù)碼管的體積小,重量輕,抗沖擊能力高。數(shù)碼管的結構和分類LED數(shù)碼管(LEDSegmentDisplays)是由多個發(fā)光二極管封裝在一起組成“8”字型的器件,引線已在內部連接完成,只需引出它們的各個筆劃,公共電極。按發(fā)光二極管單元連接方式分為共陽極數(shù)碼管和共陰極數(shù)碼管,如圖所示。數(shù)碼管內部電路圖數(shù)碼管字形編碼要使數(shù)碼管顯示出相應的數(shù)字或字符,必須使段數(shù)據(jù)口輸出相應的字形編碼。字型碼各位定義為:數(shù)據(jù)線D0與a字段對應,D1與b字段對應……,依此類推。如使用共陰極數(shù)碼管,數(shù)據(jù)為0表示對應字段滅,數(shù)據(jù)為1表示對應字段亮。如使用共陽極數(shù)碼管,數(shù)據(jù)為0表示對應字段亮,數(shù)據(jù)為1表示對應字段滅;如要顯示“0”,共陰極數(shù)碼管的字型編碼應為:00111111B(即3FH),共陽極數(shù)碼管的字型編碼應為:11000000B(即C0H)。數(shù)碼管字形編碼顯示數(shù)字共陰順序小數(shù)點滅共陽順序小數(shù)點亮共陽順序小數(shù)點滅Dpgfedcba16進制0001111113FH40HC0H10000011006H79HF9H2010110115BH24HA4H3010011114FH30HB0H40110011066H19H99H5011011016DH12H92H6011111017DH02H82H70000011107H78HF8H8011111117FH00H80H9011011116FH10H90H根據(jù)LED顯示的硬件設計方法的不同,LED顯示驅動分為靜態(tài)顯示和動態(tài)顯示兩種方法。1.靜態(tài)顯示方式所謂靜態(tài)顯示方式,就是當顯示某一個數(shù)字時,代表相應筆劃的發(fā)光二極管恒定發(fā)光,例如7段數(shù)碼管的a、b、c、d、e、f筆段亮時顯示數(shù)字0;b、c亮時顯示1;a、b、d、e、g亮時顯示2等。數(shù)碼管的顯示方式靜態(tài)顯示電路數(shù)碼管的靜態(tài)顯示方式連接所有LED的位選均共同連接到+VCC或GND,每個LED的8根段選線分別連接一個8位并行I/O口,從該I/O口送出相應的字型碼顯示字型。特點原理簡單;顯示亮度強,無閃爍;占用I/O資源較多。數(shù)碼管的動態(tài)顯示方式連接

所有LED的段選線共同連接在一起共用一個8位I/O口,而每個LED的位選分別由一根相應的I/O口線控制。因此必須采用動態(tài)掃描顯示方式,每一個時刻只選通其中一個LED,同時在段選口送出該位LED的字型碼。動態(tài)顯示電路紅外線光電傳感器紅外線光電傳感器是一種利用人肉眼看不見的、波長為780nm-1mm的近紅外線和紅外線的反射在介質中傳播后經(jīng)過長距離后返回接收信息來自動檢測和判別物體的傳感器。紅外線光電傳感器是由發(fā)射器、接收器和檢測電路三部分組成。紅外線光電傳感器數(shù)組數(shù)組:構造數(shù)據(jù)類型,是一組有序數(shù)據(jù)的集合數(shù)據(jù)類型基本類型構造類型指針類型空類型整型實型字符型數(shù)組結構聯(lián)合枚舉單精度型雙精度C語言的數(shù)據(jù)類型數(shù)組的概念數(shù)組是構造數(shù)據(jù)類型,是一組有序數(shù)據(jù)的集合,數(shù)組中的每個元素都屬于同一種數(shù)據(jù)類型,不允許在同一數(shù)組中出現(xiàn)不同類型的變量,數(shù)組元素的數(shù)據(jù)類型就是該數(shù)組的基本類型。例如,整型數(shù)據(jù)的有序集合稱為整型數(shù)組,字符型數(shù)據(jù)的有序集合稱為字符型數(shù)組。數(shù)組分為一維、二維、三維和多維數(shù)組等,常用的是一維、二維和字符數(shù)組。數(shù)組的基本特點構造類型數(shù)據(jù):由基本類型數(shù)據(jù)按照一定規(guī)則組成。數(shù)組:同類型數(shù)據(jù)的一個有序集合。數(shù)組用一個名字來標識,稱為數(shù)組名。數(shù)組中各元素的順序用下標表示,下標為n的元素可以表示為數(shù)組名[n]。改變[]中的下標就可以訪問數(shù)組中所有的元素。應用場合:需要處理的數(shù)據(jù)為數(shù)量已知的若干相同類型的數(shù)據(jù)時。注意:數(shù)組先定義,后使用。一維數(shù)組的定義和引用一維數(shù)組的定義:一般格式:類型標識符數(shù)組名[常量表達式];

int

array[10];

unsignedcharnum[7];說明:數(shù)組名——見名知意;數(shù)組名中存放的是一個地址常量,它代表整個數(shù)組的首地址。同一數(shù)組中的所有元素,按其下標的順序占用一段連續(xù)的存儲單元。方括弧而非圓括??;常量表達式:可以是常量或符號常量;表示數(shù)組元素的個數(shù)(也稱數(shù)組長度)。不允許對數(shù)組大小作動態(tài)定義。數(shù)組元素下標從0開始。array[0],array[1],…array[9];遵循標識符命名規(guī)則一維數(shù)組的定義和引用一維數(shù)組的初始化:一般格式:數(shù)據(jù)類型數(shù)組名[常量表達式]={初值表};說明:定義時賦初值;intscore[5]={1,2,3,4,5};給一部分元素賦值;intscore[5]={1,2};不對數(shù)組全部元素賦值,則全部元素被賦值為0;

intscore[5];給全部數(shù)組元素賦初值時,可以不指定數(shù)組長度;

intscore[]={1,2,3,4,5};一維數(shù)組的定義和引用一維數(shù)組的查表功能:數(shù)組的一個非常有用的功能之一就是查表。表可以事先計算后裝入程序存儲器中。如:unsignedcharcodetab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//定義數(shù)組tab[],并初始化unsignedchark;

while(1){ for(k=0;k<10;k++) {P2=tab[k];//查表取數(shù)}

}二維數(shù)組或多維數(shù)組數(shù)組的下標具有兩個或兩個以上,則稱為二維數(shù)組或多維數(shù)組。定義二維數(shù)組的一般形式如下:

類型說明符數(shù)組名[行數(shù)][列數(shù)];其中,數(shù)組名是一個標識符,行數(shù)和列數(shù)都是常量表達式。例如:floatdemo2[3][4];//demo2數(shù)組有3行4列共12個實型元素二維數(shù)組也可以在定義時進行整體初始化,也可以在定義后單個地進行賦值。例如:inta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};//全部初始化intb[3][4]={{1,2,3,4},{5,6,7,8},{}};//部分初始化,未初始化的個元素為0字符數(shù)組若一個數(shù)組的元素是字符型的,則該數(shù)組就是一個字符數(shù)組。例如:chara[12]={“ChongQing”};//字符數(shù)

charadd[3][6]={"weight","height","width"};//字符串數(shù)組

本系統(tǒng)功能由硬件和軟件兩大部份協(xié)調完成,硬件部分主要完成信息的顯示;軟件主要完成信號的處理及控制。與數(shù)碼管電路組成控制系統(tǒng)。該系統(tǒng)硬件主要包括以下幾個模塊:AT89C52主控模塊、數(shù)碼管靜態(tài)顯示電路模塊等。其中AT89C52主要完成外圍硬件的控制以及一些運算功能,傳感器電路完成計數(shù),按鍵完成復位功能,數(shù)碼管完成數(shù)字00到99的顯示功能。本系統(tǒng)軟件主要實現(xiàn)產品計數(shù)顯示功能。產品計數(shù)器方案設計單片機數(shù)碼管顯示電路復位電路時鐘電路電源電路紅外光電傳感器電路按鍵電路硬件方案確定最小系統(tǒng)單片機傳感器電路設計硬件方案按鍵復位設計數(shù)碼管顯示設計硬件電路設計產品計數(shù)器系統(tǒng)硬件結構包括最小系統(tǒng)、按鍵電路(其中一個按鍵模擬傳感器信號,另一個按鍵為復位按鈕)及數(shù)碼管顯示電路。產品計數(shù)器的計數(shù)由按鍵電路完成,利用P1口的P1.0~P1.1端口分別模擬外部傳感器信號和實現(xiàn)計數(shù)值復位清零功能。采用2個1位共陽極數(shù)碼管為顯示器。單片機的P2口、P3口分別與兩個數(shù)碼管的段碼連接,其中P2口連接顯示計數(shù)的十位,P3口連接顯示計數(shù)的個位。P2口、P3口的八個引腳剛好對應P2、P3口特殊功能寄存器的八個二進位,當P2、P3口某個引腳輸出高電平“1”時,對應數(shù)碼管段碼熄滅;當P2、P3口某個引腳輸出低電平“0”時,對應數(shù)碼管段碼點亮。若將計數(shù)值進行十進制數(shù)分離,再分別給P2、P3口送入不同的數(shù)字,就能在兩個數(shù)碼管上看到數(shù)值的顯示了。產品計數(shù)器的硬件原理圖算法分析對于數(shù)碼管而言,要顯示數(shù)字或字母,首先應該選中該數(shù)碼管,然后點亮相應字段。例如:顯示數(shù)字“3”,應當是a亮、b亮、c亮、d亮、e不亮、f不亮、g亮、Dp不亮??梢粤谐鰯?shù)碼管顯示數(shù)字的段碼表(以兩位數(shù)碼管顯示的個位數(shù)為例)。產品計數(shù)器系統(tǒng)程序設計段名稱DPGFEDCBA對應段碼對應引腳P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0數(shù)字011000000C0H數(shù)字111111001F9H數(shù)字210100100A4H數(shù)字310110000B0H數(shù)字41001100199H數(shù)字51001001092H數(shù)字61000001082H數(shù)字711111000F8H數(shù)字81000000080H數(shù)字91001000090H共陽數(shù)碼管顯示數(shù)字的段碼表算法分析由于數(shù)碼管顯示的數(shù)字“0~9”的字型碼“C0H、F9H、A4H、B0H、99H、92H、82H、F8H、80H、90H”沒有規(guī)律可循,只能采用查表的方式來完成我們所需的要求。在程序設計中可以設計一個變量,每隔一定時間在“0~9”之間變化,然后按照這個數(shù)據(jù)去查找段碼表,把查到的數(shù)據(jù)送到P3口。

所謂表格(數(shù)組)是指在程序中定義的一串有序的常數(shù),如平方表、字形碼表、鍵碼表等。因為程序一般都是固化在程序存儲器(通常是只讀存儲器ROM類型)中,因此可以說表格(數(shù)組)是預先定義在程序的數(shù)據(jù)區(qū)中,然后和程序一起固化在ROM中的一串常數(shù)。在程序設計中,有時需要預先把非線性數(shù)據(jù)以表格的形式存放在存儲器中,然后使用程序讀出,這種能讀出數(shù)據(jù)表格的程序就稱為查表程序。查表程序的關鍵是表格的定義和如何實現(xiàn)查表。產品計數(shù)器系統(tǒng)程序設計繪制程序流程圖

(1)主程序流程圖繪制主程序主要完成數(shù)碼管靜態(tài)顯示(即循環(huán)查表)、延時功能函數(shù)調用以及鍵盤掃描與鍵位功能處理子程序等功能。數(shù)碼管靜態(tài)顯示子程序是在兩個1位數(shù)碼管上顯示計數(shù)值,其中一個數(shù)碼管作為個位數(shù)顯示,與單片機的P3口相連;另外一個數(shù)碼管作為十位數(shù)顯示,與單片機的P2口相連。顯示的時候將個位和十位分離后通過循環(huán)查表的方式來實現(xiàn)顯示。鍵盤掃描與鍵位功能處理子程序是查詢判斷哪個功能鍵被按下,確認某個鍵被按下后再轉到該鍵的功能處理程序。產品計數(shù)器系統(tǒng)程序設計產品計數(shù)器系統(tǒng)程序設計主程序流程圖繪制程序流程圖

(2)定義段碼表(數(shù)組)使用一維數(shù)組存放需要使用的數(shù)碼管段碼值來實現(xiàn)需要查詢的數(shù)據(jù)表。因為用到0到9十個段碼值,所以要

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論