基于AT89S52單片機(jī)的LED數(shù)字倒計(jì)時(shí)器設(shè)計(jì)
- 文件介紹:
- 該文件為 doc 格式,下載需要 1 積分
- 基于AT89S52單片機(jī)的LED數(shù)字倒計(jì)時(shí)器設(shè)計(jì)基于AT89S52單片機(jī)的LED數(shù)字倒計(jì)時(shí)器設(shè)計(jì)
1 設(shè)計(jì)任務(wù)與要求
1.1開發(fā)意義
近年來(lái)隨著計(jì)算機(jī)在社會(huì)領(lǐng)域的滲透,單片機(jī)的應(yīng)用正在不斷深入人們的生活,同時(shí)帶動(dòng)傳統(tǒng)控制檢測(cè)日新月異。在實(shí)時(shí)檢測(cè)和自動(dòng)控制的單片機(jī)應(yīng)用系統(tǒng)中,單片機(jī)往往作為一個(gè)核心部件來(lái)使用,僅單片機(jī)方面的知識(shí)是不夠的,還應(yīng)根據(jù)具體硬件結(jié)構(gòu),針對(duì)具體應(yīng)用特點(diǎn)與軟件結(jié)合。本項(xiàng)目討論了LED數(shù)字倒計(jì)時(shí)器的設(shè)計(jì)與制作,此方案線路簡(jiǎn)單,成本低,應(yīng)用前景廣闊。
本課題開發(fā)的意義在于它既節(jié)省了硬件成本,又能實(shí)現(xiàn)多功能,即可做到到幾十秒表,又可進(jìn)行定時(shí),還可以通過擴(kuò)展完成其他功能,而且功能的相互轉(zhuǎn)換也十分簡(jiǎn)單。對(duì)于廠商有很大的挖掘潛在價(jià)值的空間,對(duì)于消費(fèi)者也有很大的吸引力。
1.2功能說明
基于AT89S52單片機(jī)的LED數(shù)字倒計(jì)時(shí)器主要具有如下功能:
LED數(shù)碼管顯示倒計(jì)時(shí)時(shí)間。
(1)倒計(jì)時(shí)過程中能設(shè)置多個(gè)鬧鐘,當(dāng)?shù)褂?jì)時(shí)值倒計(jì)到設(shè)定值時(shí)會(huì)發(fā)出約2s的報(bào)警聲音。
(2)通過按鍵可以對(duì)倒計(jì)時(shí)設(shè)定初值。倒計(jì)時(shí)初始值范圍在24:00:00~00:00:60之間,用戶可根據(jù)需要對(duì)其進(jìn)行設(shè)置,設(shè)置成功后復(fù)位初始值為成功設(shè)定值。
2 設(shè)計(jì)方案
2.1系統(tǒng)設(shè)計(jì)
AT89S52是一種低功耗、高性能CMOS8位微控制器,具有8K 在系統(tǒng)可編程Flash 存儲(chǔ)器。使用Atmel 公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。
2.1.1 主要性能
1與MCS-51單片機(jī)產(chǎn)品兼容
2 8K字節(jié)在系統(tǒng)可編程Flash存儲(chǔ)器
3 1000次擦寫周期
4 全靜態(tài)操作:0Hz~33Hz
5 三級(jí)加密程序存儲(chǔ)器
6 32個(gè)可編程I/O口線
7 三個(gè)16位定時(shí)器/計(jì)數(shù)器
8八個(gè)中斷源
9全雙工UART串行通道
10 低功耗空閑和掉電模式
l 1掉電后中斷可喚醒
l 2看門狗定時(shí)器
l3 雙數(shù)據(jù)指針
l4 掉電標(biāo)識(shí)符
2.1.2 功能特性描述
AT89S52具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)Flash,256字節(jié)RAM,32 位I/O 口線,看門狗定時(shí)器,2 個(gè)數(shù)據(jù)指針,三個(gè)16 位定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。另外,AT89S52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式。空閑模式下,CPU停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),
1 單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。
R8 位微控制器 8K 字節(jié)在系統(tǒng)可編程
Flash
AT89S52
Rev. 1919-07/01
AT89S52
P0 口:P0口是一個(gè)8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動(dòng)8個(gè)TTL邏輯電平。對(duì)P0端口寫“1”時(shí),引腳用作高阻抗輸入。
當(dāng)訪問外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,P0具有內(nèi)部上拉電阻。
在flash編程時(shí),P0口也用來(lái)接收指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字節(jié)。程序校驗(yàn)時(shí),需要外部上拉電阻。
P1 口:P1 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,p1 輸出緩沖器能驅(qū)動(dòng)4 個(gè)TTL 邏輯電平。對(duì)P1 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。
此外,P1.0和P1.2分別作定時(shí)器/計(jì)數(shù)器2的外部計(jì)數(shù)輸入(P1.0/T2)和時(shí)器/計(jì)數(shù)器2的觸發(fā)輸入(P1.1/T2EX),具體如下表所示。
在flash編程和校驗(yàn)時(shí),P1口接收低8位地址字節(jié)。
2 引腳號(hào)第二功能
P1.0 T2(定時(shí)器/計(jì)數(shù)器T2的外部計(jì)數(shù)輸入),時(shí)鐘輸出
P1.1 T2EX(定時(shí)器/計(jì)數(shù)器T2的捕捉/重載觸發(fā)信號(hào)和方向控制)
P1.5 MOSI(在系統(tǒng)編程用)
P1.6 MISO(在系統(tǒng)編程用)
P1.7 SCK(在系統(tǒng)編程用)
P2 口:P2 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器能驅(qū)動(dòng)4 個(gè)TTL 邏輯電平。對(duì)P2 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。在訪問外部程序存儲(chǔ)器或用16位地址讀取外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行MOVX @DPTR)時(shí),P2 口送出高八位地址。在這種應(yīng)用中,P2 口使用很強(qiáng)的內(nèi)部上拉發(fā)送1。在使用8位地址(如MOVX @RI)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口輸出P2鎖存器的內(nèi)容。
3 在flash編程和校驗(yàn)時(shí),P2口也接收高8位地址字節(jié)和一些控制信號(hào)。
P3 口:P3 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,p2 輸出緩沖器能驅(qū)動(dòng)4 個(gè)TTL 邏輯電平。對(duì)P3 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。P3口亦作為AT89S52特殊功能(第二功能)使用,如下表所示。
4 在flash編程和校驗(yàn)時(shí),P3口也接收一些控制信號(hào)。
P3.0 RXD(串行輸入)
P3.1 TXD(串行輸出)
P3.2 INT0(外部中斷0)
P3.3 INT0(外部中斷0)
P3.4 T0(定時(shí)器0外部輸入)
P3.5 T1(定時(shí)器1外部輸入)
P3.6 WR(外部數(shù)據(jù)存儲(chǔ)器寫選通)
P3.7 RD(外部數(shù)據(jù)存儲(chǔ)器寫選通)
RST: 復(fù)位輸入。晶振工作時(shí),RST腳持續(xù)2 個(gè)機(jī)器周期高電平將使單片機(jī)復(fù)位。看門狗計(jì)時(shí)完成后,RST 腳輸出96 個(gè)晶振周期的高電平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能無(wú)效。DISRTO默認(rèn)狀態(tài)下,復(fù)位高電平有效。
ALE/PROG:地址鎖存控制信號(hào)(ALE)是訪問外部程序存儲(chǔ)器時(shí),鎖存低8 位地址的輸出脈沖。在flash編程時(shí),此引腳(PROG)也用作編程輸入脈沖。
PSEN:外部程序存儲(chǔ)器選通信號(hào)(PSEN)是外部程序存儲(chǔ)器選通信號(hào)。
當(dāng)AT89S52從外部程序存儲(chǔ)器執(zhí)行外部代碼時(shí),PSEN在每個(gè)機(jī)器周期被激活兩次,而在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),PSEN將不被激活。
EA/VPP:訪問外部程序存儲(chǔ)器控制信號(hào)。為使能從0000H 到FFFFH的外部程序存儲(chǔ)器讀取指令,EA必須接GND。為了執(zhí)行內(nèi)部程序指令,EA應(yīng)該接VCC。在flash編程期間,EA也接收12伏VPP電壓。
XTAL1:振蕩器反相放大器和內(nèi)部時(shí)鐘發(fā)生電路的輸入端。
XTAL2:振蕩器反相放大器的輸出端。
AT89S52
5 表1 AT89S52 特殊寄存器映象及復(fù)位值
特殊功能寄存器
特殊功能寄存器(SFR)的地址空間映象如表1所示。
并不是所有的地址都被定義了。片上沒有定義的地址是不能用的。讀這些地址,一般將得到一個(gè)隨機(jī)數(shù)據(jù);寫入的數(shù)據(jù)將會(huì)無(wú)效。用戶不應(yīng)該給這些未定義的地址寫入數(shù)據(jù)“1”。由于這些寄存器在將來(lái)可能被賦予新的功能,復(fù)位后,這些位都為“0”。定時(shí)器2 寄存器:寄存器T2CON 和T2MOD 包含定時(shí)器2 的控制位和狀態(tài)位(如表2和表3所示),寄存器對(duì)RCAP2H和RCAP2L是定時(shí)器2的捕捉/自動(dòng)重載寄存器。中斷寄存器:各中斷允許位在IE寄存器中,六個(gè)中斷源的兩個(gè)優(yōu)先級(jí)也可在IE中設(shè)置。...