計(jì)數(shù)器課程設(shè)計(jì)(共18頁)_第1頁
計(jì)數(shù)器課程設(shè)計(jì)(共18頁)_第2頁
計(jì)數(shù)器課程設(shè)計(jì)(共18頁)_第3頁
計(jì)數(shù)器課程設(shè)計(jì)(共18頁)_第4頁
計(jì)數(shù)器課程設(shè)計(jì)(共18頁)_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、單片機(jī)課程設(shè)計(jì)課題(kt): 計(jì)數(shù)器系 別: 電氣(dinq)與電子工程系專 業(yè): 電子(dinz)信息工程姓 名: 嚴(yán)鵬飛學(xué) 號(hào): 093409160河南城建學(xué)院 2011年12月28日成績(jī)(chngj)評(píng)定一、指導(dǎo)(zhdo)教師評(píng)語(根據(jù)學(xué)生設(shè)計(jì)報(bào)告質(zhì)量、答辯情況及其平時(shí)表現(xiàn)綜合(zngh)評(píng)定)。二、評(píng)分評(píng)分項(xiàng)目設(shè)計(jì)報(bào)告評(píng)分答辯評(píng)分平時(shí)表現(xiàn)評(píng)分合 計(jì) (100分)任務(wù)完成情 況(20分)課程設(shè)計(jì)報(bào)告質(zhì)量(40分)表達(dá)情況(10分)回答問題情 況(10分)工作態(tài)度與紀(jì)律(10分)獨(dú)立工作能力(10分)得分課程設(shè)計(jì)成績(jī)?cè)u(píng)定班級(jí) 姓名 學(xué)號(hào)成績(jī): 分(折合等級(jí) )指導(dǎo)教師簽字 年 月 日一、

2、前言 自動(dòng)計(jì)數(shù)器在日常生活中屢見不鮮,它是根據(jù)不同的情況設(shè)定的,能夠 通過技術(shù)功能實(shí)現(xiàn)一些相應(yīng)的程序, 如通過自動(dòng)計(jì)數(shù)器來實(shí)現(xiàn)自動(dòng)打開和關(guān)閉各 種電器設(shè)備的電源。廣泛用于路燈,廣告燈,電飯煲等領(lǐng)域。 自動(dòng)計(jì)數(shù)器給人們生產(chǎn)生活帶來了極大的方便, 而且大大地?cái)U(kuò)展了自動(dòng)計(jì)數(shù)器的 功能。諸如自動(dòng)定時(shí)報(bào)警器、按時(shí)自動(dòng)打鈴、時(shí)間程序自動(dòng)控制、定時(shí)廣播、自 動(dòng)啟閉電路,定時(shí)開關(guān)烤箱、甚至各種定時(shí)電器的自動(dòng)啟用等,所有這些,都是 以自動(dòng)計(jì)數(shù)器為基礎(chǔ)的。由于它的功能強(qiáng)勁,用途廣泛,方便利用,所以在這個(gè) 電子科技發(fā)展的時(shí)代,它是一個(gè)很好的電子產(chǎn)品。如在洗衣機(jī)的定時(shí)控制以及路 燈等一些人們不能再現(xiàn)場(chǎng)控制的操控。都可

3、以利用自動(dòng)計(jì)數(shù)器來完成這樣(zhyng)的功 用??梢姶讼到y(tǒng)所能帶來的方便和經(jīng)濟(jì)效益是相當(dāng)遠(yuǎn)大的。因此,研究自動(dòng)計(jì)數(shù) 器及擴(kuò)大其應(yīng)用,有著非?,F(xiàn)實(shí)的意義。 本次課設(shè)設(shè)計(jì)是檢驗(yàn)理論學(xué)習(xí)水平、實(shí)踐動(dòng)手能力及理論結(jié)合實(shí)際的能力,要求 具有一定的分析處理問題能力和自學(xué)能力的一個(gè)比較重要得實(shí)踐課程。 通過這樣 的過程,使我們的論文及實(shí)踐水平有一次較為全面的檢查,同時(shí)也使我們硬件方 面的能力有所提高,對(duì)以后的學(xué)習(xí)有這非常重要的意義。 二、設(shè)計(jì)(shj)目的1、使學(xué)生增進(jìn)對(duì)單片機(jī)的感性認(rèn)識(shí)(gnxng rn shi),加深對(duì)單片機(jī)理論方面的理解;2、使學(xué)生掌握單片機(jī)的內(nèi)部功能模塊的應(yīng)用,如定時(shí)器/計(jì)數(shù)器、中

