單片機電子時鐘報告(共22頁)_第1頁
單片機電子時鐘報告(共22頁)_第2頁
單片機電子時鐘報告(共22頁)_第3頁
單片機電子時鐘報告(共22頁)_第4頁
單片機電子時鐘報告(共22頁)_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 安徽科技學(xué)院 單片機課程設(shè)計 單片機原理(yunl)及應(yīng)用(yngyng)課程設(shè)計題 目: C52單片機電子時鐘電路設(shè)計 姓 名: 陶鵬鵬 專 業(yè): 電子科學(xué)與技術(shù) 班 級: 121班 指導(dǎo)教師: 高 海 濤 安徽科技學(xué)院 數(shù)理學(xué)院目錄(ml) TOC o 1-3 h z u HYPERLINK l _Toc422423771 1、基于單片機的電子(dinz)時鐘電路設(shè)計 HYPERLINK l _Toc422423772 1.1設(shè)計(shj)任務(wù)與要求 HYPERLINK l _Toc422423773 1.1.1設(shè)計目的: HYPERLINK l _Toc422423774 1.1.2設(shè)

2、計要求: HYPERLINK l _Toc422423775 1.2方案設(shè)計 HYPERLINK l _Toc422423776 2、單片機應(yīng)用系統(tǒng)簡介 HYPERLINK l _Toc422423777 2.1AT89C52單片機的功能結(jié)構(gòu) HYPERLINK l _Toc422423778 2.2單片機的引腳定義及功能 HYPERLINK l _Toc422423779 2.3 定時計數(shù)器 HYPERLINK l _Toc422423780 2.3.1定時/計數(shù)器結(jié)構(gòu) HYPERLINK l _Toc422423781 2.3.2工作原理 HYPERLINK l _Toc422423782

3、 2.4鍵盤接口技術(shù) HYPERLINK l _Toc422423783 2.5復(fù)位操作 HYPERLINK l _Toc422423784 2.6 顯示控制模塊 HYPERLINK l _Toc422423785 3、硬件電路設(shè)計 HYPERLINK l _Toc422423786 3.1電子時鐘的電路圖 HYPERLINK l _Toc422423787 3.2單元電路設(shè)計 HYPERLINK l _Toc422423788 3.2.1晶振、復(fù)位電路模塊 HYPERLINK l _Toc422423789 3.2.2鍵盤控制模塊 HYPERLINK l _Toc422423790 3.2.

4、3蜂鳴器電路模塊 HYPERLINK l _Toc422423791 3.2.4顯示器電路模塊 HYPERLINK l _Toc422423792 4、軟件設(shè)計 HYPERLINK l _Toc422423793 4.1系統(tǒng)主程序設(shè)計 HYPERLINK l _Toc422423794 4.2主程序清單 HYPERLINK l _Toc422423795 4.3系統(tǒng)仿真與調(diào)試 HYPERLINK l _Toc422423796 5、結(jié)論與心得 安徽科技學(xué)院 單片機課程設(shè)計 摘 要電子鐘是一種利用(lyng)數(shù)字電路來顯示秒、分、時的計時裝置,與傳統(tǒng)的機械鐘相比,它具有走時準確、顯示直觀、無機械

5、傳動裝置等優(yōu)點,因而得到廣泛應(yīng)用。隨著人們生活環(huán)境的不斷改善和美化,在許多場合都用到電子時鐘。現(xiàn)在高精度的計時工具大多數(shù)都使用了石英晶體振蕩器,由于電子鐘、石英鐘、石英表都采用了石英技術(shù),因此走時精度高,穩(wěn)定性好,使用方便,不需要經(jīng)常調(diào)試,數(shù)字式電子鐘用集成電路計時時,譯碼代替機械式傳動,用數(shù)碼管顯示器代替指針顯示進而顯示時間,減小了計時誤差,這種表具有時、分、秒顯示時間的功能,還可以進行時,分和秒的校對,片選的靈活性好。 本課程設(shè)計就是用一塊89C52單片機和共陰極(ynj)數(shù)碼管顯示屏及其他元器件設(shè)計出一個電子時鐘。用單片機的定時器來產(chǎn)生時鐘信號,通過掃描幾個按鍵來控制時鐘。把這幾個模塊的

