畢業設計基于AT89C2051單片機的電子定時器設計_第1頁
畢業設計基于AT89C2051單片機的電子定時器設計_第2頁
畢業設計基于AT89C2051單片機的電子定時器設計_第3頁
畢業設計基于AT89C2051單片機的電子定時器設計_第4頁
畢業設計基于AT89C2051單片機的電子定時器設計_第5頁
已閱讀5頁,還剩46頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、 電子定時器的設計 electron timer design學生: xxxx 班級: xxxxx3 學號: 0xxx學部: xxx 專業: xx 指導老師: xxx 指導老師職稱: xxxx 工作單位: xxxx 畢業設計(論文)完成時間自 2011 年 2 月 至 2011 年2 月摘 要 隨著時代的進步,電子行業的發展,定時器的應用也越來越廣泛。但傳統的定時器都是使用發條驅動式、電機傳動式或電鐘式等機械定時器。電子定時器相對產痛定時器來說,體積小、重量輕、造價低、精度高、壽命長、而且安全可靠、調整方便、適于頻繁使用。本設計采用at89c2051單片機為核心,闡述了系統工作原理,給出了軟件

2、流程。該電子定時器滿足對電器的電源進行控制,同時要方便用戶對電子定時器的操作。最大時間能達到30h,切最大精度可以到分鐘關鍵詞:定時器;單片機;at89c2051;動態掃描;繼電器【abstract】 progress , development of electron industry , the timer application are also more and more broad with the times. but, the tradition timer all is to use spring to drive machinery timers such as style

3、, electric motor drive style or electric clock style. come the electron timer to say volume is small , weight is light , cost of construction is low , accuracy is high , life-span is long, and safety is reliable , adjust to be suitable for being frequently put into use conveniently relatively painfu

4、l timer of product. have designed that the monolithic machine is core originally adopt at89c2051 , have set forth system operating principle , have given a software out technological process. the power source go along being the electron timers turn to be satisfied with electrical equipment is contro

5、lled , is wants the convenience of customers operation to electron timer at the same time. maximal time can reach 30 hs , by all means maximal accuracy can arrive at a minutekeywords: timer; monolithic machine; at89c2051; development is scanned; relay目 錄1 引言71.1課題的來源和意義71.2電子定時器的應用81.3電子定時器的發展前景82 5

6、1單片機內部結構及計數原理82.1 51單片機內部機構82.2計數原理113 電子定時器的設計193.1總體的設計要求193.2 系統硬件電路設計193.2.1 芯片的選擇193.2.2 交流控制接口電路193.2.3顯示電路193.2.4 報警電路193.3 系統程序的設計203.3.1 主程序流程圖204 重要元件及重要電路214.1 at89c2051的內部結構及功能和引腳說明214.1.1 at89c2051主要性能224.1.2 at89c2051的內部結構224.1.3 at89c2051的引腳說明244.2 繼電器264.2.1、電磁繼電器的工作原理和特性264.2.2、繼電器主

7、要產品技術參數264.2.3、繼電器的電符號和觸點形式274.3數碼管284.3.1、數碼管的分類284.3.2、數碼管的驅動方式285 軟件設計295.1 偽定義295.2 中斷入口305.3 主程序315.4倒計時程序345.5 bcd子程序(加1或減1)355.6加1程序365.7調時快進程序375.8功能菜單程序375.9到點工作程序405.10響鈴程序425.11顯示程序435.12無顯示(滅燈)程序455.13延時程序455.14 err(出錯處理)程序47結論48參考文獻49致謝50附錄511 引言我們在日常生活中,經常碰到一些需要定時的事情,例如:印相或放大照片,需要定在零點幾

8、秒的時間,洗衣機洗滌衣物需要定在幾分鐘到幾十分鐘的時間,電風扇需要定在數十分鐘的時間。完成這種定時的定時器有多種多樣,在家用電器中采用機械定時器就是根據一般上弦鐘表原理設計的,這種定時器雖然結構簡單,成本低,維修也比較方便,但是它的觸頭頻繁接觸和斷開,大大的縮減了它的使用壽命,也不利于進一步全自動化。在電子技術突飛猛進的今天,電子定時器一定會逐步取而代之,這是不言而喻的。本文是基于51系列單片機設計的一種用于控制家用電器的設計方案。1.1課題的來源和意義本課題是通過導師篩選提出的,電子設計課題不一定很大,只要通過親手做一遍全過程,完成一個產品制作,收獲是很大的。本課題的意義在于通過設計和制作本

