????????(1)引腳說(shuō)明:
????????PO0-PO7 PO 口
8
位雙向口線(在引腳的
39-32
號(hào)端子
)
。
P10-P17 P1
口
8
位雙向口線(在引腳的 1-8
號(hào)端子
)
。
P20-P27 P2
口
8
位雙向口線(在引腳的
21-28號(hào)端子)
。
P30-P37 P3
口
8
位雙向口線(在引腳的
10-17
號(hào)端子
)
。
????????(2)PO 口三個(gè)功能
:
????????1)外部擴(kuò)展存儲(chǔ)器時(shí),用作數(shù)據(jù)總線(如圖中的
DO-D7
為數(shù)據(jù)總線接口
)
????????2)外部擴(kuò)展存儲(chǔ)器時(shí),用作地址總線(如圖中的
AO-A7
為地址總線接口
>
????????3)不擴(kuò)展時(shí),可做一般的
I/0
口使用,但內(nèi)部無(wú)上拉電阻,作為輸入或輸出時(shí)應(yīng)在外部接上拉電阻。
????????(3)P1 口功能
:P1
口只做
I/0
口使用,其內(nèi)部有上拉電阻。
????????(4)P2 口有兩個(gè)功能
:(
⑴擴(kuò)展外部存儲(chǔ)器時(shí),當(dāng)作地址總線使用
:(2)
做一般
I/0口使用,其內(nèi)部有上拉電阻。
????????(5)P3 口的兩個(gè)功能
:
????????除了作為 I/0
口使用外(其內(nèi)部有上拉電阻
)
,還有一些特殊功能,由特殊寄存器來(lái)設(shè)置。當(dāng)作為輸入時(shí),上拉電阻將其電位拉高,若輸入為低電平則可提供電流源;
所以如果
PO
口作為輸入時(shí),處在高阻抗?fàn)顟B(tài),只有外接一個(gè)上拉電阻才能有效。
????????(6)
ALE/PROG
地址鎖存控制信號(hào)
:
在系統(tǒng)擴(kuò)展時(shí),
ALE
用于控制把
PO
口的輸出低
8
位地址送鎖存器鎖存起來(lái),以實(shí)現(xiàn)低位地址和數(shù)據(jù)的隔離。PROG
為編程脈沖的輸入端,在
89C51
單片機(jī)內(nèi)部有一個(gè) 4KB
的程序存儲(chǔ)器(
ROM)
,
ROM
的作用就是用來(lái)存放用戶需要執(zhí)行的程序的,那么我們是怎樣把編寫好的程序存入進(jìn)這個(gè) ROM
中的呢
?
實(shí)際上是通過(guò)編程脈沖輸入才能寫進(jìn)去的,這個(gè)脈沖的輸入端口就是 PROG
。
????????(7)PSEN 外部程序存儲(chǔ)器讀選通信號(hào)
:
在讀外部
ROM
時(shí)
PSEN
低電平有效,以實(shí)現(xiàn)外部
ROM
單元的讀操作
:1)內(nèi)部 ROM
讀取時(shí),
PSEN
不動(dòng)作
;
????????2)外部
ROM
讀取時(shí),在每個(gè)機(jī)器周期會(huì)動(dòng)作兩次
:
????????3)外部
RAM
讀取時(shí),兩個(gè) PSEN
脈沖被跳過(guò)不會(huì)輸出
;4)
外接
ROM
時(shí),與
ROM
的
EA
腳相接。
????????(8)
EA/VPP
訪問(wèn)程序存儲(chǔ)器控制信號(hào)
:
????????1)接高電平時(shí)
:CPU
讀取內(nèi)部程序存儲(chǔ)器(
ROM) 2)接低電平時(shí):CPU 讀取外部程序存儲(chǔ)器(ROM)。
8031 單片機(jī)內(nèi)部是沒(méi)有ROM 的,那么在應(yīng)用
8031
單片機(jī)時(shí),這個(gè)腳是一直接低電平的。
????????(9) RST 復(fù)位信號(hào)
:
當(dāng)輸入的信號(hào)連續(xù)
2
個(gè)機(jī)器周期以上高電平時(shí)即為有效,用以完成單片機(jī)的復(fù)位初始化操作,當(dāng)復(fù)位后程序計(jì)數(shù)器 PC=000OH
,即復(fù)位后將從程序存儲(chǔ)器的000OH 單元讀取第一條指令碼。
????????
????????(10) XTAL1
和
XTAL2 :
????????外接晶振引腳。當(dāng)使用芯片內(nèi)部時(shí)鐘時(shí),此二引腳用于外接石英晶體和微調(diào)電容:
當(dāng)使用外部時(shí)鐘時(shí),用于接外部時(shí)鐘脈沖信號(hào)。
????????(11) VCC:電源端接
+5V
電壓輸入。
????????(12)GND:接地端。
3.2.2 晶振電路設(shè)計(jì)
????????下圖所示為時(shí)鐘電路原理圖,在 AT89C51
芯片內(nèi)部有一個(gè)高增益反相放大器,其輸入端為芯片引腳 XTAL1
,輸出端為引腳
XTAL2
。而在芯片內(nèi)部,
XTAL1和 XTAL2
之間跨接晶體振蕩器和微調(diào)電容,從而構(gòu)成一個(gè)穩(wěn)定的自激振蕩器。時(shí)鐘電路產(chǎn)生的振蕩脈沖經(jīng)過(guò)觸發(fā)器進(jìn)行二分頻之后,才成為單片機(jī)的時(shí)鐘脈沖信號(hào)。
????????單片機(jī) XTAL1
和
XTAL2
分別接
33pF
的電容,中間再并一個(gè)
11.0592MHZ的晶振,形成單片機(jī)的晶振電路。
?圖 3-3 晶振電路
3.2.3 復(fù)位電路設(shè)計(jì)
????????AT89C51 的上電復(fù)位電路,只要在
RST
復(fù)位輸入引腳上接一電容至
Vcc
端,下接一個(gè)電阻到地即可。對(duì)于 CMOS
型單片機(jī),由于在
RST
端內(nèi)部有一個(gè)下拉電阻,故可將外部電阻去掉,而將外接電容減至 1UF
。上電復(fù)位的工作過(guò)程是在加電時(shí),復(fù)位電路通過(guò)電容加給 RST
端一個(gè)短暫的高電平信號(hào),此高電平信號(hào)隨著 Vcc
對(duì)電容的充電過(guò)程而逐漸回落,即
RST
端的高電平持續(xù)時(shí)間取決于電容的充電時(shí)間。為了保證系統(tǒng)能夠可靠地復(fù)位,RST
端的高電平信號(hào)必須維持足夠長(zhǎng)的時(shí)間。上電時(shí),Vcc
的上升時(shí)間約為
10ms
,而振蕩器的起振時(shí)間取決于振蕩頻率,如晶振頻率為 10MHz
,起振時(shí)間為
1ms:
晶振頻率為
1MHz
,起振時(shí)間則為 10ms
。在圖
3-2
的復(fù)位電路中,當(dāng)
Vcc
掉電時(shí),必然會(huì)使
RST
端電壓迅速下降到 OV
以下,但是,由于內(nèi)部電路的限制作用,這個(gè)負(fù)電壓將不會(huì)對(duì)器件產(chǎn)生損害。另外,在復(fù)位期間,端口引腳處于隨機(jī)狀態(tài),復(fù)位后,系統(tǒng)將端口置為全“l(fā)”態(tài)。如果系統(tǒng)在上電時(shí)得不到有效的復(fù)位,則程序計(jì)數(shù)器
PC
將得不到一個(gè)合適的初值,因此,CPU
可能會(huì)從一個(gè)未被定義的位置開始執(zhí)行程序。
圖 3-4 復(fù)位電路?
3.2.4 LED 數(shù)碼管顯示
????????數(shù)碼管是一種把多個(gè) LED
顯示段集成在一起的顯示設(shè)備。有兩種類型,一種是共陽(yáng)型,一種是共陰型。共陽(yáng)型就是把多個(gè) LED
顯示段的陽(yáng)極接在一起,又稱為公共端。共陰型就是把多個(gè) LED
顯示段的陰極接在一起,即為公共商。陽(yáng)極即為二極管的正極,又稱為正極,陰極即為二極管的負(fù)極,又稱為負(fù)極。通常的數(shù)碼管又分為 8
段,即
8
個(gè)
LED
顯示段,這是為工程應(yīng)用方便如設(shè)計(jì)的,分別為 A
、
B
、
C
、
D
、
E
、
F
、
G
、
DP
,其中
DP
是小數(shù)點(diǎn)位段。而多位數(shù)碼管,除某一位的公共端會(huì)連接在一起,不同位的數(shù)碼管的相同端也會(huì)連接在一起。即,所有的 A
段都會(huì)連在一起,其它的段也是如此,這是實(shí)際最常用的用法。數(shù)碼管顯示方法可分為靜態(tài)顯示和動(dòng)態(tài)顯示兩種。靜態(tài)顯示就是數(shù)碼管的 8
段輸入及其公共端電平一直有效。動(dòng)態(tài)顯示的原理是,各個(gè)數(shù)碼管的相同段連接在一起,共同占用 8
位段引管線
;
每位數(shù)碼管的陽(yáng)極連在一起組成公共端。利用人眼的視覺(jué)暫留性,依次給出各個(gè)數(shù)碼管公共端加有效信號(hào),在此同時(shí)給出該數(shù)碼管加有效的數(shù)據(jù)信號(hào),當(dāng)全段掃描速度大于視覺(jué)暫留速度時(shí),顯示就會(huì)清晰顯示出來(lái)。
????????系統(tǒng)采用動(dòng)態(tài)顯示方式,用 PO 口來(lái)控制
LED
數(shù)碼管的段控線,而用
P2
口來(lái)控制其位控線。動(dòng)態(tài)顯示通常都是采用動(dòng)態(tài)掃描的方法進(jìn)行顯示,即循環(huán)點(diǎn)亮每一個(gè)數(shù)碼管,這樣雖然在任何時(shí)刻都只有一位數(shù)碼管被點(diǎn)亮,但由于人眼存在視覺(jué)殘留效應(yīng),只要每位數(shù)碼管間隔時(shí)間足夠短,就可以給人以同時(shí)顯示的感覺(jué)。
圖 3-5 LED 數(shù)碼管引腳圖?
3.3 系統(tǒng)實(shí)現(xiàn)
3.3.1 系統(tǒng)仿真與調(diào)試
(
1
)
Keil
軟件編譯
????????Keil C51 是美國(guó)
Keil Software
公司出品的
51
系列兼容單片機(jī)
C
語(yǔ)言軟件開發(fā)系統(tǒng),與匯編相比,C
語(yǔ)言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),Keil
提供了包括
C
編譯器、宏匯編、連接器、庫(kù)管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過(guò)一個(gè)集成開發(fā)環(huán)境(uVision)
將這些部分組合在一起。如果使用 C
語(yǔ)言編程,那么
Keil
幾乎就是不二之選,即使不使用C 語(yǔ)言而僅用匯編語(yǔ)言編程,其方便易用的集成環(huán)境、強(qiáng)大的軟件仿真調(diào)試工具
也會(huì)令你事半功倍。本次設(shè)計(jì)采用匯編語(yǔ)言編程,生成
.hex
文件以供裝載到Protues 中的單片機(jī)進(jìn)行仿真。
(2)
Protues
仿真平臺(tái)
????????Protues 軟件是英國(guó)
Labcenterelectronics
公司出版的
EDA
工具軟件。它不僅具有其它 EDA
工具軟件的仿真功能,還能仿真單片機(jī)及外圍器件。它是目前最好的仿真單片機(jī)及外圍器件的工具。Proteus
是世界上著名的
EDA
工具
(
仿真軟件)
,從原理圖布圖、代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真,一鍵切換到
PCB設(shè)計(jì),真正實(shí)現(xiàn)了從概念到產(chǎn)品的完整設(shè)計(jì)。迄今為止是世界上唯一將電路仿真軟件、PCB
設(shè)計(jì)軟件和虛擬模型仿真軟件三合一的設(shè)計(jì)平臺(tái),其處理器模型支持
????????8051、
HC11
、
PIC10/12/16/18/24/30/DsPIC33
、
AVR
、
ARM
、
8086
和
MSP430等。在編譯方面,它也支持 IAR
、
Keil
和
MATLAB
等多種編譯。
????????目標(biāo)代碼的加載方法為,在 Protues 編輯環(huán)境雙擊
AT89C51
,彈出下圖所示的對(duì)話框,在 PROGRAM FILM
一欄中單擊打開按鈕,選中
Keil
中生成的
1zy.hex文件,CLOCKFREQUENCY
欄中設(shè)置系統(tǒng)工作頻率為
11.0592MHZ
,單擊
OK完成目標(biāo)代碼的加載。
圖 3-6 程序代碼加載?
3.3.2 演示結(jié)果
???????(1
)時(shí)間顯示:當(dāng)時(shí)間達(dá)到整點(diǎn)前
10
秒,蜂鳴器鳴響,每隔一秒鳴響一次,鳴響 5
次后暫停,起到報(bào)時(shí)作用。
圖 3-7 時(shí)間顯示演示結(jié)果圖?
????????(2)時(shí)間校對(duì):在那個(gè)時(shí)間級(jí)出現(xiàn)右下角小藍(lán)點(diǎn)閃爍,就是在對(duì)那個(gè)時(shí)間級(jí)進(jìn)行校對(duì),通過(guò)“+
”“-”按鍵對(duì)該時(shí)間級(jí)的時(shí)間調(diào)整,調(diào)整完畢按下設(shè)置建即可回復(fù)顯示狀態(tài)。
圖 3-8 時(shí)間校對(duì)演示結(jié)果圖?文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-428906.html
????????(3)60
秒倒計(jì)時(shí):按下秒表鍵,系統(tǒng)開始
60
秒倒計(jì)時(shí),按下秒表啟停鍵,可以開啟和暫停秒表,暫停后開啟,秒表任然從暫停的時(shí)間開始倒計(jì)時(shí);按下秒表清零鍵,秒表時(shí)間歸位到 60
。
圖 3-9 60 秒倒計(jì)時(shí)演示結(jié)果圖?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-428906.html
4.總結(jié)
????????經(jīng)歷過(guò)這么多天不間斷的課程設(shè)計(jì),我有很多感觸,從最基本上說(shuō)我看到了,也意識(shí)到了自己的不足,對(duì)于不斷克服的各種阻礙也讓我們體會(huì)到了課程設(shè)計(jì)的意義所在。本次課程設(shè)計(jì)學(xué)習(xí)的是利用 AT89C51
單片機(jī)設(shè)計(jì)的有調(diào)時(shí)、整點(diǎn)報(bào)時(shí)、60s
倒計(jì)時(shí)功能的電子鐘,而且詳細(xì)說(shuō)明了軟件和硬件設(shè)計(jì)方法及仿真、硬件實(shí)現(xiàn)。在設(shè)計(jì)過(guò)程中可以看出,匯編語(yǔ)言有著其獨(dú)特的魅力,它簡(jiǎn)單易學(xué),語(yǔ)法錯(cuò)誤容易糾正:
用單片機(jī)實(shí)現(xiàn)電子鐘的設(shè)計(jì)是比較方便和易于實(shí)現(xiàn)的。
????????對(duì)于只接觸課本只動(dòng)筆桿的我們,面臨實(shí)際的設(shè)計(jì)尺寸,讓我們很是尷尬,都說(shuō)理論聯(lián)系實(shí)際,真正到聯(lián)系的時(shí)候才發(fā)現(xiàn)挺困難的,不過(guò)正是理論知識(shí)的各種補(bǔ)充才讓我們能最終完成任務(wù),然后深深地體會(huì)到理論對(duì)現(xiàn)實(shí)的指導(dǎo)作用。我們現(xiàn)在最缺乏的就是實(shí)際工作經(jīng)驗(yàn),而理論聯(lián)系實(shí)踐并不像我們想象的那么簡(jiǎn)單,他需要堅(jiān)實(shí)的理論基礎(chǔ)和實(shí)際工作經(jīng)驗(yàn)。堅(jiān)實(shí)的理論基礎(chǔ)決定了我必須堅(jiān)持學(xué)習(xí)新的知識(shí)新的理論,完善了自己的知識(shí)結(jié)構(gòu),才能在以后的實(shí)際中輕松面對(duì),才能設(shè)計(jì)出更好的更有益于人們生活與工作的機(jī)械,才能跟上時(shí)代的步伐,不被淘汰。
????????在這個(gè)一邊邊忙著復(fù)習(xí)忙著考試又要準(zhǔn)備課程設(shè)計(jì)的日子里,真真正正的體會(huì)到了時(shí)間的寶貴,有點(diǎn)像高中忙忙碌碌的生活,不過(guò)能按時(shí)完成課程設(shè)計(jì)對(duì)我們來(lái)說(shuō)也是一個(gè)莫大的安慰。.
嚴(yán)謹(jǐn)和細(xì)心是做電子設(shè)計(jì)的必要態(tài)度,要想做好一件事,就必須一絲不茍、態(tài)度認(rèn)真。俗話說(shuō):
“失之毫厘, 謬之千里。”在設(shè)計(jì)上尤其應(yīng)該注意。在以后的工作中,你的很小的一個(gè)疏忽將會(huì)造成一一個(gè)公司很大的損失,甚至給用戶帶去生命危險(xiǎn),而自已也會(huì)為自己的不負(fù)責(zé)任行為付出代價(jià)。再者就是設(shè)計(jì)中要嚴(yán)謹(jǐn)和細(xì)心,對(duì)于電子設(shè)計(jì)是不能出差錯(cuò)的,任何的微小誤差都可能產(chǎn)生不可預(yù)計(jì)的后果,當(dāng)然對(duì)于我們來(lái)說(shuō)就是設(shè)計(jì)中要走一些彎路,而且在這個(gè)嚴(yán)重缺少時(shí)間又惦記回家問(wèn)題的我們來(lái)說(shuō)也是一個(gè)很嚴(yán)重的后果。不過(guò),困難雖是難免的,但我們有信心就能并且已經(jīng)戰(zhàn)勝了困難,完成了這個(gè)無(wú)比揪心的課程設(shè)計(jì)。
????????通過(guò)本次課程設(shè)計(jì)加深了我們對(duì)單片機(jī)的理解,能夠更加熟練地應(yīng)用單片機(jī)實(shí)現(xiàn)預(yù)期的功能,對(duì)以后的學(xué)習(xí)起到很大的促進(jìn)作用。因?yàn)闀r(shí)間等各種關(guān)系設(shè)計(jì)中難免有些不足還請(qǐng)老師助教給予批評(píng)和幫助。
附錄
附錄 1