6、程序及原理圖設(shè)計好后組合在一起就成了一個電子時鐘。 關(guān)鍵詞:89C52單片機;共陰極(ynj)數(shù)碼管;定時器;石英晶體振蕩器;1、基于單片機的電子時鐘電路設(shè)1.1設(shè)計任務(wù)與要求 1.1.1設(shè)計目的:(1)學(xué)習(xí)輸出口的使用方法;(2)學(xué)習(xí)定時/計數(shù)器的使用;(3)學(xué)習(xí)中斷的使用;1.1.2設(shè)計要求:電路的基本功能應(yīng)包括數(shù)碼顯示時間、可以手動調(diào)節(jié)時間、定時鬧鈴等,制作出實物并調(diào)試演示成功。1.2方案設(shè)計 方案:該系統(tǒng)采用52系列單片機AT89C52作為控制核心,該系統(tǒng)可以完成運算控制、信號識別以及顯示功能的實現(xiàn)。由于用了單片機,使其技術(shù)比較成熟,應(yīng)用起來方便、簡單并且單片機周圍的輔助電路也比較少,

7、便于控制和實現(xiàn)。整個系統(tǒng)具有極其靈活的可編程性,能方便地對系統(tǒng)進行功能的擴張和更改。AT89C52單片機特點如下:(1)單片機按照工業(yè)控制要求設(shè)計,抵抗工業(yè)噪聲干擾優(yōu)于一般的CPU,程序指令和數(shù)據(jù)都可以寫在ROM里,許多信號通道(tngdo)都在同一芯片,因此可靠性高,易擴充。(2)單片機有一般電腦所必須的器件,如三態(tài)雙向總線,串并行(bngxng)的輸入及輸出引腳, 可擴充(kuchng)為各種規(guī)模的微電腦系統(tǒng)。(3)控制功能強:單片機指令除了輸入輸出指令,邏輯判斷指令外還有更豐富的條件分支跳躍指令。AT89C52單片機晶振 復(fù)位電路獨立鍵盤電路顯示電路蜂鳴器電路圖1.1時鐘電路結(jié)構(gòu)設(shè)計總框

8、圖2、單片機應(yīng)用系統(tǒng)簡介2.1AT89C52單片機的功能結(jié)構(gòu)如下圖所示,單片機是屬于三總線結(jié)構(gòu),89C52單片機功能方框圖。圖2.1單片機內(nèi)部結(jié)構(gòu)框2.2單片機的引腳定義(dngy)及功能圖2.1雙列直插式引腳分布(fnb)引腳功能(gngnng):VCC工作電源+5V。GND電源地。ALE/PROG訪問外部存儲器時作為低8位地址鎖存控制信號;在對EPROM編程時作為編程脈沖輸入;在不訪問外部存儲器和非EPROM編程狀態(tài)下,該腳輸出頻率為1/6單片機晶振頻率的方波信號,該信號,可作為時鐘脈沖,但在訪問數(shù)據(jù)存儲器時會丟失一個脈沖。PSEN外部程序存儲器讀選通信號。EA/VPP訪問程序存儲器控制信

9、號。當EA為低電平時,只讀外部存儲器,當EA為高電平時則先讀內(nèi)部程序存儲器,再讀外部程序存儲器;這個引腳在編程時接編程電壓VPP。RST復(fù)位信號,對系統(tǒng)復(fù)位信號要2T。XTAL1片內(nèi)振蕩電路輸入端。XTAL2片內(nèi)振蕩電路輸出端。P0-P3輸入輸出端口。2.3 定時計數(shù)器 2.3.1定時/計數(shù)器結(jié)構(gòu)圖2.2定時(dn sh)/計數(shù)器結(jié)構(gòu)89C52單片機內(nèi)部設(shè)有兩個16位定時/計數(shù)器,簡稱(jinchng)為定時器0(T0)和定時器1(T1)。定時器計數(shù)器的結(jié)構(gòu)如圖2.2所示:TMOD方式(fngsh)控制寄存器,用于設(shè)定定時計數(shù)器的工作方式 TCON定時器控制寄存器,用于啟動定時計數(shù)器 IE中斷

