單片機(jī)實(shí)驗(yàn)報(bào)告--電子時(shí)鐘制作_第1頁
單片機(jī)實(shí)驗(yàn)報(bào)告--電子時(shí)鐘制作_第2頁
單片機(jī)實(shí)驗(yàn)報(bào)告--電子時(shí)鐘制作_第3頁
單片機(jī)實(shí)驗(yàn)報(bào)告--電子時(shí)鐘制作_第4頁
單片機(jī)實(shí)驗(yàn)報(bào)告--電子時(shí)鐘制作_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、.淮北師范大學(xué) 電子時(shí)鐘制作學(xué) 院 計(jì)算機(jī)科學(xué)與技術(shù) 專 業(yè) 計(jì)算機(jī)科學(xué)與技術(shù)(師范) 學(xué) 號(hào) 學(xué) 生 姓 名 ;1一、設(shè)計(jì)內(nèi)容與設(shè)計(jì)目的1、編寫出一個(gè)電子鐘,六個(gè)數(shù)碼管每兩個(gè)一組來分別顯示小時(shí)、分和秒;一個(gè)蜂鳴器來實(shí)現(xiàn)報(bào)時(shí)或鬧鈴等聲音功能;八個(gè)二極管玩花樣設(shè)計(jì),完美電子的整體設(shè)計(jì)。2、熟悉整個(gè)電路圖,練習(xí)一下焊接操作。3、熟練掌握C51的編程方法與技巧。4、能夠有效地控制數(shù)碼管、二極管、蜂鳴器和鍵盤的操作(可采用多種形式)。5、能夠根據(jù)原理圖焊接電路板,經(jīng)過調(diào)試,保證整個(gè)電路板沒有虛焊點(diǎn)。硬件設(shè)計(jì)要求1、根據(jù)項(xiàng)目要求,去選擇相應(yīng)的電路,比如MCU系統(tǒng),輸入輸出驅(qū)動(dòng)電路,電源供電電路。2、整體

2、布局合理,標(biāo)注規(guī)范、明確、美觀、不產(chǎn)生歧義。3、列出完整的元件清單(標(biāo)號(hào)、型號(hào)及大小、封裝形式、數(shù)量)。4、估算電路板的功耗,并對(duì)供電形式提出要求。5、根據(jù)設(shè)計(jì)好的原理圖,焊接實(shí)物。軟件設(shè)計(jì)要求1、所編代碼要能夠?qū)崿F(xiàn)以下基本功能,當(dāng)時(shí)時(shí)間的設(shè)定,定點(diǎn)鬧鈴,秒針走一下四個(gè)二極管同時(shí)向右移一位 。2、根據(jù)項(xiàng)目要求,設(shè)計(jì)軟件整體規(guī)劃,人機(jī)對(duì)話,各模塊的關(guān)聯(lián),底層驅(qū)動(dòng)模塊。3、程序在必要的地方進(jìn)行注釋。每個(gè)函數(shù)的出入口要有輸入輸出參數(shù)的說明。 程序必須具有具有良好的可讀性,可重用,容易調(diào)試和維護(hù)。4、使用c語言進(jìn)行編程。二、硬件系統(tǒng)設(shè)計(jì) 1.STC12C5A60S2控制模塊考慮到設(shè)計(jì)功能需要,控制器的

3、功能用于外部鍵盤信號(hào)的接收和識(shí)別、數(shù)碼管的顯示控制等,我們選擇了學(xué)習(xí)過的12C5A60S2系列單片機(jī),具有反應(yīng)速度極快,工作效率特高的特點(diǎn)。    12C5A60S2 是一種低功耗、高性能得微控制器,具有 8K 在系統(tǒng)可編程Flash 存儲(chǔ)器。使用Atmel 公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。另外掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。2.鍵盤功能模塊根據(jù)系統(tǒng)的基本的要求,基于時(shí)間的觀看和設(shè)定等功能,采用由四個(gè)鍵構(gòu)成的獨(dú)立式鍵盤分別接在單片機(jī)的P

4、3.2-P3.5口,非常的方便,同時(shí)相對(duì)于獨(dú)立式鍵盤大大節(jié)省了空間,在軟件的設(shè)計(jì)時(shí)帶來了極大的方便,使程序簡易明了,可讀性強(qiáng)。本次設(shè)計(jì)中,五個(gè)功能鍵分別定義為KEY1鍵、KEY2鍵、KEY3鍵、KEY4鍵對(duì)應(yīng)著小時(shí)加一、小時(shí)減一、分鐘加一、分鐘減一及同時(shí)組合鍵KEY1和KEY2同時(shí)按下實(shí)現(xiàn)顯示年月的操作,KEY3和KEY4同時(shí)按下實(shí)現(xiàn)顯示日的操作,使得操作起來十分的清晰與方便。3.數(shù)碼管顯示模塊 顯示模塊要具有顯示時(shí)分秒,年月日的功能,共需要六位數(shù)碼管。數(shù)碼管的六個(gè)位控口接在12C5A60S2單片機(jī)的P0口線上,從左到右順序連接,段控制線接在12C5A60S2單片機(jī)的P2口線上,從低位到高位對(duì)

