獨立按鍵數(shù)字電子鐘要點_第1頁
獨立按鍵數(shù)字電子鐘要點_第2頁
獨立按鍵數(shù)字電子鐘要點_第3頁
獨立按鍵數(shù)字電子鐘要點_第4頁
獨立按鍵數(shù)字電子鐘要點_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、方案一獨立鍵盤數(shù)字電科 0902班組長:祁俐俐組員:吉才 韓江 蔡楊2012蘇欣 李程 付磊年7月 12日獨立鍵盤數(shù)字電子鐘一、電子鐘設計目的1、學習數(shù)字電子鐘的原理和實現(xiàn)方法。2、掌握鍵盤的控制原理和編程方法。3、掌握51 單片機定時器與中斷的使用。4、掌握led數(shù)碼管顯示的原理及編程方法。二 電子鐘設計要求設計一個數(shù)字電子鐘,要求可進行時、分、秒顯示,最大顯示時間為23:59:59 , , 并且具有時間調(diào)整、鬧鈴、啟動、暫停和清零(復位)等功能。 可以完成以下幾點功能:1 )六個led上實現(xiàn)正常的時間顯示,24小時制2 )實現(xiàn)時間的正確調(diào)節(jié)3 )鬧鐘的定時及到時間之后的音樂響鈴4)獨立鍵盤

2、,設有暫停鍵,啟動鍵,清零鍵,時調(diào)整鍵,分調(diào)整鍵,秒調(diào)整 鍵,鬧鐘鍵。三 設計方案規(guī)劃與選定根據(jù)要求采用at89c51單片機進行設計,at89c51單片機是一款低功耗,高 性能cmos啦單片機,片內(nèi)含4kb在線可編程(isp)的可反復擦寫1000次的 flash 只讀程序存儲器, 器件采用高密度、 非易失性存儲技術(shù)制造, 兼容標準 mcs- 51指令系統(tǒng)及80c51引腳結(jié)構(gòu)。這樣,既能做到經(jīng)濟合理又能實現(xiàn)預期的功能。 在程序方面,采用分塊設計的方法,這樣既減小了編程難度、使程序易于理解, 又能便于添加各項功能。 程序可分為鬧鐘的音樂程序、 時間顯示程序、 鬧鐘顯示 程序、調(diào)時顯示、定時程序,走

3、時程序,復位的模塊化的程序。 硬件接線圖如圖所示:原理分析如下:主程序:執(zhí)行主程序,按照得到的的1到7鍵值轉(zhuǎn)到相應的子程序去執(zhí)行相應的功 能。模塊一:時間顯示模塊:用51單片機的6個ledt段數(shù)碼管,依次分別顯示時,分, 秒,中間用小數(shù)點分開。正常走時時秒數(shù)滿60!位,分鐘加1,分鐘滿60小時加1, 小時滿24清0模塊二:顯示時間調(diào)整模塊:當按下鍵值為1,2,3的開關后,進入時間調(diào)整程序, 對六個數(shù)碼管相應位的的控制按照我們生活中的正常邏輯進行控制。 進行調(diào)整時 問模塊三:鬧鐘音樂模塊:當按下鍵值為 6的開關后,進入鬧鐘時間設置狀態(tài),設 定相應的時間,當?shù)搅嗽O定的時間之后,進入產(chǎn)生中斷,進入鬧

4、鐘音樂程序 模塊四:鍵盤掃描得到按鍵值函數(shù),根據(jù)鍵值轉(zhuǎn)到相應的模塊執(zhí)行相應的功能。各個模塊程序設計好之后,要進行最后的整合,函數(shù)的調(diào)用參數(shù)設置要正確,使 程序能夠正常的運行,在keil上調(diào)試通過之后,檢查proteus中硬件連接有沒有 錯誤,確定無誤后,在proteus中進行模擬實驗,最后可以到實驗室進行真實元 器件的連接。四.硬件設計1 .總體設計方案2 .硬件電路(1) at89c51- u11oxtai_1po .o/adofo.1/ad1 po 2/ad2xtal2po .3/ad3p0.-4/ao4 po 5/ad5 fo 6/ado rstpo 7/ad7f2.oxasp2,2/a

