單片機(jī)C語言實(shí)踐教程習(xí)題及答案(雷建龍版)_第1頁
單片機(jī)C語言實(shí)踐教程習(xí)題及答案(雷建龍版)_第2頁
單片機(jī)C語言實(shí)踐教程習(xí)題及答案(雷建龍版)_第3頁
單片機(jī)C語言實(shí)踐教程習(xí)題及答案(雷建龍版)_第4頁
單片機(jī)C語言實(shí)踐教程習(xí)題及答案(雷建龍版)_第5頁
已閱讀5頁,還剩129頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

單片機(jī)C語言實(shí)踐教程 習(xí)題及答案(雷建龍版)第一早一、填空題:.計(jì)算機(jī)中數(shù)據(jù)的存放是以字節(jié) 為單位的(用BYTE 表示可簡(jiǎn)寫為B),IB=位,1KB=1024B。.微處器由CPU、存儲(chǔ)器、I/O接口 三部分組成...計(jì)算機(jī)的系統(tǒng)總線有地址總線 、數(shù)據(jù)總線、 控制總線。.如果80C51單片機(jī)晶振頻率為12MHz,則時(shí)鐘頻率為 12MHz、機(jī)器周期為IMS5.80C51單片機(jī)復(fù)位的條件是RST(9腳)輸入2個(gè)機(jī)器周期以上寬度的正脈沖,復(fù)位方法一般采用上電復(fù)位和按鍵復(fù)位兩種方法,復(fù)位后PC的值為() ,P0——P3口的值為Oxff.6.一個(gè)機(jī)器周期等于6個(gè)狀態(tài)周期,振蕩脈沖12分頻后產(chǎn)生的時(shí)序信號(hào)的周期定義為機(jī)器周期。二、選擇題:1、以下不是構(gòu)成單片機(jī)的部件有(D)A微處理器(CPU)、B存儲(chǔ)器C接口適配器(I\O接口電路)D打印機(jī)2、下列不是單片機(jī)總線的是(D)A地址總線 B控制總線C數(shù)據(jù)總線 D輸出總線3、關(guān)于MCS-51的時(shí)鐘問題,以下說法正確的是(B)A晶振頻率=機(jī)器頻率 B12*晶振周期=機(jī)器周期 C所有指令周期=機(jī)器周期D12*狀態(tài)周期=機(jī)器周期4、關(guān)于PC寄存器,以下說法正確的是(C)A可以對(duì)PC直接讀寫B(tài)單片機(jī)復(fù)位后PC指向RAM的0000HC單片機(jī)復(fù)位后PC指向ROM的0000HD執(zhí)行完一條指令后PC自動(dòng)減15、MCS-51系統(tǒng)中,若晶振頻率8MHz,一個(gè)機(jī)器周期等于(A )usA1.5B3C1 D0.5三、回答題:.單片機(jī)主要用途是什么?列舉你所知道的目前應(yīng)用較為廣泛的單片機(jī)種類??刂?。51系列;MC(摩托羅拉)系列;….計(jì)算機(jī)字長(zhǎng)的含義是什么?8051單片機(jī)的字長(zhǎng)是多少?字長(zhǎng)是指計(jì)算機(jī)處理數(shù)據(jù)的位數(shù),即數(shù)據(jù)總線的寬度或數(shù)據(jù)總線的條數(shù)。8051字長(zhǎng)為8位。.請(qǐng)介紹單片機(jī)的應(yīng)用領(lǐng)域.并舉一個(gè)具體例子,說明單片機(jī)在其中所起的作用.如家電。在帶電腦的電熱水器中,電腦其實(shí)是一片單片機(jī),它控制熱水器的加熱開關(guān)。.請(qǐng)說明單片機(jī)的主要特點(diǎn).易于產(chǎn)品化,具有優(yōu)異的性能價(jià)格比集成度高、體積小、可靠性高實(shí)時(shí)性強(qiáng)

低電壓、低功耗.請(qǐng)說明當(dāng)今單片機(jī)發(fā)展的方向有那些.(1)面對(duì)不同的應(yīng)用對(duì)象,不斷推出適合不同領(lǐng)域要求的,從簡(jiǎn)易性能到多全功能的單片機(jī)系列。(2)大力發(fā)展專用型單片機(jī)。(3)致力于提高單片機(jī)的綜合品質(zhì)。.單片機(jī)與通用微機(jī)有什么異同?都有CPU、存儲(chǔ)器、IO接口。但單片機(jī)將它們集成在一塊芯片中,而通用微機(jī)是分開的。.請(qǐng)畫出單片機(jī)組成的結(jié)構(gòu)框圖,并加以說明.圖1.6圖1.6單片機(jī)結(jié)構(gòu)框圖所謂的單片微控制器一即單片機(jī),它的外表通常只是一片大規(guī)模集成電路芯片。但在芯片的內(nèi)部卻集成了中央處理器單元(CPU),各種存儲(chǔ)器(RAM、ROM、EPROM、E2PR0M和FlashROM等),各種輸入/輸出接口(定時(shí)器/計(jì)數(shù)器、并行I/O、串行I/O以及A/D轉(zhuǎn)換接口等),等眾多的功能部件。因此,一片芯片就構(gòu)成了一個(gè)基本的微型計(jì)算機(jī)系統(tǒng)。8、80C51單片機(jī)復(fù)位后的狀態(tài)如何?復(fù)位方法有幾種?畫出常用的兩種復(fù)位電路.通過復(fù)位,單片機(jī)就將進(jìn)入初始狀態(tài),從第一條指令開始運(yùn)行。上電復(fù)位和按鍵復(fù)位。上電復(fù)位jr小子譚fcl!.±=.2_±ztJ_J-ZIJ-J-Hzszi-aLJ:_JL-i_fl.-lz5按鍵復(fù)位上電復(fù)位jr小子譚fcl!.±=.2_±ztJ_J-ZIJ-J-Hzszi-aLJ:_JL-i_fl.-lz5按鍵復(fù)位復(fù)合復(fù)位圖2.10單片機(jī)的復(fù)位電路圖9、在89c51單片機(jī)應(yīng)用系統(tǒng)中而/Vpp引腳如何連接?為什么?接高電平。因?yàn)?051要選擇內(nèi)部程序存儲(chǔ)器。10、什么是時(shí)鐘周期?什么是機(jī)器周期?什么是指令周期?89C51CPU機(jī)器周期與時(shí)鐘周期是什么關(guān)系?如果晶振頻率為12MHz,則一個(gè)機(jī)器周期是多少微秒?是鐘周期即為單片機(jī)時(shí)鐘的周期,它等于晶振的振蕩周期。機(jī)器周期是單片機(jī)運(yùn)行一個(gè)基

本操作的時(shí)間。指令周期是單片機(jī)運(yùn)行一條匯編指令的時(shí)間。89C51的機(jī)器周期等于12個(gè)時(shí)鐘周期。如果外接晶振為12MHz時(shí),振蕩周期=1/12us品=12/以機(jī)器周期=1us11、請(qǐng)說明復(fù)位電路的作用.復(fù)位電路的作用是使單片機(jī)恢復(fù)到初始狀態(tài),即使它從0地址處開始運(yùn)行。12、請(qǐng)說明單片機(jī)運(yùn)行的基本過程.單片機(jī)運(yùn)行的基本過程如下:(1)從存儲(chǔ)器中取出下一條要執(zhí)行的指令(取指)(2)對(duì)取出的指令進(jìn)行識(shí)別(譯碼)(3)指揮運(yùn)算器運(yùn)算或控制數(shù)據(jù)傳送(指揮)13、請(qǐng)畫出單片機(jī)最小系統(tǒng).C2T33pX1U1+5VC1

4u719?XTAL1CRYSTAL18XTAL2RSTPO.O/ADOPO.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD739363534~3332R1610k2930Z1C2T33pX1U1+5VC1

4u719?XTAL1CRYSTAL18XTAL2RSTPO.O/ADOPO.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD739363534~3332R1610k2930Z177T57gPSENALEEAP2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A1521~22_亙至26亙"28P1.0P1.1P12P1.3P1.4P1.5P1.6P1.7P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INTTP3.4/T0P3.5/T1P3.6WRP3.7/RD10

