秒定時器非常詳細論文課程設計_第1頁
秒定時器非常詳細論文課程設計_第2頁
秒定時器非常詳細論文課程設計_第3頁
秒定時器非常詳細論文課程設計_第4頁
秒定時器非常詳細論文課程設計_第5頁
已閱讀5頁,還剩11頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、電子技術課程設計報告專 業:電子信息工程班 級題 目:姓 名指導教師:摘要此實驗為三十秒定時器。定時器是生活中比較常見的電子儀器的功能之一。在10多個課題中,算是比較常見,但又比較實用,恰巧作者正在自學單片機,如果用單片機做的話,不失為一個學習的好機會。這個實驗的難點和優點都是程序控制。因為單片機應用比較靈活,很有學習價值;而又因為它應用很靈活,所以必須學習大量的硬件知識和程序設計。最小系統,就是最簡單的輸出/輸入構成,并且能實現最基本的運行條件,如應有供電、時鐘附屬電路等。單片機的最小系統包括晶振電路 復位電路 和電源 , 這時最小系統基本組成 當然還可以添加矩陣鍵盤 數碼管等。此實驗的原理

2、是,利用單片機的最小系統,通過鎖存器74HC573控制數碼管,來實現30秒定時器的功能。本實驗過程包括:前期設計:原理圖、PCB圖的設計(DXP制作)C語言程序設計及HEX等相關的文件的生成(Keil軟件編寫)燒錄程序至單片機(STC,單片機實驗板)元器件的收集實驗制作:電源的設計電路板焊接后期的整理:電路檢測,測算誤差思路整理,記錄得與失【關鍵詞】 單片機;STC89C52 ; LED數碼管顯示器;計時器 ;三極管C1008前言現在電子儀器發展迅速,而且功能越來越齊全化,體積微型化,儀器智能化;電壓,電流要求越來越簡單,功耗越來越低。而單片機就是其中的佼佼者。單片機有這體積小,功耗低(89C

3、52功耗在100MW左右),功能強,性能價格比高,易于推廣應用等顯著特點,所以在現代社會中已經占統治地位。事實上單片機是世界上數量最多的計算機。現代人類生活中所用的幾乎每件電子和機械產品中都會集成有單片機。手機、電話、計算器、家用電器、電子玩具、掌上電腦以及鼠標等電腦配件中都配有1-2部單片機。而個人電腦中也會有為數不少的單片機在工作。汽車上一般配備40多部單片機,復雜的工業控制系統上甚至可能有數百臺單片機在同時工作!單片機的數量不僅遠超過PC機和其他計算的綜合,甚至比人類的數量還要多。我們學習了單片機,在條件的允許下,就能制作生活中幾乎全部的看起來比較復雜的電子作品。本實驗設計要求:記錄實驗

4、過程中的主要步驟及細節,實現30秒定功能,其誤差不超過1%。大學過程是一個理論過程,實踐的機會比較少,往往會造成理論與實踐相脫節,這是國內大學教育系統的通病,不過對于學生來說切不可好高騖遠。一般從大三會開始接觸到一些專業課程,電子相關專業會開設相關的單片機應用課程并且會有簡單的實驗項目,那么要充分把握實驗課的機會,多多地實際上機操作練習。平時可以多看看相關的電子技術雜志網站,看看別人的開發經驗,硬件設計方案以及他人的軟件設計經驗。有可能的話,還可以參加一些電子設計大賽,借此機會2-3個人合作做一個完整系統,會更有幫助。到了大四畢業設計階段,也可以選擇相關的課題作些實際案例增長經驗。做什么事情都

5、有個經驗的積累過程,循序漸進。在此實驗設計中,制造者可以借此學到很多東西,也知道更多的知識要學。光學知識不動手是不行的,紙上談兵,把問題退到以后,很可能永遠解決不了問題。三十秒定時器設計報告-單片機的初步學習與應用.設計目的:實現30秒定時器;訓練動手能力,學習單片機的控制與制作。.設計任務: 1.30秒計時器功能,兩位數字顯示,計時時間間隔為1秒;2.從1到30增計時,每次計時結束時,發光二極管閃動,蜂鳴器響,顯示器顯示0;3.設置外部開關,可使計時器直接清零。設計要求:使用常用芯片和其他元器件等,在一塊電路板上實現30秒定時器。盡量使用所學知識。. 最小系統:最小系統,就是最簡單的輸出/輸

6、入構成,并且能實現最基本的運行條件,如應有供電、時鐘附屬電路等。單片機的最小系統包括晶振電路 復位電路 和電源 ,本實驗最小系統只控制數碼管、發光二極管、蜂鳴器。.原理圖.參考程序:/*文件名 :實現30秒定時器* 描述 :該程序實現數碼管從130跳動,每秒跳動一次。到30然后清零,LED的閃爍, 在使用某款新單片機時,經常就用類似的閃爍燈程序來判斷單片機是否正常* 創建人 : 王少陽,2009年12月15日* 版本號 : 1.0*/#include<reg52.h>#include<intrins.h>#define uint unsigned int /"