4、斷、片內(nèi)外存貯器、I/O口、A/D、D/A、串行口通訊等;3、使學(xué)生(xu sheng)了解和掌握單片機(jī)應(yīng)用系統(tǒng)的軟硬件設(shè)計(jì)過程、方法及實(shí)現(xiàn),為以后設(shè)計(jì)和實(shí)現(xiàn)單片機(jī)應(yīng)用(yngyng)系統(tǒng)打下良好基礎(chǔ)。三、設(shè)計(jì)(shj)要求1、可以實(shí)現(xiàn)六位的計(jì)數(shù):0999999 2、鍵盤能實(shí)現(xiàn)全鎖、半鎖、清零功能3、能實(shí)現(xiàn)計(jì)數(shù)的自加一 減一四、總體設(shè)計(jì)電路的總體原理框圖數(shù)碼管74LS138 單片機(jī)按鍵開關(guān)74LS472、 LED顯示器的結(jié)構(gòu)與原理(1)結(jié)構(gòu)種類 七段LED顯示器(數(shù)碼管)系發(fā)光器件的一種。常用的LED發(fā)光器件有兩類:數(shù)碼管和點(diǎn)陣。數(shù)碼管內(nèi)部有七個(gè)條形發(fā)光二極管和一個(gè)小圓點(diǎn)發(fā)光二極管組成,根據(jù)各

5、管的亮暗組成字符。常見數(shù)碼管有10根管腳。管腳排列如下圖(a)所示。其中COM為公共端,根據(jù)內(nèi)部發(fā)光二極管的接線形式可分為共陰極和共陽極兩種。如下圖(b)(c)所示,使用時(shí),共陰極數(shù)碼管公共端接地,共陽極數(shù)碼管公共端接電源。發(fā)光二極管需510mA的驅(qū)動(dòng)電流才能正常發(fā)光,一般需加限流電阻控制電流的大小。(2)顯示(xinsh)原理 LED數(shù)碼管的ag七個(gè)發(fā)光(f un)二極管。加正電壓的發(fā)光加零電壓的不能發(fā)光,不同亮暗的組合能形成不同的字符,這種組合稱為字型碼。共陽極和共陰極的字型碼是不同的,如下所示。 LED字符顯示代碼表 顯示 段符號(hào)(fho) 十六進(jìn)制代碼 dp g f e d c b a

6、 共陰極 共陽極0 0 0 1 1 1 1 1 1 3FH C0H1 0 0 0 0 0 1 1 0 06H F9H2 0 1 0 1 1 0 1 1 5BH A4H3 0 1 0 0 1 1 1 1 4FH B0H4 0 1 1 0 0 1 1 0 66H 99H 5 0 1 1 0 1 1 0 1 6DH 92H6 0 1 1 1 1 1 0 1 7DH 82H7 0 0 0 0 0 1 1 1 07H F8H8 0 1 1 1 1 1 1 1 7FH 80H9 0 1 1 0 1 1 1 1 6FH 90H3、 譯碼器原理(yunl)(74LS47) 譯碼為編碼的逆過程。它將編碼時(shí)賦予代

7、碼(di m)的含義“翻譯”過來。實(shí)現(xiàn)譯碼的邏輯電路成為譯碼器。譯碼器輸出與輸入代碼有唯一的對(duì)應(yīng)關(guān)系。74LS47是輸出低電平有效的七段字形譯碼器,它在這里與數(shù)碼管配合使用,表2列出了74LS47的真值表,表示出了它與數(shù)碼管之間的關(guān)系。 表2 輸 入 輸 出 顯示(xinsh)數(shù)字符號(hào) LT() RBI(-) A3 A2 A1 A0 BI()/RBO() a() b() c() d() e() f() g() 1 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 X 0 0 0 1 1 1 0 0 1 1 1 1 1 1 X 0 0 1 0 1 0 0 1 0 0 1 0 2 1 X