五亙14運(yùn)正77AT89C5114、根據(jù)你的理解,請(qǐng)說明單片機(jī)系統(tǒng)制作的過程.根據(jù)電路圖制作硬件;編寫相應(yīng)程序并調(diào)試;將程序下載到單片機(jī)中;上電運(yùn)行。四、補(bǔ)充習(xí)題1、計(jì)算機(jī)中最常用的字符信息編碼是(A)。(A)ASCII(B)BCD碼(C)余3碼 (D)循環(huán)碼2、十六進(jìn)制數(shù)7的ASCII碼是(A)。(A)37 (B)7 (C)07 (D)473、在計(jì)算機(jī)中,字符的編碼普遍采用的是(D)。A.BCD碼B.十六進(jìn)制C.格雷碼D.ASCII碼4、將下列各二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)。①U010101B②U0100UB③101010UB@10111101611010101B=21311010011B=21110101011B=1895、將下列各數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)。①215D②253D③010000UBCD?00101001BCD215=110101116253=11111101801000011BCD=101011B00101001BCD=11101B6、已知原碼如下,寫出其反碼和補(bǔ)碼(其最高位為符號(hào)位)。①[X]原=01011001B②[X]原=00U1110B③原=U0U011B④[X]原=U11UOOB①[X]反=10100110:[X]補(bǔ)=01011001②[X]反=11000001;[X]補(bǔ)=00111110③[XI反=10100100;[X]補(bǔ)=10100101④[X]反=10000011;[X]補(bǔ)=100001007、當(dāng)微機(jī)把下列數(shù)看成無符號(hào)數(shù)時(shí),它們相應(yīng)的十進(jìn)制數(shù)為多少?若把它們看成是補(bǔ)碼,最高位為符號(hào)位,那么它們相應(yīng)的十進(jìn)制數(shù)是多少?①10001110B②10110000B③OOOIOOOIB@01110101B當(dāng)將它們看成無符號(hào)數(shù)時(shí):(D10001110B=142;@10110000B=176;③00010001B=17;@01110101B=117當(dāng)把它們看成補(bǔ)碼,最高位為符號(hào)位時(shí),它們相應(yīng)的十進(jìn)制數(shù)為:(D10001110B②10110000B③00010001B?OlllOlOlB-1145—80;17;117第二章一、填空題1、MCS-51片內(nèi) 20H2FH范圍內(nèi)的數(shù)據(jù)存儲(chǔ)器,既可以字節(jié)尋址又可以位尋址.80C51在物理有 4 個(gè)獨(dú)立的存儲(chǔ)空間。2、MCS-51型單片機(jī)的ROM尋址范圍為0000-FFFFH,外RAM的尋址范圍為0000-FFFFH,內(nèi)部RAM低128B區(qū)可分為寄存器組區(qū)、位尋址區(qū)、用戶RAM區(qū)三部分,高128B單元又稱為特殊寄存器區(qū),其中字節(jié)地址具有能被8整除特征的可進(jìn)行位尋址。3、MCS-51有_4一個(gè)并行I、O□,其中P0~P3是準(zhǔn)雙向口,所以由輸出轉(zhuǎn)輸入時(shí)必須先寫入“1”4、P0口要能輸出高低電平,必需外接上拉電阻.5、8051的幾個(gè)端口中只有上口只作為通用IO口,其它幾個(gè)端口都具有第二功能.6、P0口第二功能是 數(shù)據(jù)總線 和地址總線的低8位 .7、P2□的第二功能是 地址總線的高8位.8、P3□的第二功能中,與串行通信相關(guān)的引腳是P3.0(RXD)和P3.1(TXD);與中斷相關(guān)的是P32INT0)和P3.3(INT1):與定時(shí)器相關(guān)的是P3.4(T0)和P3.5(T1):與擴(kuò)展存儲(chǔ)器相關(guān)的是P3.6(麗)和P3.7(而).二、選擇題1、程序存儲(chǔ)器的選通信號(hào)是(C)A.WRB.ALEC.PSEND.RD2、MCS-51系列單片機(jī)存儲(chǔ)器主要分配特點(diǎn)是(AD)AROM和RAM分開編址 BROM和RAM統(tǒng)一編址 C內(nèi)部ROM和外部ROM分開編址 D內(nèi)部ROM和內(nèi)部RAM統(tǒng)一編址3、如某存儲(chǔ)器,地址線為A0-A10,數(shù)據(jù)線為D0-D7,則存儲(chǔ)量為(A)A2KBB1KBC2KbitD1Kbit4、不具有第二功能的端口是(B)AP0BPlCP2DP35、不能輸出高低電平的端口是(A)A P0 B Pl C P2 D P3TOC\o"1-5"\h\z6、數(shù)據(jù)總線是下列哪個(gè)端口(A)A P0 B Pl C P2 D P37、地址總線的高8位是哪個(gè)端口£)A P0 B Pl C P2 D P38、STC單片頂機(jī)程序下載使用的端口是(D)A P0 B Pl C P2 D P3三、問答題1、80C51單片機(jī)的存儲(chǔ)器的組織采用何種結(jié)構(gòu)?存儲(chǔ)器地址空間如何劃分?各地址空間的地址范圍和容量如何?在使用上有何特點(diǎn)?8051采用哈佛結(jié)構(gòu),即RAM與ROM分開編址。從邏輯上可分為片內(nèi)RAM、片外RAM和內(nèi)外統(tǒng)一編址的ROM。內(nèi)部RAM地址從00H—7FH,共128字節(jié);外部RAM地址從0000H—FFFFH,共64K:ROM地址從0000H—FFFFH,共64K,而實(shí)際上8051內(nèi)部ROM地址從0000H-0FFFH,共4K。在使用上通過不迥的尋址指令來訪問不同的存儲(chǔ)區(qū).2、假設(shè)某CPU含有16根地址線,8根數(shù)據(jù)線,則該CPU最多尋址能力是多少KB?尋址能力是由地址線的位數(shù)決定的。16根地址線可訪問的最大地址數(shù)為:2i6=64K。3、89C51CPU復(fù)位后內(nèi)部RAM各單元內(nèi)容是否改變?89C51復(fù)位后內(nèi)部RMA各單元內(nèi)容全部清零。4、8051單片機(jī)存儲(chǔ)器的組織結(jié)構(gòu)是怎樣的?8051單片機(jī)存儲(chǔ)器采用哈佛結(jié)構(gòu),即將數(shù)據(jù)存儲(chǔ)器與程序存儲(chǔ)器分開編址,這樣即使訪問同樣的地址,它們也不會(huì)沖突。數(shù)據(jù)存儲(chǔ)器又分為內(nèi)部RAM(00H-7FH,即128B)和外部RAM(00000H-FFFFH,即64K):片內(nèi)外程序存儲(chǔ)器統(tǒng)一編址,地址從00000H-FFFFH,即64K.5、片內(nèi)數(shù)據(jù)存儲(chǔ)器分為哪幾個(gè)性質(zhì)和用途不同的區(qū)域?

片內(nèi)數(shù)據(jù)存儲(chǔ)器分為工作寄存器區(qū),地址從00H-1FH共32個(gè)字節(jié);位尋址區(qū),地址20H-2FH共16B;用戶RAM區(qū),地址從30H-7FH,是用來存儲(chǔ)用戶臨時(shí)數(shù)據(jù)用。6、在8031擴(kuò)展系統(tǒng)中,外部程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器共用16位地址線和8位數(shù)據(jù)線,為什么兩個(gè)存儲(chǔ)空間不會(huì)發(fā)生沖突?因?yàn)?1單片機(jī)采用的是哈佛結(jié)構(gòu),即程序存儲(chǔ)器與數(shù)據(jù)存儲(chǔ)器分開編址,故不會(huì)沖突。在硬件上,8031選擇外部數(shù)據(jù)存儲(chǔ)器使用的是標(biāo)和麗兩個(gè)信號(hào);而選擇外部程序存儲(chǔ)器使用的是PSEN;在軟件上訪問外部數(shù)據(jù)存儲(chǔ)器與訪問程序存儲(chǔ)器的指令也不要樣。7、80C51單片機(jī)的P0-P3□在結(jié)構(gòu)上有何不同?在使用上有何特點(diǎn)?P0輸出為漏極開路形式,即它不能輸出高電平,復(fù)位是為高阻狀態(tài),要輸出高電平需要接上位電阻。P1為準(zhǔn)雙向端口;P0、P2、P3都有第二功能。它們?cè)谧鳛槠胀↖O□輸入時(shí),必需先寫“1”,使輸出管截止,然后才能讀入端口狀態(tài),否則可能讀入錯(cuò)誤的信息。8、P3口的第二功能是什么?見一6。9、復(fù)位后各端口的狀態(tài)是怎樣的?復(fù)位后各端口的狀態(tài)是0XFFH,即各引腳為高電平,P0□為高阻狀態(tài)。10、為什么在單片機(jī)直接外接LED時(shí),要讓電流流入而不是流出單片機(jī)引腳?因?yàn)閱纹瑱C(jī)長(zhǎng)于控制,而不是驅(qū)動(dòng),讓電流流出單片機(jī),則驅(qū)動(dòng)電流由單片機(jī)提供,電流過大可能造成單片機(jī)工作不穩(wěn)定;而讓電流流入單片機(jī),則驅(qū)動(dòng)電流由外部提供,只要電流不是太大,不會(huì)影響單片機(jī)的工作。11、以P1口為例,說明單片機(jī)是怎樣輸出高低電平的.P1口具有輸出、讀引腳、讀鎖存器三種工作方式。圖4.1P1口引腳的內(nèi)部結(jié)構(gòu)輸出時(shí): D端=1-*0=OfV截止圖4.1P1口引腳的內(nèi)部結(jié)構(gòu)D端=0fQ=1-*V導(dǎo)通fPl.n=0讀引腳時(shí):Pl.n一讀引腳三態(tài)門控制信號(hào)”讀引腳”為1,打開三態(tài)門1,引腳的狀態(tài)進(jìn)入內(nèi)部總線.讀鎖存器:讀鎖存器控制信號(hào)"讀鎖存器”為1,打開三態(tài)門,鎖存器Q端狀態(tài)通過三態(tài)門2進(jìn)入內(nèi)部總線.場(chǎng)效應(yīng)管V的狀態(tài)會(huì)影響Pl.n的狀態(tài):四、編程題1、請(qǐng)編寫一程序?qū)1□的輸出變?yōu)榈碗娖?#include<reg5l.h>main()(Pl=0x00;while(l);2、請(qǐng)編寫一程序讀入Pl□的狀態(tài).

