



版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
5I實驗開發平臺的使用手冊TOC\o"1-5"\h\z一?概述 1\o"CurrentDocument"二.此實驗開發平臺的硬件資源 2\o"CurrentDocument"三.52單片機的發展介紹 3\o"CurrentDocument"四.52單片機的硬件體系結構 4五.基本實驗 (-).通用10的實驗 P1ロ的輸入輪出應用(一)硬件設計 程序設計 L3調試仿真 硬件平臺實驗 P1口的輸入豳出應用(二)!硬件設計 2程序設計 3調試仿真 4硬件平臺實驗 8255A的輸入輸出應用(一)!硬件設計 2程序設計 3調試仿真 4硬件平臺實驗 8255A的輸入輸出應用(二)!硬件設計 2程序設計 3調試仿真 4硬件平臺實驗 5.并行口直接驅動LED顯示1硬件設計 2程序設計 3調試仿真 4硬件平臺實驗 .動態掃描1硬件設計 2程序設計 3調試仿真 4硬件平臺實驗 .靜態串行顯示技術1硬件設計 2程序設計 3調試仿真 7.4硬件平臺實驗 .8255A擴展矩陣鍵盤1硬件設計 2程序設計 3調試仿真 4硬件平臺實驗 .用單片機IO口擴展矩陣鍵盤(一)1硬件設計 2程序設計 3調試仿真 4硬件平臺實驗 .用單片機IO口擴展矩陣鍵盤(二)硬件設計 程序設計 調試仿真 4硬件平臺實驗 .〇~59秒的計時器(軟件延時)硬件設計 2程序設計 調試仿真 硬件平臺實驗 (二)?外部中斷的實驗 2.1實驗說明 2.2原理圖 2.3仿真文件 2.4硬件平臺實驗 (三).內部定時器的實驗 .定時/計數器〇作定時的實驗(一)實驗說明 原理圖 仿真文件 硬件平臺實驗 .定時/計數器〇作定時的實驗(一)1實驗說明 2原理圖 3仿真文件 4硬件平臺實驗 (四).串行口通訊實驗 AT89s52與PC機串行通訊實驗實驗說明 原理圖 仿真文件 硬件平臺實驗 (五).存儲器擴展 .外部數據存儲器的擴展應用(一) 實驗說明 原理圖 13仿真文件 硬件平臺實驗 .外部數據存儲器的擴展應用(二) 實驗說明 原理圖 仿真文件 硬件平臺實驗 .外部程序存儲器的擴展應用(一) 實驗說明 原理圖 仿真文件 硬件平臺實驗 .外部程序存儲器的擴展應用(二) 實驗說明 原理圖 仿真文件 硬件平臺實驗 .HC存儲器的擴展 實驗說明 原理圖 仿真文件 硬件平臺實驗 (六)?模數轉換接口的擴展 .摸數轉換接口的擴展(一)實驗說明 原理圖 仿真文件 硬件平臺實驗 .模數轉換接口的擴展(二)實驗說明 原理圖 仿真文件 硬件平臺實驗 .模數轉換接口的擴展(三)實驗說明 原理圖 仿真文件 硬件平臺實驗 (七)?數模轉換接口的擴展 實驗說明 原理圖 仿真文件 硬件平臺實驗 (ハ)?外部定時器的擴展 .!實驗說明 原理圖 仿真文件 硬件平臺實驗 (九).LCD顯示器的擴展 LCD顯示器的直接控制實驗實驗說明 原理圖 仿真文件 硬件平臺實驗 LCD顯示器的間接控制實驗實驗說明 原理圖 仿真文件 硬件平臺實驗 (十).PWM輸出 1.1實驗說明 1.2原理圖 13仿真文件 14硬件平臺實驗 六.附錄(一).51匯編指令集(―).光盤中的內容介紹此使用手冊中的每個實驗都分為實驗說明、原理圖、Porteus的軟件仿真文件、源程序清單(匯編語言和C語言)、硬件平臺實驗幾部分。--實驗說明:此實驗的簡要介紹。二.原理圖:此實驗電路的原理圖。三.Porteus的軟件仿真文件:按此實驗電路的原理圖在Porteus電子仿真軟件中搭建的軟件仿真平臺。四.源程序:此實驗的源程序將給出匯編語言和C語言兩個版本的源程序清單。五.硬件平臺實驗:此實驗在硬件開發平臺上的演示。六.本使用手冊中的所有源程序都是通過Keil編譯、調試。此使用手冊將帶領單片機愛好者由淺入深的學習51單片機。二實驗開發平臺的硬件資源此實驗開發平臺是以AT89S52為核心的實驗開發平臺。此實驗開發平臺主要分為兩部分,開發評估主板,開發評估子板。-. 開發評估主板的硬件資源:此開發主板是以AT89s52的最大系統板,充分發揮了AT89S52的10擴展功能,開發主板上有三個IO擴展插槽,用于以總線接口的方式擴展各種IO芯片。另外還有四個存儲擴展插槽,可以外擴兩組數據和兩組程序存儲器。IIC擴展插槽可以擴展4片AT24C512的HC存儲器(64KX4),可用于大量數據的存儲。(づ。通用IOロ1.GPIO2:AT89s52的PL〇?P1.7。(-)o存儲器擴展接口.數據存儲器擴展接口此實驗開發主板可以擴展56KB的數據存儲器,地址空間從0x000〇?OxEFFF。.程序存儲器擴展接口此實驗開發主板可以擴展56KB的程序存儲器,地址空間從OxOOOO-OxEFFF,.IIC存儲器擴展接口此實驗開發主板上擴展了56KB的IIC存儲器,可以作為臨時數據的轉存器。(三)存儲映射!O的擴展接口存儲映射!O就是將外部IO的接口數據端口和命令端口統一映射在64KB的數據存儲器空間內。程序對IO端口的讀寫就象對數據存儲器的讀寫是ー樣的。存儲映射!O可以擴展更多的外部IO器件,可以節省單片機的通用!O口。存儲映射的通用IO端口此實驗開發主板用8255A擴展的24個通用!O口。PA〇?PA7、PB〇?PB7、PC0?PC7。ADC擴展接口此實驗開發主板上用ADC0809擴展了4路的8位的ADC模數轉換通道。DAC擴展接口此實驗開發主板上用DAC0832擴展了1路的8位的DAC通道。LCD擴展接口此實驗開發主板上擴展了T6963c的LCD顯示接口(直接控制)。(四)外部中斷的輸入端口AT89C52的P3.2(INTO),AT89c52的P3.3(INTI),(五)內部定時器計數器的輸入輸出端口AT89C52的P3.4(TO),AT89C52的P3.5(T1),(六)RS232的串行通訊端口二.開發評估子板的硬件資源DS1032時實時鐘AT24c512的IIC的數據存儲器。128X64點陣LCD顯示器,兩組LED數碼管的顯示。RS232的串行通訊端口,4X4的矩陣式鍵盤,三52單片機的發展介紹
四52單片機的硬件體系結構(-)概述AT89S52是ー款8位的片上系統,片上集成了一個8位的MCU,8KB的FLASH程序存儲器,256字節的SRAM靜態數據存儲器,3個16位的定時器。32個通用IO口分為四組PO、Pl、P2、P3,其中8KB的FLASH程序存儲器可以進行ISP的在線編程。這樣ー來就可以不用購買專業的編程器,可以降低開發的成本,在使用TQFP封裝的芯片時可以很方便的將程序的可執行鏡象下載到AT89S52的片上FLASH中。(二)AT89s52各個IO的功能說明(PACKAGE:TQFP44):管腳編號名稱第一功能第二功能1P1.5(MOSI)通用IOロSPI的數據輸入端2P1.6(MISO)通用IOロSPI的數據輸出端3P1.7(SCK)通用IOロSPI的時鐘輸入輸出端4RESET系統的復位信號無5P3.0(RXD)通用IOロ串行口的數據輸入端6NC無連接7P3.KTXD)通用ion串行口的時鐘輸出端8P3.2(INT0)通用ioロ外部中斷〇的輸入端9P3.3(INT1)通用IOロ外部中斷1的輸入端10P3.4(T0)通用IOロT0外部計數信號的輸入端11P3.5(T1)通用IOロT1外部計數信號的輸入端12P3.6(WR)通用ion外部數據存儲器的寫信號13P3.7(RD)通用IOロ外部數據存儲器的讀信號14XTAL1晶振反向放大器的輸出端15XTAL2晶振反向放大器的輸入端16GND數字地17GND數字地18P2.0(A8)通用ion高8位地址線A819P2.1(A9)通用IOロ高8位地址線A920P2.2(A10)通用IOロ高8位地址線AI021P2.3(A11)通用IOロ高8位地址線All22P2.4(A12)通用IOロ高8位地址線AI223P2.5(A13)通用IOロ高8位地址線A1324P2.6(A14)通用IOロ高8位地址線A1425P2.7(A15)通用IOロ高8位地址線A1526PSEN外部程序存儲器的讀取信號27ALE/PROG低8位地址的鎖存信號并口編程信號28NC無連接29EA/VPP內部外部程序讀取切換信號。外部程序存儲器。高:讀內部程序存儲器。低:讀30P0.7(AD7)通用IOロ低8位地址線A7兼數據總線D731P0.6(AD6)通用IOロ低8位地址線A6兼數據總線D632P0.5(AD5)通用IOロ低8位地址線A5兼數據總線D533P0.4(AD4)通用IOロ低8位地址線A4兼數據總線D434P0.3(AD3)通用IOロ低8位地址線A3兼數據總線D335P0.2(AD2)通用IOロ低8位地址線A2兼數據總線D236PO.l(ADl)通用IOn低8位地址線AI兼數據總線DI37PO.O(ADO)通用IOロ低8位地址線A0兼數據總線D038VCC系統的電源輸入(4.5-5.5V)39NC無連接40P1.0(T2)通用IOロT2定時器的外部計數輸入端41P1.KT2EX)通用IOロT2定時器的外部觸發輸入端42Pl.2通用IOロ43P13通用IOロ44Pl.4通用IOロ(三)AT89s52的存儲器地址空間映射:AT89S52的存儲器是采用哈佛總線結構設計的,AT89S52的最大尋址空間可以達到64KB。AT89S52的數據存儲器和程序存儲器的地址空間在邏輯上是重疊的但在物理上是分開的。所以,AT89S52用兩套不同的讀寫邏輯時序來控制區分數據存儲器和程序的選通以及讀寫。AT89s52的內部數據存儲器AT89S52的內部數據存儲器有256個字節,這256個字節的低128字節的靜態SRAM存儲器可以用直接尋址方式來訪問。髙128字節的存儲區只能用間接尋址方式來訪問,如果用直接尋址方式來訪問片內的髙128字節的數據存儲區系統會認為是在訪問AT89S52的特殊功能寄存器。因為特殊功能寄存器的地址空間和內部數據存儲器髙128字節的地址在邏輯上是重疊的但在物理上是分開的,所系統采用不同尋址方式來區分是對髙128字節的內部數據存儲器的訪問還是對特殊功能寄存器的訪問。以下是特殊功能寄存器在內部數據存儲器空間的鏡象:0 1 2 3 4 5 6 70F8H0F0HB000000000E8H0E0HACC000000000D8H
ODOH0PSW00000000123456 70C8HT2CON00000000T2MODUUUUUUOIRCAP2L)00000000RCAP2H00000000TL200000000TH200000000OCOH0B8HIPUU000000OBOHP3111111110A8HIEouooooooOAOHP211111111AUXR1uuuuuuuoWDTRSTUUUUUUUU98HSCON00000000SBUFuuuuuuuu90HPl1111111188HTCON00000000TMOD00000000TL000000000TL100000000TH00000(M)00TH100000000AUXRuuuoouuo80HP011111111SP00000111DP0L00000000DP0H00000000DP1L00000000DP1H00000000PCONouuuooooAT89s52的外部數據存儲器AT89S52的外部數據存儲器空間為64KB,AT89S52是通過外部數據指針DPTR對外部數據存儲器進行訪問。通過DPTR對外部數據存儲器訪問時相應的讀寫邏輯控制信號管腳會有相應的輸出。外部數據訪問時會占用更多的CPU機械周期。AT89s52的程序存儲器AT89S52的程序存儲器空間為64KB.AT89s52通過EA輸入電平的髙低來區分對內部程序存儲器和外部程序存儲器的讀取。當EA為髙電平時AT89S52從內部程序存儲器取指令,當程序計數器PC的地址超過內部程序存儲器的最髙地址時程序的執行自動轉向外部程序存儲器去取指令,外部程序存儲器讀取邏輯的控制信號管腳也會有相應的輸出。EA為低電平時AT89s52從只外部程序存儲器取指令。以下是AT89s52單片機的數據存儲器和程序存儲器的地址空間的分配示意圖:程序存儲器空間 外部數據存儲器空間+ +0x0000 + F0x000011111111111111114-0xlFFF | |I |0x2000 | |從整體上看程序存儲器和數據存儲器地址空間在邏輯上是重疊的,都是從0x0000~0xFFFF,其中程序存儲器地址空間0x0000-0x1FFF是由內部程序存儲器和外部程序存儲器共享的,地址從0x20000~0xFFFF是外部程序存儲器獨占的地址空間。AT89S52的外部數據存儲器最大尋址空間為64KB(0x000〇?OxFFFF)。外部數據存儲器在編程時只能用外部數據指針DPTR訪問。向外部數據存儲器中寫入數據的匯編源程序如下所示:1> ADDR EQU0E000H 淀義外部數據存儲器地址常量2> ORG 0000H3> LJMP START4> ORG 0030H ;讓主程序起始地址跳過系統中斷向量5>START:MOVDPTR,#ADDR;將外部數據存儲器的地址寫入外部數據指針DPTR6>MOVA,#DATA ;將要寫如的數據存入累加器A7>MOVX@DPTR,A ;將數據寫入外部數據存儲器8>END ;程序結束向外部數據存儲器中寫入數據的匯編源程序如下所示:1>ADDREQU0E000H ;定義外部數據存儲器地址常量2>ORG0000H3>LJMPSTART4>ORG0030H ;讓主程序起始地址跳過系統中斷向量5>START:MOVDPTR,#ADDR;將外部數據存儲器的地址寫入外部數據指針DPTR<6>MOVXA,@DPTR ;從外部數據存儲器讀入數據到累加器A7>END ;程序結束以上是對AT89s52的存儲器地址空間映射進行了詳細的介紹,在AT89S52的中不同存儲器地址空間的尋址方式有所不同,具體尋址防止請參閱AT89S52的用戶數據手冊(本開發手冊附帶的光盤中有AT89S52的中文用戶手冊)。(四)AT89s52的中斷系統AT89s52作為ー個8位的片上系統(SYSTEMONCHIP-SOC)自然不能缺中斷控制系統。AT89s52ー共有6個中斷源分別是外部中斷0(INTO),定時器〇(TIMER。)外部中斷1(INT1),定時器1(TIMER1),串行中斷(SERIES),定時器2(TIEMER2).6個中斷源可以編程設置成2個中斷優先級即髙優先級和低優先級。在程序的執行時髙優先級的中斷源的中斷服務函數可以中斷低優先級的中斷源的中斷服務函數。處在同一優先級的中斷源的優先順序由下表確定。編號名稱中斷向量地址0INTO0002H1TIEMR00004H2INTI0006H3TIMERI0008H4SERIES000CH5TIMER2000EH在對AT89S52的中斷系統進行編程的時候,如果中斷源的中斷服務程序代碼量少,可以直接將中斷服務程序固化在相應中斷源的中斷向量地址處。如果代碼量超過兩個字節,可在相應中斷源的中斷向量地址處添加一個絕對跳轉指令,將中斷服務函數主體固化在程序存儲器的其他地方這樣,中斷服務函數的長度就沒有限制了。例如用中斷的方式使AT89S52的P1.0ロ50亳秒進行一次狀態切換,其匯編程序如下:<1>ORG0000H<2>LJMPSTART<3>ORG00004H;定時器T。中斷向量地址<4>LJMPTIMER。ー!NT;定時器TO中斷服務函數的入口點<5>START:<6>MOVSP,#60H;初始化系統堆棧在60H<7>MOVTMOD,#02;使定時器工作在方式2(16位定時器方式)<8>MOVTHO,#3CH;初始化定時器T0計數值的低位字節<9>MOVTLO,#AFH;初始化定時器T0計數值的髙位字節<10>SETBETO;使能定時器〇的中斷<11>SETBEA;開總中斷控制位<12>SETBTRO;啟動定時器T0<13>JMP$;執行無限循環,等待定時器T0的中斷
<14>TIMER0_INT:;定時器TO中斷服務函數主體<15>CLRTR0;停止定時器TO<16>MOVTH0,#3CH;重新初始化定時器TO計數值的低位字節<17>MOVTL0,#AFH;重新初始化定時器TO計數值的髙位字節<18>CPLP1.0;使P1.0的輸出狀態翻轉<19>SETBTRO;重新啟動定時器TO<20>RETI;中斷返回<21>END以上是中斷服務函數的編寫規范。注意任何中斷服務函數的返回指令都要用RETI(見以上例子程序第19行)。現將跟中斷系統有關的寄存器介紹如下:寄存器名稱功能描述IE中斷使能寄存器具體配置請參看AT89S52的用戶使用手冊。(五)AT89s52的片上外設AT89s52有豐富的片上外設,其中包括32個通用IOロ(GPIO)?三個16位的定時計數器(TIMER。、TIMERI,TIMER2)?一個全雙工的串行口(UART),一個同步串行接ロ(SPI)?一個片上的看門狗定時器(WDT)。1.通用!OロP0ロP0是ー組8位漏極開路型雙向IOロ,也即地址數據總線復用口。做為輸出口用時,每位能吸收電流的方式驅動8個TTL邏輯門電路,對端口P0寫“1”時,可作為髙阻抗的輸入端用。在訪問外部數據存儲器和外部程序存儲器時,這組口線分時轉換地址(低8位)和數據總線復用,在訪問期間激活內部上拉電阻。P!ロP1口是ー個內部帶上拉電阻的8位雙向IOロ,P1的輸出緩沖級可以驅動(吸收輸出電流)4個TTL邏輯門電路。對端口寫“ド,通過內部上拉電阻把端口拉到髙電平,此時可作輸入口。作輸入口使用時,因為內部存在上拉電阻,某個引腳被外部信號拉低時會輸出ー個電流(皿)。與AT89C51不同的是,P1.0和PL1還分別為定時/計數器2的外部計數輸入(P1.0/T2)和輸入(P1.1/T2EX)。P15ヽPl.6、P1.7還做為SPI接ロ的SPI數據輸入,SPI數據輸出,以及SPI的時鐘。參見下表。引腳名稱功能特性P1.0T2外部脈沖計數輸入,時鐘輸出P1.1T2捕獲/重裝載觸發和方向控制P1.5MOSI(SPI)P1.6MISO(SPI)P1.7SCK(SPI)P2ロP2口是一個內部帶上拉電阻的8位雙向IOロ,P2的輸出緩沖級可以驅動(吸收輸出電流)4個TTL邏輯門電路。對端口寫“1”,通過內部上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因為內部存在上拉電阻,某個引腳被外部信號拉低時會輸出ー個電流(Iil).在訪問外部程序存儲器或16位地址的外部數據存儲器(例如執行MOVX@DPTR,A)指令時,P2口送出高8位地址數據。在訪問8位地址的外部數據存儲器(如執行MOVX@DPTR,@RI)指令時,P2口輸出P2鎖存器的內容。P3ロP3口是一個內部帶上拉電阻的8位雙向IOロ,P3的輸出緩沖級可以驅動(吸收輸出電流)4個TTL邏輯門電路。對端口寫“1”,通過內部上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因為內部存在上拉電阻,某個引腳被外部信號拉低時會輸出ー個電流(皿)。P3口除作為一般IO口線外,更重要的月う途是它的第二功能,如下表所示:引腳名稱第二功能P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2INTO(外部中斷〇)P3.3INT1(外部中斷!)P3.4TO(定時/計數器〇)P3.5T1(定時/計數器1)P3.6WR(外部數據存儲器寫選通)P3.7RD(外部數據存儲器讀選通)2.定時計數器(TIMER)(1)定時計數器0/1(TIMER0/1)定時計數器0和定時計數器1是兩個相同的!6位定時計數器最大的計數值為65536。而定時計數器1還用做串行通信的波特率發生器使用(具體的使用方法見AT89S52的用戶使用手冊)。現將與定時計數器0/1相關的寄存器介紹如下:寄存器名稱功能描述TMOD定時計數器0/1工作方式寄存器TCON定時計數器0/1中斷標志寄存器具體配置請參看AT89S52的用戶使用手冊。(2)定時計數器2(TIMER2)定時計數器2是52系列單片機新添加的片上外設,定時計數器2除了具有定時計數器T1的全部功能以外,還具有捕獲模式。現將與定時計數器2相關的寄存器介紹如下:寄存器名稱功能描述T2MOD定時計數器2工作方式寄存器T2CON定時計數器2中斷標志寄存器具體配置請參看AT89s52的用戶使用手冊。.串行口(UART)AT89S52片上具有一個異步的通訊串口,可以編程配置在各種波特率下通信。常用的通訊速率有1200bit/s、2400bit/s、4800bit/s、9600bit/s。串行口通訊所用的波特率由定時器計數器T1或定時計數器T2產生。現將與串行ロ相關的寄存器介紹如下:寄存器名稱功能描述SMOD串行口工作方式寄存器SBUF串行口數據寄存器PCON.7波特率倍增位具體配置請參看AT89S52的用戶使用手冊。.看門狗定時器(WDT)系統設定看門狗定時器主要是為了防止程序意外跑飛。如果系統使用了看門狗,那麼就要在系統程序中適當的地方在看門狗定時器溢出前不斷用指令復位一下看門狗定時器,不然看門狗定時器的溢出會導至整個單片機系統的硬件復位。也就是說程序在看門狗定時器設定的溢出時間內如果沒有用指令去人為的復位看門狗定時器,那麼看門狗定時器就認為程序已經跑飛了,看門狗定時器就使整個單片機系統復位,使程序計數器PC的值初始化成0x0000。使程序從第一條指令開始執行。現將與看門狗定時器相關的寄存器介紹如下:寄存器名稱功能描述WDTRST看門狗定時器復位寄存器AUXR其中的一個位為看門狗使能位具體配置請參看AT89S52的用戶使用手冊。以上對AT89S52的硬件體系結構做了一個簡要的介紹,初學者讀完以上內容后應該對AT89S52有一個初步的認識了。接下來將通過具體的軟件仿真和硬件平臺的實驗來進ー步學習AT89S52的各個功能模塊。五基本實驗(一)通用IO實驗P1ロ的輸入/輸出應用(一)用P1ロ作輸出口,接8位用作邏輯電平顯示的發光二極管。設計程序,使發光二極管循環輪流點亮。硬件設計打開ProteusISIS編輯環境,按表レ3-I所列的清單添加元件。虛擬元件名稱所屬類所屬子類AT89C52MicroprocessorICs8051FamilyCAPCapacitorsGenericCAP-ELECCapacitorsGenericCRYSTALMiscellaneous— —RESResistorsGeneric74LS373TTL74LSSeriesFlip-Flops&LatchesLED-YellowOptoelectronicsLEDs全部虛擬元件添加完畢后,在ProteusISIS的編輯區中按下面電路原理圖連接硬件電路。TCCfCCPO.O/ADOき-PO.1/AD!嘰?PO.2/AD2嚕"PO.3/AD3若PO.4/AD4-*2-PO.5/AD5PO.6/ADAPO.T/AD7P2.0/A8博P2.1/A9P2.2/AIOP2.3/A11昜P2.4/A12音P2.5/AI3P2.6/A14-=?P2.T/A15 I.2程序設計Plロ是標準雙向口,它作為輸出口使用時與一般的雙向口使用方法相同。由準雙向口可知,當P!口作輸入口時,必須先對ロ的鎖存器寫“I”,若不先寫“1”,讀入的數據是不正確的。1.2.1程序流程圖
▼1.2.2源程序清單匯編程序:ORGOOHLOOP:MOVA,#0FEH;賦初始值MOVR2,#8;設置計數值OUTPUT:MOVPl,A;送Plロ
RLA;數據位移ACALLDELAYDJNZR2,OUTPUTLJMPLOOPDELAY: MOVR6,#0;延時子程序MOVR7,#0DELAYLOOP:DJNZR6,DEALYLOOPDJNZR7,DELAYLOOPRETENDC語言程序:#include<AT89x52.h>#defineOUTPUTPlunsignedcharidatatemp=OxFE;
unsignedchari=0x00;/*函數名稱:voiddelay(unsignedintN)函數說明:按傳入的參數延時一段時間輸入參量:unsignedN輸出參量:無サvoiddelay(unsignedintN)(unsignedintj;forQ=0;j<N;j++)}/*函數名稱:主函數*/voidmain()(while(1)(for(i=0;i<8;i++)(〃送Plロ/Z〃送Plロ/Z數據位移/Z延時/Z重置位移計數器)i=0x00;I}3調試仿真LED-YELLOW LED-YELLOW.??xTEXT>-??R2■■?姆.匚,,?TEXT>,?LED-YELLOWU2LED-YELLrnni,LED-YELLOWiTEXr>..74LS373.I-!./TEXT>XTM1XTX2RSTPSENCE曰P1D/T2P1.1/T2EXP0.WMDPO1/AD1PO.2/AD2PO.初MAPO4M4P0.5/M5P0.6/AO6P0.7/AD7P2.0/Z?P2WMP22/A10P2.3/A11P2.4/A12P2.5/A13P26/A14P27/A15P3.0/RXDP3.1/TXDP3.2/IWP3.37iNTTP3.4ZTDP3.5/T1P3.6初P37頹彊出遙?!豈彊霧豊霧蟄ユ甥謚ユハーU1ハ.CRYST#LED-YELLOUW..ATBQC52R1IOk?<TEKT>■LED-YELLOW.tTBCr>LED-YELLOW06?..LED-YELLOW..--的.270,.xTEXT>.. -LED-YELUM..74LS373,<TgXT>..一?!it遙J!豈^is豊豈iauisisilliR9__
-=-T 1-i70 .<TB(T>,???里270
1??TEXT>??.R7
-^-r--i—
270'?“TEXT〉。?270—J"TEXT>,.R3?—270-J?"TEXT>—:02..~~I-20pF?<TS(T^?LED-YELLOW-w
..LED-YELLOW
03>nLED-YELLOW?曲】?XTM1XTA12C3-HIF
10uFPSEN辨EApio/nP1.1A2EX叩.。〃P0.1/AO1P0.2/AC2P0.3/AD3P04〃MXP0.57M5P0.6/A£BP0.7/M7n.0/fi6P21/A0P22/A10P2.3/A11P24/A12P2.5/A13P2.6/A14P27/A15P3.0/RXDP3.1/TXDP3.2/IN15P3.34H1TP3.4/TDP3.6/T1P36顧P37/RD1.4硬件平臺實驗Pl口的輸入碗出應用(二)用Pに0、Pio1作輸入接兩個波段開關,Pio2、Pio3作輸出接兩個發光二極Cl C2 三2OpF 20PpXI'~IDH11.0592IBZ▲T89s52スイPACKAGETQFPP1.0 P3.0/UDPl.l P3.l/TIDPl.2 P3.2/TiTOPl.3 P3.Cl C2 三2OpF 20PpXI'~IDH11.0592IBZ▲T89s52スイPACKAGETQFPP1.0 P3.0/UDPl.l P3.l/TIDPl.2 P3.2/TiTOPl.3 P3.3/flTTPl.4 P3.4/TOPl.5 P3.5/T1Pl.6 P3.6/fIPl.T■ ■ P3.7/1DCIDvcc?XTAL1*XTAL2(PSEIALE/PIOCIAPO.O/ADOPO.1/AD1PO.2/AD2PO.3/AD3PO.4/AD4PO.5/AD5PO.6/AD6PO.7/AD789012345AA111111Z/AAAAAA〇1//////..234567P2P2222222pppppp管。編寫程序讀取開關狀態,并在發光二極管上顯示出來。2.1硬件設計打開ProteusISIS編輯環境,按表!-3-I所列的清單添加元件〇虛擬元件名稱所屬類所屬子類AT89C52MicroprocessorICs8051FamilyCAPCapacitorsGenericCAP-ELECCapacitorsGenericCRYSTALMiscellaneous -一RESResistorsGenericSWITCHSWITCH&RelaySwitchesLED-YellowOptoelectronicsLEDs全部虛擬元件添加完畢后,在ProteusISIS的編輯區中按下面電路原理圖連接硬件電路〇
2.2程序設計Plロ是標準雙向口,它作為輸出口使用時與一般的雙向口使用方法相同。由準雙向口可知,當P1口作輸入口時,必須先對ロ的鎖存器寫“1”,若不先寫“1”,讀入的數據是不正確的。2.2.1程序流程圖
2.2.2源程序清單匯編程序:KEYLEFTKETRIGHTLEDLEFTLEDRIGHTBITP1.0BITPl.lBIT Pl.2BITPl.3ORG0000HSETBKEYLEFTSETBKETRIGHTLOOP:MOVC,KEYLEFTMOVLEDLEFT,CMOVC,KETRIGHTMOVLEDRIGHT,CLJMPLOOPENDc語言程序:#include<AT89x52.h>sbitKEYLEFT=PlA0;sbitKEYRIGHT=P1A1;sbitLEDLEFT=P1A2;sbitLEDRIGHT=P1A3;voidmain()(KEYLEFT=1;KEYRIGHT=1;do{if(KEYLEFT==O){LEDLEFT=0;}else{LEDLEFT=1;)if(KEYRIGHT==0)(LEDRIGHT=0;)else{LEDRIGHT=1;)KEYLEFT=1;KEYRIGHT=1;}whiled)2.3調試仿真U14...C2-20pF.?二,ュ彊寢ヨ彊盤頡齧彊興哥堯鑄立::肝CRYST凡MALI燈心PSENALE氏-LL丄P1D/T2P1.1/T2EXP12P1.3P1.4P1.5P1.6P1.7P09/ADDP0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P05/AD5P0.6/ADBP07/AD7P20//?P2.1/NP22/A10P2.3/A11P24/A12P25/A13P26/A14P27/A15P3.D/RXDP3.1/TXDP3.24WP3.37nJTTP3.4ADP3.57T1P3.6速
P3.7/R5送包遙ヨ甥聶頡短麗ー②丄際幫ー?錯送包遙ヨ甥聶頡短麗ー②丄際幫ー?錯ーPOO/ADOPO.1/AD1PO.2/AD2PO.3/AD3P04/AD4PO.5/AD5PO.e/ADBPO.7/AD7P2W的P2.1//VP2.2/A10P2.3/A11P2.4/AI2P2.WA13P2.6/A14P2.7/A15P30/RXDP3.1/TXDP3.24RTP334NTTP34/TDP3.5/T1P3.M^P37/RD4硬件平臺實驗8255A輸入輸出應用(一)用8255A的PA口作為輸出口,接8位發光二極管,編寫程序使發光二極管循環點亮。8255A是可編程的并行輸入輸出接口芯片,通用性強且靈活。8255A按功能分為3個部分,即總線接口電路,IO口電路和控制邏輯電路。IOロ電路:8225A共有3個8位口,其中A口和B口是單純的數據口,供數據IO使用。總線接口電路:它用于實現8255A和單片機芯片的信號連接。CS-一片選信號RD--讀信號WR?寫信號AO、AL…端口選擇信號。8255A共有4個可尋址的端口,用2位編碼可以實現。控制邏輯電路:它是控制寄存器,用于存放各口的工作方式控制字。本例是利用8255A可編程并行口芯片,實現數據的輸入輸出。8255A有3個8位的并行IO,它有3種工作方式。本例采用方式0,即PA口輸出。工作方式〇是一種基本的輸入輸出方式,在這種方式下,3個端口都可由程序設置為輸入輸出,其基本功能可概述如下:可具有2個8位端口(A、B)和2個4位端口(C口的上半部分而后下半部分)數據輸出時刻鎖存,輸入時沒有鎖存功能。本例中,8255A的端口地址由單片機和兩片地址譯碼芯片74LS138共同確定。PAロ地址為FFFCH,PB口地址為FFFDH,PC口地址為FFFEH,控制寄存器口地址為FFFFHo34no c Pin433DI PAI332231D3 PA3D4 PA4130T7"To""39"2827D6 PA638"575RD PBO¥R PB118"^69208Al PB3RESET PB4PB5PB621356~22"24"一F1416ss pc7A13"TT8255AaPACKAGEDIP40
3.I硬件設計打開ProteusISIS編輯環境,按表1-3-1所列的清單添加元件。虛擬元件名稱所屬類所屬子類AT89C52MicroprocessorICs8051FamilyCAPCapacitorsGenericCAP-ELECCapacitorsGenericCRYSTALMiscellaneous ---RESResistorsGeneric8255AMicroprocessorICsBuffers&Drivers74LS373TTL74LSSeriesFlip-Flops&Latches74LS138TTL74LSSeriesDemultiplexers7407TTL74LSSeriesBuffers&DriversLED-YellowOptoelectronicsLEDs全部虛擬元件添加完畢后,在ProteusISIS的編輯區中按下面電路原理圖連接硬件電全部虛擬元件添加完畢后,在路。TCCT川丄Rl270"ゝR2270ッLED2-jT1R3 R4270 270そ(6LED3LED46 三M a-J -Jヾ XR5270力GLED5■言XLR6270ウ6LED6nSR7270?ゝLED7R8270力LED8g—ro.oro.034PO.232PO.331PQ.529±y82bbACS6CS782bbA78255AC"IDVRPO.43037PO.036EO.11〇.6_28PO.727P公.,VCCITAL2KSTPSEIALE/PBOCEAPO.O/ADOPO.1/AD1PO.2/AD2PO.3/AD3PO.4/AD4PO.5/AD5PO.6/AD6PO.7/AD7節PO.2PO.2734PO.3I'O.3H“PO.4PO.4I?32PO.5PO.51431PO.6PO.61730PO.7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12'P2.5/A13P2.6/A14P2.7/A15SI74LS373DV(20) =GIDRESITVCCP1.0Pl.lPl.2Pl.3Pl.4Pl.5Pl.6Pl.7P3.0/tXDP3.1/TXDP3.2/IBT0P3.3“rnP3.4/TOP3.5/T1P3.6ハRP3.7/IDIKivza ?0r-=—?—5^028T7■—SI74LS138D(16)P2.6VCCTSI74LS138D(16)IGID011234567011234567O'l234h67afaaaaaaBmDBBBBBBcp-ccccppppppppppPpppP
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小車噴漆活動方案
- 小朋友設計活動方案
- 工信局深化活動方案
- 工會活動咖啡館活動方案
- 少先隊植樹活動方案
- 工匠云直播活動方案
- 小班荷花畫展活動方案
- 小說學校活動方案
- 干部培訓活動策劃方案
- 崗位能力建設活動方案
- (2025.06.12)領導干部任前應知應會黨內法規和法律知識考試題庫(2025年度)
- 2025年高考北京卷化學高考真題+答案(參考版)
- 2025至2030中國汽車濾清器行業市場發展分析及商業模式與投融資報告
- 醫用光學技術和儀器使用
- 仗鼓舞比賽活動方案
- 南昌職業大學《影視配音創作》2023-2024學年第二學期期末試卷
- 2024年湖南融通資源循環產業有限公司技能崗位招聘真題
- 銷售轉正筆試題目及答案
- 樹木砍伐合同簡單協議書
- 2025年安徽省農業職業技能大賽(水生物病害防治員)備賽試題庫(含答案)
- 安全大講堂教學課件
評論
0/150
提交評論