7、uint"用來定義無符號整型數。#define uchar unsigned char /這里用"uchar"代替"unsigned char","uchar"用來定義無符號字uchar temp,aa,bai,shi,ge;sbit dula=P26;sbit wela=P27;sbit beep=P23; /定義蜂鳴器控制端口/*下一行code去掉后 table 會被存到 RAM 中,因為單片機的 RAM 比 ROM 小的多*/*所以,對于不會改變的值應該用 code 或者 #define 去定義,讓這些固定值存到 RO

8、M 中去*/uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71; /編碼表:0到F的段控制void display(uchar shi,uchar ge);void delay(uint z);void init();/* 名稱 : Main()* 功能 : 主函數* 輸入 : 無* 輸出 : 無*/void main() init();/初始化子程序 while(1) if(aa=20) /當aa為 20 時,i 自加一次,20 * 50MS = 1S

9、 aa=0; emp+; if(temp=31) temp=0; bai=temp/100; shi=temp%100/10; ge=temp%10; display(shi,ge); if(temp=30) beep=1; /蜂鳴器響 delay(150); uchar i; while(1) P1 = 0x7f;/P1.7亮亮for(i=0; i<7; i+)/移位7次 P1 = _cror_(P1, 1);/*_crol_()這個數在intrins.h中定義了,用于循環右移*/delay(15);P0 = 0xfe; for(i=0; i<7; i+) P1= _crol_(

10、P1, 1); /循環左移delay(15); /* 名稱 : Delay_1ms()* 功能 : 延時子程序,延時時間為 1ms * z* 輸入 : z (延時一毫秒的個數)* 輸出 : 無*/void delay(uint z)uint x,y; for(x=z;x>0;x-)for(y=110;y>0;y-); /這個是通過軟件仿真得出的數 /* 名稱 : void display(uchar shi,uchar ge)* 功能 : 實現動態掃描* 輸入 : shi,ge* 輸出 : 無*/void display(uchar shi,uchar ge) /* dula=1;

11、P0=tablebai;dula=0;P0=0xff;wela=1;P0=0xfe;wela=0;delay(1);*/dula=1;P0=tableshi; /數碼管段值dula=0;P0=0xff; /燈都熄滅,防止人眼的視覺停留wela=1;P0=0xfe;/1111 1110Bwela=0;delay(2); /*延時,實現軟件消抖,去掉的話會出現該暗的米有暗下去,這時人眼能分辨動態顯示。*/dula=1;P0=tablege;dula=0;P0=0xff;wela=1;P0=0xfd;/1111 1101Bwela=0;delay(2); /* 名稱 void init()* 功能

12、: 定時器的初始化,12MHz晶振,50ms* 輸入 : 無* 輸出 : 無*/void init() wela=0;dula=0;temp=0;TMOD=0x01; /設置定時器0工作方式1。STC89C52是16位定時器。2的16次方=65536。TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1; /開總中斷,IE7ET0=1; /開定時器中斷TR0=1; /啟動定時器0 /* 名稱 :void timer0()* 功能 : 定時器中斷,中斷一次,aa 加一* 輸入 : 無* 輸出 : 無*/void timer0() interrupt 1

13、 /中斷優先級別為1;中斷方式:定時/計數器0(T0)TH0=(65536-50000)/256;TL0=(65536-50000)%256;aa+;程序的中的重點技巧:1.兩位以上的數碼管,是不能在靜態時同時顯示不同的符號的,所以就需要用到動態顯示,具體方法是每位數碼管一次都顯示幾毫秒,實現動態掃描,使人在肉眼難以分辨(人眼的分辨能力是0.1秒左右),例如:dula=1;P0=tablege;dula=0;P0=0xff;wela=1;P0=0xfd;/1111 1101Bwela=0;delay(2);2.常用程序驅動幾個發光二極管來判斷單片機是否工作正常,具體是用循環移動P1扣來實現。3

14、. 如果按鍵按下,需要測試按鍵是否斷開:while(!key1);4.按鍵在閉合和斷開時,觸點會存在5ms左右5ms左右按下會執行幾個抖動脈沖,常用軟件消抖,比較方便實用,先延時10毫秒,大致跳過抖動時間,然后再測試。如:delay(5);if(key1=0)其他的在這里就不詳細講述了。為了保證程序能正確且正常運行,程序需要在單片機實驗板上調試好了才能燒錄,然后才能連接到電路板上。具體步驟:keil4編寫程序>生成HEX文件(注意晶振頻率為11.0592MHz)>用STC把程序下載到單片機上。.兩個基本電路: 復位電路和晶振電路復位電路:一般需要送4個時鐘周期的高電平。按鍵后:電容