#include<reg5l.h>main()unsignedcharab;Pl=OxFF;ab=Pl;while(l);五、補(bǔ)充習(xí)題1、設(shè)計(jì)一個(gè)交通信號(hào)燈的檢測(cè)報(bào)警電路。當(dāng)信號(hào)燈正常工作時(shí),紅、黃、綠三個(gè)燈中只有一個(gè)燈亮,其余兩燈滅,否則說明信號(hào)燈發(fā)生故障,此時(shí)應(yīng)發(fā)出報(bào)警信號(hào)。用與非門實(shí)現(xiàn)。用R、Y、G表示紅、黃綠燈的狀態(tài),亮為“1”,來為“0”;用L表示報(bào)警信號(hào),報(bào)警為“1”,不報(bào)警為“0”.真值表如下:RYGL00010010010001111000101111011111趕寫卡諾圖:000111100101010111L=RGY+RG+RY+YG故=RGY+RG+RY+YG邏輯電路圖如下圖所示:2、用“與非”門組成下列邏輯門:(1)“與或”門(1)“與或”門Y^ABC+DEF.*Y=ABC+DEF=ABC+DEF=ABC?DEFFF(2)"或非"門Y=A+B+CY=A+B+C=ABC=ABC3、寫出圖4.123、寫出圖4.12所示兩圖的邏輯式。(a) (b)圖412邏輯圖(a)y=AB+AB (b)r=AC?BC第三章一、填空題1、Proteus軟件具有仿真和PCB設(shè)計(jì) 兩大功能.2、Proteus軟件可以和 KeilC 軟件聯(lián)合仿真單片機(jī),讓程序在 KeilC運(yùn)行,而運(yùn)行的結(jié)果在 Proteus 中顯示.3、Proteus軟件中尋找元件時(shí),電阻的符號(hào)是res ,電容的符號(hào)是 cap ,發(fā)光二極管的符號(hào)是led .數(shù)碼管的符號(hào)是7seg.

二、選擇題1、Proteus軟件能仿真的單片機(jī)有(ABC)APICB8051CAVRDDSP2、、Proteus軟件中的虛擬儀器有(ABCD)A示波器B信號(hào)發(fā)生器C邏輯分析儀D指示燈3、下列哪些方法仿真單片機(jī)是可行的(ABC)A直接將程序裝載到Proteus軟件的單片機(jī)運(yùn)行;B直接在KeilC軟件中運(yùn)行程序;C在Proteus軟件中建立電路,在Proteus軟件中運(yùn)行程序;D畫好電路圖后,點(diǎn)擊運(yùn)行按鈕,就可在Proteus軟件中運(yùn)行程序了.三、操作題1、請(qǐng)用Proteus畫出單片機(jī)最小系統(tǒng)的電路圖,并仿真實(shí)現(xiàn)使Pl□輸出為低電平.+5VA?XTAL1XTAL2RST6R110k12345678PSENALEEAPO.O/ADOPO.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6+5VA?XTAL1XTAL2RST6R110k12345678PSENALEEAPO.O/ADOPO.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/1NT0P3.3/1NTTP3.4/T0P3.5/T1P3.GWRP3.7/RD#include<reg51.h>main()(Pl=0x00;whiled);)將上述程序編譯成.hex文件,下載到上述電路中,按運(yùn)行鍵即可。2、在P0口外接8個(gè)LED,請(qǐng)畫出電路圖,并仿真實(shí)現(xiàn)點(diǎn)亮這8個(gè)發(fā)光二極管.

D7D8^^^D-GREENR15100RU1?XTALIXTAL2PSENALEEAPO.O/ADOP0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P06AD6P0.7/AD7P2.0/A8P2.1/A9P22A10P23'A11P2.4/A12P23/A13P2&A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3麗TTP3.4/T0P3.5/T1P3.&WRP3.7/RD璃FIFgFI-HfFI-HfRf-D9R16100R~D7D8^^^D-GREENR15100RU1?XTALIXTAL2PSENALEEAPO.O/ADOP0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P06AD6P0.7/AD7P2.0/A8P2.1/A9P22A10P23'A11P2.4/A12P23/A13P2&A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3麗TTP3.4/T0P3.5/T1P3.&WRP3.7/RD璃FIFgFI-HfFI-HfRf-D9R16100R~n9~ED-YELLOWD1CTD11D1100RLED-REDR10LED-GREElfboR~~R11100R.ED-YELLOWR12DI3LED-RED

_—1'□14^^ED-YELLOW■J.ILED-RED100RR13100R,R14100RAT89C51#include<reg5l.h>main(){P0=0x0();while(l);}將上述程序編譯成.hex文件,下載到上述電路中,按運(yùn)行鍵即可。3、制作點(diǎn)亮8個(gè)發(fā)光二極管的電路,并將程序下載到單片機(jī)中,實(shí)現(xiàn)這一功能.第四章一、填空題1、C51擴(kuò)展的數(shù)據(jù)類型有: bit、sbit、sfr、sfrl6.2、用C51編寫單片機(jī)程序,與用ANSIC編寫程序的不同之處是,需要根據(jù)單片機(jī)結(jié)構(gòu)及內(nèi)部資源,定義相應(yīng)的存儲(chǔ) 類型和變量。3、C51變量定義的四個(gè)要素是一存儲(chǔ)種類、數(shù)據(jù)類型、存儲(chǔ)類型、變量名.4、sfr定義特殊功能寄存器SFR的地址,例如:sfrP0=0x80; 〃定義P0口 地址為80Hsfrl6DPTR=0x82;〃定義DPTR的 地址 為82H5、bitdoor=0; 〃定義一個(gè)叫door的 位變量且初值為().6、下列是一個(gè)子函數(shù):bittestfunc(bitflagl9bitflag2){ /*flagl和—為bit類型的參數(shù)*/return(flag); /*flag是bit 類型的返回值*/}7、51系列單片機(jī)有三個(gè)邏輯存儲(chǔ)空間: 內(nèi)部RAM、外部RAM、ROM.數(shù)據(jù)可任意存儲(chǔ)到其中某一存儲(chǔ)器中。8、CODE區(qū)是用來存放可執(zhí)行代碼的存儲(chǔ)區(qū),用16位尋址空間可達(dá)一^]£代碼段,是只讀的.常數(shù),如漢字字庫常放在此區(qū)存儲(chǔ),但承或一般不能存儲(chǔ)于此區(qū)域.9、data區(qū)是8051內(nèi)128字節(jié)的內(nèi)部RAM或8052的前128字節(jié)內(nèi)部RAM存儲(chǔ)區(qū)。訪問data區(qū)比訪問xdata區(qū)要快。通常我們把使用比較頻繁的且或存儲(chǔ)在data段中,但是必須節(jié)省使用data段,因?yàn)樗目臻g畢竟有限。10.另外一個(gè)子段叫做位尋址段bdata,包括16個(gè)字節(jié),共128位,每一位都可單獨(dú)尋址。11、xdata區(qū)存儲(chǔ)空間為64K,和CODE區(qū)一樣采用16位地址尋址稱作外部數(shù)據(jù)區(qū).這個(gè)區(qū)通常包括一些RAM,如SRAM或一些需要通過總線接口的外設(shè).使用頻繁的數(shù)據(jù)應(yīng)盡量保存在data區(qū)中。12、switch-case語句的執(zhí)行過程是:首先計(jì)算表達(dá)式的值,并逐個(gè)與case后的常量表達(dá)式的值相比較,當(dāng)表達(dá)式的值與某個(gè)常量表達(dá)式的值相等時(shí),則執(zhí)行對(duì)應(yīng)該常量表達(dá)式后的語句組,再執(zhí)行break語句,跳出switch語句的執(zhí)行,繼續(xù)執(zhí)行下一條語句。如果表達(dá)式的值與所有case后的常量表達(dá)式均不相同,則執(zhí)行default后的語句組。二、選擇題1、以下哪些是單片機(jī)擴(kuò)展的數(shù)據(jù)類型(B)Abdata;Bbit;Ccode;Ddata2、以下哪個(gè)與其它三個(gè)語句的意義不同(D)AsbitCY=0xD7;BsfrPSW=OxDO;sbitCY=PSWA7;CsbitCY=0xD0A7;DsbitCY=0xD03、以下不正確的說法是(D)A用sbit定義的位變量,必須能夠按位操作,而不能夠?qū)o位操作功能的位定義位變量。B用sbit定義位變量,必須放在函數(shù)外面作為全局位變量,而不能在函數(shù)內(nèi)部定義。C用sbit每次只能定義一個(gè)位變量。D用sbit定義的是一種絕對(duì)定位的位變量(因?yàn)槊质桥c確定位地址對(duì)應(yīng)的),具有特定的意義,在應(yīng)用時(shí)能像bit型位變量那樣隨便使用。4、以下不正確的說法是(D)A位變量不能定義成一個(gè)指針,原因是不能通過指針訪問“bit”類型的數(shù)據(jù).如定義“bit*ptr;”是非法的。B不存在位數(shù)組,如不能定義bitSHOW.BUF[6].C在位定義中,允許定義存儲(chǔ)類型,位變量都被放入一個(gè)位段,此位段總位于51單片機(jī)片內(nèi)的RAM中,因此存儲(chǔ)器類型限制為data、bdata、idata、pdata和xdata。如果把位變量的存儲(chǔ)類型定義為其他存儲(chǔ)類型,將導(dǎo)致編譯出錯(cuò)。D值得注意的是,使用中斷禁止(#pragmadisable)或包含明確的寄存器組切換(usingn)的函數(shù)不能返回位值,否則編譯器會(huì)給出一個(gè)錯(cuò)誤信息。5、C-51的包含的頭文件有(ABCD)Areg51.h;Bmath.h;Cabsacc.h;Dintrins.h6、關(guān)于switch-case語句,下列不正確的是(B):A各個(gè)case及default出現(xiàn)的次序,不影響執(zhí)行的結(jié)果。各個(gè)情況的地位相同。BBreak語句可以省略.C每一case的常量表達(dá)式必須互不相同,以免造成混亂。DBreak語句不可少。否則,不會(huì)退出,而會(huì)繼續(xù)執(zhí)行后面的case語句。7、以下不是循環(huán)結(jié)構(gòu)的是(C)Awhile結(jié)構(gòu);Bdowhile結(jié)構(gòu);Cif語句;Dfor語句8、在一個(gè)函數(shù)中調(diào)用另一個(gè)函數(shù)需要具備如下條件(ABCD):A被調(diào)用函數(shù)必須是已經(jīng)存在的函數(shù)(庫函數(shù)或者用戶自己已經(jīng)定義的函數(shù)。B如果函數(shù)定義在調(diào)用之后,那么必須在調(diào)用之前(一般在程序頭部)對(duì)函數(shù)進(jìn)行聲明。C如果程序使用了庫函數(shù),則要在程序的開頭用#include預(yù)處理命令將調(diào)用函數(shù)所需要的信息包含在本文件中。D如果不是在本文件中定義的函數(shù),那么在程序開始要用extern修飾符進(jìn)行函數(shù)原型說明。三、編程題1、修改程序試改正下列程序(直接改)要示編寫一段程序從P1□輸出數(shù)據(jù)#include<reg5l.h>main(){ehafHwnsiencdchar;unsiinedintb;while(l)(for(a=0;a=<=255;a++)Pl=a;for(b=0;b<50000;b++);〃延時(shí)})I2、完善程序(在空中加入適當(dāng)?shù)恼Z句)1)以下是計(jì)算100以內(nèi)自然數(shù)的和的程序main()(unsignedinta,sum=0 ;for(;a<=100;a++)sum+=a;while(l);)2)、以下是計(jì)算100以內(nèi)自然數(shù)的和的程序main(){inta=0 ,sum=0;for(;a<=100;)sum+=a;a++ ;)whiled);)3、編寫程序1)試用while循環(huán)編寫一段延時(shí)程序;voiddelay(void)(unsignedinta;a=0;while(a<50000)a++;)2)試用for循環(huán)編寫一段延時(shí)程序;chardelay(chark){unsignedinta,b;for(a=0;a<k;a++)for(b=0;b<4000;b++);return0;}3)試編寫一主程序及一子程序。子程序?yàn)橛行螀⒌难訒r(shí)程序,主程序調(diào)用子程序?qū)崿F(xiàn)延時(shí),時(shí)間到后使PL0輸出低電平。#include<reg51.h>chardelay(chark)(unsignedinta,b;for(a=0;a<k;a++)for(b=0;b<4000;b++);return0;}main()(delay(200);Pl=0xfe;while(l);