10、允許控制寄存器:定時計數(shù)器是微機的中斷源2.3.2工作原理89C52系列單片機內(nèi)部定時計數(shù)器的工作原理可用圖2.3來說明。圖2.3 定時計數(shù)器的工作原理定時/計數(shù)功能選擇:當CT0時,為定時器功能,此時,C與A相連(計數(shù)脈沖為機器周期);當CT1時,為計數(shù)功能,此時,C與B相連(計數(shù)脈沖從 P3.4或P3.5口輸入)。 定時/計數(shù)器設(shè)置:定時計數(shù)器設(shè)置由工作方式控制寄存器(TMOD)、定時控制寄存器(TCON)以及中斷允許寄存器(IE)共同完成。2.4鍵盤接口技術(shù) 鍵盤分兩類:獨立連接多鍵盤和矩陣式鍵盤,如圖2.4所示。圖2.4獨立式鍵盤(jinpn)獨立式按鍵結(jié)構(gòu)獨立式按鍵結(jié)構(gòu)的鍵盤是最簡單

11、的鍵盤電路(dinl),每個鍵獨立接入一根輸入線。這種鍵盤的優(yōu)點是結(jié)構(gòu)簡單、使用十分方便,目前這種結(jié)構(gòu)的鍵盤應(yīng)用還相當普遍,這種鍵盤的缺點是隨著鍵數(shù)數(shù)量的增加所占用的I/O口線也增加。獨立式按鍵結(jié)構(gòu)的鍵盤在沒有鍵按下時,數(shù)據(jù)輸入線均為高電平,當有鍵按下時,與之對應(yīng)的數(shù)據(jù)線將變成低電平。因此可用位指令(zhlng)判別是否有鍵按下。2.5復(fù)位操作復(fù)位操作是單片機的初始化操作,單片機在進入運行前和在運行過程中程序出錯或操作失誤使系統(tǒng)不能正常運行時,需要進行復(fù)位操作。復(fù)位操作后,程序?qū)?000H開始重新執(zhí)行。除此之外,復(fù)位操作還使單片機的ALE和PSEN引腳信號在復(fù)位期間變?yōu)闊o效狀態(tài)。單片機對復(fù)位

12、信號的要求:一是復(fù)位信號為高電平,二是復(fù)位信號有效持續(xù)時間不少于24個振蕩脈沖(兩個機器周期)以上。在這里特別要提醒的是,在一個應(yīng)用系統(tǒng)中,如果有幾片單片機同時工作,在程序上有連接關(guān)系,系統(tǒng)復(fù)位時,應(yīng)確保每一片單片機同時復(fù)位。復(fù)位信號由單片機的RST引腳輸入,復(fù)位操作有上電自動復(fù)位、按鍵復(fù)位和外部脈沖復(fù)位三種方式。隨著單片機技術(shù)的發(fā)展,目前有些單片機內(nèi)部帶有看門狗電路,當程序進行出錯或進入了無休止循環(huán)時,看門狗電路將利用軟件強行使系統(tǒng)復(fù)位。2.6 顯示控制模塊圖2.5八位(b wi)共陰數(shù)碼管顯示為了(wi le)節(jié)省I/O口,采用動態(tài)顯示的方法,用兩片74HC573,用作段鎖存和位鎖存器。3

