c51單片機控制紅外通信接口電路圖的設計21_第1頁
c51單片機控制紅外通信接口電路圖的設計21_第2頁
c51單片機控制紅外通信接口電路圖的設計21_第3頁
c51單片機控制紅外通信接口電路圖的設計21_第4頁
c51單片機控制紅外通信接口電路圖的設計21_第5頁
已閱讀5頁,還剩16頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

c51單片機控制紅外通信接口電路圖的設計

原理圖的求證:

注:黑色字體為我的個人闡述,其他顏色字體為單片機手冊節選文章。

如圖(原圖)

*井

*

4計

圖4紅外通信接口電路

電路圖中電阻R6-R13為多余的,其作用如下文:(這幾個電阻是需要的!!起限流和保

護單片機,LED的作用,不能少,一般選擇220-510歐姆,流過LED電流在10-20亳安為好)

2.4發光二極管顯示部分設計

有8個發光二極管與隼片機的PI口相連,二極管的正極與電源正極相連,負極串聯一個

電阻與P1口相連,給P1口送低電平就得到不同的顯示狀態。

因為,電阻R6-R13沒有參與光的發射和接收所以我認為它是多余的。去掉后節省出來

P1.0-P1.7的引腳,用作他用。(這不對的,如果你LED接到了P1口,P1就不能做其它用了,

如果作其它用的話,LED指示就讓你感覺莫名其妙了)

2.3數碼顯示部分

在系統中,選用一個雙七段數碼管來顯示發送和接收的數據。數碼管采用DPY雙位七段

共陽數碼管。高位的共陽極是10腳,低位的共陽極是5腳。由單片機的PO口控制數碼管

的陰極,P2.6,P2.7口分別控制數碼管的高位和低位,當P2口輸出數位“0”時,相應的三極

管導通。根據PO口輸出不同數位,數碼管顯示不同的數字,當P2口揄出數位“I”時,二極

管截止,數碼管不顯示。

我不需要數碼顯示部分,而跟他相關的電子元件沒有參與紅外線的發射和接受,所以我認為

直接去掉就行。(這個有會更好些,因為可以顯示的東西會比LED顯示效果更好。前提是

你得寫單片機程序,要是我在LED與它之間做取舍的話,我將保留它,舍掉LED,不過編寫

程序會復雜些)

這樣一來圖中保留了,主要的紅外線發射部分的電路圖,沒有因為刪減部分而影

響它的正常功能,卻剩出了16個引腳。

紅外線發射部分的運作原理如下:

2.1發射部分設計

紅外發送電路包括脈沖振蕩器、三極管和紅外發射管等部

分。其中脈沖振蕩器有NE555定時器.電阻和電容組成,用

于產生38kHz的脈沖序列作為載波信號,紅外發射管HG選

用Vishay公司生產的TSAL6238,用來向外發射950nm的

紅外光束。其發送的過程為:串行數據有單片機的串行輸出

端TXD送出并驅動三極管,數位使三極管導通.通過

有NE555構成的多諧振蕩電路調制成38kHz的載波信號.

并利用紅外發射管以光脈沖的形式向外發送.數位“1”使三

極管截止,紅外發射管不發射紅外光。NE555構成的多諧振

蕩電路的振蕩周期公式為T=O.693(R1+R2)C,其中.R1為

充電電阻,R2為放電電阻,C為充電電容。

以上文字再次說明了在光的發射的過程中沒有用到發光

二極管顯示部分設計和數碼顯示部分,去掉后從新編寫一下

程序就行了。(LED,和數碼管是給你顯示東西的,即輸出

設備,把兩個都去掉不用修改程序都是可以的,但是它工作

的時候你不知道它在干什么了)

注:關于顯示器的安排,所有產生的任何數據都要通過

JF24C(2.4G無線雙向數據傳輸模塊)模塊傳送到另一個指

令發射器上(上面有顯示器)。(你保留一個就可以了,比

如保留LED,這樣你在調試程序的時候會感覺到方便點)

我想要的電路圖

修改后的紅外發射圖:

LW

L

L

r

L

TXDL

r

XIL

X2」

RD

圖4紅外通總接口電路

添加一個Jr24c模塊,它與51機的最簡電路如圖:

GND89C51

PIN10

BRCLK140

PIN9pl.OVCC

PKT-FLAG239

PIN8pl.lPO.O

FEF0-FLAG338

PIN7pl.2P0.1

SPI-SS437

PIN6pl.3P0.2

SPI-M0SI536

PIN5pl.4P0.3

SPI-CLK635

PIN4pl.5P0.4

RESET-n734

PIN3pl.6P0.5

SPI-MIS0833

PIN2pl.7P0.6

+3.3V932

PIN1RESET_P0,7

1031

P3.0EA/VPP

11P3.1ALE(PRO^)30

JF24CO_29_

13:P3.2PSENu28

P3.3P2.7

14。27

