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

下載本文檔

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

文檔簡介

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

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

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

4、鐘音樂程序 模塊四:鍵盤掃描得到按鍵值函數(shù),根據(jù)鍵值轉(zhuǎn)到相應(yīng)的模塊執(zhí)行相應(yīng)的功能。各個模塊程序設(shè)計好之后,要進行最后的整合,函數(shù)的調(diào)用參數(shù)設(shè)置要正確,使 程序能夠正常的運行,在keil上調(diào)試通過之后,檢查proteus中硬件連接有沒有 錯誤,確定無誤后,在proteus中進行模擬實驗,最后可以到實驗室進行真實元 器件的連接。四.硬件設(shè)計1 .總體設(shè)計方案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測是輸出端,使用外部振蕩 器時,外部振蕩信號應(yīng)直接加到 XTAL而XTAL2懸空。內(nèi)部方式時,時鐘發(fā)生 器對振蕩脈沖二分頻,如晶振為12MHz時鐘頻率就為6MHz晶振的頻率可以在 1MHz-24MH內(nèi)選擇。電容取30PF左右。系統(tǒng)的時鐘電路設(shè)計是采用的內(nèi)部方式, 即利用芯片內(nèi)部的振蕩電路。AT89單片機內(nèi)部有一個用于構(gòu)成振蕩器的高增益 反相放大器。引腳XTAL1和XTAL2分別是此放大器的輸入端和輸出端。 這個放大 器與作為反饋元件的片外晶體諧振器一起構(gòu)成一個自激振蕩器。外接晶體諧振器以及電容C1

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

8、器SFR部清零。當(dāng)復(fù)位腳由高電平變?yōu)榈碗娖綍r,芯片為ROM勺00H處開始運行程序。復(fù)位是由外部的復(fù)位電路來實現(xiàn)的。片內(nèi)復(fù)位電路是復(fù)位引腳RST通過一個斯密 特觸發(fā)器與復(fù)位電路相連,斯密特觸發(fā)器用來抑制噪聲,它的輸出在每個機器周 期的S5Pz由復(fù)位電路采樣一次。復(fù)位電路通常采用上電自動復(fù)位和按鈕復(fù)位 兩種方式,此電路系統(tǒng)采用的是按鈕復(fù)位電路。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)鍵盤電路設(shè)計該設(shè)計只用了一個鍵盤,但實現(xiàn)的功能卻是比較完善,減少了硬件資源的損 耗,該鍵盤可以實現(xiàn)小時和分鐘的調(diào)節(jié)以及控制是否進入省電模式。當(dāng)按鍵按下又松開,可以實現(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 來表示。當(dāng)數(shù)碼管特定的段加 上電壓后,這些特定的段就會發(fā)亮,以形成我們眼睛看到的字樣了。如:顯示一 個“2”字,那么應(yīng)當(dāng)是a亮b亮g亮e亮d亮f不亮c不亮dp不亮。LE國碼 管有一般亮和超亮等不同之分,也有 0.5寸、1寸等不同的尺寸。小尺寸數(shù)碼管 的顯示筆畫常用一個發(fā)光二極管組成,而大尺寸的數(shù)碼管由二個或多個發(fā)光二極 管組成,一般情況下,單個發(fā)光二極管的管壓降為1.8V左右,電流不超過30mA 發(fā)光二極管的陽極連接到一起連接到電源正極的稱為共陽數(shù)碼管,發(fā)光二極管的陰極連接到一起連接到電源負(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ù)鎖存控制端;當(dāng)LE=1時,鎖存器輸出端同輸入端;當(dāng)LE由“1變?yōu)椤?” 時,數(shù)據(jù)輸入鎖存器中。OE為輸出允許端;當(dāng)OE= 0”時,三態(tài)門打開;當(dāng)OE= 1”時,三態(tài)門關(guān)閉,輸出呈高阻狀態(tài)。在MCS-51單片機系統(tǒng)中,常采用74LS373作為地址鎖存器使用,具連接方法如 電路硬件圖所示。其中輸入端1D8D接至單片機的P0口,輸出端提供的是低8位 地址,LE端接至單片機的地址鎖存允許信號 ALE。輸出允許端OE接地,表示輸 出三態(tài)門一直打開。五.軟件設(shè)計主程序以及各子程序的流程圖如

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

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

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

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

17、寫,最終還要把幾部分程序都結(jié)合在一起,任務(wù)艱巨,但是也具有挑戰(zhàn)性,讓我學(xué)會了很多東西,最終我們團結(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)整定義/復(fù)位清零/暫停/ 鬧鐘/蜂鳴器/啟動/延時子程序 /時間處理子程序 /顯示子程序 /鍵盤掃描子程序 /定時

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+;/秒鐘設(shè)為60 進制/ 分鐘設(shè)為60 進制if(hour=24) hour=0; / 時鐘設(shè)為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)/復(fù)位清零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關(guān)閉if(P1_6=0)/啟動 delay (100);if(P1_6=0) while(P1_6=0)TR0=1;/定時器0啟動 if(P1_5=0)/按住 P1_5 不松,顯示鬧鈴設(shè)置界面,分別按間。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)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論