版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、單片機(jī)電子時(shí)鐘實(shí)習(xí)報(bào)告 PAGE 19大型作業(yè)專業(yè):班級(jí):姓名:學(xué)號(hào):指導(dǎo)老師:前言單片計(jì)算機(jī)即單片微型計(jì)算機(jī)。RAM ,ROM,CPU構(gòu)成,定時(shí),計(jì)數(shù)和多種接口于一體的微控制器。它體積小,成本低,功能強(qiáng),廣泛應(yīng)用于智能產(chǎn)業(yè)和工業(yè)自動(dòng)化上。而51系列單片機(jī)是各單片機(jī)中最為典型和最有代表性的一種。這次課程設(shè)計(jì)通過對(duì)它的學(xué)習(xí),應(yīng)用,從而達(dá)到學(xué)習(xí)、設(shè)計(jì)、開發(fā)軟、硬的能力。單片機(jī)電子時(shí)鐘,是利用單片機(jī)技術(shù)實(shí)現(xiàn)計(jì)時(shí)、時(shí)間顯示、時(shí)間調(diào)整、定時(shí)調(diào)整、鬧鈴等功能。完成該項(xiàng)目能夠有效的訓(xùn)練大家的單片機(jī)應(yīng)用能力,電子時(shí)鐘的設(shè)計(jì)過程中,除了應(yīng)用單片機(jī)前六課題的基礎(chǔ)知識(shí)外,還使用了外部中斷技術(shù)、定時(shí)器中斷技術(shù)、鍵盤查
2、詢及動(dòng)態(tài)顯示技術(shù),希望大家通過該項(xiàng)目的設(shè)計(jì),對(duì)單片機(jī)應(yīng)用技術(shù)有一個(gè)較深的認(rèn)識(shí)。目錄TOC o 1-3 h u HYPERLINK l _Toc21198 前言 PAGEREF _Toc21198 2 HYPERLINK l _Toc27688 目錄 PAGEREF _Toc27688 3 HYPERLINK l _Toc25145 摘要 PAGEREF _Toc25145 4 HYPERLINK l _Toc20060 硬件描述及系統(tǒng)設(shè)計(jì)構(gòu)思 PAGEREF _Toc20060 5 HYPERLINK l _Toc8414 1.單片機(jī)電子時(shí)鐘功能 PAGEREF _Toc8414 5 HYPE
3、RLINK l _Toc7885 2. 數(shù)碼管顯示工作原理 PAGEREF _Toc7885 6 HYPERLINK l _Toc22031 單片機(jī)電子時(shí)鐘 PAGEREF _Toc22031 7 HYPERLINK l _Toc10441 1.電路原理圖 PAGEREF _Toc10441 7 HYPERLINK l _Toc25604 2.元件列表 PAGEREF _Toc25604 7 HYPERLINK l _Toc329 電子時(shí)鐘程序 PAGEREF _Toc329 8 HYPERLINK l _Toc16648 實(shí)習(xí)小結(jié) PAGEREF _Toc16648 18 HYPERLINK
4、 l _Toc28117 參考文獻(xiàn) PAGEREF _Toc28117 19摘要設(shè)計(jì)目的: 通過課程設(shè)計(jì),熟悉 89C51定時(shí)器、中斷初始化編程方法,定時(shí)器應(yīng)用在時(shí)間控制中程序的設(shè)計(jì)技巧。使學(xué)生鞏固和加深對(duì)單片機(jī)基本知識(shí)的理解,學(xué)會(huì)查尋資料、方案設(shè)計(jì)、方案比較,以及單元電路設(shè)計(jì)計(jì)算等環(huán)節(jié),進(jìn)一步提高學(xué)生綜合運(yùn)用所學(xué)知識(shí)的能力,提高分析解決實(shí)際問題的能力。鍛煉分析、解決電子電路問題的實(shí)際本領(lǐng),通過此綜合訓(xùn)練,為以后畢業(yè)設(shè)計(jì)打下一定的基礎(chǔ)。設(shè)計(jì)要求:(1)上電以后自動(dòng)進(jìn)入計(jì)時(shí)狀態(tài),起始于00:00。(2)設(shè)計(jì)調(diào)整時(shí)間,完成時(shí)間設(shè)計(jì)。(3)定時(shí)時(shí)間,驅(qū)動(dòng)鬧鈴。(4)采用LED數(shù)碼管顯示,時(shí)、分、秒采
5、用數(shù)字顯示。硬件描述及系統(tǒng)設(shè)計(jì)構(gòu)思1.單片機(jī)電子時(shí)鐘功能單片機(jī)電子時(shí)鐘計(jì) 時(shí) 功 能計(jì) 時(shí) 調(diào) 整定 時(shí) 顯 示定 時(shí) 調(diào) 整定 時(shí) 鬧 鈴計(jì) 時(shí) 顯 示控制器用AT89S51 , 12M晶振數(shù)碼管動(dòng)態(tài)掃描驅(qū)動(dòng)P2口數(shù)碼管段碼驅(qū)動(dòng)P1口鬧鈴驅(qū)動(dòng)P1.0調(diào)整鍵K1P3.2(外部中斷0, 正常、調(diào)時(shí)、調(diào)分、調(diào)秒)定時(shí)/正常切換鍵K2P3.3時(shí)間參數(shù)低位加1鍵K3P3.4時(shí)間參數(shù)高位加1鍵K4P3.52. 數(shù)碼管顯示工作原理數(shù)碼管是一種把多個(gè)LED顯示段集成在一起的顯示設(shè)備。有兩種類型,一種是共陽型,一種是共陰型。共陽型就是把多個(gè)LED顯示段的陽極接在一起,又稱為公共端。共陰型就是把多個(gè)LED顯示段
6、的陰極接在一起,即為公共商。陽極即為二極管的正極,又稱為正極,陰極即為二極管的負(fù)極,又稱為負(fù)極。通常的數(shù)碼管又分為8段,即8個(gè)LED顯示段,這是為工程應(yīng)用方便設(shè)計(jì)的,分別為A、B、C、D、E、F、G、DP,其中DP 是小數(shù)點(diǎn)位段。而多位數(shù)碼管,除某一位的公共端會(huì)連接在一起,不同位的數(shù)碼管的相同端也會(huì)連接在一起。即所有的A段都會(huì)連在一起,其它的段也是如此,這是實(shí)際最常用的用法。數(shù)碼管顯示方法可分為靜態(tài)顯示和動(dòng)態(tài)顯示兩種。靜態(tài)顯示就是數(shù)碼管的8段輸入及其公共端電平一直有效。動(dòng)態(tài)顯示的原理是,各個(gè)數(shù)碼管的相同段連接在一起,共同占用8 位段引管線;每位數(shù)碼管的陽極連在一起組成公共端。利用人眼的視覺暫留
7、性,依次給出各個(gè)數(shù)碼管公共端加有效信號(hào),在此同時(shí)給出該數(shù)碼管加有效的數(shù)據(jù)信號(hào),當(dāng)全段掃描速度大于視覺暫留速度時(shí),顯示就會(huì)清晰顯示出來。單片機(jī)電子時(shí)鐘1.電路原理圖2.元件列表單片機(jī)AT89S51一片1M晶振1個(gè)共陽數(shù)碼管6只PNP管85507只74LS2441片蜂鳴器1個(gè)微動(dòng)按鍵1只10UF電容5個(gè)2.7K電阻7只104瓷片電容4只30P瓷片電容2只200電阻4只560電阻8只10K電阻12只100電阻1只電子時(shí)鐘程序#include #include uchar H=0,M=0,S=0,T_Count=0;/設(shè)置時(shí)間初值,進(jìn)行時(shí)間計(jì)數(shù) uchar H_Set=11,M_Set=11,S_Se
8、t=11;/設(shè)定鬧鈴時(shí)間 uchar *Sp=&S,*Mp=&M,*Hp=&H;/時(shí)間指針 uchar Select2Seg=0;/調(diào)時(shí)閃爍位號(hào) uchar Select2Seg_=0;/定時(shí)閃爍位號(hào) uchar *Select2SegP;/閃爍位號(hào)指針 uchar H_h=0,H_l=0,M_h=0,M_l=0,S_h=0,S_l=0;/時(shí)分秒的各位的數(shù)值-用于顯示 uchar SaveH_h=0,SaveH_l=0,SaveM_h=0,SaveM_l=0,SaveS_h=0,SaveS_l=0;/ 時(shí)分秒的各位的數(shù)值-用于調(diào)時(shí)間時(shí)的數(shù)據(jù)保護(hù) uchar light=0; /燈亮bit Ke
9、y3Down=1;/允許 KEY3 按鍵值增加1 的標(biāo)志(個(gè)位加一) bit Key4Down=1;/允許 KEY4 按鍵值增加1 的標(biāo)志(十位加一) bit SetTime=0;/定時(shí)標(biāo)志 1 為定時(shí) 24 /*蜂鳴器報(bào)警*/ void SPK(void) if(SetTime=0)spk=0; /鬧鈴響 void TunOffSPK(void) spk=1;/鬧鈴不響 void init_INT0(void)/*外部中斷 0 初始化*/ EA=1; /打開中斷總允許位EX0=1;/打開外部中斷0允許位PX0=0;/設(shè)定外部外部中斷0為低優(yōu)先級(jí)中斷 IT0=1;/設(shè)置外部中斷0為邊沿(下降沿
10、)觸發(fā)方式 void init_t0() /*t0-初始化為 50mS 定時(shí),并啟動(dòng)*/ TMOD=(TMOD&0 xF0)|0 x01;/定時(shí)器 0,方式 1:16位定時(shí)。 TH0=0 x3C;/設(shè)置定時(shí)器T0初值TL0=0 xB0; EA=1; /打開中斷總允許位ET0=1;/允許T0中斷 PT0=1;/設(shè)定定時(shí)器T0為高優(yōu)先級(jí)中斷 TR0=1;/啟動(dòng)T0 void init_INT1(void) /*外部中斷 1 初始化*/ EA=1; /打開中斷總允許位EX1=1; /打開外部中斷1允許位PX1=0; /設(shè)定外部外部中斷1為低優(yōu)先級(jí)中斷IT1=1; /設(shè)置外部中斷1為邊沿(下降沿)觸發(fā)
11、方式 /*t1-初始化為 50mS 定時(shí),并啟動(dòng)*/ void init_t1(void) TMOD=(TMOD&0 x0F)|0 x10;/定時(shí)器 1,方式 1:16位定時(shí)TH1=0 x3C; /設(shè)置定時(shí)器T1初值TL1=0 xB0; EA=1; /打開中斷總允許位ET1=1; /允許T1中斷PT1=0; /設(shè)定定時(shí)器T1為高優(yōu)先級(jí)中斷TR1=1; /啟動(dòng)T1 /*外部中斷 0 子程序*/ void Int0(void) interrupt 0 using 2 if(SetTime)/判斷定時(shí)標(biāo)志是否為0Select2SegP=&Select2Seg_;/此時(shí)為定時(shí)閃爍else Select
12、2SegP=&Select2Seg;/否則此時(shí)是調(diào)時(shí)閃爍if(+(*Select2SegP)=4) *Select2SegP=0;/當(dāng)閃爍的位數(shù)為4時(shí)則停止閃爍即閃爍的位數(shù)為0 TunOffSPK();/蜂鳴器不響 /*T0 定時(shí) 1S 中斷子程序 1*/ void Timer0() interrupt 1 using 1 TH0=0 x3C;/ 設(shè)置定時(shí)器T0初值TL0=0 xB0; if(T_Count+)=20)/判斷循環(huán)是否到達(dá)20S+;/秒位開始加1T_Count=0;/把循環(huán)置零重新開始循環(huán) spk=spk ; if(S=60)M+;S=0;/如果秒位到達(dá)60,則分鐘位加1,秒位置
13、0if(M=60)H+;M=0; /如果分鐘位為60,則時(shí)位開始加1,分鐘位置零 if(H=24)H=0;/如果時(shí)位達(dá)到24,時(shí)位置零if(H=H_Set)&(M=M_Set)&(S=S_Set)/判斷定時(shí)時(shí)間是否到達(dá)SPK(); /執(zhí)行此子程序即蜂鳴器響起 void Int1(void) interrupt 2/*外部中斷 1 子程序*/ SetTime=SetTime;/此時(shí)不再定時(shí)*Select2SegP=0;/此時(shí)閃爍的位數(shù)置為0 TunOffSPK();/執(zhí)行子程序蜂鳴器停止鳴笛 void Timer1() interrupt 3 using 3 /*T1 定時(shí) 50mS 中斷子程序
14、 1*/ TH1=0 x3C; /給定時(shí)器T1的高8位賦初值*/ TL1=0 xB0; /給定時(shí)器T1的低8位賦初值*/if(light+8)/數(shù)碼管從0亮到8 light=0; /對(duì)其置零uchar code DIY_data=0 xC0,0 xF9,0 xA4,0 xB0,0 x99,0 x92,0 x82,0 xF8,0 x80,0 x90,0 xBF,0 xFF;/數(shù)碼管數(shù)據(jù)定義 /0-9,-,不亮 5 uchar code WX_data=0 xfe,0 xFd,0 xfb,0 xf7,0 xef,0 xdf;/自左到右分別是面 /*數(shù)碼管循環(huán)顯示,N 為位序號(hào),D為數(shù)據(jù)序號(hào) voi
15、d DSP_Data(uchar N,uchar D) uchar i=N,j=D;/定義i,j seg7_data=DIY_dataN;/把數(shù)碼管的各個(gè)數(shù)據(jù)賦值給P0口 wx=WX_dataD; /把數(shù)碼管的選擇位賦給P2口void DLYmS(uchar N)/*軟件延時(shí) N mS*/ uchar k=125;/把25賦值給Kfor(;N0;N-) for(;k0;k-);/利用FOR循環(huán)實(shí)現(xiàn)延時(shí) void testKey2(void) if(SetTime)/判斷是否定時(shí) Sp=&S_Set;Mp=&M_Set;Hp=&H_Set;/分別把調(diào)時(shí)位賦值給時(shí)分秒Select2SegP=&Se
16、lect2Seg_; /此時(shí)閃爍位為定時(shí) else Sp=&S;Mp=&M;Hp=&H; /否則為調(diào)時(shí),把時(shí)間賦值給時(shí)分秒 Select2SegP=&Select2Seg;/此時(shí)閃爍位為調(diào)時(shí)閃爍 void Scan_kl(void) /檢測 KEY3(調(diào)整時(shí)間個(gè)位鍵)子程序 if(kl=0)&( Key3Down=1) /*如果kl鍵按下與允許各位加1*/ Key3Down=0;/*此時(shí)不允許各位加1*/testKey2(); /*執(zhí)行此子程序*/ TunOffSPK(); /*執(zhí)行此程序*/switch(*Select2SegP) /判斷閃爍位case 0:break; /如果輸出為0則停止
17、此程序case 1:SaveS_h=*Sp/10;/保護(hù) 秒 十位 *Sp+=1; /秒位加1*Sp=SaveS_h*10+*Sp%10;/高位的數(shù)乘以10與所調(diào)置的數(shù)對(duì)10求余的和即使所要調(diào)制的數(shù) break;case 2:SaveM_h=*Mp/10;/保護(hù) 分 十位 11 *Mp+=1; /分位加1*Mp=SaveM_h*10+*Mp%10;/高位的數(shù)乘以10與所調(diào)置的數(shù)對(duì)10求余的和即使所要調(diào)制的數(shù)break; case 3:SaveH_h=*Hp/10;/保護(hù) 時(shí) 十位 *Hp+=1; /*時(shí)位加1*/ if(SaveH_h3) *Hp=SaveH_h*10; /*如果時(shí)對(duì)10求余大
18、于3時(shí)那么時(shí)位就等于高位乘以10*/break; default:break; /*如果皆沒有時(shí)就跳出此程序*/ if(kl=1)Key3Down=1; /*如果kl等于1時(shí),則允許低為加1*/ void Scan_kh(void)/*檢測 KEY4(調(diào)整時(shí)間十位鍵)子程序*/ if(kh=0)&( Key4Down=1)/*如果kh鍵按下與允許高位加1*/ Key4Down=0;/*不允許高位加1*/ testKey2(); /*執(zhí)行此程序*/TunOffSPK();/*執(zhí)行此程序*/ switch(*Select2SegP) /*判斷閃爍指針位*/ case 0:break; /*輸出為0
19、時(shí)停止此程序*/ case 1:SaveS_l=*Sp%10;/保護(hù) 秒 個(gè)位 *Sp+=10;/*秒位加10*/ if(*Sp=60)*Sp=SaveS_l;/*如果秒位大于60時(shí),則把低位的數(shù)賦值給秒位*/ break; case 2:SaveM_l=*Mp%10;/保護(hù) 分 個(gè)位 2 *Mp+=10;/*分位加10*/ if(*Mp=60)*Mp=SaveM_l; /*如果分位的數(shù)大于60則此時(shí)分位數(shù)就等于分的低位數(shù)值*/break;case 3:SaveH_l=*Hp%10;/保護(hù) 時(shí) 個(gè)位 *Hp+=10;/*時(shí)位加10*/ if(SaveH_l3)if(*Hp/101)*Hp=Sa
20、veH_l; /*如果時(shí)位數(shù)的低位數(shù)大于3;如果時(shí)位的數(shù)除以10商大于1則時(shí)位的數(shù)就等于時(shí)位數(shù)的低位*/else if(*Hp/102)*Hp=SaveH_l; /*如果時(shí)位的數(shù)除以10商大于2則時(shí)的數(shù)等于時(shí)位數(shù)的低位數(shù)*/break; default:break; /*否則跳出此程序*/ if(kh=1)Key4Down=1;/*如果kh鍵不按下則允許高位調(diào)時(shí)*/ void Display(void) /*顯示程序*/ testKey2();/*執(zhí)行此子程序*/ if(*Select2SegP!=1|light4) /*如果閃爍位號(hào)位不為1或數(shù)碼管顯示數(shù)大于4時(shí)*/ DSP_Data(*Sp
21、%10,0);DLYmS(N1); /*0號(hào)數(shù)碼管顯示秒位的個(gè)位數(shù)即秒數(shù)對(duì)10求余*/ DSP_Data(*Sp/10,1);DLYmS(N1); /*1號(hào)數(shù)碼管對(duì)秒位的十位顯示即十位的數(shù)等于秒位數(shù)對(duì)10求商得到然后延時(shí)*/ if(*Select2SegP!=2|light4) /*如果閃爍位號(hào)位不為2或數(shù)碼管顯示數(shù)大于4時(shí)*/DSP_Data(*Mp%10,2);DLYmS(N1); /*2號(hào)數(shù)碼管對(duì)分位的個(gè)位顯示即分位數(shù)對(duì)10求余然后延時(shí)*/ DSP_Data(*Mp/10,3);DLYmS(N1); /*3號(hào)數(shù)碼管對(duì)分位的十位顯示即分位數(shù)對(duì)10求商然后延時(shí)*/ if(*Select2SegP!=3|light4)/*如果閃爍位號(hào)位不為3或數(shù)碼管顯示數(shù)大于4時(shí)*/ DSP_Data(*Hp%10,4);DLYmS(N1); /*4號(hào)數(shù)碼管對(duì)時(shí)位的個(gè)位顯示即時(shí)位數(shù)對(duì)10求余然后延時(shí)*/
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 初中數(shù)學(xué)教研組工作總結(jié)-15篇
- 2025年水利管理及技術(shù)咨詢服務(wù)項(xiàng)目申請(qǐng)報(bào)告模范
- 2025年測高儀項(xiàng)目提案報(bào)告模范
- 2025年數(shù)控裁板鋸項(xiàng)目提案報(bào)告模稿
- 保安個(gè)人述職報(bào)告集合15篇
- 2024冶金工程質(zhì)保期合同擔(dān)保協(xié)議2篇
- 去廣告公司實(shí)習(xí)報(bào)告范文集合七篇
- 保險(xiǎn)公司實(shí)習(xí)報(bào)告范文集錦八篇
- 初二生物教學(xué)計(jì)劃范文合集五篇
- 小學(xué)生考試沒考好檢討書
- 建筑工程分部分項(xiàng)工程劃分表(新版)
- 學(xué)生職業(yè)生涯規(guī)劃指導(dǎo)方案
- 成人用品行業(yè)分析
- 血栓風(fēng)險(xiǎn)評(píng)估及個(gè)體化干預(yù)(遺傳性易栓癥風(fēng)險(xiǎn)基因檢測)
- 投標(biāo)人資格審查表(范本)
- b族鏈球菌孕婦的護(hù)理
- 生產(chǎn)工藝驗(yàn)證方案(藥品)
- 廣東省深圳市寶安、羅湖、福田、龍華四區(qū)2023-2024學(xué)年數(shù)學(xué)九年級(jí)第一學(xué)期期末聯(lián)考試題含解析
- 《人生需要規(guī)劃》課件
- 《大學(xué)生禮儀規(guī)范》課件
- 小學(xué)三年級(jí)語文教研活動(dòng)記錄表1
評(píng)論
0/150
提交評(píng)論