5、1o psenp2r3/a11alep2.4/a12eap2 p5/a13p2.8/a1 p2 .7va15p1.0p3.0/rxid303b373g9so3433322i *2223243cl253ii2g2siio21 13.2p32j1ntop13p3.3/i nt1f 1 啟p3.4ttop1.5p3,5/t1.6ps.baiurp1p7p3,7xrd124_整3146157ne817jft.t89.c51 -,,-r-1、電源引腳vcc電源端,gn榮地端,工作電壓為5v,2、外接晶體引腳l1t-c1i11 t 1,內(nèi)部方式xtal2xtaligno依空xtal2外部驚蕩信號12 .外

6、需方式xtal1gnd晶振連接的內(nèi)部、外部方式圖xtal1是片內(nèi)振蕩器的反相放大器輸入端,xtal測是輸出端,使用外部振蕩 器時,外部振蕩信號應直接加到 xtal而xtal2懸空。內(nèi)部方式時,時鐘發(fā)生 器對振蕩脈沖二分頻,如晶振為12mhz時鐘頻率就為6mhz晶振的頻率可以在 1mhz-24mh內(nèi)選擇。電容取30pf左右。系統(tǒng)的時鐘電路設計是采用的內(nèi)部方式, 即利用芯片內(nèi)部的振蕩電路。at89單片機內(nèi)部有一個用于構(gòu)成振蕩器的高增益 反相放大器。引腳xtal1和xtal2分別是此放大器的輸入端和輸出端。 這個放大 器與作為反饋元件的片外晶體諧振器一起構(gòu)成一個自激振蕩器。外接晶體諧振器以及電容c1

7、和c2構(gòu)成并聯(lián)諧振電路,接在放大器的反饋回路中。對外接電容的 值雖然沒有嚴格的要求,但電容的大小會影響震蕩器頻率的高低、震蕩器的穩(wěn)定 性、起振的快速性和溫度的穩(wěn)定性。因此,此系統(tǒng)電路的晶體振蕩器的值為 12mhz電容應盡可能的選擇陶瓷電容,電容值約為 22pf。在焊接刷電路板時, 晶體振蕩器和電容應盡可能安裝得與單片機芯片靠近,以減少寄生電容,更好地保證震蕩器穩(wěn)定和可靠地工作。3、復位rst在振蕩器運行時,有兩個機器周期(24個振蕩周期)以上的高電平出現(xiàn)在 此引腿時,將使單片機復位,只要這個腳保持高電平,51芯片便循環(huán)復位。復位后p0- p3 口均置1引腳表現(xiàn)為高電平,程序計數(shù)器和特殊功能寄存

8、器sfr部清零。當復位腳由高電平變?yōu)榈碗娖綍r,芯片為rom勺00h處開始運行程序。復位是由外部的復位電路來實現(xiàn)的。片內(nèi)復位電路是復位引腳rst通過一個斯密 特觸發(fā)器與復位電路相連,斯密特觸發(fā)器用來抑制噪聲,它的輸出在每個機器周 期的s5pz由復位電路采樣一次。復位電路通常采用上電自動復位和按鈕復位 兩種方式,此電路系統(tǒng)采用的是按鈕復位電路。4、輸入輸出引腳(1) p0端口 p0.0-p0.7 p0 是一個8位漏極開路型雙向i/o端口,端口置 1(對端口寫1)時作高阻抗輸入端。作為輸出口時能驅(qū)動8個ttl對內(nèi)部flash 程序存儲器編程時,接收指令字節(jié);校驗程序時輸出指令字節(jié),要求外接上拉電 阻