P3.4P2.6

1526

P3.5P2.5

25

P3.6P2.4

17。24

P3.7P2.3

1823

XTALOP2.2

1922

XTAL1P2.1

2021

VSSP2.0

說明:JF24c可以和各種單片機配套,對于硬件上沒有SPI的單片機可

以用10口或者串口模擬SPL與51系列單片機配套時在P0口加一個

10k的上啦電阻,其余10口可以和JF24c直接相連。單片機可以用5v

供電,JF24c用3.3v供電。JF24c工作電壓不得超過3.5v,否則會燒壞

器件。

添加后如圖:那個上拉電阻我不會加。(添加上拉電阻非常簡單,就是

電阻一端接到3.3V,另一端接到P0□上就為上拉了,每一腳一個)

#06

圖4紅外海氣接口電路

我還想添加個數據采集的電路CH375資料和原理圖如下:

8、應用

8.1.并口方式(下圖)

這是CH375與普通的MCS-51單片機的連接電路。CH375的TXD引腳通過1KQ左右的下拉電阻

地或者直接接地,從而使CH375工作于并口方式。

USB總線包括一對5V電源線和一對數據信號線,通常,+5V電源線是紅色.接地線是黑色.

D+

信號線是綠色,D-信號線是白色。USB插座P1可以直接連接USB設備,必要時可以在提供

給USB設

備的+5V電源線上串接具有限流作用的快速電子開關,USB電源電壓必須是5V。

電容C3用于CH375內部電源節點退耦,C3是容量為4700pF到0.02uF的獨石或者高頻瓷

片電

容。電容C4和C5用于外部電源退耦,C4是容量為0.1uF的獨石或者高頻瓷片電容。晶體X1、

電容

C1和C2用于CH375的時鐘振蕩電路。USB-H0ST主機方式要求時鐘頻率比較準確,晶體X1

的頻率是

12MHz±0.4%o,C1和C2是容量為15pF?30pF的獨石或高頻瓷片電容。

為使CH375可靠復位,電源電壓從0V上升到5V的上升時間應該少于100mS。如果電源上電過

較慢并且電源斷電后不能及時放電,那么CH375將不能可靠復位。可以在RSTI引腳與VCC

之間跨接

一個容量為0.1UF或者0.47uF的電容C11延長復位時間。

如果CH375的電源電壓為3.3V,那么應該將V3引腳與VCC引腳短接,共同輸入3.3V電壓,

且電容C3可以省掉。

在設計印刷餞路板PCB時需要注意:退耦電容C3和C4盡量靠近CH375的相連引腳;使D+

D-信號線貼近平行布線,盡量在兩側提供地線或者覆銅,減少來自外界的信號干擾;盡量縮

短XI和

X0引腳相關信號線的長度,為了減少高頻時鐘對外界的干擾,可以在相關元器件周邊環繞

地線或者

覆銅。

CH375芯片具有通用的被動并行接口,可以直接連接多種單片機、DSPsMCU等。在普

通的MCS-51

系列單片機的典型應用電路中,CH375芯片可以通過8位被動并行接口的D7?DO、-RD、-WR、

-CS、

A0直接掛接到單片機U2的系統總線上。

如果MCS-51單片機沒有用U3鎖存A7?A0地址,那么可以用U2的P20等引腳驅動CH375的地

線A0,并且單片機程序中的端口地址需要相應修改。U4用于簡單的地址譯碼,產生所需的

片選信號,

圖中CH375芯片的片選地址范圍為BOOOH-BFFFH,而實際上CH375只需要占用兩個地址:地

址BXX1H

用于寫命令,地址BXXOH用于讀寫數據。

8.2.串口方式(下圖)

如果CH375芯片的TXD引腳懸空或者沒有通過下拉電阻接地,那么CH375工作于串口方式。

串口方式下,CH375只需要與單片機/DSP/MCU連接3個信號線,TXD引腳、RXD引腳以及INT#

引腳,

其它引腳都可以懸空。除了連接線較少之外,其它外圍電路與并□方式基本相同。

另外,如果需要動態修改CH375串口的通訊波特率,那么建議由單片機的I/O引腳控制

CH375

的RSTI引腳,便于在必要時復位CH375以恢復到默認的通訊波特率。由于RSTI引腳內置有下

拉電阻,

所以由MCS51等單片機的準雙向I/O引腳驅動時可能需要另加一個阻值約幾K。的上拉電

阻。

由于INT#引腳和TXD引腳在CH375復位期間只能提供微弱的高電平輸出電流,在進行較遠

距離

的連接時,為了避免INT#或者TXD在CH375復位期間受到干擾而導致單片機誤操作,可以

在INT#引

腳或者TXD引腳上加阻值為2KQ?5KQ的上拉電阻,以維持較穩定的高電平。在CH375芯

片復位完

成后,INT#引腳和TXD引腳將能夠提供4mA的高電平輸出電流或者4mA的低電平吸入電