5、應(yīng)連接.再由于數(shù)碼管的本身顯示亮度不夠,所以一般都會(huì)在其位控和段控口前加上一定的驅(qū)動(dòng)電路,本次設(shè)計(jì)中采用三極管作為驅(qū)動(dòng)。4.蜂鳴器模塊電子鐘的另外一個(gè)功能是秒走一下,會(huì)有聲音提示一下,本次設(shè)計(jì)利用蜂鳴器來實(shí)現(xiàn)。具有電路結(jié)構(gòu)非常簡單,控制極其方便等優(yōu)點(diǎn)。5.二極管顯示模塊二極管采用共陽接法,其負(fù)極接在P1口線上。在正常運(yùn)行時(shí),二極管會(huì)隨著秒的走動(dòng)來亮和滅,周期為2秒。6.系統(tǒng)電路圖總原理圖.總布局圖.PCB圖見附錄(1) 7.系統(tǒng)的元器件清單本系統(tǒng)中所用到的元件如表2.1所示。表2.1 系統(tǒng)元器件表器件型號(hào)數(shù)量器件型號(hào)數(shù)量單片機(jī)12C5A60S21個(gè)按鍵普通5個(gè)三極管普通8個(gè)開關(guān)6腳雙路1個(gè)排阻

6、A103J,A427J,A102J1個(gè),1個(gè),1個(gè)二極管燈普通8個(gè)電容10F2個(gè) 數(shù)碼管 CPS056AR6個(gè)電阻普通若干下載接口4針接口1個(gè)蜂鳴器壓電式1個(gè)單排針普通若干三軟件系統(tǒng)設(shè)計(jì)1.使用單片機(jī)資源介紹12C5A60S2單片機(jī)的P0、P1、P2、P3口作為輸入輸出口。 RST: 復(fù)位輸入。2.軟件系統(tǒng)各功能模塊介紹2.1獨(dú)立式鍵盤模塊獨(dú)立式鍵盤軟件設(shè)計(jì)通過在主程序中調(diào)用子程序key去執(zhí)行相應(yīng)的功能 ,單片機(jī)P3口在復(fù)位后保持高電平,當(dāng)鍵按下相應(yīng)口線為低電平,此時(shí)CPU做初期判斷,之后延時(shí),確定為按鍵后等待鍵松,之后執(zhí)行子程序。達(dá)到通過鍵功能程序的分支執(zhí)行相應(yīng)的程序段,完成對(duì)應(yīng)的操作。2.

7、2數(shù)碼管顯示模塊 數(shù)碼管顯示是通過調(diào)用子程序displaypro來實(shí)現(xiàn)的,由于數(shù)碼管動(dòng)態(tài)顯示,所以在執(zhí)行其他的程序的時(shí)候依然要經(jīng)常調(diào)用顯示子程序DISP。數(shù)碼管的段控由單片機(jī)改變P2口相應(yīng)位電平來實(shí)現(xiàn),為實(shí)現(xiàn)不同的顯示功能,設(shè)置了不同的顯示緩沖單元,通過控制標(biāo)志位控制。數(shù)碼管的位控由CPU改變P0口相應(yīng)位電平來實(shí)現(xiàn),基于人的視覺延遲性,通過從右到左的循環(huán)保證所有數(shù)碼管都被點(diǎn)亮。 2.3中斷函數(shù)模塊這個(gè)程序運(yùn)用了兩個(gè)中斷函數(shù),分別為定時(shí)器0和定時(shí)器1的中斷,定時(shí)器0是用來計(jì)時(shí),定時(shí)器1是用來動(dòng)態(tài)掃描,這樣使得電子鐘的性能更穩(wěn)定。2.4系統(tǒng)的整體設(shè)計(jì)思路 1.明確要實(shí)現(xiàn)的功能:主要有數(shù)字時(shí)鐘時(shí)間的

8、顯示,時(shí)間的調(diào)試。另外還有附加功能的實(shí)現(xiàn)。2.編寫函數(shù)利用P2引腳控制三極管的基極用來控制6個(gè)數(shù)碼管的工作狀態(tài),利用時(shí)間片分別顯示不同數(shù)碼管的顯示,根據(jù)P0的8個(gè)引腳控制數(shù)碼管的8段顯示。3.編寫函數(shù)利用鍵盤控制P3實(shí)現(xiàn)時(shí)間的調(diào)試功能。利用P3.2(key1)作為模式選擇,P3.3P3.5作為不同功能的調(diào)試按鍵。4.編寫函數(shù)P1引腳控制發(fā)光二極管的閃爍,實(shí)現(xiàn)花樣式閃爍。5.接著就是鬧鐘功能的實(shí)現(xiàn),其中包括定時(shí)的顯示、調(diào)試、蜂鳴器的聲音等。當(dāng)定時(shí)的鬧鐘時(shí)間與實(shí)際時(shí)間相同時(shí),蜂鳴器響動(dòng)。2.5流程圖見附錄(2)附錄1:數(shù)碼管: 二極管:蜂鳴器:按鍵:單片機(jī):開始key_board()012show