8、 0 0 1 1 1 0 0 0 0 1 1 0 3 1 X 0 1 0 0 1 1 0 0 1 1 0 0 4 1 X 0 1 0 1 1 0 1 0 0 1 0 0 5 1 X 0 1 1 0 1 1 1 0 0 0 0 0 6 1 X 0 1 1 1 1 0 0 0 1 1 1 1 7 1 X 1 0 0 0 1 0 0 0 0 0 0 0 8 1 X 1 0 0 1 1 0 0 0 1 1 0 0 9 X X X X X X 0 1 1 1 1 1 1 1 熄滅 1 0 0 0 0 0 0 1 1 1 1 1 1 1 熄滅 0 X X X X X 1 0 0 0 0 0 0 0 8 (

9、1)LT():試燈輸入(shr),是為了檢查數(shù)碼管各段是否能正常發(fā)光而設(shè)置的。當(dāng)LT()=0時(shí),無論輸入A3 ,A2 ,A1 ,A0為何種狀態(tài),譯碼器輸出均為低電平,若驅(qū)動(dòng)的數(shù)碼管正常,是顯示8。 (2)BI():滅燈輸入,是為控制多位數(shù)碼(shm)顯示的滅燈所設(shè)置的。BI()=0時(shí)。不論LT()和輸入A3 ,A2 ,A1,A0為何種狀態(tài),譯碼器輸出均為高電平,使共陽極數(shù)碼管熄滅。 (3)RBI(-):滅零輸入,它是為使不希望顯示的0熄滅而設(shè)定(sh dn)的。當(dāng)對(duì)每一位A3= A2 =A1 =A0=0時(shí),本應(yīng)顯示0,但是在RBI(-)=0作用下,使譯碼器輸出全為高電平。其結(jié)果和加入滅燈信號(hào)的

10、結(jié)果一樣,將0熄滅。 (4)RBO():滅零輸出,它和滅燈輸入BI()共用一端,兩者配合使用,可以實(shí)現(xiàn)多位數(shù)碼顯示的滅零控制。3、 74LS138 3 線8 線譯碼器,共有 54/74S138和 54/74LS138 兩種線 路結(jié)構(gòu)型式。 其工作原理如下: HYPERLINK /albums/2000974/2000974.html l 0$c2bce2033425c4dbd43f7c90 o 查看圖片 t _blank 當(dāng)一個(gè)選通端(E1)為高電平,另兩個(gè)選通端(E2)和/(E3))為低電平時(shí),可將地址端(A0、A1、A2)的二進(jìn)制編碼在Y0至Y7對(duì)應(yīng)的輸出端以低電平譯出。比如:A2A1A0

11、=110時(shí),則Y6輸出端輸出低電平信號(hào)。 利用 E1、E2和E3可級(jí)聯(lián)擴(kuò)展(kuzhn)成 24 線譯碼器;若外接一個(gè)反相器還可級(jí)聯(lián)擴(kuò)展成 32 線譯碼器。 若將選通端中的一個(gè)(y )作為數(shù)據(jù)輸入端時(shí),74LS138還可作數(shù)據(jù)(shj)分配器。 = 4 * GB3 * MERGEFORMAT 可用在8086的譯碼電路中,擴(kuò)展內(nèi)存。4、硬件總體設(shè)計(jì)主要元器件選擇主要元器件選用型號(hào)和數(shù)量如下:1個(gè)AT89C51(單片機(jī)) 1個(gè)CRYSTAL(晶振) 2個(gè)CAP(電容) 1個(gè)RES(電阻) 2個(gè)7SEG-COM-CATHOD(共陰極數(shù)碼管) 1個(gè)CAP-ELEC(電解電容)1個(gè)發(fā)光二極管 1個(gè)74L