4)編制一個(gè)循環(huán)閃爍的程序。有8個(gè)發(fā)光二極管,每次其中某個(gè)燈閃爍點(diǎn)亮10次后,轉(zhuǎn)到下一個(gè)閃爍1()次,循環(huán)不止。畫出電路圖。XTAL1XTAL2RSTAT89C51V+5VPSENALEEAPO.O/ADOP0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7XTAL1XTAL2RSTAT89C51V+5VPSENALEEAP2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDpa.a/ifTfdP3.3/ifTnP3.4/TDP3.5/T1P3.aWRP3.7/RD#include<reg5l.h>#include<intrins.h>delay。(unsignedinta;for(a=0;a<20000;a++);}main()(unsignedcharc,b,i;while(l)(c=Oxfe;for(b=0;b<8;b++){for(i=0;i<10;i++){PO=c;delay();PO=Oxff;delay();)c=_crol_(c,l);delayO;delay();delay();delay。;delayO;})}5)利用89C51的Pl口控制8個(gè)發(fā)光二極管LED。相鄰的4個(gè)LED為一組,使2組每隔0.5S交替發(fā)光一次,周而復(fù)始。試編寫程序。#include<reg51.h>delay()(unsignedinta;for(a=0;a<35000;a++);}main()(while(l){Pl=OxfO;delay。;Pl=OxOf;delay。;D7P3.7/RDP3.6WRP3.5/T1P3.4710P3a,iNTrP3.2/INTDP3.1/TXDP3.0/RXDP1.7P16PI.5PI4PI.3PI.2P1.1D7P3.7/RDP3.6WRP3.5/T1P3.4710P3a,iNTrP3.2/INTDP3.1/TXDP3.0/RXDP1.7P16PI.5PI4PI.3PI.2P1.1P1.0①i=i=i=2132t=i=i=、P2.7/A15P2.6/A14P2.5/A13P2.4/A12P2.3/A11P2.2/A10P2.1/A9P2.0/A86ALEPSEN.ED-GREENR15LED-REDP0.7-AD7P0.&AD6P05AD5P0.4/AD4P0.3/AD3P0.2/AD2P0.1/AD1PO.O/ADORSTXTAL2XTAL111819AT89C516)試編制一跑馬燈程序.要求控制Pl口所接的8個(gè)LED從兩頭向中央?yún)R合.電路如上題所示。程序如下:#include<reg51.h>#include<intrins.h>unsignedchard[]={0x7e,0x3c,Ox18,0x00);delay()(unsignedinta;for(a=0;a<40000;a++);)main(){unsignedcharb;while(l)《for(b=0;b<4;b++){Pl=d[b];delay。;}Pl=Oxff;delay。;7)有如圖所示電路,當(dāng)開關(guān)SO閉合時(shí),LEDO亮,…開關(guān)S7閉合時(shí),LED7亮。其他情況下LED全滅,任一時(shí)刻只能有一個(gè)LED亮。要求用switch/case語句。圖4.22習(xí)題3(7)電路圖#include<reg51.h>main()(unsignedchark;while(1)//建立死循環(huán)(k=Pl&Oxff;〃讀取Pl□的值,即開關(guān)的狀態(tài)switch(k){case0xfe:P3=0xfe;break;//S0按下case0xfd:P3=0xfd;break;//Sl按下caseOxfb:P3=Oxfb;break;//S2按下?case0xf7:P3=0xf7;break;//S3按下case0xef:P3=0xef;break;//S4按下case0xdf:P3=0xdf;break;//S5按下case0xbf:P3=0xbf;break;//S6按下case0x7f:P3=0x7f;break;//S7按下default:P3=0x熊break;〃其它情況,全滅)8)如圖所示電路,試用do…while循環(huán)編寫一段程序,當(dāng)P3.0閉合時(shí),P1口的LED0-LED7閃爍,當(dāng)斷開時(shí),全滅。圖4.23習(xí)題3(8)對(duì)應(yīng)電路圖#include<reg5l.h>main(){unsignedinti;while(l){while((P3&0x01)==0)〃讀取出P3.0的引腳狀態(tài)(Pl=0x00;for(i=0;i<5000;i++);Pl=0xFf;for(i=0;i<5000;i++);}Pl=OxOff;9)綜合練習(xí)在PO口接有8個(gè)發(fā)光二極管,試分別編寫程序?qū)崿F(xiàn)以下功能:①測(cè)試P1□的電平,若為低則相應(yīng)的發(fā)光管亮;②8個(gè)發(fā)光管亮一會(huì),滅一會(huì),即不斷閃爍。③2個(gè)發(fā)光管從右向左運(yùn)動(dòng)。要求畫示出電路圖及編寫程序的流程圖。①#includeMreg5Lhnmain()(chark;while⑴〃死循環(huán)k=Pl&Oxff;〃讀取Pl的狀態(tài)PO=k;)②#includeMreg51.hHmain()(unsignedinti;