9、。在訪問外部程序和外部數(shù)據(jù)存儲器時,p0 口是分時轉(zhuǎn)換的地址(低8位)/數(shù) 據(jù)總線,訪問期間內(nèi)部的上拉電阻起作用。(2) p1端口 p1.0 p1.7 p1是一個帶有內(nèi)部上拉電阻的 8位雙向i/0端口。 輸出時可驅(qū)動4個ttl端口置1時,內(nèi)部上拉電阻將端口拉到高電平,作輸入 用。(3) p2端口 p2.0 -p2.7 p2是一個帶有內(nèi)部上拉電阻的 8位雙向i/o端口。 輸出時可驅(qū)動4個ttl端口置1時,內(nèi)部上拉電阻將端口拉到高電平,作輸入 用。對內(nèi)部flash程序存儲器編程時,接收高8位地址和控制信息。(4) p3端口 p3.0 p3.7 p2是一個帶有內(nèi)部上拉電阻的 8位雙向i/o端口。 輸

10、出時可驅(qū)動4個ttl端口置1時,內(nèi)部上拉電阻將端口拉到高電平,作輸入 用。(2)鍵盤電路設計該設計只用了一個鍵盤,但實現(xiàn)的功能卻是比較完善,減少了硬件資源的損 耗,該鍵盤可以實現(xiàn)小時和分鐘的調(diào)節(jié)以及控制是否進入省電模式。當按鍵按下又松開,可以實現(xiàn)屏蔽數(shù)碼管顯示的功能,達到省電的目的;直接按下不松開, 則可以通過按鍵實現(xiàn)分鐘的累加, 每按一次分鐘加一;而連續(xù)兩次按下按鍵不放 松,則可實現(xiàn)小時的調(diào)節(jié),同樣每按一次小時加一。達到時間調(diào)節(jié)的目的。選擇 的多功能按鍵如圖所示。(3)數(shù)碼管:數(shù)碼管字樣ledgc碼管實際上是由七個發(fā)光管組成 8字形構(gòu)成的,加上小數(shù)點就是8個。 如圖3-10。這些段分別由字母

11、a,b,c,d,e,f,g,dp 來表示。當數(shù)碼管特定的段加 上電壓后,這些特定的段就會發(fā)亮,以形成我們眼睛看到的字樣了。如:顯示一 個“2”字,那么應當是a亮b亮g亮e亮d亮f不亮c不亮dp不亮。le國碼 管有一般亮和超亮等不同之分,也有 0.5寸、1寸等不同的尺寸。小尺寸數(shù)碼管 的顯示筆畫常用一個發(fā)光二極管組成,而大尺寸的數(shù)碼管由二個或多個發(fā)光二極 管組成,一般情況下,單個發(fā)光二極管的管壓降為1.8v左右,電流不超過30ma 發(fā)光二極管的陽極連接到一起連接到電源正極的稱為共陽數(shù)碼管,發(fā)光二極管的陰極連接到一起連接到電源負極的稱為共陰數(shù)碼管。常用led數(shù)碼管顯示的數(shù)字 和字符是 0、1、2、

12、3、4、5、6、7、8、9。(4) 74ls373, *11 :作不1d8m 8個輸入端1q8q為8個輸出端le是數(shù)據(jù)鎖存控制端;當le=1時,鎖存器輸出端同輸入端;當le由“1變?yōu)椤?” 時,數(shù)據(jù)輸入鎖存器中。oe為輸出允許端;當oe= 0”時,三態(tài)門打開;當oe= 1”時,三態(tài)門關閉,輸出呈高阻狀態(tài)。在mcs-51單片機系統(tǒng)中,常采用74ls373作為地址鎖存器使用,具連接方法如 電路硬件圖所示。其中輸入端1d8d接至單片機的p0口,輸出端提供的是低8位 地址,le端接至單片機的地址鎖存允許信號 ale。輸出允許端oe接地,表示輸 出三態(tài)門一直打開。五.軟件設計主程序以及各子程序的流程圖如