12、S47(七段字形譯碼器) 1個(gè)74LS138(3 線8 線譯碼器)系統(tǒng)板上硬件連線單片機(jī)P3.0P3.7接按鍵端口P0P7單片機(jī)P0.0P0.7接74LS47和74LS138的輸入端數(shù)碼管的七段和六位分別與74LS47 和74LS138的輸出端相接軟件總體設(shè)計(jì) # include # include # include bit FLAG0=0; /*設(shè)定位標(biāo)記,鍵盤掃描(somio)回應(yīng)標(biāo)記*/sbit LED = P20; /*LED*/ char m=0,ptr=0,ptr1=0; /*PTR鍵盤(jinpn)掃描指標(biāo),PTR1顯示器掃描指標(biāo)*/bit stand=0,stand1=0;

13、/*鍵盤(jinpn)鎖控制位*/char code tab16=0 x01,0 x02,0 x03,0 x0c, /*鍵盤碼*/0 x04,0 x05,0 x06,0 x0d,0 x07,0 x08,0 x09,0 x0e,0 x0a,0 x00,0 x0b,0 x0f;unsigned long DATA16; /*按鍵值存放數(shù)組*/void delay (unsigned int value) /*延時(shí)子程序*/while (value!=0) value-; /*10US延時(shí)*/void scan(void); /*聲明鍵盤掃描子程序*/void clear(void); /*聲明清除

14、按鍵存放/顯示器數(shù)組DATA子程序*/void xch(void); /*聲明按鍵存放/顯示器數(shù)組DATA 右鍵滾入子程序*/void CF(void);void CH5(void);void main() /*主程序*/ TMOD=0 x11; /* TIMER0,TIMER1工作在MODE1方式*/ TH1=(65536-3000)/256; /*設(shè)定每隔3000US掃描一次*/ TL1=(65536-3000)%256; IE=0 x88; /*8是允許中斷,a是TIMER0,TIMER1中斷使能位*/ TR1=1; /*啟動(dòng)TEMER1*/ clear(); /*調(diào)用清除顯示器為000

15、000子程序*/ while (1) do scan (); /*調(diào)用鍵盤掃描子程序有按FLAG0會(huì)為1*/ while (FLAG0!=1); /*判斷有按鍵輸入否?*/ delay(1000); /*按鈕去抖動(dòng)(dudng)*/ while(m=P1); /*按鈕放開(fn ki)否?*/ delay(1000); switch(tabptr) /*是則測(cè)試PTR鍵盤(jinpn)掃描計(jì)數(shù)器指標(biāo)至TAB取到的鍵盤碼*/ case 0 x0e: if(stand=0&stand1=0)clear(); /*是否按c是則調(diào)用清除顯示器CLEAR*/ break; case 0 x0c: /*是

16、否按A,計(jì)數(shù)器加*/ if(stand=0) CF(); break; case 0 x0d: /*是否按B,計(jì)數(shù)器減*/ if(stand=0) CH5(); break; case 0 x0a: /*是否按*,鎖鍵*/ stand=1; break; case 0 x0f: /*是否按d,解鎖鍵*/ stand=0; stand1=0; break; case 0 x0b: /*是否按#,半鎖鍵*/ if(stand=0) stand1=1; break; default: if(stand=0&stand1=0)xch(); else ;break; /*跳出此循環(huán)*/ void CF(

17、void)unsigned long temp;temp=DATA0; temp=temp+DATA1*10; temp=temp+DATA2*100; temp=temp+DATA3*1000; temp=temp+DATA4*10000;temp=temp+DATA5*100000;if(temp=999999)temp=0;elsetemp+;DATA0=(temp%10); /*取秒的個(gè)位數(shù)存入(cn r)data20*/DATA1=(temp/10%10); /*取秒的十位數(shù)存入(cn r)data21*/DATA2=(temp/100%10); DATA3=(temp/1000%1

18、0); DATA4=(temp/10000%10); DATA5=(temp/100000%10); void CH5(void)unsigned long temp;temp=DATA0; temp=temp+DATA1*10; temp=temp+DATA2*100; temp=temp+DATA3*1000; temp=temp+DATA4*10000;temp=temp+DATA5*100000;if(temp=0)temp=999999;elsetemp-;DATA0=(temp%10); /*取秒的個(gè)位數(shù)存入(cn r)data20*/DATA1=(temp/10%10); /*取

19、秒的十位數(shù)存入data21*/DATA2=(temp/100%10); DATA3=(temp/1000%10); DATA4=(temp/10000%10); DATA5=(temp/100000%10); void xch(void)char c; for(c=5;c0;c-) DATAc=DATAc-1; DATA0=tabptr;void clear(void) /*清除(qngch)顯示DATA為00子程序*/char c; /*聲明(shngmng)變量*/for(c=0;c6;c+) /*將00存入(cn r)顯示數(shù)組DATA*/DATAc=0 x00; /*返回主程序*/voi