while⑴〃死循環(huán)P0=0x00;for(l=0;i<5000;i++);P0=0xfT;for(i=0;i<5000;i++);))③#include<reg5l.h>#include<intrins.h>main()(unsignedinti;unsignedcharj,a;while(l)(a=0x3f;fora=0;j<4;j++)(P0=a;for(i=0;i<40000;i++);a=_cror_(a,2);}}V54321090}rl/46q圖窿/ADADE餡s"76s4視2227/&5/4/3/Z1.W?2?2?2?2?2?2ppaQaaaoaopppppppplpppppp四、制作練習(xí)在已有的跑馬燈電路板上,再制作交通燈.當(dāng)SI按下時(shí),東西向通行;S2當(dāng)SI按下時(shí),東西向通行;S2按要求:1、畫出電路圖;2、畫出程序流程圖;3、列出程序清單(詳細(xì)注釋);4、制作交通燈演示系統(tǒng);5、將程序下載到單片機(jī)中,通電觀察結(jié)果是否正確.解:1、AT89C513、#include<reg51.h>main()(unsignedinti;charaj,k;while(l)(Pl=Oxff;a=Pl;k=a&OxcO;switch(k)(case0x40:Pl=0x21;break;case0x80:Pl=0x0c;break;default:(Pl=0x21;for(j=0;j<120;j++)for(i=0;iv50000;i++fPl=0xI2;for(j=0;jv6;j++)for(i=0;i<50000;i++);Pl=OxOc;for(j=0;j<240;j++)for(i=0;i<50000;i++);Pl=0xl2;for(j=0;j<6;j++)for(i=0;i<50000;i++);break;})}第五章一、填空題1、中斷是指在突發(fā)事件到來時(shí)先中止現(xiàn)在 的工作,轉(zhuǎn)而去處理突發(fā)事件。待處理完成后,再返回到原來 的工作處,繼續(xù)進(jìn)行隨后的工作。2、引起突發(fā)事件的來源稱為 中斷源 :中斷源要求服務(wù)的請(qǐng)求稱為中斷請(qǐng)求;對(duì)中斷請(qǐng)求提供的服務(wù)稱為中斷服務(wù);中斷管理系統(tǒng)處理事件的過程稱為 中斷處理.3、外部中斷。可由ITO(TCON.O選擇其為低電平有效還是負(fù)邊沿有效。當(dāng)CPU檢測(cè)到P3.2引腳上出現(xiàn)有效的中斷信號(hào)時(shí),中斷標(biāo)志lEO(TCON.l)置-1,向CPU申請(qǐng)中斷。4、CPU對(duì)中斷系統(tǒng)所有中斷以及某個(gè)中斷源的開放和屏蔽是由中斷允許寄存器IE控制的。中斷允許寄存器中:EXO(IE.O),是外部中斷() 允許位:EXKIE.2),是外部中斷1允許位;EA(IE.7),CPU中斷總中斷允許位。以上各位為1時(shí),允許相應(yīng)的中斷,為時(shí)禁止相應(yīng)的中斷,其中,EA 為中斷的總開關(guān)。5、8051單片機(jī)有」 個(gè)中斷優(yōu)先級(jí),即可實(shí)現(xiàn)2級(jí)中斷服務(wù)嵌套.每個(gè)中斷源的中斷優(yōu)先級(jí)都是由中斷優(yōu)先級(jí)寄存器IP 中的相應(yīng)位的狀態(tài)來規(guī)定的。中斷優(yōu)先級(jí)寄存器中:PXO(IP.0),是外部中斷() 優(yōu)先級(jí)設(shè)定位:PX1(IP.2),是外部中斷1優(yōu)先級(jí)設(shè)定位:上面各位為1時(shí),是高優(yōu)先級(jí),為J時(shí)為低優(yōu)先級(jí)。6、進(jìn)入中斷服務(wù)是單片機(jī)自動(dòng)安排的,如進(jìn)入前會(huì)保存中斷處斷點(diǎn)地址 及其它重要信息。進(jìn)入中斷服務(wù)程序后則執(zhí)行相應(yīng)的服務(wù)程序,執(zhí)行完后還要恢復(fù)原來的中斷地址 及重要信息,然后返回到 中斷處斷續(xù)執(zhí)行原來的程序。7、中斷響應(yīng)時(shí)間即從發(fā)出中斷請(qǐng)求到中斷響應(yīng)的時(shí)間,這一時(shí)間不長(zhǎng),一般為1―8個(gè)機(jī)器周期。8、中斷響應(yīng)過程就是自動(dòng)調(diào)用并執(zhí)行 中斷的過程。C51編譯器支持在C源程序中直接以函數(shù)形式編寫中斷服務(wù)程序。常用的中斷函數(shù)定義語法如下:void函數(shù)名()interruptn其中n為中斷號(hào),C51編譯器允許0?31個(gè)中斷,標(biāo)準(zhǔn)8051,n取值范圍是川-40二、選擇題1、8051單片機(jī)的中斷優(yōu)先級(jí)有三條原則(ABD):ACPU同時(shí)接收到幾個(gè)中斷時(shí),首先響應(yīng)優(yōu)先級(jí)別最高的中斷請(qǐng)求。B正在進(jìn)行的中斷過程不能被新的同級(jí)或低優(yōu)先級(jí)的中斷請(qǐng)求所中斷。C正在進(jìn)行的中斷過程在中斷服務(wù)程序結(jié)束前不能被中斷.D正在進(jìn)行的低優(yōu)先級(jí)中斷服務(wù),能被高優(yōu)先級(jí)中斷請(qǐng)求所中斷。2、中斷響應(yīng)條件是(D)A中斷源有中斷請(qǐng)求;B此中斷源的中斷允許位為1;CCPU開中斷(即EA=1)。D同時(shí)滿足上述條件時(shí),CPU才有可能響應(yīng)中斷。3、以下寄存器中與中斷無關(guān)的寄存器是:CAIP;BIE;CTMOD;DTCON8051單片機(jī)有(C)個(gè)中斷源。A.2 B.3 C.5 D.325.8051能進(jìn)行(A)級(jí)中斷嵌套。A.2 B.3 C.5D.328051中斷響應(yīng)時(shí)間為(C)。A.3個(gè)機(jī)器周期 B.8個(gè)機(jī)器周期C.3?8個(gè)機(jī)器周期D.07.要打開外部中斷0需要進(jìn)行的設(shè)置有(AC)0A.EA=1 B.EX1=1C.EXO=1D.EXO=O8.要同時(shí)打開定時(shí)器TO、T1的中斷,并將TO設(shè)為高優(yōu)先級(jí)中斷,所要進(jìn)行的設(shè)置有(BD)。A.IE=0 B.IE=0x8a C.IP=OxO2 D.IP=0x40三、問答題KMCS-51系列單片機(jī)能提供幾個(gè)中斷源、幾個(gè)中斷優(yōu)先級(jí)?各個(gè)中斷源的優(yōu)先級(jí)怎樣確定?在同一優(yōu)先級(jí)中,各個(gè)中斷源的優(yōu)先順序怎樣確定?MCS-51系列單片機(jī)能提供5個(gè)中斷源;2個(gè)中斷優(yōu)先級(jí);各中斷源的優(yōu)先級(jí)通過中斷優(yōu)先級(jí)寄存器IP來確定。位76543210字節(jié)地址:B8HPSPT1PX1PTOPXOIP中斷優(yōu)先級(jí)控制寄存器IPPXO(IP.0),外部中斷()優(yōu)先級(jí)設(shè)定位;PTO(IP.1),定時(shí)/計(jì)數(shù)器T0優(yōu)先級(jí)設(shè)定位;PX1(IP.2),外部中斷()優(yōu)先級(jí)設(shè)定位;PT1(IP.3),定時(shí)/計(jì)數(shù)器T1優(yōu)先級(jí)設(shè)定位;PS(IP.4),串行口優(yōu)先級(jí)設(shè)定位;上面各位為1時(shí),是高優(yōu)先級(jí),為0時(shí)為低優(yōu)先級(jí)。同一優(yōu)先級(jí)中的中斷申請(qǐng)不止一個(gè)時(shí),則有中斷優(yōu)先權(quán)排隊(duì)問題。同一優(yōu)先級(jí)的中斷優(yōu)先權(quán)排隊(duì),由中斷系統(tǒng)硬件確定的自然優(yōu)先級(jí)形成,其排列如所示:表7.1各中斷源響應(yīng)優(yōu)先級(jí)中斷程序入口地址表中斷源中斷標(biāo)志中斷服務(wù)程序入口優(yōu)先級(jí)順序外部中斷0(INTO)IE00003H高定時(shí)/計(jì)數(shù)器0(TO)TFOOOOBH外部中斷1(WTO)IE10013H定時(shí)/計(jì)數(shù)器1(Tl)IF1001BH1串行口RI或TIOO23H低2、MCS-51有幾個(gè)中斷優(yōu)先級(jí)?試通過修改IP寄存器,使串行口中斷優(yōu)先級(jí)最高,定時(shí)器T1的中斷優(yōu)先級(jí)最低。MCS-51有2個(gè)中斷優(yōu)先級(jí)。使串行口中斷優(yōu)先級(jí)最高,定時(shí)器T1的中斷優(yōu)先級(jí)最低。貝!hIP=00010000B=0xl0.3、MCS-51外部中斷源有電平觸發(fā)和邊沿觸發(fā)兩種觸發(fā)方式,這兩種觸發(fā)方式所產(chǎn)生的中斷過程有何不同?怎樣設(shè)定?1、電平觸發(fā)中斷可由ITO(TCON.O)、IT1(TCON.2)選擇其為低電平有效還是下降沿有效。當(dāng)ITO=O(當(dāng)IT1=O)時(shí),為電平觸發(fā)方式。處理器每個(gè)指令周期查詢中斷引腳,當(dāng)發(fā)現(xiàn)引腳電平為低時(shí),觸發(fā)中斷.如果信號(hào)從1變?yōu)?,一個(gè)周期后又變?yōu)?,中斷并不會(huì)被清除,直到中斷執(zhí)行完畢并用RETI指令返回之后2、邊沿觸發(fā)方式當(dāng)IT0=l(當(dāng)m=D時(shí),為電平觸發(fā)方式。當(dāng)外部中斷引腳電平由高向低變化時(shí),將觸發(fā)中斷處理器.每個(gè)指令周期查詢中斷引腳,當(dāng)前一個(gè)指令周期是引腳電平為高,緊接著下一個(gè)指令周期檢測(cè)到引腳電平為低時(shí),將觸發(fā)中斷.4、CPU響應(yīng)中斷請(qǐng)求后,不能自動(dòng)清除哪些中斷請(qǐng)求標(biāo)志?CPU響應(yīng)中斷請(qǐng)求后,不能自動(dòng)清除串行口產(chǎn)生的中斷,即RI(SCON.O)或TI(SCON.l)需要手工清除。5、80C51有幾個(gè)中斷源?各中斷標(biāo)志是如何產(chǎn)生的?又是如何復(fù)位的?CPU響應(yīng)各中斷時(shí),其中斷入口地址是多少?80c51有5個(gè)中斷源。INTO(P3.2).可由ITO(TCON.O)選擇其為低電平有效還是下降沿有效。當(dāng)CPU檢測(cè)到P3.2引腳上出現(xiàn)有效的中斷信號(hào)時(shí),中斷標(biāo)志IEOCTCON.1)置1,向CPU申請(qǐng)中斷。W門(P3.3).可由IT1(TCON.2)選擇其為低電平有效還是下降沿有效。當(dāng)CPU檢測(cè)到P3.3引腳上出現(xiàn)有效的中斷信號(hào)時(shí),中斷標(biāo)志IEMTCON.3)置1,向CPU申請(qǐng)中斷。以上兩個(gè)中斷源稱作外部中斷源,因?yàn)樗鼈兌际怯赏獠枯斎氲摹?)定時(shí)器TO。TFO(TCON.5),片內(nèi)定時(shí)/計(jì)數(shù)器TO溢出中斷請(qǐng)求標(biāo)志。當(dāng)定時(shí)/計(jì)數(shù)器T0發(fā)生溢出時(shí),置位TF0,并向CPU申請(qǐng)中斷。4)定時(shí)器TLTF1(TCON.7),片內(nèi)定時(shí)/計(jì)數(shù)器T1溢出中斷請(qǐng)求標(biāo)志。當(dāng)定時(shí)/計(jì)數(shù)器T1發(fā)生溢出時(shí),置位TFL并向CPU申請(qǐng)中斷。5)串行通信。RI(SCON.O)或TI(SCON.1),串行口中斷請(qǐng)求標(biāo)志。當(dāng)串行口接收完一幀串行數(shù)據(jù)時(shí)置位RI或當(dāng)串行口發(fā)送完一幀串行數(shù)據(jù)時(shí)置位TL向CPU申請(qǐng)中斷。前4個(gè)中斷源在中斷執(zhí)行完后會(huì)自動(dòng)復(fù)位。而RI(SCON.O)或TI(SCON.1)需要手工清除。中斷入口地址是:中斷源中斷服務(wù)程序入口外部中斷0(INTO)0003H定時(shí)/計(jì)數(shù)器0(T0)000BH外部中斷1(INTO)0013H定時(shí)/計(jì)數(shù)器1(T1)001BH