9、課題把在學校學習到的知識融會貫通并應用到實際當中。做到學有所成,學有所用。并且希望通過本設計為節能減排做出貢獻。1.2電子定時器的應用電子定時器在家用電器中經常用于延時自動關機、定時。延時自動關機可用于:收音機、電視機、錄音機、催眠器、門燈、路燈、汽車頭燈、轉彎燈以及其他電器的延時斷電及延時自停電源等。定時可用于:照相定時曝光、定時閃光、定時放大、定時調速、定時烘箱、冰箱門開定時報警、水位定時報警、延時催眠器、延時電鈴、延時電子鎖、觸摸定時開關等。例如:空調中的定時器,在工作一段時間之后便能自動切斷電源停止工作。夏季夜間使用,入睡前先頂好時間,等睡熟后到了預定時間,空調自動關機。方便節能。定時

10、器除了應用于家用電器外,還廣泛地用于工業農業生產和服務設施,甚至軍事等。1.3電子定時器的發展前景傳統的定時器絕大多數都是發條驅動式、電機傳動式或電鐘式等機械定時器,部分電子器械中也有試用時間繼電器的。相對于傳統的定時器,電子定時器的體積小、重量輕、造價低、精度高、壽命長、而且安全可靠、調整方便、適于頻繁使用。所以電子定時器的發展必定大有前途。同時隨著現代電子技術的發展,電子定時器也在不斷的進步,朝向著更多用途、更高精度、更小體積發展著。例如:一個可編程電子定時器,它可以設置20組開、關電源設置,可以當時鐘使用,還也可以按星期組合讓它在一周內的任意一天或幾天按設置程序工作。而且它只有長12.5

11、cm寬5.5cm厚5cm大小。且它的功耗特別小只有3w。可以說是小巧玲瓏,節能省電。2 51單片機內部結構及計數原理2.1 51單片機內部機構51單片機內部有一個8位的cpu,同時cpu內部包含了運算器,控制器及若干寄存器。從上圖中我們可以看到,在虛線框內的就是cpu的內部結構了,8位的mcs-51單片機的cpu內部有數術邏輯單元alu(arithmetic logic unit)、累加器a(8位)、寄存器b(8位)、程序狀態字psw(8位)、程序計數器pc(有時也稱為指令指針,即ip,16位)、地址寄存器ar(16位)、數據寄存器dr(8位)、指令寄存器ir(8位)、指令譯碼器id、控制器等

12、部件組成。1、運算器(alu)的主要功能a)算術和邏輯運算,可對半字節(一個字節是8位,半個字節就是4位)和單字節數據進行操作。b)加、減、乘、除、加1、減1、比較等算術運算。c)與、或、異或、求補、循環等邏輯運算。d)位處理功能(即布爾處理器)。由于alu內部沒有寄存器,參加運算的操作數,必須放在累加器a中。累加器a也用于存放運算結果。例如:執行指令 add a,b執行這條指令時,累加器a中的內容通過輸入口in_1輸入alu,寄存器b通過內部數據總線經輸入口in_2輸入alu,a+b的結果通過alu的輸出口out、內部數據總線,送回到累加器a。2、程序計數器pcpc的作用是用來存放將要執行的

13、指令地址,共16位,可對64k rom直接尋址,pc低8位經p0口輸出,高8位經p2口輸出。也就是說,程序執行到什么地方,程序計數器pc就指到哪里,它始終是跟躥著程序的執行。我們知道,用戶程序是存放在內部的rom中的,我們要執行程序就要從rom中一個個字節的讀出來,然后到cpu中去執行,那么rom具體執行到哪一條呢?這就需要我們的程序計數器pc來指示。程序計數器pc具有自動加1的功能,即從存儲器中讀出一個字節的指令碼后,pc自動加1(指向下一個存儲單元)。 3、指令寄存器ir指令寄存器的作用就是用來存放即將執行的指令代碼。在這里我們先簡單的了解下cpu執行指令的過程,首先由程序存儲器(rom)

14、中讀取指令代碼送入到指令寄存器,經譯碼器譯碼后再由定時與控制電路發出相應的控制信號,從而完成指令的功能。關于指令在單片機內部的執行過程,我們在后面將會以另一節課來進行詳細的講解。 4、指令譯碼器id用于對送入指令寄存器中的指令進行譯碼,所謂譯碼就是把指令轉變成執行此指令所需要的電信號。當指令送入譯碼器后,由譯碼器對該指令進行譯碼,根據譯碼器輸出的信號,cpu控制電路定時地產生執行該指令所需的各種控制信號,使單片機正確的執行程序所需要的各種操作。5、地址寄存器ar(16位)ar的作用是用來存放將要尋址的外部存儲器單元的地址信息,指令碼所在存儲單元的地址編碼,由程序計數器pc產生,而指令中操作數所