20、d scan(void) /*掃描鍵盤子程序*/char a1=0 xf7,i; /*A1=0XF7列掃描初值,I行*/FLAG0=0; /*設(shè)按鍵回應(yīng)標(biāo)記為0,鍵盤掃描計(jì)數(shù)指標(biāo)為0*/ptr=0;for(i=0;i1|0 x80; /*高位(o wi)補(bǔ)1,由于P1.7P1.4未接+5V,而是由指令加載高電平*/ /*返回(fnhu)主程序*/void service_int1 () interrupt 3 using 2 /*TIMER1中斷子程序*/char ptr1; /*聲明掃描指標(biāo)變量*/ TH1=(65536-3000)/256; /*每隔4000US掃描一次*/ TL1=(65

21、536-3000)%256; if(stand=1) LED=0;else LED=1; if (ptr15) ptr1=0; /*PTR15表示6個(gè)數(shù)碼管都已經(jīng)掃描過*/ P0=(ptr14)|DATAptr1; /*將掃描值左移至高4位再加上數(shù)據(jù)*/ ptr1+; /*掃描指標(biāo)加1*/ /*返回主程序*/五、各部分電路設(shè)計(jì)1.MCS-51單片機(jī)電路(dinl)的設(shè)計(jì)本電路使用單片機(jī)內(nèi)部振蕩器,12MHz的晶體諧振器直接接在單片機(jī)的時(shí)鐘端口X1和X2,電路中C2、C3為振蕩器的匹配電容(dinrng)。該電路簡(jiǎn)單,工作可靠 。2.按鍵(n jin)電路按鍵的左右(zuyu)管腳分別相連,與單

22、片機(jī)的P1口連接3.74LS47 74LS138數(shù)碼管電路(dinl)本電路使用74LS47控制數(shù)碼管的七段顯示,74LS138控制數(shù)碼管的位顯示 六、整體(zhngt)電路圖(見附圖)七、設(shè)計(jì)(shj)總結(jié)設(shè)計(jì)過程中遇到的問題(wnt)及解決方法1)在編程后發(fā)現(xiàn)程序無法運(yùn)行,有幾個(gè)錯(cuò)誤,經(jīng)過檢查后發(fā)現(xiàn)原來開始的uchar 與 uint 這兩個(gè)變量在main函數(shù)中沒有定義導(dǎo)致出錯(cuò)(2)在焊接玩工程板后發(fā)現(xiàn)通電后無反應(yīng),經(jīng)過仔細(xì)的排查才發(fā)現(xiàn)原來由于焊工不精導(dǎo)致很多地方出現(xiàn)虛焊,導(dǎo)線接觸不良導(dǎo)致無法通電,在經(jīng)過仔細(xì)復(fù)查后將虛焊的地方重新焊接了一遍解決了問題。設(shè)計(jì)體會(huì) 這次課程設(shè)計(jì)是一次非常好的鍛煉機(jī)會(huì),歷時(shí)一個(gè)星期,通過這一個(gè)星期的學(xué)習(xí),發(fā)現(xiàn)了自己的很多不足,自

溫馨提示

  • 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)論