串行口0023H四、編程題1、用中斷控制的交通燈控制系統(tǒng)編寫一交通燈控制程序.要求:正常情況下東西向通行60秒,黃燈轉(zhuǎn)換3秒;然后南北向通行120秒,黃燈轉(zhuǎn)換3秒,如此反復(fù)循環(huán).如果有緊急情況,交警干預(yù):按下S1時(shí),強(qiáng)制南北向通行,而東西向停止通行;按下S2時(shí),強(qiáng)制東西向通行,而南北向停止通行.實(shí)現(xiàn)方式:交警的干預(yù)使用中斷的方式進(jìn)行.仿真要求:在Proteus環(huán)境下建立電路圖,在KeilC環(huán)境下輸入程序;在KeilC環(huán)境下運(yùn)行程序,在Proteus環(huán)境下觀看運(yùn)行結(jié)果.1)設(shè)計(jì)原理圖;2)建立程序流程圖;3)建立仿真環(huán)境;4)調(diào)試程序;1)PSENALEEA工QJ.2.34567P1P1P1P1P1P1P1P1R7PSENALEEA工QJ.2.34567P1P1P1P1P1P1P1P1R7圖7.11交通燈電路圖2)#include<reg51.h>voiddelay(unsignedint);main()(IE=0x85;//開中斷:總中斷及兩個(gè)外部中斷,等效于{EA=1;EXO=1;EX1=1;}TCON=OxOO;〃電平觸發(fā)方式,等效于{IT0=0;ITl=0;}IP=0x04;//外中斷0為低優(yōu)先級(jí),外中斷1為高優(yōu)先級(jí),等效于{PXO=O;PX1=1;}while(l){〃正常運(yùn)行的交通燈循環(huán)程序Pl=0x21;delay(800);Pl=0xll;delay(300);Pl=0x0c;delay(1600);Pl=0x0a;delay(300);))voidintO()interrupt0〃外中斷0,中斷號(hào)為0.Pl=0x21;〃強(qiáng)制東西通行delay(lOO);voidintl()interrupt2〃外中斷1,中斷號(hào)為2.Pl=0x0c;delay(lOO);〃強(qiáng)制南北通行voiddelay(unsignedintj)unsignedinti,k;for(k=0;k<j;k++)for(i=0;i<500;i++){;}2、如圖所示電路,要求中斷開關(guān)斷開時(shí),在LED條上顯示你的學(xué)號(hào)(兩位BCD碼),中斷開關(guān)閉合時(shí),產(chǎn)生中斷,顯示P0口開關(guān)的狀態(tài)的反碼(接電源相應(yīng)的LED亮;接地相應(yīng)的LED不亮).并思考:1)中斷過程是怎樣的?2)如果要開關(guān)不斷轉(zhuǎn)換,能在顯示學(xué)號(hào)與顯示開關(guān)狀態(tài)間I產(chǎn)一1swBW8F,而而囹/.13刁題四-2電筠囹 轉(zhuǎn)換,程序該怎樣編寫?3)外部中斷改為邊沿觸發(fā),如何改?改后能實(shí)現(xiàn)原來的顯示功能嗎?為什么?#include,,reg51.hMvoiddelay(unsignedint);main()IE=0x81;TCON=OXOO;while(l)Pl=~0x03;delay(lOO);))voidinto()interrupt0{P1=~PO;delay(lOO);)voiddelay(unsignedintj)(unsignedinti,k;for(k=0;k<j;k++)for(i=0;i<500;i++){;}}1)每一機(jī)器周期檢測(cè)INTO引腳狀態(tài),如果有低電平,則轉(zhuǎn)到中斷服務(wù)程序,顯示學(xué)號(hào),并且一直顯示,直到開關(guān)斷開;如果沒有,則顯示開關(guān)狀態(tài)。TCON=OXOO;即設(shè)置:IT0=0,為電平中斷。TCON=0X01;即設(shè)置:ITO=1,為邊沿觸發(fā)。這樣只有轉(zhuǎn)換一次,因?yàn)榘聪麻_關(guān)后產(chǎn)生一個(gè)負(fù)跳變。顯示開關(guān)狀態(tài)一次,之后回到顯示學(xué)號(hào)狀態(tài).在上面的開關(guān)不斷變換時(shí),顯示不能轉(zhuǎn)換,因?yàn)檫@時(shí)負(fù)脈沖已經(jīng)過去了.而如果設(shè)置:IT0=0,為電平中斷時(shí)則一直可響應(yīng)中斷,能夠顯示上面開關(guān)狀態(tài)的變化。3、如圖所示中斷嵌套實(shí)驗(yàn)中如果不用譯碼器,直接將數(shù)碼管接到三個(gè)端口,要達(dá)到同樣的效果,程序該如何編寫?1)畫出電路圖;2)畫出主程序及中斷程序流程圖;3)編寫相應(yīng)的程序.1)