9、_time()show_time()show_dell()set_dell()set_time()YYNYNtime()walk_up_bell();結(jié)束四程序源代碼#include <regx51.h>#include <intrins.H>#define uchar unsigned char #define uint unsigned int uchar num=0xbd,0x90,0xa7,0xb6,0x9a,0x3e,0x3f,0xb0,0xbf,0xbe;uchar hour=0,min=0,second=0,time1;uchar set_hour=0,s

10、et_min=0,set_switch=1,key1_time,function;uchar bell=0x17,0x13,0x2b;uchar temp;sbit key1=P32;sbit key2=P33;sbit key3=P34;sbit key4=P35;sbit bell_ring=P21;int i;void timer() interrupt 1 using 0 /中斷函數(shù)TH0 = (65536 - 50000)/256;TL0 = (65536 - 50000)%256;time1 +;void delay(uchar i)/循環(huán)的次數(shù)等于i*125,一次循環(huán)8微秒uch

11、ar j,k;for(j=0;j<i;j+)for(k=0;k<125;k+);void Beep() /控制蜂鳴器函數(shù) bell_ring=0;delay(1);bell_ring=1;delay(1); void time() / 時(shí)間函數(shù) if(time1=20)time1=0; for(i=0;i<25;i+) Beep();second+; P1=_crol_(P1,1); if(second=60)second=0;min+;if(min=60) min=0;hour+;if(hour=24)hour=0;void set_time() /調(diào)節(jié)時(shí)間函數(shù) if(ke

12、y2=0) delay(200);if(key2=1)hour+;if(hour=25)hour=0;if(key3=0)delay(200);if(key3=1)min+;if(min=60)min=0;if(key4=0) delay(200);if(key4=1)second+;if(second=60)second=0;void show_bell() /顯示設(shè)置的鬧鈴時(shí)間 P2=0x04;/顯示ON,OF if(set_switch%2=0) P0=bell2;/OFdelay(6); else P0=bell1;/ONdelay(6); P2=0x08; P0=bell0; del

13、ay(6); P2=0x10; P0=numset_min%10; delay(6); P2=0x20; P0=numset_min/10; delay(6); P2=0x40; P0=numset_hour%10+0x40; delay(6); P2=0x80; P0=numset_hour/10; delay(6);void set_bell() /設(shè)置鬧鈴函數(shù) if(key2=0) delay(200); if(key2=1) set_hour+;if(set_hour=24)set_hour=0; if(key3=0) delay(200);if(key3=1)set_min+;if(

14、set_min=60)set_min=0; if(key4=0) delay(200);if(key4=1)set_switch+; void show_time() /顯示時(shí)間P2=0x04;P0=numsecond%10;delay(6);P2=0x08;P0=numsecond/10;delay(6);P2=0x10;P0=(nummin%10+0x40);delay(6);P2=0x20;P0=nummin/10;delay(6);P2=0x40;P0=numhour%10+0x40;delay(6);P2=0x80;P0=numhour/10;delay(6);void walk_u

15、p_bell()if(min=set_min)&&(hour=set_hour)temp=1;else temp=0;if(temp=1)&&(set_switch%2=1)&&(second<=5) for(i=0;i<2;i+)Beep(); else bell_ring=0;void key_board() P3=0xff; if(key1=0) delay(200);if(key1=1) key1_time+; function=key1_time%3;switch(function)case 0 : show_time();

16、break;case 1 : show_time();set_time();break; case 2 : show_bell();set_bell();break; void main()TMOD = 0x01;/TMOD 寄存器工作模式選擇工作模式1,M1=0,M0=1,使用16位計(jì)數(shù)器TH0 = (65536 - 50000)/256;/*TL0、TH0 作為16 位寄存器用,計(jì)數(shù)值從初值開始(初值由軟件設(shè)定),計(jì)數(shù)到0xFFFF即十進(jìn)制的65536 后,再加1,計(jì)數(shù)器被溢出復(fù)位,并把溢出標(biāo)志TF0 置1。*/TL0 = (65536 - 50000)%256;/50000表50000*0.1微妙=毫秒,EA=1; /EA:CPU 的中斷開放標(biāo)志ET0=1; /ET0:定時(shí)器/計(jì)數(shù)器T0 溢出中斷允許位TR0=1; /TR0:定時(shí)器0 運(yùn)行控制位P1=0xf0; / led燈只有第一個(gè)亮while(1) key_board();time();walk_up_bell();四調(diào)試通過鍵盤,按key1(P32)若干次可以循環(huán)顯示不同的功能,0時(shí)為顯示時(shí)間,1次為調(diào)節(jié)時(shí)間,按key2(P33

溫馨提示

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

評(píng)論

0/150

提交評(píng)論