完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>
標(biāo)簽 > 80C51
80C51單片機(jī)屬于MCS-51系列單片機(jī),由Intel公司開發(fā),其結(jié)構(gòu)是8048的延伸,改進(jìn)了8048的缺點(diǎn),增加了如乘(MUL)、除(DIV)、減(SUBB)、比較(CMP)、16位數(shù)據(jù)指針、布爾代數(shù)運(yùn)算等指令,以及串行通信能力和5個(gè)中斷源。
80C51單片機(jī)屬于MCS-51系列單片機(jī),由Intel公司開發(fā),其結(jié)構(gòu)是8048的延伸,改進(jìn)了8048的缺點(diǎn),增加了如乘(MUL)、除(DIV)、減(SUBB)、比較(CMP)、16位數(shù)據(jù)指針、布爾代數(shù)運(yùn)算等指令,以及串行通信能力和5個(gè)中斷源。采用40引腳雙列直插式DIP(Dual In Line Package),內(nèi)有128Byte的RAM單元及4K的ROM。
80C51有兩個(gè)16位定時(shí)計(jì)數(shù)器,兩個(gè)外中斷,兩個(gè)定時(shí)計(jì)數(shù)中斷,及一個(gè)串行中斷,并有4個(gè)8位并行輸入口。80C51內(nèi)部有時(shí)鐘電路,但需要石英晶體和微調(diào)電容外接,本系統(tǒng)中采用12MHz的晶振頻率。由于80C51的系統(tǒng)性能滿足系統(tǒng)數(shù)據(jù)采集及時(shí)間精度的要求,而且產(chǎn)品產(chǎn)量豐富來源廣,應(yīng)用也很成熟,故采用來作為控制核心。
80C51單片機(jī)屬于MCS-51系列單片機(jī),由Intel公司開發(fā),其結(jié)構(gòu)是8048的延伸,改進(jìn)了8048的缺點(diǎn),增加了如乘(MUL)、除(DIV)、減(SUBB)、比較(CMP)、16位數(shù)據(jù)指針、布爾代數(shù)運(yùn)算等指令,以及串行通信能力和5個(gè)中斷源。采用40引腳雙列直插式DIP(Dual In Line Package),內(nèi)有128Byte的RAM單元及4K的ROM。
80C51有兩個(gè)16位定時(shí)計(jì)數(shù)器,兩個(gè)外中斷,兩個(gè)定時(shí)計(jì)數(shù)中斷,及一個(gè)串行中斷,并有4個(gè)8位并行輸入口。80C51內(nèi)部有時(shí)鐘電路,但需要石英晶體和微調(diào)電容外接,本系統(tǒng)中采用12MHz的晶振頻率。由于80C51的系統(tǒng)性能滿足系統(tǒng)數(shù)據(jù)采集及時(shí)間精度的要求,而且產(chǎn)品產(chǎn)量豐富來源廣,應(yīng)用也很成熟,故采用來作為控制核心。
選型表
特性y 80C51 核心處理單元4k 字節(jié)FLASH 89C51X28k 字節(jié)FLASH 89C52X216k 字節(jié)FLASH 89C54X232k 字節(jié)FLASH 89C58X2128 字節(jié)RAM 89C51X2256 字節(jié)RAM 89C52X2/54X2/58X2布爾處理器全靜態(tài)操作y 12 時(shí)鐘操作 可選6 個(gè)時(shí)鐘 通過軟件或并行編程器y 存儲器尋址范圍64K 字節(jié)ROM 和64K 字節(jié)RAMy 電源控制模式―時(shí)鐘可停止和恢復(fù)―空閑模式―掉電模式y(tǒng) 兩個(gè)工作頻率范圍6 時(shí)鐘模式時(shí)為0 到20MHz12 時(shí)鐘模式時(shí)為0 到33MHzy LQFP, PLCC 或DIP 封裝y 擴(kuò)展溫度范圍y 雙數(shù)據(jù)指針y 3 個(gè)加密位1y 4 個(gè)中斷優(yōu)先級y 6 個(gè)中斷源y 4 個(gè)8 位I/O 口y 全雙工增強(qiáng)型UART―幀數(shù)據(jù)錯(cuò)誤檢測―自動(dòng)地址識別y 3 個(gè)16 位定時(shí)/計(jì)數(shù)器T0 T1 標(biāo)準(zhǔn)80C51 和增加的T2 捕獲和比較y 可編程時(shí)鐘輸出y 異步端口復(fù)位y 低EMI (禁止ALE 以及6 時(shí)鐘模式)y 掉電模式可通過外部中斷喚醒
訂購信息
P89C51X2 4K 字節(jié)FLASH類型編號 封裝 溫度范圍( )P89C51X2BA PLCC44 0~+70P89C51X2BN DIP40 0~+70P89C51X2BBD LQFP44 0~+70P89C51X2FA PLCC44 -40~+85P89C52X2 8K 字節(jié)FLASH類型編號 封裝 溫度范圍( )P89C52X2BA PLCC44 0~+70P89C52X2BN DIP40 0~+70P89C52X2BBD LQFP44 0~+70P89C52X2FA PLCC44 -40~+85P89C52X2FN DIP40 -40~+85P89C52X2FBD LQFP44 -40~+85P89C54X2 16K 字節(jié)FLASH類型編號 封裝 溫度范圍( )P89C54X2BA PLCC44 0~+70P89C54X2BN DIP40 0~+70P89C54X2BBD LQFP44 0~+70P89C54X2FA PLCC44 -40~+85P89C58X2 32K 字節(jié)FLASH類型編號 封裝 溫度范圍( )P89C58X2BA PLCC44 0~+70P89C58X2BN DIP40 0~+70P89C58X2BBD LQFP44 0~+70P89C58X2FA PLCC44 -40~+85
80C51單片機(jī)的內(nèi)部結(jié)構(gòu)
單片機(jī)按存儲結(jié)構(gòu)可分為二類:一類是哈佛結(jié)構(gòu),另一類是普林斯頓結(jié)構(gòu)。
?、俟鸾Y(jié)構(gòu)
所謂哈佛結(jié)構(gòu)是指程序存儲器地址空間與數(shù)據(jù)存儲器地址空間分開的單片機(jī)結(jié)構(gòu),如80C51單片機(jī)采用哈佛結(jié)構(gòu),所以80C51單片機(jī)的程序存儲器地址空間與數(shù)據(jù)存
儲器地址空間是分開的,各有64K存儲空間。
?、谄樟炙诡D結(jié)構(gòu)
所謂普林斯頓結(jié)構(gòu)是指程序存儲器地址空間與數(shù)據(jù)存儲器地址空間合并的單片機(jī)結(jié)構(gòu),如MCS-96單片機(jī)采用普林斯頓結(jié)構(gòu),所以MCS-96單片機(jī)的程序存儲器地址空
間與數(shù)據(jù)存儲器地址空間是合并的,共有64K存儲空間。
1.單片機(jī)的CPU
圖1是80C51單片機(jī)的內(nèi)部結(jié)構(gòu)框圖。若除去圖中的存儲器電路和I/O部件,剩下的便是CPU。它可以分為運(yùn)算器和控制器兩部分。運(yùn)算器功能部件包括算術(shù)邏輯運(yùn)
算單元ALU、累加器ACC、寄存器B、暫存寄存器TMP1、TMP2、程序狀態(tài)字寄存器PSW等??刂破鞴δ懿考ǔ绦蛴?jì)數(shù)器PC、指令寄存器IR、指令譯碼器ID、定時(shí)控制邏輯
電路CU、數(shù)據(jù)指針寄存器DPTR、堆棧指針SP及時(shí)鐘電路等。
?。?)運(yùn)算器
?、偎阈g(shù)邏輯運(yùn)算單元ALU(Arithmetic Logical Unit)
ALU可以進(jìn)行算術(shù)、邏輯運(yùn)算。算術(shù)運(yùn)算有:加、減、乘、除,邏輯運(yùn)算有:與、或、異或等。
②累加器ACC
累加器ACC的主要功能是在運(yùn)算前存放一個(gè)操作數(shù),運(yùn)算后存放一個(gè)操作結(jié)果。80C51系列單片機(jī)雖然在結(jié)構(gòu)上仍然以累加器A作為重要部件。但由于內(nèi)部電路采取
了措施,使得累加器A在數(shù)據(jù)傳送、邏輯操作等方面的核心作用有所削弱。數(shù)據(jù)可以在片內(nèi)直接/間接地址的存儲器之間直接傳送,而不必經(jīng)過累加器A。但,加、減、乘、
除算術(shù)運(yùn)算指令的運(yùn)算結(jié)果都存放在累加器A或AB寄存器對中。
?、蹠捍嫫鱐MP1、TMP2
由圖1可知,ALU進(jìn)行算術(shù)邏輯運(yùn)算前的兩個(gè)操作數(shù)來自暫存器TMP1、TMP2,所以暫存器TMP1、TMP2用于存放運(yùn)算前的兩個(gè)操作數(shù)。
④程序狀態(tài)字寄存器PSW
程序狀態(tài)字寄存器PSW用來存放運(yùn)算結(jié)果的狀態(tài)標(biāo)志。PSW寄存器各位的含義如下,其中PSW.1未定義,其它各位說明如下:
CYACF0RS1RS0OV/P
CY:進(jìn)位標(biāo)志。它是累加器A的進(jìn)位位,如果操作結(jié)果在最高位有進(jìn)位(加法)或借位(減法)時(shí)置1,否則清0。
AC:半進(jìn)位標(biāo)志。它是低半字節(jié)的進(jìn)位位(累加器A中A3位向A4位的進(jìn)位),主要用于BCD碼調(diào)整。低4位有進(jìn)位(加法時(shí))或向高4位有借位時(shí)(減法時(shí)),AC是
1,否則,AC清0。
F0:用戶定義的狀態(tài)標(biāo)志位??赏ㄟ^軟件對它置位、復(fù)位或測試,以控制程序的流向。
RS1、RS0:工作寄存器區(qū)選擇控制位,用于選擇4組工作寄存器之一??梢杂密浖碇梦换蚯辶?,以確定工作寄存器區(qū)。RS1、RS0與寄存器區(qū)的對應(yīng)關(guān)系如下:
RS1、RS0=00——0區(qū)(地址00H~07H)
RS1、RS0=01——1區(qū)(地址08H~0FH)
RS1、RS0=10——2區(qū)(地址10H~17H)
RS1、RS0=11——3區(qū)(地址18H~1FH)
OV:溢出標(biāo)志位,用于表示有符號數(shù)算術(shù)運(yùn)算的溢出。溢出時(shí)OV為1,否則OV為0。
P:奇偶標(biāo)志位。每個(gè)指令周期都由硬件來置位或清零,以表示累加器A中1的個(gè)數(shù)的奇偶性。若1的個(gè)數(shù)為奇數(shù),則P置位;若1的個(gè)數(shù)為偶數(shù),則清零。
?、菁拇嫫鰾
在乘除指令中,用到了寄存器B。
?。?)控制器
控制器是控制單片機(jī)各種操作的部件,用于完成指令規(guī)定的操作。它包括程序計(jì)數(shù)器PC、指令寄存器IR、指令譯碼器ID、定時(shí)控制邏輯、數(shù)據(jù)指針寄存器DPTR、時(shí)
鐘發(fā)生器、復(fù)位電路、堆棧指針SP等。
?、俪绦蛴?jì)數(shù)器 PC
程序計(jì)數(shù)器PC為16位寄存器,用于存放下一條要執(zhí)行指令地址,具有自動(dòng)加1功能。
?、谥噶罴拇嫫鱅R、指令譯碼器ID、定時(shí)控制邏輯電路
指令寄存器IR用來暫時(shí)存放當(dāng)前取出的指令,并由指令譯碼器ID譯碼,產(chǎn)生相應(yīng)的譯碼信號,并傳送給定時(shí)控制電路,定時(shí)控制電路發(fā)出各種控制信號控制各器件
完成指令規(guī)定的操作。
③數(shù)據(jù)指針DPTR
DPTR為16位寄存器。由于80C51單片機(jī)采用哈佛結(jié)構(gòu),因此,其程序存儲器與地址存儲器是分開的,程序存儲器的地址是由程序計(jì)數(shù)器PC提供,而數(shù)據(jù)存儲器的地址是由數(shù)據(jù)指針DPTR提供的,所以DPTR用于存放片外數(shù)據(jù)存儲器及I/O口的地址。
?、軙r(shí)鐘電路
時(shí)鐘電路是計(jì)算機(jī)的心臟,它控制著計(jì)算機(jī)的工作節(jié)奏。
?、輳?fù)位和復(fù)位電路
計(jì)算機(jī)在啟動(dòng)運(yùn)行時(shí)都需要復(fù)位,復(fù)位就是使CPU和系統(tǒng)中的其它部件處于一個(gè)確定的初始狀態(tài),并從這個(gè)狀態(tài)開始工作。
?、薅褩V羔楽P
堆棧指針SP用于存放棧頂單元的地址。
2.單片機(jī)的存儲器配置
由于80C51單片機(jī)采用哈佛結(jié)構(gòu),所以其程序存儲器和數(shù)據(jù)存儲器是分開的,各有自身的尋址系統(tǒng)、控制信號和功能。程序存儲器用來存放程序和表格常數(shù);數(shù)據(jù)存儲器通常用來存放程序運(yùn)行所需要的給定參數(shù)和運(yùn)行結(jié)果。
從實(shí)際的物理存儲介質(zhì)來看,80C51有4種存儲空間,它們是片內(nèi)程序存儲器、片外程序存儲器、片內(nèi)數(shù)據(jù)存儲器(含特殊功能寄存器)和片外數(shù)據(jù)存儲器。80C51的存儲器配置情況如圖2所示。
邏輯地址空間來看,80C51單片機(jī)可分為三部分,即:程序存儲器、片外數(shù)據(jù)存儲器、片內(nèi)數(shù)據(jù)存儲器。這3部分分別使用不同的地址指針,不同的訪問指令。因此,下面按邏輯結(jié)構(gòu)介紹80C51的存儲器結(jié)構(gòu)。
?。?)程序存儲器
由圖3可知,程序存儲器以程序計(jì)數(shù)器PC作地址指針,通過16位地址總線,可尋址的地址空間為0000H~0FFFFH共64K(216=64K)字節(jié),其訪問指令為MOVC。用于存放程序指令碼與固定的數(shù)據(jù)表格等。
80C51單片機(jī)中內(nèi)部和外部共64K字節(jié)程序存儲器的地址空間是統(tǒng)一的。對于有內(nèi)部ROM的單片機(jī),在正常運(yùn)行時(shí),應(yīng)把引腳接高電平,使程序從內(nèi)部ROM開始執(zhí)行。當(dāng)PC值超出內(nèi)部ROM的容量時(shí),會自動(dòng)轉(zhuǎn)向外部程序存儲器空間。
?。?)片外數(shù)據(jù)存儲器
由圖可知,片外數(shù)據(jù)存儲器以DPTR作為地址指針,通過16位地址總線,可尋址的地址空間為0000H~0FFFFH共64K(216=64K)字節(jié),其訪問指令為MOVX。用于存放數(shù)據(jù)與運(yùn)算結(jié)果。
?。?)片內(nèi)據(jù)存儲器
片內(nèi)數(shù)據(jù)存儲器的地址空間從00H~FFH共256字節(jié),其訪問指令為MOV。其地址可由R0、R1寄存器提供。內(nèi)部數(shù)據(jù)存儲器是最靈活的地址空間,它分成物理上獨(dú)立且性質(zhì)上不同的2個(gè)區(qū):00H~7FH單元組成的128字節(jié)RAM區(qū),地址為80H~FFH的特殊功能寄存器區(qū)(簡稱SFR區(qū))。
1)RAM區(qū)(00H~7FH)
由圖2-3可知,RAM區(qū)又分為3個(gè)區(qū):工作寄存器區(qū)、位地址區(qū)與數(shù)據(jù)緩沖區(qū)。
?、俟ぷ骷拇嫫鲄^(qū)(00H~1FH)
80C51單片機(jī)的內(nèi)部RAM區(qū)結(jié)構(gòu)如圖2-3所示。
?、谖坏刂穮^(qū)(20H~2FH)
內(nèi)部RAM的20H~2FH為位尋址區(qū)域,見表1所示。這16個(gè)單元的每一位都有一個(gè)位地址,位地址范圍為00H~7FH。通常把各種程序狀態(tài)標(biāo)志、位控制變量設(shè)在位尋址區(qū)內(nèi)。位尋址區(qū)的RAM單元也可以作為一般的數(shù)據(jù)緩沖區(qū)使用。
表1 內(nèi)部RAM區(qū)的位地址映像表
?、蹟?shù)據(jù)緩沖區(qū)
數(shù)據(jù)緩沖區(qū)的地址空間從30H~7FH共80個(gè)字節(jié)單元,用于存放數(shù)據(jù)與運(yùn)算結(jié)果,如加法運(yùn)算時(shí),存放加數(shù)、被加數(shù)及運(yùn)算和。通常堆棧區(qū)也設(shè)置在該區(qū)內(nèi)。有些單片機(jī)將顯示緩沖區(qū)設(shè)置在該區(qū)內(nèi)。
2)特殊功能寄存器SFR(80H~FFH)
80C51單片機(jī)內(nèi)的I/O口鎖存器、狀態(tài)標(biāo)志寄存器、定時(shí)器、串行口、數(shù)據(jù)緩沖器以及各種控制寄存器統(tǒng)稱為特殊功能寄存器,它們離散地分布在內(nèi)部RAM地址空間(80H~0FFH)內(nèi),表2列出了這些特殊功能寄存器的標(biāo)識符、名稱及地址。由表2-2可知累加器ACC、寄存器B、程序狀態(tài)字PSW、I/O口P0~P3等均為特殊功能寄存器。
表2 特殊功能寄存器SFR
注:帶“·”號的寄存器可按字節(jié)和按位尋址,其特征是直接地址能被8整除。帶“*”號的寄存器是與定時(shí)器/計(jì)數(shù)器2有關(guān)的寄存器,僅在80C52系列中存在。下面以一個(gè)實(shí)例說明單片機(jī)的內(nèi)部存儲器。
3.80C51單片機(jī)并行輸入/輸出口
80C51單片機(jī)含有4 個(gè)8位并行I/O口P0、P1、P2和P3。每個(gè)口有8個(gè)引腳,如圖2-1所示,共有32個(gè)I/O引腳,每一個(gè)并行I/O口都能用作輸入或輸出。各口的第
一、第二功能如下:
I/O口 &nbnbsp; 引腳 第一功能 第二功能
P0口 P0.0~P0.7 輸入與輸出 分時(shí)的傳送地址低8位與數(shù)據(jù)線
P1口 P1.0~P0.7 輸入與輸出 無第二功能
P2口 P2.0~P2.7 輸入與輸出 傳送地址的高8位
P3口 P3.0~P3.7 輸入與輸出 P3.0——RXD:串行口輸入端
P3.1——TXD:串行口輸出端
P3.2—— :外部中斷0中斷請求輸入端
P3.3—— :外部中斷1中斷請求輸入端
P3.4——T0:定時(shí)器/計(jì)數(shù)器0外部輸入端
P3.5——T1:定時(shí)器/計(jì)數(shù)器1外部輸入端
P3.6—— :外部數(shù)據(jù)存儲器寫選通信號
P3.7—— :外部數(shù)據(jù)存儲器讀選通信號
四個(gè)通道口都有一種特殊的線路結(jié)構(gòu),每個(gè)口都包含一個(gè)鎖存器,即特殊功能寄存器P0~P3,一個(gè)輸出驅(qū)動(dòng)器和兩個(gè)(P3口有三個(gè))三態(tài)緩沖器。這種結(jié)構(gòu)在數(shù)據(jù)
輸出時(shí),可以鎖存,即在重新輸出新的數(shù)據(jù)之前,口上的數(shù)據(jù)一直保持不變。但對于輸入信號是不鎖存的,所以外設(shè)欲輸入的數(shù)據(jù)必須保持到取數(shù)指令執(zhí)行(把數(shù)據(jù)讀取
后)為止。
下面分別敘述各個(gè)端口的結(jié)構(gòu)、功能和使用方法。
?。?)P0口的組成與功能
1)位結(jié)構(gòu)
在訪問外部存儲器時(shí),P0口是一個(gè)真正的雙向數(shù)據(jù)總線口,并分時(shí)送出地址的低8位。圖2-4所示的是P0口的一位結(jié)構(gòu)圖。它包含兩個(gè)輸入緩沖器、一個(gè)輸出鎖存器以及輸出驅(qū)動(dòng)電路、輸出控制電路。輸出驅(qū)動(dòng)電路由兩只場效應(yīng)管V1和V2組成,其工作狀態(tài)受輸出控制電路的控制。輸出控制電路包括與門、反相器和多路模擬開關(guān)MUX。P0口既能用作通用I/O口,又能用作地址/數(shù)據(jù)總線。
2)作為通用I/O口
P0口作為通用I/O口使用時(shí),CPU令控制信號為低電平。這時(shí)多路開關(guān)MUX接通B端即輸出鎖存器的 端,同時(shí)使與門輸出低電平,場效應(yīng)管V1截止,因而輸出級為開漏輸出電路。
?、僮鳛檩敵隹?/p>
當(dāng)用P0口輸出數(shù)據(jù)時(shí),寫信號加在鎖存器的時(shí)鐘端CL上,此時(shí)與內(nèi)部總線相連的D端其數(shù)據(jù)經(jīng)反相后出現(xiàn)的 端上,再經(jīng)V2管反相,于是在P0口引腳上出現(xiàn)的數(shù)據(jù)正好是內(nèi)部總線上的數(shù)據(jù)。由于輸出級為開漏電路,所以用作輸出口時(shí)應(yīng)外接上拉電阻。
?、谧鳛檩斎肟?/p>
當(dāng)P0口用于輸入數(shù)據(jù)時(shí),要使用端口中的兩個(gè)三態(tài)輸入緩沖器之一。這時(shí)有兩種工作方式:讀引腳和讀鎖存器。
當(dāng)CPU執(zhí)行一般的端口輸入指令時(shí),“讀引腳”信號使圖2-4中下面一個(gè)緩沖器開通,于是端口引腳上的數(shù)據(jù)經(jīng)過緩沖器輸入到內(nèi)部總線上。
當(dāng)CPU執(zhí)行“讀一修改一寫”一類指令時(shí),“讀鎖存器”信號使圖2-4上面一個(gè)緩沖器開通,鎖存器Q端的數(shù)據(jù)經(jīng)緩沖器輸入內(nèi)部數(shù)據(jù)總線。
在P0口作為輸入口使用時(shí),必須首先向端口鎖存器寫入“1”。這是因?yàn)楫?dāng)進(jìn)行讀引腳操作時(shí),如果V2是導(dǎo)通的,那么不論引腳上的輸入狀態(tài)如何,都會變?yōu)榈碗娖健榱苏_讀入引腳上的邏輯電平,先要向鎖存器寫1,使其 端為0,V2截止。該引腳成為高阻抗的輸入端。
3)作為地址/數(shù)據(jù)總線
P0口還能作為地址總線低8位或數(shù)據(jù)總線,供系統(tǒng)擴(kuò)展時(shí)使用。這時(shí)控制信號為高電平,多路開關(guān)MUX接通A端。有兩種工作情況:一種是總線輸出,另一種是外部
數(shù)據(jù)輸入。作為總線輸出時(shí),從“地址/數(shù)據(jù)”端輸入的地址或數(shù)據(jù)信號通過與門驅(qū)動(dòng)V2,同時(shí)通過非門驅(qū)動(dòng)V2,結(jié)果在引腳上得到地址或數(shù)據(jù)輸出信號。
作為數(shù)據(jù)總線輸入數(shù)據(jù)時(shí),從引腳上輸入的外部數(shù)據(jù)經(jīng)過讀引腳緩沖器進(jìn)入內(nèi)部數(shù)據(jù)總線。對于80C51、87C51單片機(jī),P0口能作為I/O口或地址/數(shù)據(jù)總線使用。對于80C31單片機(jī),P0口只能用作地址/數(shù)據(jù)總線。
綜上所述,P0口既可以作為地址/數(shù)據(jù)總線口,這時(shí)它是真正的雙向口,也可作通用的I/O口,但只是一個(gè)準(zhǔn)雙向口。準(zhǔn)雙向口的特點(diǎn)是:復(fù)位時(shí),口鎖存器均置“1”,8根引腳可當(dāng)一般輸入線使用,而在某引腳由原輸出狀態(tài)變成輸入狀態(tài)時(shí),則應(yīng)先寫入“1”,以免錯(cuò)讀引腳上的信息。一般情況下,P0口已當(dāng)作地址/數(shù)據(jù)總線口使用時(shí),就不能再作通用I/O口使用。
(2)P1口組成與功能
P1口只用作通用I/O口,其一位結(jié)構(gòu)圖如圖所示。與P0口相比,P1口的位結(jié)構(gòu)圖中少了地址/數(shù)據(jù)的傳送電路和多路開關(guān),上面一只MOS管改為上拉電阻。
P1口作為一般I/O的功能和使用方法與P0口相似。當(dāng)輸入數(shù)據(jù)時(shí),應(yīng)先向端口寫“1”。它也有讀引腳和讀鎖存器兩種方式。所不同的是當(dāng)輸出數(shù)據(jù)時(shí),由于內(nèi)部有了上拉電阻,所以不需要再外接上拉電阻。
?。?)P2口的組成與功能
當(dāng)系統(tǒng)中接有外部存儲器時(shí),P2口可用于輸出高8位地址,若當(dāng)作通用I/O口用,P2口則是一個(gè)準(zhǔn)雙向口。因此說P2口能用作通用I/O口或地址總線,其一位的結(jié)構(gòu)如圖所示。
?、僮鳛橥ㄓ肐/O口
當(dāng)控制信號為低電平時(shí),多路開關(guān)接到B端,P2口作為通用I/O口使用,其功能和使用方法與P1口相同。
?、谧鳛榈刂房偩€
當(dāng)控制端輸出高電平時(shí),多路開關(guān)接到A端,地址信號經(jīng)反相器、V從引腳輸出。這時(shí)P2口輸出地址總線高8位,供系統(tǒng)擴(kuò)展使用。
對80C51、87C51單片機(jī),P2口能作為I/O口或地址總線作用。對于80C31單片機(jī),P2口只能用作地址總線。
?。?)P3口組成與功能
P3口能作通用I/O口,同時(shí)每一引腳還有第二功能。P3口的一位結(jié)構(gòu)如圖2-7所示。
作為通用I/O口:當(dāng)“第二功能輸出”端為高電平時(shí),P3口用作通用I/O口。這時(shí)與非門對于輸入端Q來說相當(dāng)于非門,位結(jié)構(gòu)與P2口完全相同,因此P3口用作通用I/O口時(shí)的功能和使用方法與P2口、P1口相同。
用作第二功能: 當(dāng)P3口的某一位作為第二功能輸出使用時(shí),應(yīng)將該位的鎖存器置“1”,使與非門的輸出狀態(tài)只受“第二功能輸出”端的控制。“第二功能輸出”端的狀態(tài)經(jīng)與非門和驅(qū)動(dòng)管V輸出到該位引腳上。
當(dāng)P3口的某一位作為第二功能輸入使用時(shí),該位的鎖存器和“第二功能輸出”端都應(yīng)為“1”,這樣,該位引腳上的輸入信號經(jīng)緩沖器送入“第二功能輸入”端。
至此,可以對組成一般單片機(jī)應(yīng)用系統(tǒng)時(shí)各個(gè)并行口的分工小結(jié)如下:
P0口:分時(shí)的用作地址低8位與數(shù)據(jù)線,低8位地址由PC低8位或DPL提供。
P1口:按位可編址的輸入輸出口。
P2口:地址線的高8位,高8位地址由PC高8位或DPH提供。
P3口:雙功能口,若不用第二功能,可作為一般的I/O口。
80c51單片機(jī)的基本配置有哪些 80c51單片機(jī)各個(gè)引腳及功能
CPU:80C51單片機(jī)的CPU由一個(gè)8位的ALU(算術(shù)邏輯單元)、一個(gè)8位的累加器、一個(gè)8位的B寄存器、一個(gè)16位的程序計(jì)數(shù)器和一個(gè)8位的狀態(tài)寄存器組成。
80c51單片機(jī)的控制總線信號有哪些 80c51單片機(jī)特點(diǎn)
些控制總線信號是80C51單片機(jī)與外部設(shè)備進(jìn)行數(shù)據(jù)交換、地址傳輸和中斷響應(yīng)等操作的基礎(chǔ)。在具體的電路設(shè)計(jì)中,需要合理利用這些控制總線信號,實(shí)現(xiàn)單片機(jī)與外...
80c51是幾位單片機(jī) 80c51單片機(jī)有幾個(gè)中斷源
80C51是一種8位微處理器,也被稱為8051,由Intel公司推出。它是最早的商用單片機(jī)之一,由于它的簡單易用、靈活可靠,被廣泛應(yīng)用于許多嵌入式系統(tǒng)中...
2023-03-31 標(biāo)簽:單片機(jī)嵌入式系統(tǒng)微處理器 6748 0
一文詳解80C51系列單片機(jī)的定時(shí)/計(jì)數(shù)器
在單片機(jī)的實(shí)際應(yīng)用系統(tǒng)中,經(jīng)常會使用到精確延時(shí),定時(shí)掃描,統(tǒng)計(jì)事件的發(fā)生次數(shù)和長生一定頻率的聲音等功能。
2022-11-18 標(biāo)簽:單片機(jī)計(jì)數(shù)器80C51 7393 0
數(shù)據(jù)傳送是單片機(jī)最基本的操作。數(shù)據(jù)傳送的一般功能是將源操作數(shù)傳送到指令所指定的目的操作數(shù),指令執(zhí)行后,源操作數(shù)不變。
指令是指示計(jì)算機(jī)執(zhí)行某種操作的命令,計(jì)算機(jī)能識別執(zhí)行的只能是二進(jìn)制代碼,以二進(jìn)制代碼來描述指令功能的語言,稱為機(jī)器語言。
2022-11-15 標(biāo)簽:單片機(jī)指令系統(tǒng)80C51 4071 0
80C51單片機(jī)的總線結(jié)構(gòu)、邏輯結(jié)構(gòu)及內(nèi)部結(jié)構(gòu)
MCS-51是Intel公司生產(chǎn)的一個(gè)單片機(jī)系列名稱,該系列生產(chǎn)工藝有HMOS和CHMOS這兩種,CHMOS是CMOS和HMOS的結(jié)合,既保持了HMOS...
80C51單片機(jī)片內(nèi)與片外程序存儲器的選擇
大多數(shù)51系列單片機(jī)內(nèi)部都配置一定數(shù)量的程序存儲器ROM。如80C51芯片內(nèi)有4KB掩模ROM存儲單元,AT89C51芯片內(nèi)部配置了4KB Flas...
微控制器MG74PG1B08英文數(shù)據(jù)手冊立即下載
類別:IC datasheet pdf 2022-07-01 標(biāo)簽:微控制器80C51
單芯片微控制器MG74PG1A08英文數(shù)據(jù)手冊立即下載
類別:IC datasheet pdf 2022-07-01 標(biāo)簽:微控制器cpu80C51
單片機(jī)MG87FEL52數(shù)據(jù)手冊立即下載
類別:單片機(jī) 2022-06-20 標(biāo)簽:單片機(jī)計(jì)數(shù)器80C51
入門學(xué)習(xí)時(shí)一般選擇80C51系列單片機(jī),主要原因如下。
80C51單片機(jī)共有40個(gè)引腳,其中有2個(gè)是電源引腳,2個(gè)外接晶體振蕩器引腳,4個(gè)控制引腳,還有四個(gè)端口(P0~P3),共32個(gè)輸入輸出引腳,如圖所示。
BCD碼輸出靜態(tài)顯示電路圖如下圖所示。CD4511是BCD碼七段共陰譯碼/驅(qū)動(dòng)IC; 4511是4線-7段鎖存/譯碼/驅(qū)動(dòng)電路,能將BCD碼譯成7段顯示...
本文將介紹三種非常規(guī)擴(kuò)展復(fù)位方式:軟件復(fù)位(SWR,software reset)、軟硬件復(fù)位(SHR,software and hardware re...
2011-12-27 標(biāo)簽:80C51復(fù)位技術(shù) 3067 0
80C51虛擬指令執(zhí)行系統(tǒng)的設(shè)計(jì)
本文詳細(xì)介紹了虛擬80C51指令執(zhí)行系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),文章給出的方法也適用于存儲空間和指令規(guī)模與80C51相似的單片機(jī)指令系統(tǒng)
仿真的概念其實(shí)使用非常廣,最終的含義就是使用可控的手段來模仿真實(shí)的情況。
編輯推薦廠商產(chǎn)品技術(shù)軟件/工具OS/語言教程專題
電機(jī)控制 | DSP | 氮化鎵 | 功率放大器 | ChatGPT | 自動(dòng)駕駛 | TI | 瑞薩電子 |
BLDC | PLC | 碳化硅 | 二極管 | OpenAI | 元宇宙 | 安森美 | ADI |
無刷電機(jī) | FOC | IGBT | 逆變器 | 文心一言 | 5G | 英飛凌 | 羅姆 |
直流電機(jī) | PID | MOSFET | 傳感器 | 人工智能 | 物聯(lián)網(wǎng) | NXP | 賽靈思 |
步進(jìn)電機(jī) | SPWM | 充電樁 | IPM | 機(jī)器視覺 | 無人機(jī) | 三菱電機(jī) | ST |
伺服電機(jī) | SVPWM | 光伏發(fā)電 | UPS | AR | 智能電網(wǎng) | 國民技術(shù) | Microchip |
Arduino | BeagleBone | 樹莓派 | STM32 | MSP430 | EFM32 | ARM mbed | EDA |
示波器 | LPC | imx8 | PSoC | Altium Designer | Allegro | Mentor | Pads |
OrCAD | Cadence | AutoCAD | 華秋DFM | Keil | MATLAB | MPLAB | Quartus |
C++ | Java | Python | JavaScript | node.js | RISC-V | verilog | Tensorflow |
Android | iOS | linux | RTOS | FreeRTOS | LiteOS | RT-THread | uCOS |
DuerOS | Brillo | Windows11 | HarmonyOS |