15、在的存儲單元地址碼,由指令的操作數給定。從上圖中我們可以看到,地址寄存器ar通過地址總線ab與外部存儲器相連。6、數據寄存器dr用于存放寫入外部存儲器或i/o端口的數據信息。可見,數據寄存器對輸出數據具有鎖存功能。數據寄存器與外部數據總線db直接相連。7、程序狀態字psw用于記錄運算過程中的狀態,如是否溢出、進位等。例如,累加器a的內容83h,執行:add a,#8ah ;累加器a與立即數8ah相加,并把結果存放在a中。指令后,將產生和的結果為10dh,而累加器a只有8位,只能存放低8位,即0dh,元法存放結果中的最高位b8。為些,在cpu內設置一個進位標志位c,當執行加法運算出現進位時,進位

16、標志位c為1。8、時序部件由時鐘電路和脈沖分配器組成,用于產生微操作控制部件所需的定時脈沖信號2.2計數原理80c51單片機內部設有兩個16位的可編程定時器/計數器。可編程的意思是指其功能(如工作方式、定時時間、量程、啟動方式等)均可由指令來確定和改變。在定時器/計數器中除了有兩個16位的計數器之外,還有兩個特殊功能寄存器(控制寄存器和方式寄存器)。 定時器/計數器的結構: 從上面定時器/計數器的結構圖中我們可以看出,16位的定時/計數器分別由兩個8位專用寄存器組成,即:t0由th0和tl0構成;t1由th1和tl1構成。其訪問地址依次為8ah-8dh。每個寄存器均可單獨訪問。這些寄存器是用于

17、存放定時或計數初值的。此外,其內部還有一個8位的定時器方式寄存器tmod和一個8位的定時控制寄存器tcon。這些寄存器之間是通過內部總線和控制邏輯電路連接起來的。tmod主要是用于選定定時器的工作方式;tcon主要是用于控制定時器的啟動停止,此外tcon還可以保存t0、t1的溢出和中斷標志。當定時器工作在計數方式時,外部事件通過引腳t0(p3.4)和t1(p3.5)輸入。 定時計數器的原理: 16位的定時器/計數器實質上就是一個加1計數器,其控制電路受軟件控制、切換。 當定時器/計數器為定時工作方式時,計數器的加1信號由振蕩器的12分頻信號產生,即每過一個機器周期,計數器加1,直至計滿溢出為止

18、。顯然,定時器的定時時間與系統的振蕩頻率有關。因一個機器周期等于12個振蕩周期,所以計數頻率fcount=1/12osc。如果晶振為12mhz,則計數周期為:t=1/(12106)hz1/12=1s 這是最短的定時周期。若要延長定時時間,則需要改變定時器的初值,并要適當選擇定時器的長度(如8位、13位、16位等)。 當定時器/計數器為計數工作方式時,通過引腳t0和t1對外部信號計數,外部脈沖的下降沿將觸發計數。計數器在每個機器周期的s5p2期間采樣引腳輸入電平。若一個機器周期采樣值為1,下一個機器周期采樣值為0,則計數器加1。此后的機器周期s3p1期間,新的計數值裝入計數器。所以檢測一個由1至

19、0的跳變需要兩個機器周期,故外部事年的最高計數頻率為振蕩頻率的1/24。例如,如果選用12mhz晶振,則最高計數頻率為0.5mhz。雖然對外部輸入信號的占空比無特殊要求,但為了確保某給定電平在變化前至少被采樣一次,外部計數脈沖的高電平與低電平保持時間均需在一個機器周期以上。 當cpu用軟件給定時器設置了某種工作方式之后,定時器就會按設定的工作方式獨立運行,不再占用cpu的操作時間,除非定時器計滿溢出,才可能中斷cpu當前操作。cpu也可以重新設置定時器工作方式,以改變定時器的操作。由此可見,定時器是單片機中效率高而且工作靈活的部件。 綜上所述,我們已知定時器/計數器是一種可編程部件,所以在定時

20、器/計數器開始工作之前,cpu必須將一些命令(稱為控制字)寫入定時/計數器。將控制字寫入定時/計數器的過程叫定時器/計數器初始化。在初始化過程中,要將工作方式控制字寫入方式寄存器,工作狀態字(或相關位)寫入控制寄存器,賦定時/計數初值。下面我們就提出的控制字的格式及各位的主要功能與大家詳細的講解。 控制寄存器 定時器計數器t0和t1有2個控制寄存器-tmod和tcon,它們分別用來設置各個定時器計數器的工作方式,選擇定時或計數功能,控制啟動運行,以及作為運行狀態的標志等。其中,tcon寄存器中另有4位用于中斷系統。 定時器/計數器方式寄存器tmod: 定時器方式控制寄存器tmod在特殊功能寄存