13、下:主程序流程圖顯小子程序按鍵處理子程序定時器中斷子程序軟件設計思路如下:1主程序設計:主程序中完成對定時器設置的初始化,然后進入無限循環(huán)的查詢模塊,動態(tài)掃描ledl示模塊,使顯示走時正常。同時在循環(huán)中完成對鍵盤的狀態(tài)(是否有鍵按下,如有是哪一個)進行監(jiān)控,如果有鍵按下根據(jù)其鍵值跳轉(zhuǎn)到相應的子程序中進行執(zhí)行, 完成相應的功能后會自動跳轉(zhuǎn)回來。 這樣整個程序就實現(xiàn)了連續(xù)有效的運行。2. 按鍵掃描子程序: 首先根據(jù)端口狀態(tài)判斷是否有鍵按下, 如果沒有就跳過讀鍵值這個階段。 如果有鍵按下就通過掃描判斷出所按下鍵的位置, 并相應的形成鍵值,保存在一個全局變量中等待被查詢。然后跳出子程序。3. 顯示子程

14、序:該子程序在led掃描中被調(diào)用。首先根據(jù)參數(shù)判別是顯示時間還是顯示鬧鐘, 然后針對六個位形成相應的段碼值。 通過參數(shù)值在相應位輸出顯示。4. 時間及鬧鐘設定子程序: 本程序完成時間的修改及鬧鐘的設置, 對時間和鬧鐘的設置是通過修改時間值的全局變量或鬧鐘值的全局變量來完成的。 在修改過程中正在修改位用時間調(diào)整鍵來顯示,當長按時間調(diào)整鍵時,顯示鬧鐘調(diào)整頁面,當六位全部修改完畢,或者按下確定/ 退出鍵后自動跳出子程序。5. 響鈴子程序: 當設定的鬧鐘時間到時, 轉(zhuǎn)入本程序執(zhí)行。 本程序通過讀取頻率表來設定 t1 定時中斷的設定,以在響鈴端口輸出頻率一定的脈沖波。同時通過讀取時間表控制每一頻率所響的

15、時間, 這樣就可以在揚聲器輸出音樂了。 同時在程序中添加了鍵盤掃描環(huán)節(jié),一旦按下退出鍵,就關閉 t1 定時器,跳出程序,響鈴就可以終止。六調(diào)試本次仿真實驗, 在調(diào)試時遇到了不少的困難, 比如說按鍵一直閃爍, 通過查資料, 最后注釋掉了按建時的延時即可。 鬧鐘鍵一直沒有設計好, 進入鬧鐘設置頁面后,調(diào)整鬧鐘的時候時間也在變化,造成了盲調(diào),是本實驗的一大缺陷。但是本次實驗采用的是“模塊化” ,所以調(diào)試過程中可以清楚的知道是那部分出了問題,征對性的進行修改,避免了不必要的麻煩,也加快了實驗進程。獨立按鍵數(shù)字電子鐘, 只是我們組為做矩陣鍵盤數(shù)字鐘做的準備工作, 通過簡單的獨立按鍵掌握數(shù)字電子鐘的原理以

16、及某些子程序的編程, 從而為我們后面仿真矩陣鍵盤電子鐘做了很好的鋪墊。七心得體會通過這次課程設計, 使我們更深刻地感受到課程設計的綜合性之強大, 完成對數(shù)字電子鐘的設計與制作調(diào)試, 使我們對單片機應用系統(tǒng)的設計過程進行了掌握。 當我們選擇一個課程設計的時候, 不是馬上就動手做, 而是先進行可行性論證。首先提出幾套方案,然后對各個方案進行對比,由易到難,先做出一個簡單的仿真,然后根據(jù)要求一步步修改,直至達到最終要求。從剛開始對軟件的不熟悉, 對編程的不熟悉, 通過查找資料, 請教同學老師,不斷克服困哪。 這次的課程設計, 我作為我們小組的組長, 我主要是負責畫仿真圖,調(diào)試,以及其中一部分程序的編