流。

C9U6CH375

0luC8Y

23D015

VCCD1

AA1II

D217

V3D3

4T8

DTT

D5

~2Q

GNDD6

GNDD7H

2T

D-11UD-

reUD+A38_

RD#―

RSTIUR*3

RSTCS#27~

RST#INT#1--INT

XOTXD5TXD

RXD6RXU

TOXIACT#24

C6二二X2豐C7

20p12MHz20p

8.3.單片機讀寫U盤文件(US.存儲設備的文件級接口)

文件級API應用層接口

FAT32/16/12文件系統層

SCSI/UFI/RBC命令層一一以扇區讀寫閃存或者硬盤

BuIk-OnIy傳輸協議層-BuIk-OnIy傳輸協議層

USB基本傳輸:控制/批量--USB基本傳輸:控制/批量

USB

USB-HOST硬件接口芯片--USB-DEVICE硬件接口芯片

一般情況下,單片機或嵌入式系統處理USB存儲設備的文件系統需要實現上圖左邊的4個

層次,

右邊是USB存儲設備的內部結構層次。由于CH375不僅是一個通用的USB-HOST硬件接口芯

片,還內

置了相關的固件程序,包含了上圖左邊的3個層次(標為灰色部分),所以實際的單片機程

序只需要處理FAT文件系統層,并且即使這一層也可以由CH375的U盤文件級子程序庫實

現。

如果不需要處理文件系統,也就是不處理上圖左邊的最頂層,那么CH375直接提供了數據

塊的讀寫接口,以512字節或者2K字節等的物理扇區為基本讀寫單位,從而將USB存儲設

備簡化為一種外部數據存儲器,單片機可以自由讀寫USB存儲設備中的數據.也可以自由

定義其數據結構。

由于計算機將USB存儲設備組織為文件系統,為了方便單片機通過USB移動存儲設備與計

算機之

間交換數據,單片機也可以將USB存儲設備組織為文件系統,也就是處理上圖左邊的最頂

層。

CH375以C語言子程序庫提供了USB存儲設備的文件級接口,這些應用層接DAPI包含了

常用的

文件級操作,可以移植并嵌入到各種常用的單片機程序中。

CH375的U盤文件級子程序庫具有以下特性:支持常用的FAT12.FAT16和FAT32文件系統,

盤容量可達1OOGB以上,支持多級子目錄,支持8.3格式的大寫字母和中文文件名,可以支

持小寫字

母或者長文件名,支持文件打開、新建、刪除、讀寫以及搜索等。

CH375的文件級子程序庫需要至少600字節的隨機存儲器RAM作為緩沖區。以普通的MCS-51

片機為例,文件系統的全部子程序有4KB至IJ8KB代碼,并且需要大約80字節的內部RAM和

至少512

字節的外部RAM作為緩沖區。有關U盤文件級子程序庫的詳細信息請參考CH375評估板的說

明。

文件級子程序庫的所有API在調用后都有操作狀態返回,但不一定有應答數據。有關API參

數的

說明請參考CH375HF?.H,主要子程序如下:

初始化CH375芯片:CH375lnit

查詢U盤是否準備好:CH375DiskReady

查詢U盤容量:CH375DiskSize

查詢U盤信息(總容量及剩余容量):CH375DiskQuery

打開文件:CH375FiIeOpen

枚舉或者搜索文件:CH375FileEnumer

關閉文件:CH375FiIeClose

新建文件:CH375FiIeCreate

刪除文件:CH375FiIeErase

以扇區為單位從文件讀數據:CH375FileReadX

以扇區為單位向文件寫數據:CH375FileWriteX

以扇區為單位移動文件指針:CH375FileLocate

查詢文件屬性(屬性/日期/時間/長度):CH375FileQuery