21、器中,字節地址為89h,無位地址。tmod的格式如下圖所示。 由圖可見,tmod的高4位用于t1,低4使用于t0,4種符號的含義如下:gate:門控制位。gate和軟件控制位tr、外部引腳信號int的狀態,共同控制定時器計數器的打開或關閉。ct:定時器計數器選擇位。c/t1,為計數器方式;ct0,為定時器方式。m1m0:工作方式選擇位,定時器計數器的4種工作方式由m1m0設定。定時器/計數器方式控制寄存器tmod不能進行位尋址,只能用字節傳送指令設置定時器工作方式,低半字節定義為定時器0,高半字節定義為定時器1。復位時,tmod所有位均為0。定時器/計數器控制寄存器tcon:tcon在特殊功能

22、寄存器中,字節地址為88h,位地址(由低位到高位)為88h一8fh,由于有位地址,十分便于進行位操作。tcon的作用是控制定時器的啟、停,標志定時器溢出和中斷情況。tcon的格式如下圖所示。其中,tfl,trl,tf0和tr0位用于定時器計數器;iel,itl,ie0和it0位用于中斷系統。各位定義如下:tf1:定時器1溢出標志位。當字時器1計滿溢出時,由硬件使tf1置“1”,并且申請中斷。進入中斷服務程序后,由硬件自動清“0”,在查詢方式下用軟件清“0”。tr1:定時器1運行控制位。由軟件清“0”關閉定時器1。當gate=1,且int1為高電平時,tr1置“1”啟動定時器1;當gate=0,

23、tr1置“1”啟動定時器1。tf0:定時器0溢出標志。其功能及操作情況同tf1。tr0:定時器0運行控制位。其功能及操作情況同tr1。ie1:外部中斷1請求標志。it1:外部中斷1觸發方式選擇位。ie0:外部中斷0請求標志。it0:外部中斷0觸發方式選擇位。tcon中低4位與中斷有關,我們將在下節課講中斷時再給予講解。由于tcon是可以位尋址的,因而如果只清溢出或啟動定時器工作,可以用位操作命令。例如:執行“clr tf0”后則清定時器0的溢出;執行“setb tr1”后可啟動定時器1開始工作(當然前面還要設置方式定)。定時器/計數器的初始化: 由于定時器/計數器的功能是由軟件編程確定的,所以

24、一般在使用定時/計數器前都要對其進行初始化,使其按設定的功能工作。初始貨的步驟一般如下:1、確定工作方式(即對tmod賦值);2、預置定時或計數的初值(可直接將初值寫入th0、tl0或th1、tl1);3、根據需要開放定時器/計數器的中斷(直接對ie位賦值);4、啟動定時器/計數器(若已規定用軟件啟動,則可把tr0或tr1置“1”;若已規定由外中斷引腳電平啟動,則需給外引腳步加啟動電平。當實現了啟動要求后,定時器即按規定的工作方式和初值開始計數或定時)。因為在不同工作方式下計數器位數不同,因而最大計數值也不同。現假設最大計數值為m,那么各方式下的最大值m值如下:方式0:m=213=8 192方

25、式1:m=216=65 536方式2:m=28=256方式3:定時器0分成兩個8位計數器,所以兩個m均為256。 因為定時器/計數器是作“加1”計數,并在計數滿溢出時產生中斷,因此初值x可以這樣計算:x=m-計數值定時器/計數器的四種工作方式: 定t0或t1無論用作定時器或計數器都有4種工作方式:方式0、方式1、方式2和方式3。除方式3外,t0和t1有完全相同的工作狀態。下面以t1為例,分述各種工作方式的特點和用法。 工作方式0: 13位方式由tl1的低5位和th1的8位構成13位計數器(tl1的高3位無效)。工作方式0的結構見下圖: 為定時計數選擇:ct0,t1為定時器,定時信號為振蕩周期1

26、2分頻后的脈沖;ctl,t1為計數器,計數信號來自引腳t1的外部信號。定時器t1能否啟動工作,還受到了r1、gate和引腳信號int1的控制。由圖中的邏輯電路可知,當gate0時,只要tr11就可打開控制門,使定時器工作;當gate1時,只有tr11且int11,才可打開控制門。gate,tr1,ct的狀態選擇由定時器的控制寄存器tmod,tcon中相應位狀態確定,int1則是外部引腳上的信號。在一般的應用中,通常使gate0,從而由trl的狀態控制tl的開閉:trl1,打開t1;trl0,關閉t1。在特殊的應用場合,例如利用定時器測量接于int1引腳上的外部脈沖高電平的寬度時,可使gate1