13、、硬件(yn jin)電路設(shè)計3.1電子時鐘的電路圖圖3.1電子時鐘電路原理圖3.2單元電路設(shè)計 3.2.1晶振、復(fù)位電路模塊 圖3.2晶振、復(fù)位(f wi)電路圖晶振電路:采用(ciyng)12Mhz的晶振,22pF的電容。當MCS-5l系列單片機的復(fù)位引腳RST(全稱RESET)出現(xiàn)2個機器周期以上的高電平時,單片機就執(zhí)行復(fù)位操作。如果RST持續(xù)為高電平,單片機就處于循環(huán)復(fù)位狀態(tài)。根據(jù)應(yīng)用的要求,復(fù)位操作通常有兩種基本(jbn)形式:上電復(fù)位和上電或開關(guān)復(fù)位。上電復(fù)位要求接通電源后,自動實現(xiàn)復(fù)位操作。上電后,保持RST一段高電平時間。3.2.2鍵盤控制模塊 圖3.2鍵盤(jinpn)控制電

14、路圖根據(jù)題目(tm)要求,只需要6個按鍵(如圖3.2),選用獨立(dl)按鍵模式。 這6個鍵的功能分別為: KEY1:時鐘時位加鍵,每按一次時位的時間值加1;KEY2:時鐘時位減鍵,每按一次時位的時間值減1;KEY3:時鐘分位加鍵,每按一次分位的時間值加1;KEY4:時鐘分位減鍵,每按一次分位的時間值減1;KEY5:時鐘秒位加鍵,每按一次秒位的時間值加1;KEY6:時鐘秒位減鍵,每按一次秒位的時間值減1;3.2.3蜂鳴器電路模塊圖3.3蜂鳴器電路(dinl)模塊喇叭(l b)一腳與單片機的P1.1腳相連,一腳(y jio)接地。如圖3.3所示。3.2.4顯示器電路模塊4、軟件設(shè)計4.1系統(tǒng)主程

15、序設(shè)計初始化程序:設(shè)置單片機的定時器0工作在模式1(16位定時器),對定時器0賦初值,開啟總中斷和定時器中斷,定時器開始計時,可計時24小時,為節(jié)省I/O口,用動態(tài)掃描的方法,用兩片74HC573分別控制段選通和位選通,將時間顯示到共陰極數(shù)碼管上,計時完成后重新開始計時,蜂鳴器電路可通過P11口在整點時發(fā)聲報時。4.2主程序清單根據(jù)硬件電路的連接以及我們要實現(xiàn)的功能(gngnng),編寫出了如下的C程序(chngx),該程序能夠?qū)崿F(xiàn)(shxin)我們設(shè)計所需要的功能,具體的程序代碼如下:#include /包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義unsigned char

16、 frq;sbit H_KEY_ADD=P32; /定義按鍵輸入端口sbit H_KEY_DEC=P33;sbit M_KEY_ADD=P34;sbit M_KEY_DEC=P35;sbit S_KEY_ADD=P36;sbit S_KEY_DEC=P37;#define DataPort P0 /定義數(shù)據(jù)端口 程序中遇到DataPort 則用P0 替換sbit LATCH1=P22;/定義鎖存使能端口 段鎖存sbit LATCH2=P23;/ 位鎖存sbit Beep = P11;/定義喇叭端口 bit BeepFlag;unsigned char code dofly_DuanMa10=0

17、 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;/ 顯示段碼值09unsigned char code dofly_WeiMa=0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf,0 xbf,0 x7f;/分別對應(yīng)相應(yīng)的數(shù)碼管點亮,即位碼unsigned char TempData8; /存儲(cn ch)顯示值的全局變量unsigned char h,m,s;bit UpdateTimeFlag;void DelayUs2x(unsigned char t);/函數(shù)(hnsh)聲明 void Delay

18、Ms(unsigned char t);void Display(unsigned char FirstBit,unsigned char Num);void Init_Timer0(void);void Beep_OFF(void);void Beep_ON(void);void Display_Data_Operation(void); void main (void) unsigned char num=0; H_KEY_ADD=1; /按鍵輸入(shr)端口電平置高 H_KEY_DEC=1; M_KEY_ADD=1; /按鍵輸入端口電平置高 M_KEY_DEC=1; S_KEY_ADD