設置文件屬性(屬性/日期/時間/長度以字節為單位從文件讀數據:CH375ByteRead

以字節為單位向文件寫數據:CH375ByteWrite

以字節為單位移動文件指針:CH375ByteLocate

前兩張圖好像是并口,后一張圖好像是串口,文章我沒看懂太專業了。

問:“紅外”的修改成立嗎(大體上,如果成立細節上還需要些什么"O

這個你沒有修改啊,我看也可以了!

問:如何能將CH375電路添加在我的“紅外”電路圖上。(我想用最

簡電路CH375的串口的電路圖直接接上行嗎?有跟簡單的方法嗎,要

是51單片機帶個usp接口就好了,那樣我差個讀卡器就行了。有嗎?

USB這塊比教難的,目前我也很少研究,有的單品就支持USB的,不過

我記不到是什么型號了。你要做USB,得找資料多研究才行!你必須

考慮怎么訪問USB,U盤里面的資料等。

幫忙推薦幾款支持USB燒寫程序的單片機?

懸賞分:5-解決時間:20089110:00

正常工作電壓為3或5V。

問題補充:

非常感謝你的回答,還有點問題想再請教一下:

配合FT232BM的單片機是要那種帶串行ISP擦寫接口的嗎?

有沒有直接用可以通過USB燒寫程序的微控制器?用C或匯編編程的。

提問者:genuine1219?三級

最佳答案

直接支持USB接口,并且可以用USB接口寫入程序的單片機并不多。

C8051F320片上集成了USB接口,但不能通過USB接口下載程序。

可以試著用STC系列的51單片機配合一條USB轉串口線,或者加個FT232BM芯片,就

可以通過USB口往單片機里寫程序了。

回答補充:

問:合FT232BM的單片機是要那種帶串行ISP擦寫接口的嗎?

答:的。

問:沒有直接用可以通過USB燒寫程序的微控制器?用C或匯編編程的。

答:ARM在運行Bootloader之后可以通過USB寫程序;支持ISP的單片機可以自己編寫

一個BootLoader,再編寫一套上位機程序,也可以通過USB口寫程序。目前為止,我還沒

找到可以直接通過USB接11卜載程序的單片機。

AT89S52中文資料

學習資料2009-04-0316:16:10閱讀449評論0字號:大中小

AT89S52

主要性能

.與MCS-51單片機產品兼容

.8K字節在系統可編程Flash存儲器

.1000次擦寫周期

.全靜態操作:0Hz?33Hz

.三級加密程序存儲器

.32個可編程I/。口線

.三個16位定時器/計數器

.八個中斷源

.全雙工UART串行通道

.低功耗空閑和掉電模式

.掉電后中斷可喚醒

.看門狗定時器

.雙數據指針

.掉電標識符

功能特性描述

AT89s52是一種低功耗、高怛能CMOS8位微控制器,具有

8.在系統可編程Flas.存儲器。使用Atme.公司高密度非

易失性存儲器技術制造,與工業80c5.產品指令和引腳完

全兼容。片上Flash允許程序存儲器在系統可編程,亦適于

常規編程器.在單芯片上,擁有靈巧的.位CP.和在系統

可編程Flash,使得AT89S52為眾多抿入式控制應用系統提

供高靈活、超有效的解決方案。

AT89S52具有以下標準功能.8k字節Flash,256字節RAM,

3.位I/.口線,看門狗定時器,.個數據指針,三個1.位

定時器/計數器,一個6向量2級中斷結構,全雙工串行口,

片內晶振及時鐘電路.另外.AT8gs5.可降至OH格態邏

輯操作,支持2種軟件可選擇節電模式。空閑模式下,CPU

停止工作,允許RAM、定時器/計數器、串口、中斷繼續工

作。掉電保護方式3RAM內容被保存,振蕩器被凍結,

單片機一切工作停止,直到下一個中斷或硬件復位為止。

R

.位微控制器

8.字節在系統可編程

Flash

AT89S52

Rev.1919-07/01

AT89S52

引腳結構

AT89S52

方框圖

引腳功能描述

AT89S52

VC..電源

GND.地

P.D:P0□是一個8位漏極天路的雙向I/O口。作為輸出口,每位能驅動8個TTL邏

輯電平。對P0端口寫“1”時,引腳用作高阻抗輸入。

當訪問外部程序和數據存儲器時,P0口也被作為低8位地址/數據且用。在這種模式下,

P0具有內部上拉電阻。

在flash編程時,P0□也用來接收指令字節:在程序校驗時,輸出指令字節。程序校驗

時,需要外部上拉電阻。

P.口:P.□是?個具有內部上拉電阻的.位雙向I/.口,p.輸出緩沖器能驅動.個

TT.邏輯電平。對P.端口寫“1”時,內部上拉電阻把端口拉高,比時可以作為輸入

□使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(IIL)o

此外,P1.0和P1.2分別作定時器/計數器2的外部計數輸入(P1.0/T2)和時器/計數器2

的觸發輸入(P1.1/T2EX),具體如下表所示。

在flash編程和校驗時,P1口接收低8位地址字節。

引腳.第二功能

P1..T2(定時器/計數器T2的外部計數輸入),時鐘輸出

P1..T2EX(定時器/計數器T2的捕捉/重載觸發信號和方向控制)

P1..M0SI(在系統編程用)

P1..MIS0(在系統編程用)

P1..SCK(在系統編程用)

P.口:P.口是一個具有內部上拉電阻的.位雙向I/.口,P.輸出緩沖器能驅動.個

TT.邏輯電平。對P.端口寫“1”時,內部上拉電阻把端口拉高,比時可以作為輸入

口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(HL)。

在訪問外部程序存儲器或用16位地址讀取外部數據存儲器(例如執行MOV.@DPTR)

時.。口送出高八位地址.在這種應用中,P.D使用很強的內部上拉發送1-在使用

8位地址(如MOV.@RI)訪問外部數據存儲器時,P2口輸出P2鎖存器的內容。

在flash編程和校驗時,P2□也接收高8位地址字節和一些控制巖號。

P.口:P.口是一個具有內部上拉電阻的.位雙向I/.口,p.輸出緩沖器能驅動.個

TT.邏輯電平。對P.端口寫“1”時,內部上拉電阻把端口拉高,比時可以作為輸入

口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(IIL)O

P3口亦作為AT89s52特殊功能(第二功能)使用,如下表所示.

在flash編程和校驗時,P3口也接收一些控制信號。

AT89S52

引腳.第二功能

P3..RXD(串行輸入)

P3..TXD(串行輸出)

P3..INT0(外部中斷0)

P3..INT0(外部中斷0)

P3..T0(定時器0外部輸入)

P3..T1(定時器1外部輸入)

P3..WR(外部數據存儲器寫選通)

P3..RD(外部數據存儲器寫選通)

RST.復位輸入。晶振工作時,RST腳持續.個機器周期高電平將使單片機復位。看門

狗計時完成后,RS.腳輸出9?個品振周期的高電平。特殊寄存器AUXR(地址8EH)上

的DISRTO位可以使此功能無效。DISRTO默認狀態下,復位高電平有效。

ALE/PROG:地址鎖存控制信號(ALE)是訪問外部程序存儲器1寸,鎖存低.位地址

的輸出脈沖。在flash編程時,此引腳(PROG)也用作編程輸入脈沖。

在一般情況下,AL.以晶振六分之一的固定頻率輸出脈沖,可用來作為外部定時器或

時鐘使用。然而,特別強調,在每次訪問外部數據存儲器時,ALE脈沖耨會跳過。

如果需要,通過將地址為8EH的SFR的第0位.“1”,ALE操作將無效。這一位.“1”,

AL.僅在執行MOV.或MOVC指令時有效。否則,AL.將被微弱拉高。這個AL.使

能標志位(地址為8EH的SFR的第0位)的設置對微控制器處于外部執行模式下無效。

PSEN:外部程序存儲器選通信號(PSEN)是外部程序存儲器選道信號。

當AT89s52從外部程序存儲港執行外部代碼時,PSEN在每個機器周期被激活兩次,而

在訪問外部數據存儲器時,PSEN將不被激活。

EA/VPP:訪問外部程序存儲器控制信號。為使能從0000.到FFFFH的外部程序存儲器

讀取指令,EA必須接GND。

為了執行內部程序指令,EA及該接VCC。

在flash編程期間,EA也接收程伏VPP電壓。

XTAL1:振蕩器反相放大器和內部時鐘發生電路的輸入端。

XTAL2:振蕩器反和放大得的輸出端。

AT89S52

表.AT89s5.特殊寄存器映象及復位值

特殊功能寄存器

特殊功能寄存器(SFR)的地址空間映象如表1所示。

并不是所有的地址都被定義了。片上沒有定義的地址是不能用的,讀這些地址,一般將

得到一個隨機數據:寫入的數據將會無效.

用戶不應該給這些未定義的地址寫入數據“1”。由于這些寄存器在將來可能被賦予新的

功能,復位后,這些位都為“0”。

定時器.寄存器:寄存器T2co.和T2Mo.包含定時器.的控制位和狀態位(如表2

和表3所示),寄存器對RCAP2H和RCAP2L是定時錯2的捕捉/自動重載寄存器。

中斷寄存器:各中斷允許位在IE寄存器中,六個中斷源的兩個優先級也可在IE中設置。

AT89S52

表.T2coN:定時器/計數器2控制寄存器

T2co.地址為0C8.曳位值:OOO.OOOOB

位可尋址

TF.EXF.RLCL.TCL.EXEN.TR2

.......0

符.功能

TF.定時器.溢出標志位。必須軟件消“0"。RCLK=.或TCLK=.時,TF2

不用置位。

EXF2

定時器.外部標志位。EXEN2=.時,T2E.上的負跳變而出現捕捉或重

載時,EXF.會被硬件直位。定時器.打開,EXF2=.時,將升導CPU

執行定時器.中斷程序。EXF.必須如見清“0”。在向下/向上技術模式

(DCEN=1)下EXF2不能引起中斷。

RCLK

串行口接收數據時鐘標志位。若RCLK=1,串行口將使用定時器.溢出

脈沖作為串行口工作模式.和.的串口接收時鐘;RCLK=0.將使用定

時器1計數溢出作為串口接收時鐘。

TCLK

串行□發送數據時鐘標志位。若TCLK=1,串行口將使用定時器.溢出

脈沖作為串行□工作模式?和.的串口發送時鐘;TCLK=0.將使用定

時器1計數溢出作為串口發送時鐘。

EXEN2

定時器2外部允許標志位。當EXEN2=1時,如果定時器2沒有用作串行

時鐘,T2EX(P1.1)的負跳變見引起定時器.捕捉和重載。若EXEN2

=0,定時器2將視T2EX端的信號無效

TR.開始/停止控制定時器2。-R2=1,定時器2開始工作

定時器.定時/計數選擇標志位。=0,定時.=1,外部事

件計數(下降沿觸發)

捕捉/重載選擇標志位。當EX三N2=1時.=1,T2EX出現負脈沖,

會引起捕捉操作;當定時器2溢出或EXEN2=1時T2EX出現負跳變,都

會出現自動重載操作。=.將引起T2E?的負脈沖。當RCKL=1

或TCKL=1時,此標志位無效,定時器2溢出時,強制做自動重載操作。

雙數據指針寄存器:為了更有利于訪問內部和外部數據存儲器,系統提供了兩路16位

數據指針寄存器:位于SFRn82H?83H的DPO和位于84H?85。特殊寄存器AUXR1

中DPS=.選擇DPO:DPS=.選擇DP1。用戶應該在訪問數據指針寄存器前先初始化

AT89S52

DPS至合理的值。

表3.AUXR:輔助寄存器

AUX.地址:8E.復位值:XXXOOXXOB

不可位尋址

...WDIDL.DISRT...DISALE

.......0

.預留擴展用

DISAL.ALE使能標志位

DISAL.操作方式

.AL.以1/6晶振頻率輸出信號

.AL.只有在執行MOV.或MOVC指令時激活

DISRT.更位輸出標志位

DISRTO

.看門狗(WDT)定時結束,Rese.輸出高電平

.Rese.只有輸入

WDIDL.空閑模式下WDT使能標志位

WDIDLE

.空閑模式下,WDT繼續計數

.空閑模式下,WDT停止計數

掉電標志位:掉電標志位(POF)位于特殊寄存器PCON的第四位(PCON.4)。上電期

間POF置“1”。POF可以軟件控制使用與否,但不受復位影響。

表3.AUXR1:輔助寄存器1

AUXRJ也址:A2.復位值:XXXXXXXOB

不可位尋址

.......DPS

.……0

.預留擴展用

DP.數據指針選擇位

DPS

.選擇DPTR寄存器DP0L和DP0H

.選擇DPTR寄存器DP1L和DP1H

AT89S52

存儲器結構

MCS-51器件有單獨的程序存儲器和數據存儲器。外部程序存儲常和數據存儲器都可以

64K尋址。

程序存儲器:如果EA引腳接地,程序讀取只從外部存儲器開始。

對于89s52,如果E.接VCC,程序讀寫先從內部存儲器(地址為0000H?1FFFH)開

始,接著從外部尋址,尋址地址為:2000H?FFFFH。

數據存儲器:AT89s5.有25.字節片內數據存儲器。高12.字節與特殊功能寄存器重

疊。也就是說高128字節與特殊功能寄存器有相同的地址,而物理上是分開的。

當一條指令訪問高于7F.的地址時,尋址方式決定CP.訪問高12.字節RA.還是特

殊功能寄存器空間。直接尋址方式訪問特殊功能寄存器(SFR)。

例如,下面的直接尋址指令訪問OAOH(P2存儲單元

MO.OAO..#data

使用間接尋址方式訪問高12.字節RAM.例如,下面的間接尋址方式中,R.內容為

OAOH,訪問的是地址OAOH的寄存器,而不是P2口(它的地址也是OAOH

MO.@R..#data

堆棧操作也是簡介尋址方式。因此,高128字節數據RAM也可用于堆棧空間。

看門狗定時器

WDT是一?種需要軟件控制的復位方式。WD.由13位計數器和特殊功能寄存器中的看

門狗定時器復位存儲器(WDTRST)構成。WD.在默認情況下無法工作:為了激活

WDT,戶用必須往WDTAS.寄存淵(地址:0A6II)中依次寫入01匚.和0匚111。當

WDT激活后,晶振工作,WDT在每個機器周期都會增加。WDT計時周期依賴于外部

時鐘頻率。除了復位(硬件復位或WDT溢出復位),沒有辦法停止WDT工作。當WDT

溢出,它將驅動RSR引腳一個高個電平輸出。

WDT的使用

為了激活WDT,用戶必須向WDTRST寄存器(地址為0A6H的SFR)依次寫入0E1H

和0E1H°當WDT激活后,用戶必須向WDTRST寫入01EH和0E1H喂狗來避免WDT

溢出。當計數達到8191(1FFFH)時,1.位計數器將會溢出,這將會復位器件。晶振正

常工作、WDT激活后,每一個機器周期WD.都會增加。為了復位WDT,用戶必須向

WDTRS.寫入O1E.和OE1H(WDTRS.是只讀奇存器)。WD.計數器不能讀或寫。

當WD?計數曙溢出時,將給ES.引腳產生一個復位脈沖輸出,這個復位脈沖持續96

個晶振周期(TOSC),M'PTOSC=1/FOSC.為了很好地使用WDT,應該在一定時間

內周期性寫入那部分代碼,以避免WDT復位。

掉電和空閑方式下的WDT

在掉電模式下,晶振停止工作,這意味這WDT也停止了工作。在這種方式下,用戶不

必喂狗。有兩種方式可以離開掉電模式:硬件復位或通過一個激活的外部中斷。通過硬

件受位退出掉電模式后,用戶就應該給WD.喂狗,就如同通常A—89s5.受位一樣。

通過中斷退出掉電模式的情形有很大的不同。中斷應持續拉低很長一段時間,使得晶振

AT89S52

1.

穩定。當中斷拉高后,執行中斷服務程序。為了防止WDT在中斷保持低電平的時候復

位器件,WD.直到中斷拉低后才開始工作。這就意味著WD.應該在中斷服務程序中

復位。

為了確保在離開掉電模式最初的幾個狀態WDT不被溢出,最好在進入掉電模式前就受

位WDT。

在進入待機模式前,特殊寄存器AUXR的WDIDLE位用來決定WDT是否繼續計數。

默認狀態下,在待機模式下,WDIDLE=0,WDT繼續計數。為「防止WDT在待機模

式下復位AT89s52,用戶應該建立一個定時器,定時離開待機模式,喂狗,再重新進

入待機模式。

UART

在AT89s5.中,UAR.的操作與AT89c5.和AT89c5.一樣。為了獲得更深入的關于

UAR.的信息,可參考ATME.網站(http:〃)。從這個主頁,選擇

“Products”,然后選擇“8051-Architec.Flas.Microcontroller”,再選擇“Product

Overvieww即可。

定時器.和定時器1

在AT89s5沖.定時器.和定時器.的操作與AT89c5.和AT89c5.一樣.為了獲得

更深入的關于UAR.的信息,可參考ATME.網站()。從這個主

頁,選擇“Products”,然后選擇“8051-Architec.Flas.Microconiroller”,再選擇“Product

OverviewM即nJ。

定時器2

定時器2是一個16位定時/計數器,它既可以做定時器,又可以做事件計數器。其工作

方式由特殊寄存器T2CON中的C/T2位選擇(如表2所示)。定時器2萬三種工作模式:

捕捉方式、自動重載(向下或向上計數)和波特率發生器。如表.所示,工作模式由

T2coN中的相關位選擇。定時器.有.個8位寄存器:TH2和TL2。在定時工作方式

中,每個機器周期,TL.寄存牌都會加1。由于?個機器周期由1?個晶振周期構成,

因此,計數頻率就是晶振頻率的1/12。

表.定時器2工作模式

RCLK+TCL.CP/RL.TR.MODE

...16位自動.重載

...16位捕捉

…波特率發生器

...(不用)

在計數工作方式下,寄存器在相關外部輸入角工發生.至.的下降沿時增加1。在這

AT89S52

1.

種方式下,每個機器周期的S5P2期間采樣外部輸入。一個機器周期采樣到高電平,而

下?個周期采樣到低電平,計數器將加1。在檢測到跳變的這個周期的S3P.期間,新

的計數值出現在寄存器中。因為識別1-0的跳變需要2個機器周期(24個晶振周期),

所以,最大的計數頻率不高于晶振頻率的1/24。為了確保給定的電平在改變前采樣到

一次,電平應該至少在一個完整的機器周期內保持不變。

捕捉方式

在捕捉模式下,通過T2coN中的EXEN2來選擇兩種方式。如果EXEN2=0,定時器2

時一個16位定時/計數器,溢出時,對T2co.的TF2標志置位,TF2引起中斷。如果

EXEN2=1,定時器2做相同的操作。除上述功能外,外部輸入T2EX引腳(P1.1)1至

0的卜跳變也會使得TH2和TL2中的值分別捕捉到RCAP2H和RCAP2L中。除此之外,

T2E.的跳變會引起T2co.中的EXF.置位。像TF.一樣,T2E.也會引起中斷。捕

捉模式如圖5所示。

圖.定時器的捕捉模式

自動重載

當定時器.工作于1.位自動重載模式,可對其編程實現向上計數或向下計數。這一功

能可以通過特殊寄存器T2M0D(見我4)中的DCEN(向下計數允許位)來實現。通

過復位,DCE.被置為0,因此,定時器.默認為向上計數。DCE.設置后,定時器2

就可以取決于T2EX向上、向下計數。

如圖.所示,DCEN=.時,定時器.自動計數。通過T2co.中的EXEN.位可以選擇

兩種方式。如果EXEN2=0,定時器2計數,計到0FFFFH后置位TF2溢出標志。計數

溢出也使得定時器寄存器重新從RCAP2.和RCAP2.中加載1.位值。定時器工作于

捕捉模式,RCAP2H和RCAP2I.的值可以由軟件預設。如果EXEN2=1,計數溢出或在

外部T2EX(P1.1)引腳上的1到。的下跳變都會觸發16位重栽。這個跳變也置位EXF2

中斷標志位。

如圖6所示,置位DCEN.允許定時器2向上或向下計數.在這種模式下,T2EX引腳

控制著計數的方向。T2EX上的一個邏輯1使得定時器2向上計數。定時器計到0FFFFH

AT89S52

1.

溢出,并置位TF2。定時器的溢出也使得RCAP2H和RCAP2L中的16位值分別加載到

定時器存儲器TH2和TL2中。

T2E.上的一個邏輯.使得定時器.向下計數。當TH.和TL.分別等于RCAP2.和

RCAP2L中的值的時候,計數器下溢。計數器下溢,置位TF2,并將0FFFFH力口載至U定

時器存儲器中。

定時器2上流或下流,外部中斷標志位匚X「.被鎖死。在這種工作模式下,匚X「2不能

觸發中斷。

圖.定時器2重載模式(DCEN=0)

表.T2MOD?定時器2控制寄存器

T2Mo.t也址:0C9.復位值:XXXXXX00B

不可位尋址

……T2O.DCEN

.……0

符.功能

.無定義,預留力,展

T2O.定時器2輸出允許位

DCE.置.1后,定時器2可配置成向上/向下計數

AT89S52

1.

圖.定時器2自動重載(DCEN=1)

圖.定時器.波特率發生器模式

AT89S52

1.

波特率發生器

通過設置T2cON(見表2)中的TCLK或RCLK可選擇定時器.作為波特率發生器。

如果定時器2作為發送或接收波特率發生器,定時器1nJ.用作它用,發送和接收的波特

率可以不同。如圖.所示,設置RCL.和(或)TCL.可以使定時器.工作于波特率

產生模式。

波特率產牛.工作模式與自動市載模式相似,因此,TH?的翻轉使得定時器.寄存器市

載被軟件預置16位值的RCAP2H和RCAP2L中的值。

模式1和模式3的波特率由定時器2溢出速率決定,具體如下公式:

模式1和模式3波特率=

16

2定時器溢出率

定時器可設置成定時器,也可為計數器,在多數應用情況上一般配置成定時方式

(CP/T2=0)o定時器.用于定時器操作與波特率發生器有所不同,它在每一機器周期

(1/12晶振周期)都會增加;然而,作為波特率發生器,它在每一機器狀態(1/2晶振

周期)都會增加。波特率計算公式如下:

模式1和模式3的波特率=

32'[6553..(RCAP2H,RCAP2L)]

晶振頻率.原文少半個括號“(”

其中,(RCAP2HECAP2L)是RCAP2H和RCAP2L組成的16位無符號整數。

定時器.作為波特率發生器,如圖.所示。圖中僅僅在T2co,中RCL.或TCLK=1

才有效。特別強調,TH2的翻轉并不置位TF2,也不產生中斷.EXEN2置位后,T2EX

引腳上1?0的下跳變不會使(RCAP2H,RCAP2L)重載到(TH2,TL2)中。因此,

定時器2作為波特率發生器,T2EX也還可以作為一個額外的外部中斷。

定時器2處于波特率產生模式,TR2=1,定時器2正常工作。T卜2或TL2不應該讀寫。

在這種模式下,定時器在每一狀態都會增加,讀或寫就不會準確,寄存器RCAP2可以

讀,但不能寫,因為寫可能和重載交迭,造成寫和重載錯誤。在讀寫定時器.或RCAP2

寄存器時,應該關閉定時器(TR2清0)。

可編程時鐘輸出

如圖.所示,可以通過編程在P1..弓I腳輸出一個占空比為50%的時鐘信號。這個引腳

除了常規的I/.角外,還有兩種可選擇功能。它可以通過編程作為定時器/計數器.的

外部時鐘輸入或占空比為50%的時鐘輸出。當工作頻率為16MHz時,時鐘輸出頻率范

圍為61Hz到4HZ。

為了把定時器2配置成時鐘發生器,位C/T2(T2CON.1)必須清0,位T2OE(T2MOD.1)

必須置1。位TR2(T2CON.2)啟動、停止定時器。時鐘輸出頻率取決于晶振頻率和定

時器2捕捉寄存器(RCAP2H,RCAP2L)的重載值,如公式所示:

時鐘飾出頻率=

.[65536-....)]

晶振頻率

.RCA..RCA.L

在時鐘輸出模式卜,定時器2不會產生中斷,這和定時器2用作波特率發生器一樣。定

AT89S52

1.

時器2也可以同時用作波特率發生器和時鐘產生。不過,波特率和輸出時鐘頻率相互并

不獨立,它們都依賴于RCAP2H和RCAP2L。

圖.定時器2時鐘輸出模式;

中斷

AT89s5.有6個中斷源:兩個外部中斷(IN

溫馨提示

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

評論

0/150

提交評論