27、,trl1。當外部脈沖出現上升沿,亦即int1由0變1電平時,啟動t1定時,測量開始;一旦外部脈沖出現下降沿,亦即int1由l變o時就關閉了t1。定時器啟動后,定時或計數脈沖加到tll的低5位,從預先設置的初值(時間常數)開始不斷增1。tl1計滿后,向thl進位。當tl1和thl都計滿之后,置位t1的定時器回零標志tfl,以此表明定時時間或計數次數已到,以供查詢或在打開中斷的條件下,可向cpu請求中斷。如需進一步定時/計數,需用指令重置時間常數。 方式0是13位計數結構的工作方式,其計數器由th0全部8位和tl0的低5位構成。當tl0的低5位計數溢出時,向th0進位,而全部13位計數溢出時,則

28、向計數溢出標志位tf0進位。 tmod寄存器初始化為把定時器/計數器1設定為方式0,則m1m000;為實現定時功能,應使c/t0;為實現定時器/計數器1的運行控制,則gate0。定時器/計數器0不用,有關位設定為0。因此tmod寄存器應初始化為00h。 由定時器控制寄存器tcon中的tr1位控制定時的啟動和停止 tr11啟動,tr10停止。工作方式1:1是16位計數結構的工作方式,計數器由th0全部8位和tl0全部8位構成。與工作方式0基本相同,區別僅在于工作方式1的計數器tl1和th1組成16位計數器,從而比工作方式0有更寬的定時/計數范圍。工作方式28位自動裝入時間常數方式。由tll構成8

29、位計數器,thl僅用來存放時間常數。啟動t1前,tll和thl裝入相同的時間常數,當tl1計滿后,除定時器回零標志tfl置位,具有向cpu請求中斷的條件外,thl中的時間常數還會自動地裝入tll,并重新開始定時或計數。所以,工作方式2是一種自動裝入時間常數的8位計數器方式。由于這種方式不需要指令重裝時間常數,因而操作方便,在允許的條件下,應盡量使用這種工作方式。當然,這種方式的定時計數范圍要小于方式0和方式1。工作方式2的結構見下圖當計數溢出后,不是像前兩種工作方式那樣通過軟件方法,而是由預置寄存器th以硬件方法自動給計數器tl重新加載。變軟件加載為硬件加載。 初始化時,8位計數初值同時裝入t

30、l0和th0中。當tl0計數溢出時,置位tf0,同時把保存在預置寄存器th0中的計數初值自動加載tl0,然后tl0重新計數。如此重復不止。這不但省去了用戶程序中的重裝指令,而且也有利于提高定時精度。但這種工作方式下是8位計數結構,計數值有限,最大只能到255。這種自動重新加載工作方式非常適用于循環定時或循環計數應用,例如用于產生固定脈寬的脈沖,此外還可以作串行數據通信的波特率發送器使用。工作方式32個8位方式。工作方式3只適用于定時器0。如果使定時器1為工作方式3,則定時器1將處于關閉狀態。當t0為工作方式3時,tho和tl0分成2個獨立的8位計數器。其中,tl0既可用作定時器,又可用作計數器

31、,并使用原t0的所有控制位及其定時器回零標志和中斷源。th0只能用作定時器,并使用t1的控制位trl、回零標志tfl和中斷源,見下圖。 通常情況下,t0不運行于工作方式3,只有在t1處于工作方式2,并不要求中斷的條件下才可能使用。這時,t1往往用作串行口波特率發生器(見14),th0用作定時器,tl0作為定時器或計數器。所以,方式3是為了使單片機有1個獨立的定時器計數器、1個定時器以及1個串行口波特率發生器的應用場合而特地提供的。這時,可把定時器l用于工作方式2,把定時器0用于工作方式3。下才可能使用。這時,t1往往用作串行口波特率發生器,th0用作定時器,tl0作為定時器或計數器。所以,方式

32、3是為了使單片機有1個獨立的定時器計數器、1個定時器以及1個串行口波特率發生器的應用場合而特地提供的。這時,可把定時器l用于工作方式2,把定時器0用于工作方式3。3 電子定時器的設計3.1總體的設計要求本文所涉及的電子定時器要求能定時給電器供電或斷電,最大時間可以長達30h,操作使用方便,采用at89c2051單片機控制,4位共陽數碼管顯示時間,繼電器做電器電源輸出控制。3.2 系統硬件電路設計3.2.1 芯片的選擇硬件電路要實現對交流大電流電源的控制、定時時間的設定顯示和到點提醒等功能。若采用40腳的單片機有利于設計,但會增大電路板的體積。本設計采用atmel公司的at89c2051單片機,