19、=1; /按鍵輸入端口電平置高 S_KEY_DEC=1; Init_Timer0(); while (1) /主循環(huán) if(!H_KEY_ADD) /如果檢測到低電平,說明按鍵按下 DelayMs(10); /延時去抖,一般10-20ms if(!H_KEY_ADD) /再次確認按鍵是否按下,沒有按下則退出 while(!H_KEY_ADD);/如果確認按下按鍵等待(dngdi)按鍵釋放,沒有釋放則一直執(zhí)行數(shù)碼管掃描,防止閃爍 if(h0) /減操作 h-; if(!M_KEY_ADD) /如果檢測到低電平,說明按鍵按下 DelayMs(10); /延時去抖,一般10-20ms if(!M_K

20、EY_ADD) /再次確認按鍵是否按下,沒有按下則退出 while(!M_KEY_ADD);/如果確認按下按鍵等待按鍵釋放,沒有釋放則一直執(zhí)行數(shù)碼管掃描,防止閃爍 if(m0) /減操作 m-; if(!S_KEY_ADD) /如果檢測到低電平,說明按鍵按下 DelayMs(10); /延時去抖,一般10-20ms if(!S_KEY_ADD) /再次確認按鍵是否按下,沒有按下則退出 while(!S_KEY_ADD);/如果確認按下按鍵等待按鍵釋放,沒有釋放則一直執(zhí)行數(shù)碼管掃描,防止閃爍 if(s0) /減操作 s-; TempData0=dofly_DuanMah/10;/分解顯示信息,如

21、要顯示68,則68/10=6 68%10=8 TempData1=dofly_DuanMah%10; TempData2=0 x40; /顯示一橫 TempData3=dofly_DuanMam/10; TempData4=dofly_DuanMam%10; TempData5=0 x40; TempData6=dofly_DuanMas/10; TempData7=dofly_DuanMas%10; / Display(0,8); /顯示全部8位 /主循環(huán)中添加其他需要一直工作的程序 if(BeepFlag=1) BeepFlag=0; DelayMs(500); /延時1ms,累加頻率(p

22、nl)值 frq+; /* uS延時函數(shù),含有(hn yu)輸入?yún)?shù) unsigned char t,無返回值 unsigned char 是定義無符號字符變量(binling),其值的范圍是 0255 這里使用晶振12M,精確延時請使用匯編,大致延時 長度如下 T=tx2+5 uS */void DelayUs2x(unsigned char t) while(-t);/* mS延時函數(shù),含有輸入?yún)?shù) unsigned char t,無返回值 unsigned char 是定義無符號字符變量,其值的范圍是 0255 這里使用晶振12M,精確延時請使用匯編*/void DelayMs(unsi

23、gned char t) while(t-) /大致延時1mS DelayUs2x(245); DelayUs2x(245); /* 顯示函數(shù),用于動態(tài)掃描數(shù)碼管 輸入?yún)?shù)(cnsh) FirstBit 表示需要顯示的第一位,如賦值2表示從第三個數(shù)碼管開始顯示 如輸入(shr)0表示從第一個顯示。 Num表示需要顯示(xinsh)的位數(shù),如需要顯示99兩位數(shù)值則該值輸入2*/void Display(unsigned char FirstBit,unsigned char Num) static unsigned char i=0; DataPort=0; /清空數(shù)據(jù),防止有交替重影 LATC

24、H1=1; /段鎖存 LATCH1=0; DataPort=dofly_WeiMai+FirstBit; /取位碼 LATCH2=1; /位鎖存 LATCH2=0; DataPort=TempDatai; /取顯示數(shù)據(jù),段碼 LATCH1=1; /段鎖存 LATCH1=0; i+; if(i=Num) i=0;/* 定時器初始化子程序*/void Init_Timer0(void) TMOD |= 0 x01; /使用模式1,16位定時器,使用|符號(fho)可以在使用多個定時器時不受影響 EA=1; /總中斷(zhngdun)打開 ET0=1; /定時器中斷(zhngdun)打開 TR0=1; /定時器開關(guān)打開/* 定時器中斷子程序*/void Timer0_isr(void) interrupt 1 stati

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論