|勰2畿第01234567po.po.|勰2畿第01234567po.po.敞popo.po.popo.U13)〃中斷嵌套實(shí)驗(yàn)〃頭文件引用include?,reg51.hH〃宏定義#defineucharunsignedchar#defineuintunsignedintucharcodeLED_CODES[]={OxcO,Oxf9,Oxa4,OxBO,0X99,0X92,0X82,0XF8,0X80,0X90);uintz=0;〃延時(shí)子程序voiddelay(uintk){uintij;for(i=0;i<100;i++)for(j=0;j<k;j++);)〃外部中斷0響應(yīng)程序voidintO()interrupt0(uchari;for(i=0xf0;i<0xfa;i++){Pl=LED_CODES[z];//Pl=i;delay(850);z++;P1=O;z=0;I〃外部中斷1響應(yīng)程序voidintl()interrupt2(uchari;for(i=0xf0;i<0xfa;i++){P2=LED_CODES[z];//P2=i;delay(850);z++;)P2=0;z=0;}〃主程序niain()(uchari;IE=0x85;〃開中斷總開關(guān)及開外部中斷0與1//EA=1;EXO=1;EX1=1;TCON=OxOO;〃外部中斷為電平觸發(fā)//IT0=0;ITl=0;IP=0x()4;〃外部中斷0為低級(jí)中斷,外部中斷1為高級(jí)中斷//PXO=O;PX1=1;while(l)(for(i=0;i<10;i++)(P0=LED_CODES[z];〃P0=i;deIay(850);〃延時(shí)1秒z++;}z=0;)}第六章一、填空題1、工作方式寄存器TMTD作用:用來確定兩個(gè)定時(shí)器的工作方式。低半字節(jié)設(shè)置定時(shí)器_T0_?高半字節(jié)設(shè)置定時(shí)器T1.它的字節(jié)地址是89H,不能位尋址。2、GATE=1時(shí),要用軟件使TRO或TR1為1,同時(shí)外部中斷引腳也為高電平時(shí),才能啟動(dòng)定時(shí)/計(jì)數(shù)器工作。3、C/T:定時(shí)/計(jì)數(shù)模式選擇位。=0為計(jì)數(shù)模式;=1為定時(shí)模式。4、M1M0:工作方式設(shè)置位。定時(shí)/計(jì)數(shù)器有U工作方式,由M1M0進(jìn)行設(shè)置。5、TRI(TCON.6):定時(shí)器T1運(yùn)行控制位。TR1置1時(shí),定時(shí)器開始工作;TR1置0時(shí),停止工作。TR1由軟件置1或清()。所以,用軟件可控制定時(shí)/計(jì)數(shù)器的啟動(dòng)與停止。TRO(TCON.4):定時(shí)器TO運(yùn)行控制位,其功能與TR1類同。6、TH、TL是計(jì)數(shù)器的高8位和低8位,包括TH1、TL1(對(duì)應(yīng)定時(shí)器T1)TH()、TL0(對(duì)應(yīng)定時(shí)器T0).7、當(dāng)定時(shí)器To工作在方式3 時(shí),要占定時(shí)器T1的 TR1和TF1兩個(gè)控制位.8.定時(shí)器在工作方式0時(shí),計(jì)算定時(shí)器計(jì)數(shù)初值的公式中,M為小。二、選擇題1、定時(shí)器的工作方式有(ABCD)A13位定時(shí)/計(jì)數(shù)方式;B16位定時(shí)/計(jì)數(shù)方式;CTO拆分為二個(gè)定時(shí)/計(jì)數(shù)器;D8位自動(dòng)重裝定時(shí)器/計(jì)數(shù)器.2、定時(shí)器T1常用作為串行通信的波特率發(fā)生器,此時(shí),定時(shí)器工作在(2)A13位定時(shí)/計(jì)數(shù)方式;B16位定時(shí)/計(jì)數(shù)方式;C方式2;D方式3.3、計(jì)數(shù)器也要預(yù)裝初值,初值是所要計(jì)數(shù)值的補(bǔ)數(shù)。故四種方式初值可按如下方法計(jì)算:X=M-計(jì)數(shù)值對(duì)于不同的工作方式,計(jì)數(shù)器位數(shù)不同,故最大計(jì)數(shù)值M也不同,方式2的M為:CAM=213=8192;BM=216=65536;CM=28=256;DM=210;4.將TO設(shè)定為計(jì)數(shù)方式,T1設(shè)定為定時(shí)方式,都工作在方式2,則設(shè)定方法是(A)。A.TMOD=Ox26B.TMOD=Ox22 C.TMOD=Ox66D.TMOD=OxOO.單片機(jī)晶振頻率為6MHz,要求定時(shí)器工作在方式1,每10ms定時(shí)中斷一次,則定時(shí)器的計(jì)數(shù)初值為(C).A.jt=2I3-5OOOB.a=2,6-10000 C.jc=2,6-5000D.jt=-5000.串行口的波特率發(fā)生器常采用下列哪個(gè)定時(shí)器,工作在哪種方式(B)。A.T1,方式1B.T1,方式2 C.T0,方式1 D.T0,方式2.門控位GATE=1時(shí),要啟動(dòng)定時(shí)器T0的條件是(AC)。A.TRO=1 B.TR0=0 C.INTO=1 D.而5=0.(C)寄存器不能位尋址。A.IE B.IP C.TMOD D.TCON.TO工作在方式3時(shí),要借用的T1的控制位有(AB)。A.TRI B.TFI C.TFO D.TR0三、問答題1、綜述MCS-51系列單片機(jī)定時(shí)器0、1的結(jié)構(gòu)與工作原理。8051定時(shí)器作定時(shí)和計(jì)數(shù)時(shí),其計(jì)數(shù)脈沖分別由誰提供?結(jié)構(gòu)與工作原理(略)8051定時(shí)器作定時(shí)器時(shí),計(jì)數(shù)脈沖由內(nèi)部提供;作為計(jì)數(shù)器時(shí),由外部提供。2、8051定時(shí)器的門控信號(hào)GATE為1時(shí),定時(shí)器如何啟動(dòng)?GATA=1時(shí),要用軟件使TR0或TR1為1,同時(shí)外部中斷引腳也為高電平時(shí),才能啟動(dòng)定時(shí)/計(jì)數(shù)器工作。即此時(shí)定時(shí)器的啟動(dòng)條件,加上了或引腳為高電平這一條件。3、如果系統(tǒng)晶振頻率為12MHz,分別指出定時(shí)/計(jì)數(shù)器方式1和方式2最長(zhǎng)定時(shí)時(shí)間。f?sc=12MHz,則TM=12/foSC=lUS.故:方式1時(shí),最長(zhǎng)定時(shí)時(shí)間為:2,6*Ttt=65536uS=6.5536mS;方式2時(shí),最長(zhǎng)定時(shí)時(shí)間為:28*1'機(jī)=256PS。4、定時(shí)/計(jì)數(shù)器工作于定時(shí)和計(jì)數(shù)方式時(shí)有何異同點(diǎn)?定時(shí)/計(jì)數(shù)器工作于定時(shí)器方式時(shí),計(jì)數(shù)脈沖由單片機(jī)內(nèi)部提供;而工作于計(jì)數(shù)器方式時(shí),計(jì)數(shù)脈沖由外部提供,即T0由外部引腳T0輸入,T1由外部引腳T1輸入。5、當(dāng)定時(shí)/計(jì)數(shù)器T。用作方式3時(shí),定時(shí)/計(jì)數(shù)器T1可以工作在何種方式下?如何控制T1的開啟和關(guān)閉?方式3只適用于定時(shí)/計(jì)數(shù)器T0,定時(shí)器T1處于方式3時(shí)相當(dāng)于TR1=O,停止計(jì)數(shù)。工作方式3將T0分成為兩個(gè)獨(dú)立的8位計(jì)數(shù)器TLO和TH0。TH0+TF1+TRI組成的8位定時(shí)器,TL0+TF0+TR0組成的8位定時(shí)/計(jì)數(shù)器,T1組成的無中斷功能的定時(shí)器。特點(diǎn):方式3下T0可有2個(gè)具有中斷功能的8位定時(shí)器。在定時(shí)器T0用作方式3時(shí),T1仍可設(shè)置為方式0-2.四、編程題1、應(yīng)用單片機(jī)內(nèi)部定時(shí)器T0工作在方式1下,從P1.0輸出周期為2ms的方波脈沖信號(hào),已知單片機(jī)的晶振頻率為6MHZO請(qǐng)(1)計(jì)算時(shí)間常數(shù)X,應(yīng)用公式X=2"-t(f/12)(2)寫出程序清單解:⑴Ttn=12/€^=2uS周期為2mS,則半周期為ImS;X=2'‘一t/T機(jī)=65536-1000/2=65036(2)#include<reg51.h>sbitP1O=P1AO;main()TMOD=0X01;TH0=65036/256;TL0=65036%256;EA=1;ETO=1;TRO=1;while(l);Ivoidpulse()interrupt1{ET0=0;PIO二?PIO;TH0=65036/256;TL0=65036%256;ETO=1;}2、以定時(shí)器1進(jìn)行外部事件計(jì)數(shù),每計(jì)數(shù)1000個(gè)脈沖后,定時(shí)器I轉(zhuǎn)為定時(shí)工作方式。定時(shí)10ms后,又轉(zhuǎn)為計(jì)數(shù)方式。如此循環(huán)不止。設(shè)fo§c=6MHz,試用模式1編程。#include<reg5l.h>bitT=O;//T為0是為計(jì)數(shù),為1時(shí)為定時(shí)。main(){TMOD=0X50;THl=(65536-1000)/256;TLl=(65536-1000)%256;EA=1;ET1=1;TR1=1;while(l);1voidpulse()interrupt3(T=~T;if(T)〃定時(shí)(ET1=O;TMOD=0X10;TH1=(65536-10000/2)/256;TL1=(65536-10000/2)%256;ET1=1;}else〃計(jì)數(shù)(ET1=O;TMOD=0X50;THl=(65536-1000)/256;TLl=(65536-1000)%256;ET1=1;}}3、設(shè):fosc=12MHz,試編寫一段程序,功能為:對(duì)定時(shí)器TO初始化,使之工作在模式2,產(chǎn)生200口s定時(shí),并用查詢T0溢出標(biāo)志的方法,控制PL1輸出周期為2ms的方波。#include<reg5l.h>sbitP11=P1A1;main(){unsignedT=0;TMOD=0X02;TH0=(256-200)/256;TL0=(256-200)%256;TRO=1;whiled)(while(!TFO);TR0=0;TFO=O;TH0=(256-200)/256;TL0=(256-200)%256;T++;TRO=1;if(T==5)(T=O;P11=^P11;})}4、利用定時(shí)/計(jì)數(shù)器TO從P1.0輸出周期為1s,脈寬為20ms的正脈沖信號(hào),晶振頻率為12MHz.試設(shè)計(jì)程序。#include<reg5l.h>sbitP1O=P1AO;main()(unsignedT=0;TMOD=0X01;TH0=(65536-20000)/256;TL0=(65536-20000)%256;TRO=1;while(l){vvhile(!TFO);TR0=0;TFO=O;TH0=(65536-20000)/256;TL0=(65536-20000)%256;T++;TR0=l;if(T==l)(P10=0;}elseif(T==50)(T=O;P1O=1;}))方法二:中斷法#include<reg5l.h>sbitP10=PlA0;unsignedT=0;main()(EA=1;ETO=1;TMOD=0X01;TH0=(65536-20000)/256;TL0=(65536-20000)%256;TRO=1;while(l);voidtime()interrupt1TH0=(65536-20000)/256;TL0=(65536-20000)%256;T++;if(T==l)(P10=0;)elseif(T==50){T=0;P10=l;})5、要求從PL1引腳輸出1000Hz方波,晶振頻率為12MHz。試設(shè)計(jì)程序。#include<reg5l.h>sbitP11=P1A1;main(){TMOD=0X01;TH0=(65536-500)/256;TL0=(65536-500)%256;TRO=1;EA=1;ETO=1;while(l);}voidpulse()interrupt1(P11=-P11;TH0=(65536-500)/256;TL0=(65536-500)%256;}6、試用定時(shí)/計(jì)數(shù)器T1對(duì)外部事件計(jì)數(shù)。要求每計(jì)數(shù)100,就將T1改成定時(shí)方式,控制P1.7輸出一個(gè)脈寬為10ms的正脈沖,然后又轉(zhuǎn)為計(jì)數(shù)方式,如此反復(fù)循環(huán)。設(shè)晶振頻率為12MHzo#include<reg51.h>sbitP17=P1A7;bitT=O;//T為0是為計(jì)數(shù),為1時(shí)為定時(shí)。main()P17=0;TMOD=0X50;THl=(65536-100)/256;TLl=(65536-100)%256;EA=1;ET1=1;TR1=1;while(l);}voidpulse()interrupt3{T=~T;if(T)〃定時(shí){ET1=O;TMOD=0X10;TH1=(65536-10000)/256;TLl=(65536-10000)%256;P17=l;ET1=1;}else〃計(jì)數(shù){P17=0;ET1=O;TMOD=0X50;THl=(65536-100)/256;TLl=(65536-100)%256;ET1=1;)}7、利用定時(shí)/計(jì)數(shù)器TO產(chǎn)生定時(shí)時(shí)鐘,由Pl口控制8個(gè)指示燈。編一個(gè)程序,使8個(gè)指示燈依次一個(gè)一個(gè)閃動(dòng),閃動(dòng)頻率為20次/秒(8個(gè)燈依次亮一遍為一個(gè)周期)。#include<reg5l.h>#include<intrins.h>unsignedchara=Oxfe;main()TMOD=0X01;TH0=(?50000/8)/256;〃閃爍頻率為20次/每秒,周期為0.05秒,即50毫秒。TL0=(?50000/8)%256;〃每一LED移動(dòng)的間隔為50/8毫秒,設(shè)晶振頻率為12M。EA=1;ET0=l;TR0=l;while(l);}voidtimerOOinterrupt1{ET0=0;TH0=(-50000/l)/256;TL0=(-50000/l)%256;Pl=a;a=_crol_(a,l);ETO=1;)五、制作題請(qǐng)完成以下制作任務(wù):1、制作一包含8個(gè)跑馬燈和6個(gè)3種顏色的交通燈的電路;2、編寫控制跑馬燈和交通燈同時(shí)運(yùn)行的程序;3、畫出程序流程圖及電路圖;4、下載并調(diào)試程序,實(shí)現(xiàn)兩功能同時(shí)運(yùn)行.#include<reg51.h>#defineledP0unsignedcharlist[]={0x7e,0x3c,0x18,0x00,0x18,0x3c,0x7e,0xff};unsignedcharX=0;unsignedcharTL=0;unsignedchari=0;unsignedchartimerl=120,timer2=6,timer3=240,timer4=6;unsignedchar*T=list;main(){EA=1;ETO=1;TMOD=0x01;TH0=(-10(M)0/2)/256;TLO=(-10000/2)%256;TR0=l;while(l);)voiddelay(unsignedintj)(unsignedinti,t;for(t=j;t>0;t?){for(i=0;i<250;i++)}voidint0()interrupt1(ET0=0;TR()=();TH0=(-10000/2)/256;TL0=(-10000/2)%256;TR0=l;ET0=l;switch(X)(case0:(X=X+1;led=*T;delay(50);i++;T++;if(i>7){i=0;T=Ust;}break;)case1:(unsignedinti;chara,k;X=0;Pl=0xff;a=Pl;k=a&0xc0;switch(k)case0x40:{Pl=0xde;for(i=0;iv5000;i++);〃加上此延時(shí),可實(shí)現(xiàn)所需功能*/break;}case0x80:{Pl=0xf3;for(i=0;i<5000;i++);break;}default:{switch(TL)(case0:(Pl=0xde;timerl-;if(timerl==00)(timerl=120;TL++;}break;1{Pl=0xee;timer2-;if(timer2==00){timer2=6;TL++;)break;}(Pl=0xf3;timer3—;if(timer3==00)(timer3=240;TL++;)break;}{Pl=0xf5;timer4—;if(timer4==00)timer4=6;TL=O;}break;default:break;})})default:break;}D7U1AT89C51,:迥前a嚏嚏嚏T-HfR-HTD8D9R15R16R11IiiD1R10一R14+5V第七章一、填空題1、通信有并行 通信和串行通信兩種方式。在多微機(jī)系統(tǒng)以及現(xiàn)代測(cè)控系統(tǒng)中信息的交換多采用串行通信方式。2、并行通信通常是將數(shù)據(jù)字節(jié)的各位用多條數(shù)據(jù)線同時(shí)進(jìn)行傳送.并行通信控制簡(jiǎn)單、傳輸速度遮 ;由于傳輸線較多,長(zhǎng)距離傳送時(shí)成本高且接收方的各位同時(shí)接收存在困難。3、串行通信是將數(shù)據(jù)字節(jié)分成一位一位的形式在1條傳輸線上逐個(gè)地傳送。串行通信的特點(diǎn):傳輸線少,長(zhǎng)距離傳送時(shí)成本低,且可以利用電話網(wǎng)等現(xiàn)成的設(shè)備,但數(shù)據(jù)的傳送控制比并行通信復(fù)雜。4、串行通信又分為異步通信與同步通信。5、異步通信是指通信的發(fā)送與接收設(shè)備使用各自的時(shí)鐘 控制數(shù)據(jù)的發(fā)送和接收過程。為使雙方的收發(fā)協(xié)調(diào),要求發(fā)送和接收設(shè)備的時(shí)鐘頻率 盡可能一致。6、異步通信是以字符(構(gòu)成的幀)為單位進(jìn)行傳輸,字符與字符之間的間隙(時(shí)間間隔)是任意的的,但每個(gè)字符中的各位是以固定的時(shí)間傳送的,即字符之間是異步的(字符之間不一定有“位間隔”的整數(shù)倍的關(guān)系),但同一字符內(nèi)的各位是同步的(各位之間的距離均為“位間隔”的整數(shù)倍)。7、同步通信時(shí)要建立發(fā)送方時(shí)鐘對(duì)接收方時(shí)鐘的直接控制,使雙方達(dá)到完全同步。此時(shí),傳輸數(shù)據(jù)的位之間的距離均為“位間隔”的整數(shù)倍,同時(shí)傳送的字符間間隙,即保持位同步關(guān)系,也保持字符同步關(guān)系。8、奇校驗(yàn)時(shí),數(shù)據(jù)中“1”的個(gè)數(shù)與校驗(yàn)位“1”的個(gè)數(shù)之和應(yīng)為奇數(shù);偶校驗(yàn)時(shí),數(shù)據(jù)中“r,的個(gè)數(shù)與校驗(yàn)位,,1”的個(gè)數(shù)之和應(yīng)為偶數(shù)。接收字符時(shí),對(duì)“1”的個(gè)數(shù)進(jìn)行校驗(yàn),若發(fā)現(xiàn)不一致,則說明傳輸數(shù)據(jù)過程中出現(xiàn)了錯(cuò)誤。9、比特率是每秒鐘傳輸二進(jìn)制代碼的倍數(shù),單位是:位/秒(bps)。如每秒鐘傳送240個(gè)字符,而每個(gè)字符格式包含10位,這時(shí)的比特率為:10位X240個(gè)/秒=2400bps10.波特率表示每秒鐘調(diào)制信號(hào)變化的次數(shù),單位是:波特(Baud),,波特率和比特率不總是相同的,對(duì)于將數(shù)字信號(hào)1或o直接用兩種不同電壓表示的所謂傳輸,比特率和波特率是相同 的。所以,我們也經(jīng)常用波特率表示數(shù)據(jù)的傳輸速率。11、8051在串行口的結(jié)構(gòu)上有兩個(gè)物理上獨(dú)立的接收、發(fā)送緩沖器SBUF,它們占用同一地址-99H;接收器是雙緩沖結(jié)構(gòu);發(fā)送緩沖器,因?yàn)榘l(fā)送時(shí)CPU是主動(dòng)的,不會(huì)產(chǎn)生重疊錯(cuò)誤。通過對(duì)SBUF的讀、寫語句來區(qū)別是對(duì)接收緩沖器還是發(fā)送緩沖器進(jìn)行操作。CPU在寫SBUF時(shí),操作的是發(fā)送 緩沖器:讀SBUF時(shí),就是讀接收 緩沖器的內(nèi)容。12、方式2和方式3中;當(dāng)接收機(jī)的SM2=1時(shí)可以利用收到的RB8來控制是否激活RKRB8=0時(shí)不激活RI,收到的信息丟棄;RB8=1時(shí)收到的數(shù)據(jù)進(jìn)入SBUF,并激活RL進(jìn)而在中斷服務(wù)中將數(shù)據(jù)從SBUF讀走).當(dāng)SM2=0時(shí),不論收到的RB8為0和1,均可以使收到的數(shù)據(jù)進(jìn)入SBUF,并激活RI(即此時(shí)RB8不具有控制RI激活的功能)。通過控制SM2,可以實(shí)現(xiàn)多機(jī)通信。在方式0時(shí),SM2必須是1 。在方式1時(shí),若SM2=L則只有接收到有效停止位時(shí),RI才置1。13、方式。時(shí),串行口為同步移位寄存器的輸入輸出方式。主要用于擴(kuò)展并行輸入或輸出口。數(shù)據(jù)由RXD(P3.0)引腳輸入或輸出,同步移位脈沖由TXD(P3.1)引腳輸出。發(fā)送和接收均為18位數(shù)據(jù),低在先,高位在后。波特率固定為f。正“2。14、方式1是10 位數(shù)據(jù)的異步通信口。TXD為數(shù)據(jù)輸出引腳,RXD為數(shù)據(jù)接收引腳,其中」 位起始位,8位數(shù)據(jù)位,1位停止位。15、方式2或方式3時(shí)為11大位數(shù)據(jù)的異步通信口。TXD 為數(shù)據(jù)發(fā)送引腳,RXD為數(shù)據(jù)接收引腳.方式2和方式3時(shí)起始位1位,數(shù)據(jù)9位(含1位附加的第9位,發(fā)送時(shí)為SCON中的TB8,接收時(shí)為RB8),停止位1位,一幀數(shù)據(jù)為11位。方式2的波特率固定 為晶振頻率的1/64或1/32,方式3的波特率由 T1的溢出率決定。16、MCS-51串行接口有4種工作方式,這可在初始化程序中用軟件填寫特殊功能寄存器SCON加以選擇.用串口擴(kuò)并口時(shí),串行接口工作方式應(yīng)選為方式』.二選擇題1、控制串行口工作方式的寄存器是(C)(A)TCON(B)PCON(C)SCON(D)TMOD2、MCS-51的中斷允許觸發(fā)器內(nèi)容為83H,CPU將響應(yīng)的中斷請(qǐng)求是(??? )(A)T1,(B)TO,T1 (C)T1,串行接口 (D),T03、根據(jù)串行通信的傳輸方向,串行通信又分為(A、B、D)方式A單工;B半雙工;C同步與異步;D全雙工.4、串行通信的錯(cuò)誤校驗(yàn)方式有(A、B、D)A奇偶校驗(yàn);B代碼和校驗(yàn);C計(jì)算機(jī)校驗(yàn);D循環(huán)冗余校驗(yàn)等。5、下列電平哪些是TTL電平(C、D)A邏輯“0”:+5V?+15V;B邏輯“1”:-5V?-15V;C邏輯“()”:OV;D邏輯“1”:+5V.6、必需用軟件清除的中斷標(biāo)志是(B、C)ATFO;BRI;CTI;DIE0.7、以下公式中計(jì)算方式2的波特率公式是(B):A波特率=fosc/12B 波特率=(2SMOD/64) foscC 波特率=(2Smod/32) .(T1溢出率)D 波特率=(2SMOD/32) (TO溢出率)8、以下公式中計(jì)算方式3的波特率公式是(C).A.波特率=人“

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論