33、芯片位20腳,體積小,工作電壓范圍寬(2.7v6v)。性價比比較高。3.2.2 交流控制接口電路交流接口電路可以選擇繼電器控制,也可采用可控硅控制等。本設計采用的是前一種繼電器控制。3.2.3顯示電路顯示電路采用4個共陽極led數碼管。為了在定時達到分(鐘)的時候能顯示出時鐘在計時,兩個數碼管之間增加一個發光二極管,以其閃爍來代表秒走動;為了使硬件電路簡單,采用單片機直接驅動led數碼管(at89c2051輸出口能吸收20ma電流),用動態掃描法實現led顯示。3.2.4 報警電路報警電路采用普通的5v成品蜂鳴器。3.3 系統程序的設計程序采用模塊化、結構化設計,并采用軟件抗干擾,使軟件的可靠

34、性比較高,可維護性較強。主要模塊有:1) 主程序2) 菜單程序3) 到點工作程序4) 抗干擾程序3.3.1 主程序流程圖開始關中斷,設置堆棧有上電復位標志? n y熱啟動恢復正常冷啟動全面初始化調用顯示程序f鍵被按下? n y調用顯示程序,設定時間開始計時、工作到點了嗎? n停止計時,調用到點工作程序結束4 重要元件及重要電路4.1 at89c2051的內部結構及功能和引腳說明at89c2051是美國atmel公司生產的低電壓、高性能cmos 8位單片機,片內含2k bytes的可反復擦寫的只讀程序存儲器(perom)和128bytes的隨機數據存儲器(ram),器件采用atmel公司的高密度

35、、非易失性存儲技術生產,兼容標準mcs-51指令系統,片內置通用8位中央處理器和flash存儲單元,功能強大at89c2051單片機可為您提供許多高性價比的應用場合。程序保密89c2051設計有2個程序保密位,保密位1被編程之后,程序存儲器不能再被編程除非做一次擦除,保密位2被編程之后,程序不能被讀出。軟硬件的開發89c2051可以采用下面2種方法開發應用系統。(1) 由于89c2051內部程序存貯器為flash,所以修改它內部的程序十分方便快捷,只要配備一個可以編程89c2051的編程器即可。調試人員可以采用程序編輯-編譯-固化-插到電路板中試驗這樣反復循環的方法,對于熟練的mcs-51程序

36、員來說,這種調試方法并不十分困難。當做這種調試不能夠了解片內ram的內容和程序的走向等有關信息。(2) 將普通8031/80c31仿真器的仿真插頭中p1.0p1.7和p3.0p3.6引出來仿真205t,這種方法可以運用單步、斷點的調試方法,但是仿真不夠真實,比如,2051的內部模擬比較器功能,p1口、p3口的增強下拉能力等等。4.1.1 at89c2051主要性能at89c2051是atmel公司生產的帶2k字節閃速可編程可擦除只讀存儲器(eeprom)的8位單片機,它具有如下主要特性: 和mcs-51產品的兼容 2k字節可重編程閃速存儲器耐久性:1,000寫擦除周期2.7v6v的操作范圍 全

37、靜態操作:0hz24mhz兩級加密程序存儲器 1288位內部ram15根可編程i/o引線 兩個16位定時器/計數器六個中斷源 可編程串行uart通道直接led驅動輸出 片內模擬比較器低功耗空載和掉電方式 4.1.2 at89c2051的內部結構at89c2051是一帶有2k字節閃速可編程可擦除只讀存儲體(eeprom)的低電壓,高性能8位cmos微型計算機。如圖2所示。它采用atmel的高密非易失存儲技術制造并和工業標準mcs51指令集和引腳結構兼容。通過在單塊芯片上組合通用的cpl1和閃速存儲器,atmel at89c2051是一強勁的微型計算機,它對許多嵌入式控制應用提供一高度靈活和成本低

38、的解決辦法。 圖1 at89c2051的內部結構圖 圖2 at89c2051內部示意圖此外,從at89c2051內部結構圖也可看出,其內部結構與8051內部結構基本一致(除模擬比較器外),引腳rst、xtal1、xtal2的特性和外部連接電路也完全與51系列單片機相應引腳一致,但p1口、p3口有其獨特之處4.1.3 at89c2051的引腳說明at89c2051是一個有20個引腳的芯片,引腳如圖1所示,與8051內部結構進行對比可發現,at89c2051減少了兩個對外端口(即p0、p2口),使它最大可能地減少了對外引腳,因而芯片尺寸有所減少。 at89c2051芯片的20個引腳功能為: 1.v

39、cc:電源電壓。2. gnd:地。 3. p1口:p1口是一8位雙向i/o口。口引腳p1.2p1.7提供內部上拉電阻。p1.0和p1.1要求外部上拉電阻。p1.0和p1.1還分別作為片內精密模擬比較器的同相輸入(ain0)和反相輸入(ain1)。p1口輸出緩沖器可吸收20ma電流并能直接驅動led顯示。當p1口引腳寫入“1”時,其可用作輸入端。當引腳p1.2p1.7用作輸入并被外部拉低時,它們將因內部的上拉電阻而流出電流(iil)。p1口還在閃速編程和程序校驗期間接收代碼數據。4. p3口:p3口的p3.0p3.5、p3.7是帶有內部上拉電阻的七個雙向i/0引腳。p3.6用于固定輸入片內比較器