15、器被短路放電、RST直接和VCC相連,就是高電平,此時進入“復位狀態”。松手后:電源開始對電容器充電,此時,充電電流在電阻上,形成高電平送到RST,仍然是“復位狀態”; 稍后,充電結束,電流降為0,電阻上的電壓也將為0,RST降為低電平,開始正常工作。晶振電路:產生一個固定頻率的脈充,驅動芯片等元件工作。晶振也叫晶體振蕩器,能產生振蕩,其特點是固有頻率十分穩定,而且震動具有多諧性,除了奇頻震動外還有奇次諧波泛音震動。性能上,晶振的品質因素Q和特性阻抗都非常高,而且接入系數很小,因此具有很高的頻率穩定度。.實驗儀器,工具,元件:硬件:計算機,單片機實驗板,吸焊器,電烙鐵,萬用表等軟件:Keil4

16、 , STC , Protel 2004 DXP .1IC名單型號個數2單片機stc89C5213鎖存器74HC57324數碼管2位的,共陰極25晶振12MHz16電容39PF27電容10UF28開關按鍵開關29開關波動開關110電路板10*20111排阻10K歐112電阻3K歐113電阻30歐114發光二極管0.5V亮315單片機底座40引腳116三極管C1008 npn117蜂鳴器1元器件如表:.焊接電路: 按照PCB圖安置元件,盡量減小導線長度,布局要合理,緊湊。收集元件:主要通過指導老師購買,還自己購買,同學相互查找。實在湊不齊的可以考慮用其他的代替。比如:此實驗中1K的電阻沒有買到,

17、用的是200代替。在滿足實驗原理的的前提下,可以替代。檢測元件:因為元件有可能已損壞,或者不準確,就可能會影響電路。所以用萬用表測量他們的實際數值。其中電阻,電容,數碼管,單片機底座,導線,開關都能用萬用表測量,其他的因為實際實驗條件的限制,不能測試和測量。比如,22PF的電容,在測量時,大小只有17PF,所以不能用。焊接:每焊接時都要用萬用表測試是否焊接成功。焊接電路板時,布局合理緊湊,近的用錫連接,遠的用導線練級,盡量使導線裸露的長度短些。有的導線比較密集,需注意不要短路。此實驗中,密集點有單片機的P0口附近10個焊點和鎖存器74HC573-1的20個。可用萬用表測試相鄰的兩焊點是否短路。

18、焊接錯誤時,用吸焊器把錫吸走,重新焊接。電源線有7個地線,5個+5V。導線比較多,所以要注意布局合理。因為焊點比較多,所以錯誤不可避免,在實驗中要細心+耐心。焊接完,要檢測。用萬用表檢測電路是否連接良好,是否短路。注意事項:晶振,因為人體所帶電磁波和人體手指電阻會破壞晶振的正常震蕩,或者停振,所以程序會跑飛或者“死機”,復位按后單片機復位,當然就正常了!一般晶振是不能用受碰的,我自己做的電路,晶振引腳部位會用熱熔膠封好!在晶體外殼上焊接一條線,然后接GND.需要特別注意的是,單片機的驅動能力很低。單片機輸出的電壓雖然容易控制,但是它的輸出電流有限,所以經常用一些方法增加它的驅動能力。此實驗用到

19、了接上拉電阻(10K的排阻),鎖存器輸出,三極管驅動這三種方法。.測試:1.將電路接上穩壓電源,先后執行電路的數碼管定時,蜂鳴器報警,放光二極管閃動,暫停/繼續定時。看是否滿足設計要求。在時間誤差的測試中,得到數據很接近真實數據,這是因為人的反應速度的誤差,而是用定時器的計時方式,誤差是非常小的,在日常生活中一般不予考慮,但是在高精度測量時,就很有必要了,所以我們要了解本實驗的誤差: 誤差原因、大小及特點產生單片機定時器溢出中斷與響應中斷的時間誤差有兩個原因。一是定時器溢出中斷信號時,正在執行某指令;二是定時器溢出中斷信號時,正在執行某中斷服務程序。由上面可以看出在執行1秒的時間過程中,本實驗

20、程序中斷1次,溢出2次,所以誤差=(max1+2*max2)*30=(4+8*2)*30=600電路改進及發展:實現定時功能,比較方便的辦法是利用單片機內部的定時/計數器。也可以采用下面三種方法:§ 軟件定時:軟件定時不占用硬件資源,但占用了CPU時間,降低了CPU的利用率。§ 采用時基電路定時:例如采用555電路,外接必要的元器件(電阻和電容),即可構成硬件定時電路。但在硬件連接好以后,定時值與定時范圍不能由軟件進行控制和修改,即不可編程。§ 采用可編程芯片定時:這種定時芯片的定時值及定時范圍很容易用軟件來確定和修改,此種芯片定時功能強,使用靈活。在單片機的定時/計數器不夠用時,可以考慮進行擴展。.對單片機做定時器的優點,和缺點:單片機講求實時性,所以實時性好。資源緊張,要求功耗低多為針對應用的定制,功能相對單一,在上面跑的軟件移植性差大多數不支持第三方軟件,很多甚至沒有操作系統,有的連MMU都沒有。我們學生用單片機可以向嵌入式的工程應用方向發展,從事嵌入式系統的開發工作。總結其間,我熟悉了從構想設計、畫電路圖、分析電路、繪制PCB電路板、選擇元件參數規格

溫馨提示

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

評論

0/150

提交評論