




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 目錄第1章 課程設計任務書.2第2章 設計目的.2第3章 設計原理與分析.2第4章 所選元件清單.6第5章 課程設計心得.7第6章 參考文獻.7附錄.8 第一章、課程設計任務書本設計以MCS-51系列單片機為核心,采用常用電子器件設計。要求能顯示出秒、分、時、天,可調整各個時間,采用LED八段數碼管顯示。 第二章、課程設計目的1、掌握51系列單片機編程原理(1)掌握單片機C51語言程序編程的思想及方法,加深對單片機的更深層次的理解,熟悉單片機的內部硬件資源。(2)定時器中斷服務子程序和外中斷服務子程序各個程序段所實現的功能和編寫。(3)通過此次課程設計,學會怎么利用所學單片機知識獨立設計系統
2、,達到學于致用的目的,加深了解C51設計編程思想及開發系統的一般過程,并不斷創新。2、掌握矩陣式鍵盤電路的接法及工作原理(1)掌握矩陣式鍵盤的接法及工作原理。(2)掌握鍵盤消抖的工作原理。3、掌握矩陣式鍵盤電路的接法及工作原理(1)掌握矩陣式鍵盤鍵盤掃描程序的編寫。(2)掌握鍵盤消抖程序的編寫。4、掌握共陽八段碼顯示器連接,做成可調節的電子表,簡單的了解單片機對顯示器的控制過程;能在此基礎上做成可調節的萬年歷。 第三章、設計原理與分析1、實驗硬件電路的原理與設計A.鍵盤掃描識別1、識別鍵的閉合,通常采用行掃描法和行反轉法。行掃描法是使鍵盤上某一行線為低電平,而其余行接高電平,然后讀取列值,如所
3、讀列值中某位為低電平,表明有鍵按下,否則掃描下一行,直到掃完所有行。行反轉法識別鍵閉合時,要將行線接一并行口,先讓它工作于輸出方式,將列線也接到一個并行口,先讓它工作于輸入方式,程序使CPU通過輸出端口往各行線上全部送低電平,然后讀入列線值,如此時有某鍵被按下,則必定會使某一列線值為0。然后,程序對兩個并行端口進行方式設置,使行線工作于輸入方式,列線工作于輸出方式,并將剛才讀得的列線值從列線所接的并行端口輸出,再讀取行線上的輸入值,那么,在閉合鍵所在的行線上的值必定為0。這樣,當一個鍵被按下時,必定可以讀得一對唯一的行線值和列線值。2、程序設計時,要學會靈活地對STC89C52的各端口進行方式
4、設置。可將各鍵對應的鍵值(行線值、列線值)放在一個表中,將要顯示的0F字符放在另一個表中,通過查表來確定按下的是哪一個鍵并正確顯示出來。3、利用實驗箱上的STC89C52可編程并行接口芯片和矩陣鍵盤,編寫程序,做到在鍵盤上每按一個數字鍵(0F),用發光二極管將該代碼顯示出來。B.顯示器的顯示原理:數碼管需要驅動電路來驅動數碼管的各個段碼才能顯示我們需要的數字。根據數碼管的驅動方式不同,可以分為靜態驅動和動態驅動兩種方式。靜態顯示驅動:靜態驅動也稱直流驅動。是指每個數碼管的第一個段碼都是由同一個單片機的I/O端口進行驅動,或者使用如BCD碼二十進制譯碼器譯碼進行驅動。動態顯示驅動:動態驅動是數碼
5、管是單片機中應用最為廣泛的一種驅動方式。動態驅動是將所有數碼管的八個顯示筆劃“a,b,c,d,e,f,g,dp”的同名端連在一起,另外為每個數碼管的公共極COM增加位選通控制電路,各選通由各自獨立的I/O線控制,當單片機輸出這形碼時,所有數碼管都接收到相同的字形碼,哪個數碼管會顯示字形,取決于單片機對位選通COM端電路的控制,所以只要將需要顯示的數碼管的選通控制打開,該位就顯示出字形,沒有選通的數碼管就不會亮。通過分時輪流控制各個數碼管的COM端,就使各個數碼管輪流受控顯示,這就是動態驅動。在輪流顯示的過程中,每位數碼管的點亮時間為12ms。動態顯示的效果和靜態顯示是一樣的,但能節省大量的I/
6、O端口,而且功耗更低。由于靜態顯示需要數據鎖存器等硬件,接口復雜一些,考慮時鐘顯示只有八位, 且系統沒有其它復雜的處理任務,所以決定采用動態掃描實現LED的顯示。 單片機采用易購的STC89C52系列,這種單片機具有足夠的空余硬件資源,可以實現其他的擴展功能。時鐘計時器電路系統的總體設計框圖如圖1。STC89C52P1 P0單片機控制器 P2八段數碼管矩陣鍵盤列驅動圖12、實驗步驟:時鐘計時器的硬件電路如圖2所示。該電路采用51單片機最小系統,采用共陽八段數碼管LED顯示器,P0口輸出段碼數據,P2.0P2.5口作列掃描輸出;P1口接矩陣鍵盤,實現時間的調整。系統的功能由鍵盤上1、2、3鍵完成
7、。 如圖23、系統程序的設計(1)主程序本設計中計時采用定時器T0中斷完成。主程序循環調用顯示子程序和查鍵子程序,當端口有開關按下時,轉入相應功能程序。其主程序流程如圖3。(2) 顯示子程序時間顯示子程序每次顯示8個連續內存單元的十進制BCD碼數據,首地址在調用顯示程序時先指定。顯示時,先取出內存地址中的數據,然后查得對應的顯示用段碼從P0口輸出,P2口將對應數碼管選中供電,就能顯示該地址單元的數據值。(3) 定時器T0中斷服務程序定時器T0用于時間計時。定時溢出中斷周期設為50ms,中斷進入后先進行定時中斷初值校正,當中斷累計20次(即50ms×20=1s)時,對秒計數單元進行加1
8、操作。在計數單元中,采用十進制BCD碼計數,滿10進位。T0中斷計時程序流程圖如圖4所示。T0中斷保護現場定時初值校正加1s處理恢復現場,中斷返回1s到?NY開始初始化鍵盤初始化顯示取鍵值進入功能程序調用顯示子程序圖3圖2(4) 調時功能程序調時功能程序的設計方法是:按下1鍵,可以選擇要修改的位,按下按2鍵和3鍵鍵,對選中的位進行加減操作,修改完成之后,再按下XW鍵對其它位進行修改。具體如下:第一次按下1鍵時,可以修改秒。第二次按下1鍵時,可以修改分。第三次按下1鍵時,可以修改時。第四次按下1鍵時,退出子程序。第四章、所選元件清單1、 元件清單原件數量八段共陽數碼管2S8550三極管81K電阻
9、8150電阻851最小系統1線若干2、程序實際接線數碼管的不同筆段的組合構成了不同字符的字形。為了獲得不同的字形,各筆段所加的電平也不同,因此各個字形所形成的編碼是不一樣的。例如,對于共陽極數碼管,如果要顯示字符2,則筆段a、b、g、e、d發光,對應的引腳為低電平;其余各筆段不發光,對應的引腳為該電平。所以字符2的字形編碼gfedcba=10100100B=A4H。陰極數碼管的字形編碼與用陽極數碼管的字形編碼是邏輯“非”的關系。根據上述編碼方法可以得出數碼管顯示的字符與對應的字形編碼的關系,如下表所示此次實驗用的共陽數碼管,所以按照陽極數碼管的字形編碼進行設計。 附錄:程序#include&l
10、t;reg52.h> #define uint unsigned int#define uchar unsigned char uchar miao,fen,shi,m,f,s,num,num1,num2; uchar code table1=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;void delay(uint z) uint x,y;for(x=z;x>0;x-) for(y=110;y>0;y-); void xiansi( uchar aa,uchar bb,uchar cc) P2=0xdb; P0=0xb
11、f; delay(1); P0=0xff; / num2+; if(num1=1&num2=0|num1=1&num2=1) P2=0xff;P0=table1aa%10; delay(1); P0=0xff;P2=0xff; P0=table1aa/10; delay(1); P0=0xff; else P2=0x7f; P0=table1aa%10; delay(1);P0=0xff; P2=0xbf;P0=table1aa/10; delay(1); P0=0xff; if(num1=2&num2=0|num1=2&num2=1) P2=0xff; P0=
12、table1bb/10; delay(1); P0=0xff; P2=0xff; P0=table1bb%10;delay(1); P0=0xff; else P2=0xf7; P0=table1bb/10; delay(1); P0=0xff; P2=0xef; P0=table1bb%10; delay(1); P0=0xff; if(num1=3&num2=0|num1=3&num2=1) P2=0xff; P0=table1cc/10; delay(1); P0=0xff; P2=0xff; P0=table1cc%10; delay(1); P0=0xff; else
13、 P2=0xfe;P0=table1cc/10; delay(1); P0=0xff;P2=0xfd; P0=table1cc%10; delay(1); P0=0xff; /if(num2=256)num2=1; void jishi( ) if(num=20) num=0; miao+; if(miao=60) miao=0; fen+; if(fen=60) fen=0; shi+; if(shi=24) shi=0; if(miao=0&fen=0); xiansi(miao,fen,shi); void init(void) TMOD=0x01; TH0=0x3c; TL0=
14、0xb0; TH1=0x3c;TL1=0xb0; EA=1; ET0=1; TR0=1; ET1=1; TR1=1; void key() P1=0xfe; if(P1=0xee) delay(10); if(P1=0xee) while(P1=0xee)xiansi(miao,fen,shi); num1+; TR0=0; if(num1=4)num1=0;TR0=1; xiansi(miao,fen,shi); if(num1!=0) if(P1=0xde) /時間加 delay(10); if(P1=0xde) while(P1=0xde)xiansi(miao,fen,shi); switch(num1) case 1 : miao+; if(miao=60)miao=0; break; case 2 : fen+; if(fen=60)fen=0; break; case 3 : shi+; if(shi=24)shi=0; break; if(P1=0xbe);/時間減 delay(10); if(P1=0xbe) while(P1=0xbe)xiansi(miao,fen,shi); switch(num1) case 1 : miao-; if(miao=-1)miao=59; break; case 2 : fen-; if(fen=-1)fen=
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 行政權力的適當行使與法律約束試題及答案
- 網絡管理員考試技術提升試題及答案
- 法學概論考試常見題型試題及答案
- 責任與擔當的當代年輕人試題及答案
- 高考全面評估試題及答案
- 行業趨勢分析與年度應對計劃
- 行業動態監測月度工作計劃
- 營銷推廣方案計劃
- 企業責任與年度工作結合計劃
- 難民潮對歐洲經濟的挑戰探討試題及答案
- 2024全國高中數學聯賽山東賽區預賽試卷(含解析)
- 2024年中國家具電商行業市場競爭格局及投資方向研究報告(智研咨詢)
- 導數(30題)-2024年考前15天高考數學沖刺大題訓練(新高考)含答案
- 高層建筑一棟一冊消防安全檔案
- 創造性思維與創新方法智慧樹知到期末考試答案章節答案2024年大連理工大學
- 外科圍手術期營養支持療法
- 廣東省深圳市南山區2023-2024學年四年級下學期期末科學試題
- 2024年江蘇省高考化學試卷(含答案)
- 2024年安徽省初中(八年級)學業水平考試初二會考地理試卷真題
- 小學二年級數學100以內三數加減混合運算綜合測驗試題大全附答案
- 中國特色社會主義期中測試題-2023-2024學年中職高教版
評論
0/150
提交評論