版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、安徽理工大學(xué)課程設(shè)計目錄 一、at89c52單片機簡介- 2 -1.雙向i/o口:- 3 -2.主要管腳:- 4 -3.定時/計數(shù)器:- 5 -4. 低功耗空閑和掉電模式:- 6 -5.其他:- 7-二、 at89c52單片機簡介- 12 -1.最小系統(tǒng)模塊:- 12 -2.電源模塊:- 13 -3.串口模塊:- 14 -4.數(shù)碼管模塊:- 15 -5.溫度檢測模塊:- 15 -6.蜂鳴器模塊:- 15 -7.電機驅(qū)動模塊:-16 -8.模塊工作開關(guān)模塊:- 16 -9.液晶屏幕外接顯示模塊:- 16 -10.獨立按鍵部分:- 17 -三、數(shù)碼管動態(tài)顯示程序-17-1.動態(tài)顯示概念-17-2.
2、數(shù)碼管動態(tài)顯示原理圖-17-3.程序設(shè)計-18-4.最終效果圖-20-參考文獻(xiàn)- 21-結(jié)束語- 22 -附錄:數(shù)碼管動態(tài)顯示程序-23 -一、at89c52單片機簡介at89c52是51系列單片機的一個型號,它是atmel公司生產(chǎn)的。at89c52是一個低電壓,高性能cmos8位單片機,片內(nèi)含8k bytes的可反復(fù)擦寫的flash只讀程序存儲器和256 bytes的隨機存取數(shù)據(jù)存儲器(ram),器件采用atmel公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)mcs-51指令系統(tǒng)。 at89c52有40個引腳,32個外部雙向輸入/輸出(i/o)端口,同時內(nèi)含2個外中斷口,3個16位可編程定時計
3、數(shù)器,2個全雙工串行通信口,2個讀寫口線,at89c52可以按照常規(guī)方法進(jìn)行編程,但不可以在線編程(s系列的才支持在線編程)。其將通用的微處理器和flash存儲器結(jié)合在一起,特別是可反復(fù)擦寫的flash存儲器可有效地降低開發(fā)成本。兼容mcs51指令系統(tǒng) 8k可反復(fù)擦寫(1000次)flash rom 32個雙向i/o口 256x8bit內(nèi)部ram 3個16位可編程定時/計數(shù)器中斷 時鐘頻率0-24mhz 2個串行中斷 可編程uart串行通道 2個外部中斷源 共6個中斷源 2個讀寫中斷口線 3級加密位 低功耗空閑和掉電模式 軟件設(shè)置睡眠和喚醒功能 at89c52p為40 腳雙列直插封裝的8 位通
4、用微處理器,采用工業(yè)標(biāo)準(zhǔn)的c51內(nèi)核,在內(nèi)部功能及管腳排布上與通用的8xc52 相同,其主要用于會聚調(diào)整時的功能控制。功能包括對會聚主ic 內(nèi)部寄存器、數(shù)據(jù)ram及外部接口等功能部件的初始化,會聚調(diào)整控制,會聚測試圖控制,紅外遙控信號ir的接收解碼及與主板cpu通信等。主要管腳有:xtal1(19 腳)和xtal2(18 腳)為振蕩器輸入輸出端口,外接12mhz 晶振。rst/vpd(9 腳)為復(fù)位輸入端口,外接電阻電容組成的復(fù)位電路。vcc(40 腳)和vss(20 腳)為供電端口,分別接+5v電源的正負(fù)端。p0p3 為可編程通用i/o 腳,其功能用途由軟件定義,在本設(shè)計中,p0 端口(32
5、39 腳)被定義為n1 功能控制端口,分別與n1的相應(yīng)功能管腳相連接,13 腳定義為ir輸入端,10 腳和11腳定義為i2c總線控制端口,分別連接n1的sdas(18腳)和scls(19腳)端口,12 腳、27 腳及28 腳定義為握手信號功能端口,連接主板cpu 的相應(yīng)功能端,用于當(dāng)前制式的檢測及會聚調(diào)整狀態(tài)進(jìn)入的控制功能。1.雙向i/o口:p0 口:p0 口是一組8 位漏極開路型雙向i/o 口, 也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時,每位能吸收電流的方式驅(qū)動8 個ttl邏輯門電路,對端口p0 寫“1”時,可作為高阻抗輸入端用。在訪問外部數(shù)據(jù)存儲器或程序存儲器時,這組口線分時轉(zhuǎn)換地址(低8
6、 位)和數(shù)據(jù)總線復(fù)用,在訪問期間激活內(nèi)部上拉電阻。在flash 編程時,p0 口接收指令字節(jié),而在程序校驗時,輸出指令字節(jié),校驗時,要求外接上拉電阻。引腳號功能特性p1.0t2,時鐘輸出p1.1t2ex(定時/計數(shù)器2)p1口:p1 是一個帶內(nèi)部上拉電阻的8 位雙向i/o 口, p1 的輸出緩沖級可驅(qū)動(吸收或輸出電流)4 個ttl 邏輯門電路。對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(iil)。與at89c51 不同之處是,p1.0 和p1.1 還可分別作為定時/計數(shù)器2 的外部計數(shù)輸入(
7、p1.0/t2)和輸入(p1.1/t2ex),參見表1. flash 編程和程序校驗期間,p1 接收低8 位地址。p2 口:p2 是一個帶有內(nèi)部上拉電阻的8 位雙向i/o 口,p2 的輸出緩沖級可驅(qū)動(吸收 或輸出電流)4 個ttl 邏輯門電路。對端口p2 表1寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口,作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(iil)。在訪問外部程序存儲器或16 位地址的外部數(shù)據(jù)存儲器(例如執(zhí)行movx dptr 指令)時,p2 口送出高8 位地址數(shù)據(jù)。在訪問8 位地址的外部數(shù)據(jù)存儲器(如執(zhí)行movx ri 指令)時,p
8、2 口輸出p2 鎖存器的內(nèi)容。flash 編程或校驗時,p2亦接收高位地址和一些控制信號。p3 口:p3 口是一組帶有內(nèi)部上拉電阻的8 位雙向i/o 口。p3 口輸出緩沖級可驅(qū)動(吸收或輸出電流)4 個ttl 邏輯門電路。對p3 口寫入“1”時,它們被內(nèi)部上拉電阻拉高并可作為輸入端口。此時,被外部拉低的p3 口將用上拉電阻輸出電流(iil)。p3 口除了作為一般的i/o 口線外,更重要的用途是它的第二功能p3 口還接收一些用于flash 閃速存儲器編程和程序校驗的控制信號。2.主要管腳rst復(fù)位輸入。當(dāng)振蕩器工作時,rst引腳出現(xiàn)兩個機器周期以上高電平將使單片機復(fù)位。ale/prog當(dāng)訪問外部
9、程序存儲器或數(shù)據(jù)存儲器時,ale(地址鎖存允許)輸出脈沖用于鎖存地址的低8 位字節(jié)。一般情況下,ale 仍以時鐘振蕩頻率的1/6 輸出固定的脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲器時將跳過一個ale 脈沖。對flash 存儲器編程期間,該引腳還用于輸入編程脈沖(prog)。如有必要,可通過對特殊功能寄存器(sfr)區(qū)中的8eh 單元的d0 位置位,可禁止ale 操作。該位置位后,只有一條movx 和movc指令才能將ale 激活。此外,該引腳會被微弱拉高,單片機執(zhí)行外部程序時,應(yīng)設(shè)置ale 禁止位無效。psen程序儲存允許(psen)輸出是外部程序存儲器
10、的讀選通信號,當(dāng)at89c52 由外部程序存儲器取指令(或數(shù)據(jù))時,每個機器周期兩次psen 有效,即輸出兩個脈沖。在此期間,當(dāng)訪問外部數(shù)據(jù)存儲器,將跳過兩次psen信號。ea/vpp外部訪問允許。欲使cpu 僅訪問外部程序存儲器(地址為0000hffffh),ea 端必須保持低電平(接地)。需注意的是:如果加密位lb1 被編程,復(fù)位時內(nèi)部會鎖存ea端狀態(tài)。如ea端為高電平(接vcc端),cpu 則執(zhí)行內(nèi)部程序存儲器中的指令。flash 存儲器編程時,該引腳加上+12v 的編程允許電源vpp,當(dāng)然這必須是該器件是使用12v 編程電壓vpp。xtal1振蕩器反相放大器的及內(nèi)部時鐘發(fā)生器的輸入端。
11、xtal2振蕩器反相放大器的輸出端。3.定時/計數(shù)器定時器0和定時器1at89c52的定時器0和定時器1 的工作方式與at89c51 相同。定時器2定時器2 是一個16 位定時/計數(shù)器。它既可當(dāng)定時器使用,也可作為外部事件計數(shù)器使用,其工作方式由特殊功能寄存器t2con的c/t2 位選擇。定時器2 有三種工作方式:捕獲方式,自動重裝載(向上或向下計數(shù))方式和波特率發(fā)生器方式,工作方式由t2con 的控制位來選擇。定時器2 由兩個8 位寄存器th2 和tl2 組成,在定時器工作方式中,每個機器周期tl2 寄存器的值加1,由于一個機器周期由12 個振蕩時鐘構(gòu)成,因此,計數(shù)速率為振蕩頻率的1/12。
12、在計數(shù)工作方式時,當(dāng)t2 引腳上外部輸入信號產(chǎn)生由1 至0 的下降沿時,寄存器的值加1,在這種工作方式下,每個機器周期的5sp2 期間,對外部輸入進(jìn)行采樣。若在第一個機器周期中采到的值為1,而在下一個機器周期中采到的值為0,則在緊跟著的下一個周期的s3p1 期間寄存器加1。由于識別1 至0 的跳變需要2 個機器周期(24 個振蕩周期),因此,最高計數(shù)速率為振蕩頻率的1/24。為確保采樣的正確性,要求輸入的電平在變化前至少保持一個完整周期的時間,以保證輸入信號至少被采樣一次。特殊功能寄存器在at89c52 片內(nèi)存儲器中,80h-ffh 共128 個單元為特殊功能寄存器(sfe),sfr 的地址空
13、間映象如表2 所示。并非所有的地址都被定義,從80hffh 共128 個字節(jié)只有一部分被定義,還有相當(dāng)一部分沒有定義。對沒有定義的單元讀寫將是無效的,讀出的數(shù)值將不確定,而寫入的數(shù)據(jù)也將丟失。不應(yīng)將數(shù)據(jù)“1”寫入未定義的單元,由于這些單元在將來的產(chǎn)品中可能賦予新的功能,在這種情況下,復(fù)位后這些單元數(shù)值總是“0”。 at89c52除了與at89c51所有的定時/計數(shù)器0 和定時/計數(shù)器1 外,還增加了一個定時/計數(shù)器2。定時/計數(shù)器2 的控制和狀態(tài)位位于t2con、t2mod,寄存器對(rcao2h、rcap2l)是定時器2 在16 位捕獲方式或16 位自動重裝載方式下的捕獲/自動重裝載寄存器。
14、數(shù)據(jù)存儲器at89c52 有256 個字節(jié)的內(nèi)部ram,80h-ffh 高128 個字節(jié)與特殊功能寄存器(sfr)地址是重疊的,也就是高128字節(jié)的ram 和特殊功能寄存器的地址是相同的,但物理上它們是分開的。當(dāng)一條指令訪問7fh 以上的內(nèi)部地址單元時,指令中使用的尋址方式是不同的,也即尋址方式?jīng)Q定是訪問高128 字節(jié)ram 還是訪問特殊功能寄存器。如果指令是直接尋址方式則為訪問特殊功能寄存器。例如,下面的直接尋址指令訪問特殊功能寄存器0a0h(即p2 口)地址單元。mov 0a0h,#data間接尋址指令訪問高128 字節(jié)ram,例如,下面的間接尋址指令中,r0 的內(nèi)容為0a0h,則訪問數(shù)據(jù)
15、字節(jié)地址為0a0h,而不是p2 口(0a0h)。mov r0,#data堆棧操作也是間接尋址方式,所以,高128 位數(shù)據(jù)ram 亦可作為堆棧區(qū)使用。4. 低功耗空閑和掉電模式空閑節(jié)電模式 在空閑工作模式狀態(tài), cpu 自身處于睡眠狀態(tài)而所有片內(nèi)的外設(shè)仍保持激活狀態(tài),這種方式由軟件產(chǎn)生。此時,同時將片內(nèi)ram 和所有特殊功能寄存器的內(nèi)容凍結(jié)??臻e模式可由任何允許的中斷請求或硬件復(fù)位終止。由硬件復(fù)位終止空閑狀態(tài)只需兩個機器周期有效復(fù)位信號,在此狀態(tài)下,片內(nèi)硬件禁止訪問內(nèi)部ram,但可以訪問端口引腳,當(dāng)用復(fù)位終止空閑方式時,為避免可能對端口產(chǎn)生意外寫入,激活空閑模式的那條指令后一條指令不應(yīng)是一條對端
16、口或外部存儲器的寫入指令。掉電模式在掉電模式下,振蕩器停止工作,進(jìn)入掉電模式的指令是最后一條被執(zhí)行的指令,片內(nèi)ram 和特殊功能寄存器的內(nèi)容在終止掉電模式前被凍結(jié)。退出掉電模式的唯一方法是硬件復(fù)位,復(fù)位后將重新定義全部特殊功能寄存器,但不改變ram中的內(nèi)容,在vcc恢復(fù)到正常工作電平前,復(fù)位應(yīng)無效,且必須保持一定時間以使振蕩器重啟動并穩(wěn)定工作。5.其他捕獲方式在捕獲方式下,通過t2con 控制位exen2 來選擇兩種方式。如果exen2=0,定時器2 是一個16 位定時器或計數(shù)器,計數(shù)溢出時,對t2con 的溢出標(biāo)志tf2 置位,同時激活中斷。如果exen2=1,定時器2 完成相同的操作,而當(dāng)
17、t2ex 引腳外部輸入信號發(fā)生1 至0 負(fù)跳變時,也出現(xiàn)th2 和tl2 中的值分別被捕獲到rcap2h 和rcap2l 中。另外,t2ex 引腳信號的跳變使得t2con 中的exf2 置位,與tf2 相仿,exf2 也會激活中斷。自動重裝載(向上或向下計數(shù)器)方式當(dāng)定時器2工作于16位自動重裝載方式時,能對其編程為向上或向下計數(shù)方式,這個功能可通過特殊功能寄存器t2con的dcen 位(允許向下計數(shù))來選擇的。復(fù)位時,dcen 位置“0”,定時器2 默認(rèn)設(shè)置為向上計數(shù)。當(dāng)dcen置位時,定時器2 既可向上計數(shù)也可向下計數(shù),這取決于t2ex 引腳的值,參見圖5,當(dāng)dcen=0 時,定時器2 自
18、動設(shè)置為向上計數(shù),在這種方式下,t2con 中的exen2 控制位有兩種選擇,若exen2=0,定時器2 為向上計數(shù)至0ffffh 溢出,置位tf2 激活中斷,同時把16 位計數(shù)寄存器rcap2h 和rcap2l重裝載,rcap2h 和rcap2l 的值可由軟件預(yù)置。若exen2=1,定時器2 的16 位重裝載由溢出或外部輸入端t2ex 從1 至0 的下降沿觸發(fā)。這個脈沖使exf2 置位,如果中斷允許,同樣產(chǎn)生中斷。定時器2 的中斷入口地址是:002bh 0032h 。當(dāng)dcen=1 時,允許定時器2 向上或向下計數(shù),這種方式下,t2ex 引腳控制計數(shù)器方向。t2ex 引腳為邏輯“1”時,定時
19、器向上計數(shù),當(dāng)計數(shù)0ffffh 向上溢出時,置位tf2,同時把16 位計數(shù)寄存器rcap2h 和rcap2l 重裝載到th2 和tl2 中。 t2ex 引腳為邏輯“0”時,定時器2 向下計數(shù),當(dāng)th2 和tl2 中的數(shù)值等于rcap2h 和rcap2l中的值時,計數(shù)溢出,置位tf2,同時將0ffffh 數(shù)值重新裝入定時寄存器中。當(dāng)定時/計數(shù)器2 向上溢出或向下溢出時,置位exf2 位。波特率發(fā)生器當(dāng)t2con(表3)中的tclk 和rclk 置位時,定時/計數(shù)器2 作為波特率發(fā)生器使用。如果定時/計數(shù)器2 作為發(fā)送器或接收器,其發(fā)送和接收的波特率可以是不同的,定時器1 用于其它功能,如圖7 所
20、示。若rclk 和tclk 置位,則定時器2工作于波特率發(fā)生器方式。波特率發(fā)生器的方式與自動重裝載方式相仿,在此方式下,th2 翻轉(zhuǎn)使定時器2 的寄存器用rcap2h 和rcap2l 中的16位數(shù)值重新裝載,該數(shù)值由軟件設(shè)置。在方式1 和方式3 中,波特率由定時器2 的溢出速率根據(jù)下式確定:方式1和3的波特率=定時器的溢出率/16定時器既能工作于定時方式也能工作于計數(shù)方式,在大多數(shù)的應(yīng)用中,是工作在定時方式(c/t2=0)。 定時器2 作為波特率發(fā)生器時,與作為定時器的操作是不同的,通常作為定時器時,在每個機器周期(1/12 振蕩頻率)寄存器的值加1,而作為波特率發(fā)生器使用時,在每個狀態(tài)時間(
21、1/2 振蕩頻率)寄存器的值加1。波特率的計算公式如下:方式1和3的波特率=振蕩頻率/32*65536-(rcp2h,rcp2l)式中(rcap2h,rcap2l)是rcap2h 和rcap2l中的16 位無符號數(shù)。t2con 中的rclk 或tclk=1 時,波特率工作方式才有效。在波特率發(fā)生器工作方式中,th2 翻轉(zhuǎn)不能使tf2 置位,故而不產(chǎn)生中斷。但若exen2 置位,且t2ex 端產(chǎn)生由1 至0 的負(fù)跳變,則會使exf2 置位,此時并不能將(rcap2h,rcap2l)的內(nèi)容重新裝入th2 和tl2 中。所以,當(dāng)定時器2 作為波特率發(fā)生器使用時,t2ex 可作為附加的外部中斷源來使用
22、。 需要注意的是,當(dāng)定時器2 工作于波特率器時,作為定時器運行(tr2=1)時,并不能訪問th2 和tl2。因為此時每個狀態(tài)時間定時器都會加1,對其讀寫將得到一個不確定的數(shù)值。然而,對rcap2 則可讀而不可寫,因為寫入操作將是重新裝載,寫入操作可能令寫和/或重裝載出錯。在訪問定時器2或rcap2 寄存器之前,應(yīng)將定時器關(guān)閉(清除tr2)??删幊虝r鐘輸出定時器2 可通過編程從p1.0 輸出一個占空比為50%的時鐘信號,如圖8 所示。p1.0 引腳除了是一個標(biāo)準(zhǔn)的i/o 口外,還可以通過編程使其作為定時/計數(shù)器2 的外部時鐘輸入和輸出占空比50%的時鐘脈沖。當(dāng)時鐘振蕩頻率為16mhz 時,輸出時
23、鐘頻率范圍為61hz4mhz。當(dāng)設(shè)置定時/計數(shù)器2 為時鐘發(fā)生器時,c/t2(t2con .1)=0,t2oe (t2mod.1) =1,必須由tr2(t2con.2)啟動或停止定時器。時鐘輸出頻率取決于振蕩頻率和定時器2 捕獲寄存器(rcap2h,rcap2l)的重新裝載值,公式如下:輸出時鐘頻率=振蕩器頻率/4*65536-(rcp2h,rcp2l)在時鐘輸出方式下,定時器2 的翻轉(zhuǎn)不會產(chǎn)生中斷,這個特性與作為波特率發(fā)生器使用時相仿。定時器2 作為波特率發(fā)生器使用時,還可作為時鐘發(fā)生器使用,但需要注意的是波特率和時鐘輸出頻率不能分開確定,這是因為它們同使用rcap2l和rcap2l。uar
24、t at89c52的uart 工作方式與at89c51 工作方式相同。中斷at89c52 共有6 個中斷向量:兩個外中斷(int0 和int1),3 個定時器中斷(定時器0、1、2)和串行口中斷。這些中斷源可通過分別設(shè)置專用寄存器ie 的置位或清0 來控制每一個中斷的允許或禁止。ie 也有一個總禁止位ea,它能控制所有中斷的允許或禁止。注意ie.6 為保留位,在at89c51 中ie.5 也是保留位。程序員不應(yīng)將“1”寫入這些位,它們是將來at89 系列產(chǎn)品作為擴展用的。定時器2 的中斷是由t2con 中的tf2 和exf2 邏輯或產(chǎn)生的,當(dāng)轉(zhuǎn)向中斷服務(wù)程序時,這些標(biāo)志位不能被硬件清除,事實上
25、,服務(wù)程序需確定是tf2 或exf2 產(chǎn)生中斷,而由軟件清除中斷標(biāo)志位。定時器0 和定時器1 的標(biāo)志位tf0 和tf1 在定時器溢出那個機器周期的s5p2 狀態(tài)置位,而會在下一個機器周期才查詢到該中斷標(biāo)志。然而,定時器2 的標(biāo)志位tf2 在定時器溢出的那個機器周期的s2p2 狀態(tài)置位,并在同一個機器周期內(nèi)查詢到該標(biāo)志。時鐘振蕩器at89c52 中有一個用于構(gòu)成內(nèi)部振蕩器的高增益反相放大器,引腳xtal1 和xtal2 分別是該放大器的輸入端和輸出端。這個放大器與作為反饋元件的片外石英晶體或陶瓷諧振器一起構(gòu)成自激振蕩器。外接石英晶體(或陶瓷諧振器)及電容c1、c2 接在放大器的反饋回路中構(gòu)成并聯(lián)
26、振蕩電路。對外接電容c1、c2 雖然沒有十分嚴(yán)格的要求,但電容容量的大小會輕微影響振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易程序及溫度穩(wěn)定性,如果使用石英晶體,我們推薦電容使用30pf10pf,而如使用陶瓷諧振器建議選擇40pf10f。用戶也可以采用外部時鐘。采用外部時鐘的電路如圖10 右圖所示。這種情況下,外部時鐘脈沖接到xtal1 端,即內(nèi)部時鐘發(fā)生器的輸入端,xtal2 則懸空。由于外部時鐘信號是通過一個2 分頻觸發(fā)器后作為內(nèi)部時鐘信號的,所以對外部時鐘信號的占空比沒有特殊要求,但最小高電平持續(xù)時間和最大的低電平持續(xù)時間應(yīng)符合產(chǎn)品技術(shù)條件的要求。程序存儲器的加密at89c52 有3
27、個程序加密位,可對芯片上的3 個加密位lb1、lb2、lb3 進(jìn)行編程(p)或不編程(u)來得到。當(dāng)加密位lb1 被編程時,在復(fù)位期間,ea 端的邏輯電平被采樣并鎖存,如果單片機上電后一直沒有復(fù)位,則鎖存起的初始值是一個隨機數(shù),且這個隨機數(shù)會一直保存到真正復(fù)位為止。為使單片機能正常工作,被鎖存的ea 電平值必須與該引腳當(dāng)前的邏輯電平一致。此外,加密位只能通過整片擦除的方法清除。flash存儲器的編程at89c52單片機內(nèi)部有8k字節(jié)的flash perom,這個flash 存儲陣列出廠時已處于擦除狀態(tài)(即所有存儲單元的內(nèi)容均為ffh),用戶隨時可對其進(jìn)行編程。編程接口可接收高電壓(+12v)或
28、低電壓(vcc)的允許編程信號。低電壓編程模式適合于用戶在線編程系統(tǒng),而高電壓編程模式可與通用eprom 編程器兼容。at89c52 單片機中,有些屬于低電壓編程方式,而有些則是高電壓編程方式,用戶可從芯片上的型號和讀取芯片內(nèi)的簽名字節(jié)獲得該信息。at89c52 的程序存儲器陣列是采用字節(jié)寫入方式編程的,每次寫入一個字節(jié),要對整個芯片內(nèi)的perom 程序存儲器寫入一個非空字節(jié),必須使用片擦除的方式將整個存儲器的內(nèi)容清除。編程方法編程前,須設(shè)置好地址、數(shù)據(jù)及控制信號, at89c52 編程方法如下:1 在地址線上加上要編程單元的地址信號。2 在數(shù)據(jù)線上加上要寫入的數(shù)據(jù)字節(jié)。3 激活相應(yīng)的控制信號
29、。4 在高電壓編程方式時,將ea/vpp 端加上+12v 編程電壓。5 每對flash 存儲陣列寫入一個字節(jié)或每寫入一個程序加密位,加上一個ale/prog 編程脈沖。每個字節(jié)寫入周期是自身定時的,通常約為1.5ms。重復(fù)15 步驟,改變編程單元的地址和寫入的數(shù)據(jù),直到全部文件編程結(jié)束。數(shù)據(jù)查詢at89c52 單片機用data palling 表示一個寫周期結(jié)束為特征,在一個寫周期中,如需讀取最后寫入的一個字節(jié),則出的數(shù)據(jù)的最高位(p0.7)是原來寫入字節(jié)最高位的反碼。寫周期完成后,所輸出的數(shù)據(jù)是有效的數(shù)據(jù),即可進(jìn)入下一個字節(jié)的寫周期,寫周期開始后,data palling 可能隨時有效。re
30、ady/busy:字節(jié)編程的進(jìn)度可通過“rdy/bsy 輸出信號監(jiān)測,編程期間,ale 變?yōu)楦唠娖健癶”后,p3.4(rdy/bsy)端電平被拉低,表示正在編程狀態(tài)(忙狀態(tài))。編程完成后,p3.4 變?yōu)楦唠娖奖硎緶?zhǔn)備就緒狀態(tài)。程序校驗:如果加密位lb1、lb2 沒有進(jìn)行編程,則代碼數(shù)據(jù)可通過地址和數(shù)據(jù)線讀回原編寫的數(shù)據(jù),采用如圖12的電路。加密位不可直接校驗,加密位的校驗可通過對存儲器的校驗和寫入狀態(tài)來驗證。芯片擦除:利用控制信號的正確組合(表6)并保持ale/prog 引腳10ms 的低電平脈沖寬度即可將perom 陣列(4k字節(jié))和三個加密位整片擦除,代碼陣列在片擦除操作中將任何非空單元寫
31、入“1”,這步驟需再編程之前進(jìn)行。讀片內(nèi)簽名字節(jié):at89c52 單片機內(nèi)有3 個簽名字節(jié),地址為030h、031h 和032h。用于聲明該器件的廠商、型號和編程電壓。讀at89c52 簽名字節(jié)需將p3.6 和p3.7 置邏輯低電平,讀簽名字節(jié)的過程和單元030h、031h 及032h 的正常校驗相仿,只返回值意義如下:(030h)=1eh 聲明產(chǎn)品由atmel公司制造。(031h)=52h 聲明為at89c52 單片機。(032h)=ffh 聲明為12v 編程電壓。(032h)=05h 聲明為5v 編程電壓。二、基礎(chǔ)板結(jié)構(gòu)及性能單片機的基礎(chǔ)板主要包括:最小系統(tǒng)部分、數(shù)碼管及l(fā)ed燈部分、電源
32、部分、串口部分、溫度檢測部分、蜂鳴器部分、電機驅(qū)動部分、液晶屏幕顯示外接部分、自由按鍵部分、撥碼開關(guān)部分?;A(chǔ)板結(jié)構(gòu)如圖1所示: 圖11. 最小系統(tǒng)模塊:最小系統(tǒng)模塊是單片機的核心控制模塊,主要由晶振電路、復(fù)位電路和單片機接口電路構(gòu)成。最小系統(tǒng)電路圖如圖2所示: 圖21) 晶振電路:也稱為內(nèi)部方式時鐘電路,是采用石英晶體和電容組成的并聯(lián)諧振回路。晶體可以在1.2mhz到12mhz中選擇,現(xiàn)在選擇的晶體是11.0592mhz,電容選擇的是22pf。2) 復(fù)位電路:對單片機進(jìn)行復(fù)位3) 單片機接口電路:把單片機的各個端口對應(yīng)的引出來,方便在程序中定義好端口后直接引用。2. 電源模塊:基礎(chǔ)板中的電源
33、模塊有兩部分:總電源部分和光耦電源部分1)、總電源部分:電路中的led燈是指示電源接通,r18是起限流作用,c6是退耦電容,當(dāng)s1開關(guān)接通時,即可給整板供電。2)、光耦電源部分:相對于總電源只是少了電容c6,其他元件的作用也相同,這部分是給光電耦合器6n137供電的。 圖3a 圖3b3. 串口模塊:串行接口是實現(xiàn)單片機與pc機互相通信的橋梁,串口模塊由兩部分組成:9針d形串口連接器和max232電路。9針d形串口連接器就是用來傳遞信息的接口,max232電路是用來實現(xiàn)電平轉(zhuǎn)換的,圖4中的電容就是用于電源電壓變換,可提高抗干擾能力,所以一般都取相同的容量。 圖44. 數(shù)碼管模塊: 數(shù)碼管模塊包括
34、數(shù)碼管顯示和led燈顯示模塊,圖中的數(shù)碼管和led都是共陽極的發(fā)光二極管,其中的電阻是起限流作用,pnp型的三極管作為光電開關(guān),控制數(shù)碼管的位選。具體電路圖如圖5所示。 圖55. 溫度檢測模塊:溫度檢測模塊在基礎(chǔ)版上模塊是ds18b20,當(dāng)中的u3接口用來放置溫度傳感器,使用時,用跳線帽將j15和j16短接即可。6. 蜂鳴器模塊:p05口輸出的是單片機的控制信號,圖中的三極管q5相當(dāng)于一個電子開關(guān),用來控制蜂鳴器的供電通斷。當(dāng)p05口輸出高電平時q5飽和導(dǎo)通,蜂鳴器就獲得電工作發(fā)出鳴響,當(dāng)p05口輸出低電平時q5截止,蜂鳴器失電,停止工作。具體原理圖如圖6所示 圖67. 電機驅(qū)動模塊:我的課程
35、設(shè)計部分未有涉及到電機驅(qū)動模塊,對這部分的運用了解不是很多8. 模塊工作開關(guān)模塊:在單片機的基礎(chǔ)板上除了基本的模塊之外,還有很多拓展的模塊,為了方便的控制這些模塊的運用與否,設(shè)置一個模塊工作開關(guān),對各個模塊的工作情況進(jìn)行控制,實際上就是一個8位的撥碼開關(guān),在撥碼開關(guān)的左部都一一注明了每個開關(guān)的控制對象。其電路圖如圖7所示。 9. 液晶屏幕外接顯示模塊:液晶顯示屏幕的外接模塊,是給單片機的拓展板提供接口的模塊,在基礎(chǔ)板上是12864和1602部分。10. 獨立按鍵部分:獨立按鍵的作用就是給單片機發(fā)送一個低電平信號,如圖8所示的電路圖,當(dāng)按鍵松開時,用跳線帽短接j25和j26之后,便給單片機輸入高
36、電平,當(dāng)按鍵按下時,接通地線,便給單片機發(fā)送低電平信號。 圖8三、數(shù)碼管動態(tài)顯示程序 單片機系統(tǒng)中,往往需要多位顯示。動態(tài)顯示是一種最常見的多位顯示方法,應(yīng)用非常廣泛。1動態(tài)顯示概念 用數(shù)碼管顯示信息時,由于每個數(shù)碼管至少需要8 個i/o 口,如果需要多個數(shù)碼管,則需要太多i/o 口,而單片機的i/o 口是有限的。在實際應(yīng)用中,一般采用動態(tài)顯示的方式解決此問題。 所有數(shù)碼管的段選全部連接在一起,如何能顯示不同的內(nèi)容呢?動態(tài)顯示是多個數(shù)碼管,交替顯示,利用人的視覺暫留作用使人看到多個數(shù)碼管同時顯示。在編程時,需要輸出段選和位選信號,位選信號選中其中一個數(shù)碼管,然后輸出段碼,使該數(shù)碼管顯示所需要的
37、內(nèi)容,延時一段時間后,再選中另一個數(shù)碼管,輸出對應(yīng)的段碼,高速交替。 例如需要顯示數(shù)字“12”時,先輸出位選信號,選中第一個數(shù)碼管,輸出1 的段碼,延時一段時間后選中第二個數(shù)碼管,輸出2 的段碼。把上面的流程以一定的速度循環(huán)執(zhí)行就可以顯示出“12”,由于交替的速度非???,人眼看到的就是連續(xù)的“12”。在動態(tài)顯示程序中,各個位的延時時間長短是非常重要的,如果延時時間長,則會出現(xiàn)閃爍現(xiàn)象;如果延時時間太短,則會出現(xiàn)顯示暗且有重影。2.數(shù)碼管動態(tài)顯示原理 數(shù)碼管動態(tài)顯示的目的就是要在幾個數(shù)碼管上顯示不同的數(shù)字,但是我們知道,四位數(shù)碼管的8個段是連接在一起的,都接到74hc595的qa-qh輸出端。因此,同一個時刻里面,是不可能讓四位數(shù)碼管顯示不同的數(shù)字的,除非用4個74hc595來控制,或者是其他的連接方法,但是這樣字就會浪費巨大的io口資源,不太現(xiàn)實動態(tài)顯示其實也是建立在靜態(tài)顯示的基礎(chǔ)上,在多個數(shù)碼管,輪流顯示,在輪流顯示過程中,每位數(shù)碼管的點亮?xí)r間為13個毫秒,由于人的視覺暫留特性以及發(fā)光二極管的余輝效應(yīng),盡管實際上各位數(shù)碼管并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會有閃爍感,這就是數(shù)管碼動態(tài)顯示的原理。 3.程序設(shè)計下面,我們可以根據(jù)實驗原理來設(shè)計數(shù)碼管動態(tài)顯示程序。 在編程時,需要輸出段選和位
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年版無人機研發(fā)與制造合同
- 2025年度水庫環(huán)境保護(hù)與承包合同3篇
- 二零二五年度個人借款合同還款信息共享及保密協(xié)議3篇
- 2024信息安全培訓(xùn)課程開發(fā)與實施合同模板3篇
- 2024年裝修工程費用清單與合同3篇
- 二零二五年度2025版離婚協(xié)議書標(biāo)準(zhǔn)文本制作合同2篇
- 2025版整車運輸合同信用評價與獎勵機制3篇
- 2024版入股合同模板
- 2025年二手房買賣房產(chǎn)過戶全程服務(wù)合同2篇
- 2024年空調(diào)制冷配件供貨協(xié)議3篇
- 解析簡易呼吸器課件
- 國際商法(第四版)
- 《中國石化石油庫和罐區(qū)安全管理規(guī)定(2022年)757》
- 幼兒園課件:《獨自外出真危險》
- 倉儲類企業(yè)企業(yè)風(fēng)險分級管控和隱患排查治理雙體系(2022-2023手冊)
- 應(yīng)聘人員面試登記表
- 中職學(xué)校優(yōu)秀班主任事跡材料(完整版)
- 最全的官能團(tuán)化合物的紅外吸收峰特征
- 世界氣候類型(圖很清晰)
- 新版【處置卡匯編】重點崗位人員應(yīng)急處置卡(全套25頁)
- EE系列磁芯參數(shù)
評論
0/150
提交評論