40、的輸出信號并且它作為一通用i/o引腳而不可訪問。p3口緩沖器可吸收20ma電流。當p3口引腳寫入“1”時,它們被內部上拉電阻拉高并可用作輸入端。用作輸入時,被外部拉低的p3口引腳將用上拉電阻而流出電流(iil)。p3口還用于實現at89c2051的各種功能,如下表1所示。p3口還接收一些用于閃速存儲器編程和程序校驗的控制信號。5. rst:復位輸入。rst一旦變成高電平,所有的i/o引腳就復位到“1”。當振蕩器正在運行時,持續給出rst引腳兩個機器周期的高電平便可完成復位。每一個機器周期需12個振蕩器或時鐘周期。6. xtal1:作為振蕩器反相放大器的輸入和內部時鐘發生器的輸入。 7. xta

41、l2:作為振蕩器反相放大器的輸出。p3口引腳 功能p3.0rxd(串行輸入端口) p3.1txd(串行輸出端口) p3.2int0(外中斷0) p3.3int1(外中斷1) p3.4 to(定時器0外部輸入) p3.5t1(定時器1外部輸入) 表1 p3口的功能從上述引腳說明可看出,at89c2051沒有提供外部擴展存儲器與i/o設備所需的地址、數據、控制信號,因此利用at89c2051構成的單片機應用系統不能在at89c2051之外擴展存儲器或i/o設備,也即at89c2051本身即構成了最小單片機系統。4.2 繼電器 繼電器是一種電子控制器件,它具有控制系統(又稱輸入回路)和被控制系統(又

42、稱輸出回路),通常應用于自動控制電路中,它實際上是用較小的電流去控制較大電流的一種“自動開關”。故在電路中起著自動調節、安全保護、轉換電路等作用。4.2.1、電磁繼電器的工作原理和特性電磁式繼電器一般由鐵芯、線圈、銜鐵、觸點簧片等組成的。只要在線圈兩端加上一定的電壓,線圈中就會流過一定的電流,從而產生電磁效應,銜鐵就會在電磁力吸引的作用下克服返回彈簧的拉力吸向鐵芯,從而帶動銜鐵的動觸點與靜觸點(常開觸點)吸合。當線圈斷電后,電磁的吸力也隨之消失,銜鐵就會在彈簧的反作用力返回原來的位置,使動觸點與原來的靜觸點(常閉觸點)吸合。這樣吸合、釋放,從而達到了在電路中的導通、切斷的目的。對于繼電器的“常

43、開、常閉”觸點,可以這樣來區分:繼電器線圈未通電時處于斷開狀態的靜觸點,稱為“常開觸點”;處于接通狀態的靜觸點稱為“常閉觸點”4.2.2、繼電器主要產品技術參數 1、額定工作電壓額定工作電壓是指繼電器正常工作時線圈所需要的電壓。根據繼電器的型號不同,可以是交流電壓,也可以是直流電壓。2、直流電阻直流電阻是指繼電器中線圈的直流電阻,可以通過萬能表測量。3、吸合電流吸合電流是指繼電器能夠產生吸合動作的最小電流。在正常使用時,給定的電流必須略大于吸合電流,這樣繼電器才能穩定地工作。而對于線圈所加的工作電壓,一般不要超過額定工作電壓的1.5倍,否則會產生較大的電流而把線圈燒毀。4、釋放電流釋放電流是指

44、繼電器產生釋放動作的最大電流。當繼電器吸合狀態的電流減小到一定程度時,繼電器就會恢復到未通電的釋放狀態。這時的電流遠遠小于吸合電流。 5、觸點切換電壓和電流觸點切換電壓和電流是指繼電器允許加載的電壓和電流。它決定了繼電器能控制電壓和電流的大小,使用時不能超過此值,否則很容易損壞繼電器的觸點。4.2.3、繼電器的電符號和觸點形式 繼電器線圈在電路中用一個長方框符號表示,如果繼電器有兩個線圈,就畫兩個并列的長方框。同時在長方框內或長方框旁標上繼電器的文字符號“j”。繼電器的觸點有兩種表示方法:一種是把它們直接畫在長方框一側,這種表示法較為直觀。另一種是按照電路連接的需要,把各個觸點分別畫到各自的控

