AT89C51單片機畢業(yè)論文外文翻譯
《AT89C51單片機畢業(yè)論文外文翻譯》由會員分享,可在線閱讀,更多相關《AT89C51單片機畢業(yè)論文外文翻譯(34頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、附錄A 功能概述 AT89C51單片機是美國ATMEL公司生產(chǎn)的低電壓,高性能CMOS8位單片機,片內(nèi)含4k bytes的可反復擦寫的Flash只讀程序存儲器和128 bytes的隨機存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標準MCS—51指令系統(tǒng),片內(nèi)置通用8位中央處理器(CPU)和Flash存儲單元,功能強大AT89C51單片機可提供許多高性價比的應用場合,可靈活應用于各種控制領域。 主要性能參數(shù) 與MCS—51產(chǎn)品指令系統(tǒng)完全兼容 4k字節(jié)可重擦寫Flash閃速存儲器 1000次擦寫周期 全靜態(tài)操作:0Hz—24MHz 三級加密
2、程序存儲器 1288字節(jié)內(nèi)部RAM 32個可編程I/O口線 2個16位定時/計數(shù)器 6個中斷源 可編程串行UART通道 低功耗空閑和掉電模式 引腳功能說明 VCC:電源電壓 GND:地 P0口:P0口是一級8位漏極開路型雙向I/O口,也即地址/數(shù)據(jù)總線復用口。作為輸出口用時,每位能吸收電流的方式驅(qū)動8個TTL邏輯門電路,對端口寫“1” 可作為高阻搞輸入端用。 在訪問外部數(shù)據(jù)存儲器或程序存儲器時,這級口線分時轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線復用,在訪問期間激活內(nèi)部上拉電阻。 在Flash編程時,P0口接收指令字節(jié),而在程序校驗時,輸出指令字節(jié),校驗時,要求外妝上拉電阻。 P
3、1口:P1口是一個帶內(nèi)部上拉電阻的8位雙向I/O口,P1口的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口,作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流。Flash編程和程序校驗期間,P1接收低8位地址。 P2口:P2口是一個帶有內(nèi)部上拉電阻的8位雙向I/O口,P2的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口,作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流。 在訪問外部程序存
4、儲器或16位地址的外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX @DPTR指令)時,P2口送出高8位地址數(shù)據(jù)。在訪問8位地址的外部數(shù)據(jù)存儲器(如執(zhí)行MOVX @RI指令)時,P2口線上的內(nèi)容(也即特殊功能寄存器(SFR)區(qū)中R2寄存器的內(nèi)容),在整個訪問期間不改變。 Flash編程或校驗時,P2口亦接收高位地址和其它控制信號。 P3口:P3口是一組帶有內(nèi)部上拉電阻的8位雙向I/O口。P3口輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對P3口寫入“1”,時,它們被內(nèi)部上拉電阻拉高并可作為輸入端口。作輸入端時,被外部拉低的P3口將用上拉電阻輸出電流。 P3口除了作為一般的I/O口線外,更重要
5、的用途是它的第二功能。如表1所示。 表1 P3口的第二功能 端口引腳 第二功能 P3.0 RXD(串行輸入口) P3.1 TXD(串行輸出口) P3.2 (外中斷0) P3.3 (外中斷1) P3.4 T0(定時/計數(shù)器0) P3.5 T1(定時/計數(shù)器1) P3.6 (外部數(shù)據(jù)存儲器寫選能) P3.7 (外部數(shù)據(jù)存儲器讀選能) P3口還接收一些用于Flash閃速存儲器編程和程序校驗的控制信號 RST:復位輸入。當振蕩器工作時,RST引腳出現(xiàn)兩個機器周期以上高電平將使單片機復位。 ALE/PROG:當訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE(
6、地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。即使不訪問外部存儲器,ALE仍以時鐘振蕩頻率的1/16輸出固定的正脈沖信號,因此它可對輸出時鐘或用于定時目的。要注意的是:每當訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖。 PSEN:程序儲存允許輸出是外部程序存儲器的讀選通信號,當AT89C51由外部程序存儲器取指令(或數(shù)據(jù))時,每個機器周期兩次PSEN有效,即輸出兩個脈沖。在此期間,當訪問外部數(shù)據(jù)存儲器,這兩次有效的PSEN信號不出現(xiàn)。 EA/VPP:外部訪問允許。欲使CPU僅訪問外部程序存儲器(0000H—FFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復位時
7、內(nèi)部會鎖存EA端狀態(tài)。如EA端為高電平(接VCC端),CPU則執(zhí)行內(nèi)部程序存儲器中的指令。 Flash存儲器編程時,該引腳加上+12V的編程允許電源VPP,當然這必須是該器件是使用12V編程電壓VPP。 XTAL1:振蕩器反相放大器及內(nèi)部時鐘發(fā)生器的輸入端。 XTAL2:振蕩器反相放大器的輸出端 時鐘振蕩器 AT89C51中有一個用于構(gòu)成內(nèi)部振蕩器的高增益反相放大器,引腳XTAL1T XTAL2分別是該放大器的輸入端和輸出端。這個放大器與作為反饋元件的片外石英晶體或陶瓷諧振器一起構(gòu)成自激振蕩器,振蕩電路如圖1、圖2所示。 石英晶體時:C1,C2=30pF1
8、0 pF 陶瓷諧振器:C1,C2=40pF10pF 圖1 內(nèi)部振蕩電路 圖2 外部振蕩電路 外接石英晶體(或陶瓷諧振器)及電容C1、C2接在放大器的反饋回路構(gòu)成并聯(lián)振蕩電路。對外接電容C1、C2雖然沒有十分嚴格的要求,但電容容量的大小會輕微影響振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易程度及溫度穩(wěn)定性,如果使用石英晶體,我們推薦電容使用30pF10pF,而如使用陶瓷諧振器建議選擇40pF10pF。 用戶也可采用外部時鐘.采用外部時鐘的電路如圖5所示。這種情況下,外部時鐘脈沖接到XTAL1端,即內(nèi)部時鐘發(fā)生器的輸入端,XTAL2則懸空。 由于外部時
9、鐘信號是通過一個2分頻觸發(fā)器后作為內(nèi)部時鐘信號的,所以對外部時鐘信號的占空比沒有特殊的要求,但最小高電平持續(xù)時間和最大的低電平持續(xù)時間應符合產(chǎn)品技術(shù)條件的要求。 空閑節(jié)電模式 AT89C51有兩種可用軟件編程的省電模式,它們是空閑模式和掉電模式。這兩種方式是控制專用寄存器PCON(即電源控制寄存器)中的PD(PCON.0)位來實現(xiàn)的。PD是掉電模式,當PD=1時,激活掉電工作模式,單片機進入掉電工作狀態(tài)。IDL是空閑等待方式,當IDL=1,激活空閑工作模式,單片機進入睡眠狀態(tài)。如需同時進入兩種工作模式,即PD和IDL同時為1,則先激活掉電模式。 在空閑工作模式狀態(tài),CPU保持睡眠狀態(tài)而所
10、有片內(nèi)的外設仍保持激活狀態(tài),這種方式由軟件產(chǎn)生。此時,片內(nèi)RAM和所有特殊功能寄存器的內(nèi)容保持不變??臻e模式可由任何允許的中斷請求或硬件復位終止。 終止空閑工作模式的方法有兩種,其一是任何一條被允許中斷的事件被激活,IDL(PCON.0)被硬件清除,即刻終止空閑工作模式。程序會首先響應中斷,進入中斷服務程序,執(zhí)行完中斷服務程序并緊隨RETI(中斷返回)指令后,下一條要執(zhí)行的指令就是使單片機進入空閑模式那條指令后面的一條指令。其二是通過硬件復位也可將空閑工作模式終止。需要注意的是:當帥硬件復位來終止空閑工作模式時,CPU通常是從激活空閑模式那條指令的下一條指令開始繼續(xù)執(zhí)行程序的,要完成內(nèi)部復位
11、操作,硬件復位脈沖要保持兩個機器周期(24個時鐘周期)有效,在這種情況下,內(nèi)部禁止CPU訪問片內(nèi)RAM,而允許訪問其它端口。為了避免可能對端口產(chǎn)生意外寫入,激活空閑模式的那條指令后條指令不應是一條對端口或外部存儲器的寫入指令。 掉電模式 在掉電模式下,振蕩器停止工作,進入掉電模式的指令是最后一條被執(zhí)行的指令,片內(nèi)RAM和特殊功能寄存器的內(nèi)容在終止掉電模式前被凍結(jié)。退出掉電模式的唯一方法是硬件復位,復位后將重新定義全部特殊功能寄存器但不改變RAM中的內(nèi)容,在VCC恢復到正常工作電平前,復位應無效,且必須保持一定時間以使振蕩器重啟動并穩(wěn)定工作。空閑和掉電模式外部引腳狀態(tài)如表2所示。 表2 空
12、閑和掉電模式外部引腳狀態(tài) 模式 程序存儲器 ALE P0 P1 P2 P3 空閑模式 內(nèi)部 1 1 數(shù)據(jù) 數(shù)據(jù) 數(shù)據(jù) 數(shù)據(jù) 空閑模式 外部 1 1 浮空 數(shù)據(jù) 地址 數(shù)據(jù) 掉電模式 內(nèi)部 0 0 數(shù)據(jù) 數(shù)據(jù) 數(shù)據(jù) 數(shù)據(jù) 掉電模式 處部 0 0 浮空 數(shù)據(jù) 數(shù)據(jù) 數(shù)據(jù) 程序存儲器的加密 AT89C51可使用對芯片上的3個加密位LB1、LB2、LB3進行編程(P)或不編程(U)來得到如表3所示的功能。 表3 加密位保護功能表 程序加密位 保護類型 LB1 LB2 LB3 1 U U U
13、沒有程序保護功能 2 P U U 禁止從外部程序存儲器中執(zhí)行MOVC指令讀取內(nèi)部程序存儲器的內(nèi)容 3 P P U 除上表功能外,還禁止程序校驗 4 P P P 除以上功能外,同時禁止外部執(zhí)行 注:表中的U—表示未編程,P—表示編程 當加密位LB1被編程時,在復位期間,EA端的邏輯電平采樣并鎖存,如果單片機上電后一直沒有復位,則鎖存起的初始值是一個隨機數(shù),且這個隨機數(shù)會一直保存到真正復位為止。為使單元片機能正常工作,被鎖存的EA電平值必須與該引腳當前的邏輯電平一致。此外,加密位只能通過整片擦除的方法清除。 Flash 閃速存儲器的編程 AT89C51單
14、片機內(nèi)部有4k字節(jié)的Flash PEROM,這個Flash存儲陣列出廠時已處于擦除狀態(tài)(即所有存儲單元的內(nèi)容均為FFH),用戶隨時可對其進行編程。編程接口可接收高電壓(+12V)或低電壓(VCC)的允許編程信號。低電壓編程模式適合于用戶在線編程系統(tǒng),而高電壓編程模式可與通用EPROM編程器兼容。 AT89C51單片機中,有些屬于低電壓編程方式,而有些則是高電壓編程方式,用戶可從芯片上的型號和讀取芯片內(nèi)的簽名字節(jié)獲得該信息,如表4所示。 表4 簽名字節(jié)獲得信息 VPP=12V VPP=5V 芯片頂面標識 AT89C51 xxxx yyww AT89C51 xxxx-5
15、 yyww 簽名字節(jié) (030H)=1EH (031H)=51H (032H)=FFH (030H)=1EH (031H)=51H (032H)=05H AT89C51的程序存儲器陣列是采用字節(jié)寫入方式編程的,每次寫入一個字節(jié),要對整個芯片內(nèi)的PEROM程序存儲器寫入一個非空字節(jié),必須使用片擦除的方式將整個存儲器的內(nèi)容清除。 編程方法 編程前,須按圖3和表5所示設置好地址、數(shù)據(jù)及控制信號,編程單元的地址加在P1口和P2口的P2.0—P2.3(11位地址范圍為0000H—0FFFH),數(shù)據(jù)從P0口輸入,引腳P2.6、P2.7和P3.6、P3.7的電平設置如表6,PSEN為低
16、電平,RST保持高電平,EA/VPP引腳是編程電源的輸入端,按要求加上編程電壓,LAE/PROG引腳輸入編程脈沖(負脈沖)。編程時,可采用4—20MHz的時鐘振蕩器,AT89C51編程方法如下: 1,在地址線上加上要編程單元的地址信號。 2,在數(shù)據(jù)線上加上要寫入的數(shù)據(jù)字節(jié)。 3,激活相應的控制信號。 4,在高電壓編程方式時,將EA/VPP端加上+12V編程電壓。 5,每對Flash存儲陣列寫入一個字節(jié)或每寫入一個程序加密位,加上一個ALE/PROG編程脈沖。改變編程單元的地址和寫入的數(shù)據(jù),重復1—5步驟,直到全部文件編程結(jié)束。 圖3 編程電路 表5 Flash存儲器編程真值表
17、 方式 RST PSEN ALE/PROG EA/VPP P2.6 P2.7 P3.6 P3.7 寫代碼數(shù)據(jù) H L H/12V L H H H 讀代碼數(shù)據(jù) H L H H L L H H 寫加密位 Bit-1 H L H/12V H H H H Bit-2 H L H/12V H H L L Bit-3 H L H/12V H L H L 片擦除 H L H/12V H L L L 讀簽名字節(jié) H L H H L L L L 注:片擦除
18、操作時要求PROG脈沖寬度為10ms 數(shù)據(jù)查詢 AT89C51單片機用數(shù)據(jù)查詢方式來檢測一個寫周期是否結(jié)束,在一個寫周期中,如需讀取最后寫入的那個字節(jié),則讀出的數(shù)據(jù)的最高位(P0.7)是原來寫入字節(jié)最高位的反碼。寫周期完成后,有效的數(shù)據(jù)就會出現(xiàn)在所有輸出端上,此時,可進入下一個字節(jié)的寫周期,寫周期開始后,可在任意時刻進行數(shù)據(jù)查詢。 Ready/busy:字節(jié)編程的進度可通過“RDY/BSY”輸出信號監(jiān)測,編程期間,ALE變?yōu)楦唠娖健癏”后P3.4(RDY/BSY)端電平被拉低,表示正在編程狀態(tài)(忙狀態(tài))。編程完成后,P3.4變?yōu)楦唠娖奖硎緶蕚渚途w狀態(tài)。 程序校驗 如果加密位LB
19、1、LB2沒有進行編程,則代碼數(shù)據(jù)可通過地址和數(shù)據(jù)線讀回原編寫的數(shù)據(jù),采用下圖的電路,程序存儲器的地址由P1和P2的P.0—P2.3輸入,數(shù)據(jù)由P0口讀出,P2.6、P2.7和P3.6、P3.7的控制信號見表6,PSEN保持低電平,ALE、EA和RST保持高電平。校驗時,P0口須接上10k左右的上拉電阻。 加密位不可直接校驗,加密位的校驗可通過對存儲器的校驗和寫入狀態(tài)來驗證。圖4為校驗電路。 圖4 校驗電路 芯片擦除 利用控制信號的正確組合,并保持ALE/PROG引腳10ms的低電平脈沖寬度即可將PEROM陣列(4k字節(jié))和三個加密位整片擦除,代碼陣列在片擦除操作中將任何非空單元寫
20、入“1”,這步驟需再編程之前進行。 讀片內(nèi)簽名字節(jié) AT89C51單片機內(nèi)有3個簽名字節(jié),地址為030H、031H和032H。用于聲明該器件的廠商、型號和編程電壓。讀簽名字節(jié)的過程和單元030H、031H和032H的正常校驗相仿,只需將P3.6和P3.7保持低電平,返回值意義如下: (030H) = 1EH 聲明產(chǎn)品由ATMEL公司制造 (031H) = 51H 聲明產(chǎn)品為AT89C51單片機 (032H) = FFH 聲明為12V編程電壓 (032H) = 05H 聲明為5V編程電壓 編程接口 采用控制信號的正確組合可對Flash閃速存儲陣列中的每一代碼字節(jié)進行定寫入和存儲
21、器的整片擦除,寫操作周期是自身定時的,初始化后它將自動定時到操作完成。 FLASH EPROM 存儲器 概述 89C51X2/52X2/54X2/58X210000次擦除和編程之后仍能可靠保存FLASH 存儲器的內(nèi)容。存儲單元的設計使得擦除和編程結(jié)構(gòu)最優(yōu)化。此外,先進的溝道氧化工藝和低內(nèi)部電場的結(jié)合使擦除和編程操作更加可靠。 特性 帶片擦除的FLASH EPROM 內(nèi)部程序存儲器 內(nèi)部程序存儲器禁止時(EA=0)外部程序存儲器最多可達64K 可編程加密位 每字節(jié)最少10000 次擦除/編程周期 數(shù)據(jù)最少可保存10 年 從一般銷售商處可獲得編程支持 振蕩器特性 XTAL1
22、 和XTAL2 為輸入和輸出,可分別作為一個反相放大器的輸入和輸出。此管腳可配置為使用內(nèi)部振蕩器。要使用外部時鐘源驅(qū)動器件時,XTAL2 可以不連接而由XTAL1 驅(qū)動。外部時鐘信號無占空比的要求,因為時鐘通過觸發(fā)器二分頻輸入到內(nèi)部時鐘電路。但高低電平的最長和最短時間必須符合手冊的規(guī)定。 復位 在振蕩器工作時,將RST 腳保持至少兩個機器周期高電平(12 時鐘模式為24 個振蕩器周期6 時鐘模式為12 振蕩器周期)可實現(xiàn)復位。為了保證上電復位的可靠,RST 保持高電平的時間至少為振蕩器啟動時間(通常為幾個毫秒)再加上兩個機器周期。復位后,振蕩器以12 時鐘模式運行(當已通過并行編程器設置為
23、6 時鐘模式時除外)。 低功耗模式 時鐘停止模式 靜態(tài)設計使時鐘頻率可以降至0MHz(停止)。當振蕩器停振時,RAM 和SFR 的值保持不變。該模式允許逐步應用并可將時鐘頻率降至任意值以實現(xiàn)系統(tǒng)功耗的降低。如要實現(xiàn)最低功耗則建議使用掉電模式。 空閑模式 空閑模式CPU 進入睡眠狀態(tài),但片內(nèi)的外圍電路仍然保持工作狀態(tài)。正常操作模式的最后一條指令執(zhí)行進入空閑模式。空閑模式下,CPU 內(nèi)容,片內(nèi)RAM和所有SFR 保持原來的值。任何被使能的中斷(此時,程序從中斷服務程序處恢復并繼續(xù)執(zhí)行)或硬件復位(與上電復位使用相同的方式啟動處理器)均可終止空閑模式。 掉電模式 為了進一步降低功耗,通
24、過軟件可實現(xiàn)掉電模式。該模式中,振蕩器停振并且在最后一條指令執(zhí)行進入掉電模式。降到2.0V 時,片內(nèi)RAM和SFR保持原值,在退出掉電模式之前Vcc 必須升至規(guī)定的最低操作電壓。 硬件復位或外部中斷均可結(jié)束掉電模式,硬件復位使所有的SFR重新設置,但不改變片內(nèi)RAM 的值。外部中斷允許SFR和片內(nèi)RAM都保持原值。WUPD (AUXR1.3 從掉電喚醒)使能或禁止通過外部中斷喚醒掉電 WUPD=0 禁止 WUPD=1 使能 要正確退出掉電模式,在Vcc 恢復到正常操作電壓范圍之后,復位或外部中斷開始執(zhí)行并且要保持足夠長的時間( 通常小于10ms )以使振蕩器重新啟動并穩(wěn)定下來。 使
25、用外部中斷退出掉電模式時,INT0 和INT1 必須使能且配置為電平觸發(fā)。將管腳電平拉低使振蕩器重新啟動,退出掉電模式后將管腳恢復為高電平。一旦中斷被響應,RETI 之后所執(zhí)行的是進入掉電模式指令的后一條指令。 設計中的注意事項 當空閑模式被硬件復位所中止時,器件在內(nèi)部復位之前從停止處恢復程序正常運行,時間為2 個機器周期。這段時間內(nèi)片內(nèi)硬件禁止對內(nèi)部RAM的訪問,但對I/O 口的訪問未被禁止。當Idle模式被復位所中止時,為了消除可能產(chǎn)生的誤寫操作,應用Idle模式指令后的指令不應執(zhí)行寫I/O口或?qū)懲獠看鎯ζ鞑僮鳌? ONCETM模式 ONCE(在線仿真)模式實現(xiàn)了對系統(tǒng)的測試和調(diào)試而
26、不需要將器件從電路中移去。進入ONCE 模式的條件: 1) 當器件復位且PSEN為高電平時,將ALE 置低電平; 2) 在RST撤除時,ALE 保持低電平。 當器件處于ONCE模式時,P0口處于懸浮狀態(tài),其它I/O口、ALE和PSEN為弱上拉。振蕩電路保持工作狀態(tài),器件處于該模式時,可用仿真器或測試CPU 驅(qū)動電路。執(zhí)行正常復位時恢復正常操作。 可編程時鐘輸出 可從P1.0編程輸出50%占空比的時鐘信號。P1.0除了作為常規(guī)I/O口外,還有兩個可選功能它可編程為: 1 ) 用于定時/計數(shù)器2的外部時鐘輸入; 2 ) 使用16MHz操作頻率時,12時
27、鐘模式下輸出50%占空比的61Hz~4MHz 時鐘信號(6 時鐘模式時為122Hz~8MHz)。 要將定時/計數(shù)器2 配置為時鐘發(fā)生器,C/T2(T2CON.1)必須清零,而T2MOD中的T20E 位必須置位。要啟動定時器2還必須將TR2(T2CON.2)置位。 時鐘輸出頻率由振蕩器頻率和定時器2 捕獲寄存器的重新裝入值確定,公式如下: 此處:(RCAP2H,RCAP2L)=RCAP2H和RCAP2L的內(nèi)容作為一個16 位無符號整數(shù) 在時鐘輸出模式中,定時器2的翻轉(zhuǎn)將不會產(chǎn)生中斷。這和它作為波特率發(fā)生器時相似。定時器2可同時作為波特率發(fā)生器和時鐘發(fā)生器。但需要注意的是,波特率和時鐘
28、輸出頻率相同。 定時器2 的操作 定時器2是一個16位定時/計數(shù)器。通過設置特殊功能寄存器T2CON中的C/T2 位,可將其作為定時器或計數(shù)器。定時器2有三種操作模式:捕獲、自動重新裝載(遞增或遞減計數(shù))和波特率發(fā)生器,這三種模式由T2CON中的位進行選擇。 捕獲模式 在捕獲模式中,通過T2CON中的EXEN2設置兩個選項。如果EXEN20,定時器2作為一個16位定時器或計數(shù)器(由T2CON中C/T2位選擇),溢出時置位TF2(定時器2溢出標志位)。該位可用于產(chǎn)生中斷(通過使能IE 寄存器中的定時器2中斷使能位)。如果EXEN2=1,與以上描述相同,但增加了一個特性,即外部輸入T2EX
29、由1變0時將定時器2中TL2和TH2的當前值各自捕獲到RCAP2L和RCAP2H。另外,T2EX的負跳變使T2CON中的EXF2置位,EXF2也象TF2一樣能夠產(chǎn)生中斷(其向量與定時器2溢出中斷地址相同,定時器2中斷服務程序通過查詢TF2和EXF2來確定引起中斷的事件)。在該模式中,TL2和TH2無重新裝載值。甚至當T2EX產(chǎn)生捕獲事件時,計數(shù)器仍以T2EX的負跳變或振蕩頻率的1/12(12時鐘模式)或1/6(6時鐘模式)計數(shù)。 自動重裝模式遞增/遞減計數(shù)器 16位自動重裝模式中,定時器2可通過C/T2配置為定時器/計數(shù)器,編程控制遞增/遞減計數(shù)。計數(shù)的方向是由DCEN(遞減計數(shù)使能位)確
30、定的,DCEN位于T2MOD寄存器中。當DCEN0時,定時器2默認為向上計數(shù);當DCEN1時,定時器2可通過T2EX確定遞增或遞減計數(shù)。 在該模式中通過設置EXEN2位進行選擇。如果EXEN2=0,定時器2遞增計數(shù)到0FFFFH并在溢出后將TF2置位,然后將RCAP2L和RCAP2H中的16位值作為重新裝載值裝入定時器2。RCAP2L和RCAP2H的值是通過軟件預設的。 如果EXEN2=1,(16位重新裝載可通過溢出或T2EX從1→0的負跳變實現(xiàn)。此負跳變同時將EXF2置位。如果定時器2中斷被使能,則當TF2或EXF2置1時產(chǎn)生中斷。 此模式允許T2EX控制計數(shù)的方向。當T2EX置1時,
31、定時器2遞增計數(shù),計數(shù)到0FFFFH后溢出并置位器TF2。還將產(chǎn)生中斷(如果中斷被使能),定時器2的溢出將使RCAP2L和RCAP2H中的16位值作為重新裝載值放入TL2和TH2。 當T2EX置零時,將使定時器2遞減計數(shù)。當TL2和TH2計數(shù)到等于RCAP2L和RCAP2H時,定時器產(chǎn)生溢出。定時器2溢出置位TF2,并將0FFFFH重新裝入TL2和TH2。 當定時器2遞增/遞減產(chǎn)生溢出時,外部標志位EXF2翻轉(zhuǎn)。如果需要,可將EXF2位為第17位。在此模式中EXF2標志不會產(chǎn)生中斷TF2還將產(chǎn)生中斷如果中斷。 波特率發(fā)生器模式 寄存器T2CON的位TCLK和(或)RCLK允許從定時器1
32、或定時器2獲得串行口發(fā)送和接收的波特率當TCLK=0時,定時器1作為串行口發(fā)送波特率發(fā)生器;當TCLK=1時,定時器2作為串行口發(fā)送波特率發(fā)生器。RCLK對串行口接收波特率有同樣的作用。通過這兩位,串行口能得到不同的接收和發(fā)送波特率——一個通過定時器1產(chǎn)生,另一個通過定時器2產(chǎn)生。 與自動重裝模式相似,當TH2溢出時,波特率發(fā)生器模式使定時器2寄存器重新裝載來自寄存器RCAP2H和RCAP2L的16位的值,寄存器RCAP2H和RCAP2LR的值由軟件預置。 當工作于模式1和模式3時,波特率由下面給出的定時器2 溢出率所決定: 定時器可配置成“定時”或“計數(shù)”方式,在許多應用上定時器被
33、設置在“定時”方式(C/T2*=0)。當定時器2作為定時器時,它的操作不同于波特率發(fā)生器。 通常,定時器2作為定時器,它會在每個機器周期遞增(1/6或1/12振蕩頻率)。當定時器2作為波特率發(fā)生器時,它會在每個狀態(tài)周期遞增(例如1/2 振蕩頻率)。這樣,波特率公式如下: 此處:(RCAP2H,RCAP2L)=RCAP2H和RCAP2L的內(nèi)容為16位無符號整數(shù)。 定時器2作為波特率發(fā)生器,僅當寄存器T2CON中的RCLK和(或)TCLK=1時,定時器2作為波特率發(fā)生器才有效。注意TH2溢出并不置位TF2,也不產(chǎn)生中斷。這樣,當定時器2作為波特率發(fā)生器時,定時器2中斷不必被禁止。如果EX
34、EN2(T2外部使能標志)被置位,在T2EX中由1到0的轉(zhuǎn)換會置位EXF2(T2外部標志位),但并不導致(TH2、TL2)重裝載(RCAP2H,RCAP2L)。因此,當定時器2用作波特率發(fā)生器時,如果需要,T2EX可用作附加的外部中斷。 當計時器工作在波特率發(fā)生器模式下,則不要對TH2和TL2進行讀寫,每隔一個狀態(tài)時間(0sc/2)或由T2進入的異步信號,定時器2將加1;在此情況下對TH2和TH1進行讀寫是不準確的??蓪CAP2寄存器進行讀,但不要進行寫,否則將導致自動重裝錯誤。當對定時器2或寄存器RCAP進行訪問時,應關閉定時器(清零TR2)。 波特率公式匯總 定時器2工作在波特率發(fā)
35、生器模式,外部時鐘信號由T2腳進入波特率為: 如果定時器2采用內(nèi)部時鐘信號,則波特率為: 此處:fOSC =振蕩器頻率 自動重裝值可由下式得到: 增強型UART 操作 除了標準操作模式外UART可實現(xiàn)自動地址識別和通過查詢丟失的停止位進行幀錯誤檢測,UART還支持多機通信。 當使用幀錯誤檢測時,丟失的位將會置位SCON中的FE位。FE與SM0共用SCON.7,通過PCON.6(SMOD0)選擇。如果SMOD0置位,SCON.7作為FE, SMOD0為0時,SCON.7作為SM0。作為FE時SCON.7只能由軟件清零。 自動地址識別 自動地址識別是這樣一種特性,它使U
36、ART可以通過硬件比較從串行數(shù)據(jù)流中識別出特定的地址。這樣就不必花費大量軟件資源去檢查每一個從串口輸入的串行地址。將SCON內(nèi)SM2置位可使能該特性。在9位UART模式(模式2和模式3)下,如果接收的字節(jié)中包含“給定”地址或“廣播”地址,接收中斷標志(RI)將自動置位。在9位模式下要求第9個信息位為1以表明該信息內(nèi)容是地址而非數(shù)據(jù)。 使用自動地址識別特性時,主機通過調(diào)用特定從機地址選擇與一個(或多個)從機通信。使用廣播地址時,所有從機都被聯(lián)系。在此使用了兩個特殊功能寄存器:SADDR表示從機地址,SADEN表示地址屏蔽。SADEN用于定義SADDR內(nèi)哪幾位需使用而哪幾位不予考慮。SADEN可
37、以與SADDR邏輯“與”得出給定的地址,用于對每一從機進行尋址示例如下: 從機0 SADDR=1100 0000 SADEN=1111 1101 特定地址=1100 00X0 從機1 SADDR=1100 0000 SADEN=1111 1110 特定地址=1100 000X 上例中SADDR相同,而SADEN不同以區(qū)分兩個從機。從機0要求0位為0而忽略1位。從機1則要求1位為0而忽略0位。由于從機1的1位必須為0,從機0只能取獨有的地址1100 0010 以區(qū)別。由于從機0的0位必須為1,從機1只能取獨有的地址1100 0001
38、以區(qū)別。而取地址1100 0000 時兩從機都可被尋址。 下例所示為選擇從機1、2而不選從機0: 從機0 SADDR=1100 0000 SADEN=1111 1001 特定地址=1100 0XX0 從機1 SADDR=1110 0000 SADEN=1111 1010 特定地址=1100 0X0X 從機2 SADDR=1110 0000 SADEN=1111 1100 特定地址=1110 00XX 上述三個從地址只有低3位不同。從機0要求位0=0,它可通過1110 0110單獨尋址;從機1要求位1=
39、0,可通過1110 0101單獨尋址;從機2要求位2為0,可通過1110 0011單獨尋址。由于必須使地址字節(jié)的第2位為“1”以屏蔽從機2,因此使用地址1110 0100可選通從機0和1同時屏蔽從機2。將SADDR和SADEN相“或”后產(chǎn)生每個從機的“廣播”地址,結(jié)果為零的位視為無關位。大多數(shù)情況下,無關位被認為是1,這樣“廣播”地址為FFH,復位時SADDR和SADEN均為00H,此時產(chǎn)生了一個所有位都是無 關位的給定地址,也即“廣播”地址,這樣有效地禁止了自動尋址模式,并允許微控制器使用不帶有上述特性的標準UART驅(qū)動器。
40、 附錄B AT89C51 Description The AT89C51 is a low-power, high-performance CMOS 8-bit microcomputer with 4K bytes of Flash Programmable and Erasable Read Only Memory (PEROM). The device is manufactured using Atmel’s high density nonvolatile memory technology and is compatible with the indust
41、ry standard MCS-51? instruction set and pinout. The on-chip Flash allows the program memory to be reprogrammed in-system or by a conventional nonvolatile memory programmer. By combining a versatile 8-bit CPU with Flash on a monolithic chip, the Atmel AT89C51 is a powerful microcomputer which provide
42、s a highly flexible and cost effective solution to many embedded control applications. Features Compatible with MCS-51? Products 4K Bytes of In-System Reprogrammable Flash Memory Endurance: 1,000 Write/Erase Cycles Fully Static Operation: 0 Hz to 24 MHz Three-Level Program Memory Lock 12
43、8 x 8-Bit Internal RAM 32 Programmable I/O Lines Two 16-Bit Timer/Counters Six Interrupt Sources Programmable Serial Channel Low Power Idle and Power Down Modes Pin Description VCC Supply voltage. GND Ground. Port 0 Port 0 is an 8-bit open drain bidirectional I/O port. As an output
44、port each pin can sink eight TTL inputs. When 1s are written to port 0 pins, the pins can be used as highimpedance inputs. Port 0 may also be configured to be the multiplexed loworder address/data bus during accesses to external program and data memory. In this mode P0 has internal pullups. Port 0
45、 also receives the code bytes during Flash programming, and outputs the code bytes during program verification.External pullups are required during program verification. Port 1 Port 1 is an 8-bit bidirectional I/O port with internal pullups. The Port 1 output buffers can sink/source four TTL inpu
46、ts. When 1s are written to Port 1 pins they are pulled high by the internal pullups and can be used as inputs. As inputs,Port 1 pins that are externally being pulled low will source current (IIL) because of the internal pullups. Port 1 also receives the low-order address bytes during Flash program
47、ming and verification. Port 2 Port 2 is an 8-bit bidirectional I/O port with internal pullups. The Port 2 output buffers can sink/source four TTL inputs.When 1s are written to Port 2 pins they are pulled high by the internal pullups and can be used as inputs. As inputs, Port 2 pins that are exter
48、nally being pulled low will source current (IIL) because of the internal pullups. Port 2 emits the high-order address byte during fetches from external program memory and during accesses to external data memory that use 16-bit addresses (MOVX @DPTR). In this application it uses strong internal pull
49、-ups when emitting 1s. During accesses to external data memory that use 8-bit addresses (MOVX @ RI), Port 2 emits the contents of the P2 Special Function Register. Port 2 also receives the high-order address bits and some control signals during Flash programming and verification. Port 3 Port 3 is
50、 an 8-bit bidirectional I/O port with internal pullups.The Port 3 output buffers can sink/source four TTL inputs. When 1s are written to Port 3 pins they are pulled high by the internal pullups and can be used as inputs. As inputs, Port 3 pins that are externally being pulled low will source current
51、 (IIL) because of the pullups. Port 3 also serves the functions of various special features of the AT89C51 as listed below: Port Pin Alternate Functions P3.0 RXD (serial input port) P3.1 TXD (serial output port) P3.2 INT0 (external interrupt 0) P3.3 INT1 (external interrupt 1) P3.4 T0 (timer
52、0 external input) P3.5 T1 (timer 1 external input) P3.6 WR (external data memory write strobe) P3.7 RD (external data memory read strobe) Port 3 also receives some control signals for Flash programming and verification. RST Reset input. A high on this pin for two machine cycles while the oscil
53、lator is running resets the device. ALE/PROG Address Latch Enable output pulse for latching the low byte of the address during accesses to external memory. This pin is also the program pulse input (PROG) during Flash programming. In normal operation ALE is emitted at a constant rate of 1/6 the os
54、cillator frequency, and may be used for external timing or clocking purposes. Note, however, that one ALE pulse is skipped during each access to external Data Memory.If desired, ALE operation can be disabled by setting bit 0 of SFR location 8EH. With the bit set, ALE is active only during a MOVX or
55、 MOVC instruction. Otherwise, the pin is weakly pulled high. Setting the ALE-disable bit has no effect if the microcontroller is in external execution mode. PSEN Program Store Enable is the read strobe to external program memory. When the AT89C51 is executing code from external program memory, PS
56、EN is activated twice each machine cycle, except that two PSEN activations are skipped during each access to external data memory. EA/VPP External Access Enable. EA must be strapped to GND in order to enable the device to fetch code from external program memory locations starting at 0000H up to FF
57、FFH.Note, however, that if lock bit 1 is programmed, EA will be internally latched on reset. EA should be strapped to VCC for internal program executions. This pin also receives the 12-volt programming enable voltage (VPP) during Flash programming, for parts that require12-volt VPP. XTAL1 Input
58、to the inverting oscillator amplifier and input to the internal clock operating circuit. XTAL2 Output from the inverting oscillator amplifier. Oscillator Characteristics XTAL1 and XTAL2 are the input and output, respectively,of an inverting amplifier which can be configured for use as an on-chip
59、 oscillator, as shown in Figure 1. Either a quartz crystal or ceramic resonator may be used. To drive the device from an external clock source, XTAL2 should be left unconnected while XTAL1 is driven as shown in Figure 2. There are no requirements on the duty cycle of the external clock signal, sin
60、ce the input to the internal clocking circuitry is through a divide-by-two flip-flop, but minimum and maximum voltage high and low time specifications must be observed. Idle Mode In idle mode, the CPU puts itself to sleep while all the on-chip peripherals remain active. The mode is invoked by soft
61、ware. The content of the on-chip RAM and all the special functions registers remain unchanged during this mode. The idle mode can be terminated by any enabled interrupt or by a hardware reset. It should be noted that when idle is terminated by a hard ware reset, the device normally resumes program
62、execution, from where it left off, up to two machine cycles before the internal reset algorithm takes control. On-chip hardware inhibits access to internal RAM in this event, but access to the port pins is not inhibited. To eliminate the possibility of an unexpected write to a port pin when Idle is
63、terminated by reset, the instruction following the one that invokes Idle should not be one that writes to a port pin or to external memory. Figure 1. Oscillator Connections Figure 2. External Clock Drive Configuration Status of External Pins During Idle and Power Down Mode
64、s Mode Program Memory ALE PSEN PORT0 PORT1 PORT2 PORT3 Power Down Mode In the power down mode the oscillator is stopped, and the instruction that invokes power down is the last instruction executed. The on-chip RAM and Special Function Registers retain their values until the power dow
65、n mode is terminated. The only exit from power down is a hardware reset. Reset redefines the SFRs but does not change the on-chip RAM. The reset should not be activated before VCC is restored to its normal operating level and must be held active long enough to allow the oscillator to restart and s
66、tabilize. Lock Bit Protection Modes Program Lock Bits Protection Type LB1 LB2 LB3 Programming the Flash The AT89C51 is normally shipped with the on-chip Flash memory array in the erased state (that is, contents = FFH) and ready to be programmed. The programming interface accepts either a high-voltage (12-volt) or a low-voltage (VCC) program enable signal. The low voltage programming mode provides a convenient way to program the AT89C51 inside the user’s system, while the high-voltage pr
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識競賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識測試題庫及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習題含答案
- 2煤礦安全監(jiān)測工種技術(shù)比武題庫含解析
- 1 礦山應急救援安全知識競賽試題
- 1 礦井泵工考試練習題含答案
- 2煤礦爆破工考試復習題含答案
- 1 各種煤礦安全考試試題含答案