17、寫,最終還要把幾部分程序都結(jié)合在一起,任務艱巨,但是也具有挑戰(zhàn)性,讓我學會了很多東西,最終我們團結(jié)一致,成功調(diào)制除了電子鐘。 調(diào)試成功的那一刻, 大家都很興奮, 幾天的辛苦終于得到了很大的收獲。源程序如下:#include#include#define uchar unsigned char#define uint unsigned int/* 七段共陰管顯示定義*/uchar code dispcode =0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f, ;/顯示的 0-9 以及小數(shù)點的段碼/*定義并初始化變量*/uchar second=

18、11;uchar minute=11;uchar hour=11;uchar mstcnt=0;uchar m=800;uchar shi=8;/ 鬧鈴功能uchar fen=8;uchar miao=8;uchar bjcs;/報警次數(shù) uchar j;sbit p1_0=p1a0 sbit p1_1=p1a1 sbit p1_2=p1a2 sbit p13=p1a3uchar i;/ second調(diào)整定義 用符號p1_0來表示p1. 0引腳/minite 調(diào)整定義/hour 調(diào)整定義/復位清零/暫停/ 鬧鐘/蜂鳴器/啟動/延時子程序 /時間處理子程序 /顯示子程序 /鍵盤掃描子程序 /定時

19、/鬧鐘sbit p1_4=p1a4 sbit p1_5=p1a5 sbit p2_7=p2a7 sbit p16=p1a6 /* 函數(shù)聲明 */void delay(uchar k );void time_pro( );void display( );void keyscan( );void dingshi( );void baojingsheng();/*/* 按鍵去抖 /*/ void delay20ms(void)for(i=0;i100;i+)for(j=0;j60;j+)/*/* 延時子程序*/*/ void delay (uchar k)uchar j;while(k-)!=0)f

20、or(j=0;j125;j+);/*/* 時間處理子程序 */*/ void time_pro( void) if(second=60) second=0;minute+;if( minute=60) minute=0; hour+;/秒鐘設為60 進制/ 分鐘設為60 進制if(hour=24) hour=0; / 時鐘設為24 進制/顯示小時的十位/顯示分的十位/顯示分的個位/顯示秒的十位/顯示秒的個位/ 按鍵 1 秒的調(diào)整/*/* 顯示子程序*/ /*/ void display(void)p2=0xfe;p0=dispcodehour/10;delay(4);p2=0xfd;p0=(d

21、ispcode(hour%10)|0x80;delay(4);p2=0xfb;p0=dispcodeminute/10;delay(4);p2=0xf7;p0=(dispcodeminute%10)|0x80;delay(4);p2=0xef;p0=dispcodesecond/10;delay(4);p2=0xdf;p0=dispcodesecond%10;delay(4); /*/ /*鍵盤掃描子程序 */*/ void keyscan (void) if(p1_0=0)display();if(p1_0=0)second+; while(!p1_0) display();if(secon

22、d=60) second=0; minute+;if(p1_1=0)/按鍵2 分的調(diào)整display();if(p1_1=0) minute+;while(!p1_1) display();if(minute=60) minute=0; hour+=1;if(p1_2=0)/按鍵3 小時的調(diào)整display( );if(p1_2=0) hour+;while(!p1_2)display();if(hour=24) hour=0; if(p1_3=0)/復位清零display( );if(p1_3=0) hour=0;minute=0;second=0 ;if(p1_4=0)/暫停 delay

23、(100);if(p1_4=0) while(p1_4=0)tr0=0;/定時器0關閉if(p1_6=0)/啟動 delay (100);if(p1_6=0) while(p1_6=0)tr0=1;/定時器0啟動 if(p1_5=0)/按住 p1_5 不松,顯示鬧鈴設置界面,分別按間。p2=0xfe;p0=dispcodeshi/10;delay(4);p2=0xfd;p0=(dispcode(shi%10)|0x80;delay(4);p2=0xfb;p0=dispcodefen/10;delay(4);p2=0xf7;p0=(dispcodefen%10)|0x80;delay(4);p2=0xef;p0=dispcodemiao/10;delay(4);p2=0x

溫馨提示

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

評論

0/150

提交評論