45、制電路中,通常在同一繼電器的觸點與線圈旁分別標注上相同的文字符號,并將觸點組編上號碼,以示區別。繼電器的觸點有三種基本形式:1.動合型(h型)線圈不通電時兩觸點是斷開的,通電后,兩個觸點就閉合。以合字的拼音字頭“h”表示。2.動斷型(d型)線圈不通電時兩觸點是閉合的,通電后兩個觸點就斷開。用斷字的拼音字頭“d”表示。3.轉換型(z型)這是觸點組型。這種觸點組共有三個觸點,即中間是動觸點,上下各一個靜觸點。線圈不通電時,動觸點和其中一個靜觸點斷開和另一個閉合,線圈通電后,動觸點就移動,使原來斷開的成閉合,原來閉合的成斷開狀態,達到轉換的目的。這樣的觸點組稱為轉換觸點。用“轉”字的拼音字頭“z”表

46、示。4.3數碼管數碼管是一種半導體發光器件,其基本單元是發光二極管。4.3.1、數碼管的分類數碼管按段數分為七段數碼管和八段數碼管,八段數碼管比七段數碼管多一個發光二極管單元(多一個小數點顯示);按能顯示多少個“8”可分為1位、2位、4位等等數碼管;按發光二極管單元連接方式分為共陽極數碼管和共陰極數碼管。共陽數碼管是指將所有發光二極管的陽極接到一起形成公共陽極(com)的數碼管。共陽數碼管在應用時應將公共極com接到+5v,當某一字段發光二極管的陰極為低電平時,相應字段就點亮。當某一字段的陰極為高電平時,相應字段就不亮。共陰數碼管是指將所有發光二極管的陰極接到一起形成公共陰極(com)的數碼管

47、。共陰數碼管在應用時應將公共極com接到地線gnd上,當某一字段發光二極管的陽極為高電平時,相應字段就點亮。當某一字段的陽極為低電平時,相應字段就不亮。4.3.2、數碼管的驅動方式 數碼管要正常顯示,就要用驅動電路來驅動數碼管的各個段碼,從而顯示出我們要的數字,因此根據數碼管的驅動方式的不同,可以分為靜態式和動態式兩類。 靜態顯示驅動:靜態驅動也稱直流驅動。靜態驅動是指每個數碼管的每一個段碼都由一個單片機的i/o端口進行驅動,或者使用如bcd碼二-十進制譯碼器譯碼進行驅動。靜態驅動的優點是編程簡單,顯示亮度高,缺點是占用i/o端口多,如驅動5個數碼管靜態顯示則需要5840根i/o端口來驅動,要

48、知道一個89s51單片機可用的i/o端口才32個呢:),實際應用時必須增加譯碼驅動器進行驅動,增加了硬件電路的復雜性。 動態顯示驅動:數碼管動態顯示接口是單片機中應用最為廣泛的一種顯示方式之一,動態驅動是將所有數碼管的8個顯示筆劃a,b,c,d,e,f,g,dp的同名端連在一起,另外為每個數碼管的公共極com增加位選通控制電路,位選通由各自獨立的i/o線控制,當單片機輸出字形碼時,所有數碼管都接收到相同的字形碼,但究竟是那個數碼管會顯示出字形,取決于單片機對位選通com端電路的控制,所以我們只要將需要顯示的數碼管的選通控制打開,該位就顯示出字形,沒有選通的數碼管就不會亮。通過分時輪流控制各個數

49、碼管的的com端,就使各個數碼管輪流受控顯示,這就是動態驅動。在輪流顯示過程中,每位數碼管的點亮時間為12ms,由于人的視覺暫留現象及發光二極管的余輝效應,盡管實際上各位數碼管并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩定的顯示數據,不會有閃爍感,動態顯示的效果和靜態顯示是一樣的,能夠節省大量的i/o端口,而且功耗更低。5 軟件設計5.1 偽定義 sl equ 30h ;sl存放秒的個位數 sh equ 3lh ;sh存放秒的十位數 ml equ 32h ;ml存放分的個位數 mh equ 33h ;mh存放分的十位數 hl equ 34h ;hl存放小時的個位數 hh equ

50、35h ;hh存放小時的十位數 ; l0 equ 36h ;l0l3:顯示數據存儲器 l1 equ 37h l2 equ 38h l3 equ 39h dsplyp equ 3ah ;顯示數據指針(displaypoint) plyts equ 3bh ;顯示次數計數器(displaytimes) ; lplmod bit 39h ;低兩位顯示方式(lowplaymod) hplmod bit 3ah ;高兩位顯示方式(highplaymod) bright bit 3bh :display子程序參數:亮滅指示位 ; tcount equ 3ch ;時間計數器(timecount);addres equ 3dh ,加l子程序參數 max equ 3eh ;加l子程序參數 ifdec bit 20h

溫馨提示

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

評論

0/150

提交評論