




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
單片機(jī)應(yīng)用技術(shù)項(xiàng)目式教程(C語(yǔ)言版)課后習(xí)題答案
練習(xí)與提高1
1.填空題
(1)12IgS
(2)上電復(fù)位按鍵復(fù)位
(3)0000H
(4)復(fù)位引腳時(shí)鐘引腳EAPSEN
(5)通用寄存器區(qū)位尋址區(qū)用戶區(qū)
(6)控制鎖存器
2.選擇題
(1)C
(2)A
(3)D
(4)A
(5)C
(6)A
(7)C
(8)D
3.判斷題
(1)錯(cuò)
(2)錯(cuò)
(3)對(duì)
(4)對(duì)
(5)對(duì)
(6)錯(cuò)
(7)錯(cuò)
(8)錯(cuò)
(9)錯(cuò)
(10)對(duì)
4.簡(jiǎn)答題
(1)什么是單片機(jī)?
答:?jiǎn)纹瑱C(jī)是采用超大規(guī)模集成電路技術(shù),將具有數(shù)據(jù)處理能力(比如算術(shù)運(yùn)算、數(shù)據(jù)傳送、邏
輯運(yùn)算、中斷處理)的中央處理器CPU,只讀程序存儲(chǔ)器ROM、隨機(jī)存儲(chǔ)器RAM、中斷系統(tǒng)、定
時(shí)器/計(jì)數(shù)器以及I/O接口電路等部件集成到一塊硅片上構(gòu)成的微型計(jì)算機(jī),簡(jiǎn)稱單片機(jī)。
(2)51系列單片機(jī)內(nèi)部包含哪些主要邏輯功能部件?
答:51系列單片機(jī)內(nèi)部包含中央處理器、內(nèi)部數(shù)據(jù)存儲(chǔ)器、內(nèi)部程序存儲(chǔ)器、串行口、并行I/O端
口、定時(shí)器/計(jì)數(shù)器、中斷系統(tǒng)、時(shí)鐘電路主要邏輯功能部件。
(3)P3端口的第二功能是什么?
答:
端口第二功能信號(hào)名稱
P3.0RXD串行城接收
P3.1TXD串行數(shù)據(jù)發(fā)送
P3.2INTO外部中斷0申請(qǐng)
P3.3INT\外部中斷1申請(qǐng)
P3.4TO定時(shí)/計(jì)數(shù)器。外部輸入
P3.5T1定時(shí)/計(jì)數(shù)器1外部輸入
P3.6WR外部RAM寫(xiě)選通
P3.7RD外部RAM讀選通
(4)什么是機(jī)器周期?機(jī)器周期和時(shí)鐘脈沖有何關(guān)系?
答:?jiǎn)纹瑱C(jī)系統(tǒng)中規(guī)定一個(gè)機(jī)器周期為12個(gè)時(shí)鐘脈沖周期,也就是6個(gè)狀態(tài),因此一
個(gè)機(jī)器周期為時(shí)鐘脈沖的十二分頻。
(5)51系列單片機(jī)常用的復(fù)位方法有哪些?畫(huà)出電路原理圖,并說(shuō)明其工作原理。
答:?jiǎn)纹瑱C(jī)的復(fù)位操作有兩種基本形式:上電復(fù)位和按鍵復(fù)位。
(a)上電復(fù)位(b)按鍵復(fù)位
上電復(fù)位電路,該電路利用電容充電完成復(fù)位操作,在通電瞬間,利用電容的上下兩極
板間的電壓不能突變的特性,RST引腳為高電平,隨著電容的充電,RST引腳的電壓將逐漸
下降。只要RST引腳的高電平能夠保持2個(gè)機(jī)器周期以上,單片機(jī)即可實(shí)現(xiàn)可靠的復(fù)位操
作。按鍵復(fù)位原理與上電復(fù)位原理基本相同。唯一不同的地方是,通過(guò)按鍵的按下,200c和
1KC電阻分壓,形成RST引腳的高電平。
(6)51系列單片機(jī)有多少個(gè)特殊功能寄存器?它們分布的地址范圍是多少?
答:51系列單片機(jī)有21個(gè)特殊功能寄存器。它們以離散形式分布在片內(nèi)RAM高128B
單元內(nèi)。
(7)51系列單片機(jī)片內(nèi)RAM是如何劃分的?
答:51系列單片機(jī)的內(nèi)部RAM共有256B單元,通常把這256個(gè)單元按其功能劃分為
兩部分:低128B單元(單元地址00H?7FH)和高128B單元(單元地址80H?FFH)。
(8)簡(jiǎn)述程序狀態(tài)字(PSW)各位的含義,單片機(jī)如何選擇當(dāng)前的通用工作寄存器組?
答:CY(PSW.7)進(jìn)位標(biāo)志:用于存放算術(shù)運(yùn)算的進(jìn)位或借位標(biāo)志。在進(jìn)行加、減運(yùn)算時(shí),
如果操作結(jié)果最高位有進(jìn)位或者借位,CY標(biāo)志位則會(huì)由單片機(jī)硬件自動(dòng)置“1”,否則被置
“0”。在位操作時(shí),作位累加器使用,該位可以被軟件置位或清零。AC(PSW.6)輔助進(jìn)位標(biāo)志
位:在加、減運(yùn)算中,當(dāng)?shù)?位向高4位有進(jìn)位或借位時(shí),由硬件置AC=1,否則AC=0。
AC位用于BCD碼數(shù)運(yùn)算時(shí)的十進(jìn)制調(diào)整。F0(PSW.5)—沒(méi)有定義的位。RS1和RS0(PSW.4,
PSW.3)通用工作寄存器選擇位:可以用軟件置位或清零以確定選用的通用工作寄存器組。被
用于選擇CPU當(dāng)前使用的工作寄存器組。
(9)什么是二進(jìn)制數(shù)?為什么在計(jì)算機(jī)系統(tǒng)中廣泛采用二進(jìn)制數(shù)?
答:二進(jìn)制數(shù)的兩個(gè)基本特點(diǎn):它由兩個(gè)基本字符0、I組成;二進(jìn)制數(shù)運(yùn)算規(guī)律是“逢
二進(jìn)一”。
在計(jì)算機(jī)系統(tǒng)中,可以很方便地使用邏輯“1"和"O''表示電平信號(hào)的高和低,所以計(jì)算機(jī)
內(nèi)部廣泛采用二進(jìn)制數(shù)。
(10)簡(jiǎn)述二進(jìn)制與十六進(jìn)制間互相轉(zhuǎn)換的原則。
答:把二進(jìn)制數(shù)(或十六進(jìn)制數(shù))按位權(quán)形式展開(kāi)成多項(xiàng)式和的形式,求其最后的和,
就是其對(duì)應(yīng)的十進(jìn)制數(shù)——簡(jiǎn)稱“按權(quán)求和”。
由于4位二進(jìn)制數(shù)恰好有16個(gè)組合狀態(tài),即1位十六進(jìn)制數(shù)與4位二進(jìn)制數(shù)是一一對(duì)應(yīng)的。
只要將每1位十六進(jìn)制數(shù)用相應(yīng)的4位二進(jìn)制數(shù)表示即可。二進(jìn)制數(shù)轉(zhuǎn)換為十六進(jìn)制數(shù),以
小數(shù)點(diǎn)為界,整數(shù)部分從低位向高位,小數(shù)部分從高位向低位,每4位二進(jìn)制數(shù)為一組,依
次寫(xiě)出每組二進(jìn)制數(shù)所對(duì)應(yīng)的十六進(jìn)制數(shù)。
練習(xí)與提高2
1.答:
(1)WKeilpVision,執(zhí)行菜單命令"Project”“Nee>Project”創(chuàng)建“兩位信號(hào)燈交替
閃爍控制仿真”項(xiàng)目,選擇CPU類型:Atmel公司的AT89c51。
(2)執(zhí)行菜單命令"File”小ew”創(chuàng)建文件,輸入C語(yǔ)言源程序,保存為“program2-
l.c”。
(3)在“Project”欄的File項(xiàng)目管理窗口中右擊文件組,選擇快捷菜單中“AddFileto
Group'SourceGroup1將源程序“program2-l.c”添加到項(xiàng)目中。
(4)設(shè)置“Debug”選項(xiàng)卡下仿真形式“UseSimulator”選項(xiàng),進(jìn)行軟件仿真。
(5)執(zhí)行菜單命令"Project”Hrnlate",或直接單擊工具欄圖標(biāo)無(wú)誤后執(zhí)行
“Project”“BuildTarget",或直接單擊工具欄圖標(biāo)國(guó),編譯源程序,創(chuàng)建“.hex”文件。
(6)打開(kāi)菜單“Debug”,選擇"Start/StopDebugSession”項(xiàng),或直接單擊工具欄圖標(biāo)一
進(jìn)入Keil調(diào)試環(huán)境。
(7)打開(kāi)菜單“Peripherals”選擇仿真端口P1;運(yùn)行源程序。
觀察ParallelPort1窗口,Pl端口的變化,有“小的位表示為高電平力”,空白位表示為
“0”。
2.答:
ISP(InSystemProgramming)即在系統(tǒng)可編程,用幾根下載線就可以對(duì)單片機(jī)進(jìn)行程序
下載,無(wú)須編程器,也不用將單片機(jī)取下。因此,稱為在系統(tǒng)可編程。例如,Atmel公司的
早期產(chǎn)品NT89c5X系列單片機(jī),在下載程序時(shí)需要使用專門(mén)的編程器,單片機(jī)在進(jìn)行程序
下載時(shí)必須從電路上取下來(lái),使用非常不便。推出了新產(chǎn)品——AT89s5X之后,其具有ISP
下載功能,為程序下載提供了極大的便利。
3.答:
右擊“Target1”,在快捷菜單中選擇“OptionsfbrTarget'Target1'”命令。在彈出的設(shè)置對(duì)
話框中,在“Output”選項(xiàng)卡中選擇“CreateExecutable”項(xiàng),并勾選其下的“CreateHEXFi”項(xiàng),
才能在程序編譯后生成HEX格式的可執(zhí)行文件,即目標(biāo)程序。
4.答:
(1)編譯
選擇菜單“Project”/“Tranlate",或直接單擊工具欄圖標(biāo)多,可對(duì)當(dāng)前文件進(jìn)行編譯。
編譯過(guò)程中相關(guān)信息會(huì)出現(xiàn)在下方輸出窗口中的“BuildOutput”項(xiàng)中。編譯通過(guò)后,執(zhí)行
“Project”/“BuildTarget",或直接單擊工具欄圖標(biāo)國(guó),創(chuàng)建目標(biāo)程序“hex”文件。
(2)調(diào)試仿真
打開(kāi)菜單“Debug”,選擇"Start/StopDebugSession”項(xiàng),或直接單擊工具欄圖標(biāo)---,進(jìn)
入Keil調(diào)試環(huán)境。
(3)觀察外圍設(shè)備的變化
打開(kāi)菜單“Peripherals”,有P0、PKTimer0>Timerl4項(xiàng),選擇仿真端口Pl;運(yùn)行源程
序,觀察ParallelPort1窗口,Pl端口的變化,有T”的位表示為高電平力”,空白位表示為
“0”。
5.答:略。
6.答:
Proteus和Keil之間,可通過(guò)VDM(VirtualDebugMonitor)協(xié)議實(shí)現(xiàn)聯(lián)合調(diào)試。在Proteus
中做硬件電路,然后與Keil集成環(huán)境聯(lián)合應(yīng)用,調(diào)試項(xiàng)目,可以在不使用硬件電路的情況
下以純軟件的方式仿真整個(gè)開(kāi)發(fā)過(guò)程。
具體操作步驟如下:
(1)將Proteus安裝路徑下MODELS文件夾中的VDM51.dll復(fù)制到Keil的安裝路徑
下BIN文件夾中。
(2)打開(kāi)Keil安裝目錄下的tools.ini文件,在語(yǔ)句TDRVO=BIN\MON51.DLL("Keil
Monitor-51Driver")后面力口入語(yǔ)句TDRV8=BIN\VDM51.DLL("ProteusVSMMonitor-51
Driver")。
(3)運(yùn)行Proteus,打開(kāi)設(shè)計(jì)文件“兩位信號(hào)燈交替閃爍控制仿真.dsn”,在菜單“Debug”
中,選中“UseRemoteDebugMonitor”命令。
(4)運(yùn)行KeilpVision,打開(kāi)要調(diào)試的工程,單擊菜單“Project"/"OptionsforTarget
叮argetl'”,在對(duì)話框中的“Debug”選項(xiàng)卡中選擇"UseProteusVSMMonitor-51Driver”,下面
的兩項(xiàng)“LoadApplicationatStartup"和"Gotillmain"一般應(yīng)勾選。
(5)設(shè)置本機(jī)IP。點(diǎn)擊“UseProteusVSMMonitor-51Driver”右側(cè)“Settings”按鈕,彈出
對(duì)話框。默認(rèn)“Host”為“127.0.0.1",即表示本機(jī);默認(rèn)使用TCPPort8000進(jìn)行通訊,故“Port”
為“8000”。若Proteus在其它計(jì)算機(jī)上運(yùn)行,則“Host”應(yīng)設(shè)置為該計(jì)算機(jī)所對(duì)應(yīng)的IP。
(6)完成以上的步驟之后,在KeiluVision中運(yùn)行“Debug”/“Start/StopDebugSession”,
在調(diào)試過(guò)程中可以從Proteus中直接看到運(yùn)行結(jié)果變化。
練習(xí)與提高3
1.填空題
(1)PlP0P2P3
(2)位字節(jié)
(3)sbitsbitLED30=P3A0
(4)sfr
(5)順序循環(huán)選擇
(6)表達(dá)式和一個(gè)分號(hào)一個(gè)分號(hào)
(7)ifelseswitch
(8)dowhilewhile
(9)無(wú)數(shù)
(10)100
2.選擇題
(1)A
(2)A
(3)C
(4)C
(5)A
3.綜合練習(xí)題
(1)控制程序如下:
#include<reg5l.h>〃包含頭文件reg51.h
voiddelay(unsignedintms);〃函數(shù)聲明
voidmain()〃主函數(shù)
(〃程序開(kāi)始
while(l)〃循環(huán)控制
(〃循環(huán)體部分開(kāi)始
Pl=0x55;
delay(IOOO);〃調(diào)用延時(shí)函數(shù)
Pl=0xAA;
delay(IOOO);〃調(diào)用延時(shí)函數(shù)
)〃循環(huán)控制結(jié)束
I//主函數(shù)的結(jié)束
voiddelay(unsignedintms)〃定義延時(shí)函數(shù)
(〃延時(shí)函數(shù)體開(kāi)始
unsignedinti;
for(i=0;i<ms;i++);
)
(2)控制程序如下:
#include<reg5l.h>〃包含頭文件reg51.h
voiddelay(unsignedintms);〃函數(shù)聲明
voidmain()〃主函數(shù)
(〃程序開(kāi)始
while(l)〃循環(huán)控制
(〃循環(huán)體部分開(kāi)始
Pl=0XE7;
delay(lOOO);〃調(diào)用延時(shí)函數(shù)
Pl=0xDB;
delay(lOOO);
Pl=0XBD;
delay(lOOO);〃調(diào)用延時(shí)函數(shù)
Pl=0x7E;
delay(lOOO);
P1=OXBD;
delay(lOOO);〃調(diào)用延時(shí)函數(shù)
Pl=0xDB;
delay(lOOO);
Pl=0XE7;
delay(lOOO);〃調(diào)用延時(shí)函數(shù)
〃循環(huán)控制結(jié)束
〃主函數(shù)的結(jié)束
voiddelay(unsignedintms)〃定義延時(shí)函數(shù)
(〃延時(shí)函數(shù)體開(kāi)始
unsignedinti;
fbr(i=O;i<ms;i++);
練習(xí)與提高4
1.填空題
(1)16、TO、T1
(2)外部、內(nèi)部(機(jī)器周期)
(3)P3.4和P3.5、晶體振蕩器時(shí)鐘脈沖體分頻
(4)5、兩、兩
(5)中斷請(qǐng)求、中斷響應(yīng)、中斷服務(wù)、中斷返回
2.選擇題
(DC
(2)A
(3)A
(4)D
(5)BINTO、TO、INT\、Tl、串行口
3.綜合練習(xí)題
(1)按下列要求設(shè)置TMOD
1)TO計(jì)數(shù)器、方式1,運(yùn)行與INTO有關(guān);T1計(jì)數(shù)器、方式2;運(yùn)行與INT1無(wú)關(guān)
解:TMOD=01100101B
2)TO定時(shí)器、方式3,運(yùn)行與INTO無(wú)關(guān);T1計(jì)數(shù)器、方式0;運(yùn)行與INT1有關(guān)
解:TMOD=01100011B
(2)按下列要求設(shè)置TO定時(shí)值,并置THO、TL0值
1)fosc=6MHz>TO方式1,定時(shí)40ms
解:TH0=(65536-40000/2)/256
TLO=(65536-40000/2)%256
2)fosc=12MHz、TO方式2,定時(shí)180ps
解:TH0=TL0=256-180=176
(3)已知fosc=12MHz,試編寫(xiě)程序,利用T1模式2。從P1.7輸出周期為240聯(lián)的
方波。
分析:輸出周期為240Pls的方波,即需要定時(shí)120Hs
計(jì)數(shù)器的初始值:TH1=TL1=256-120=136=88H
TMOD=20H
源程序設(shè)計(jì):
#include<reg51,h>//頭文件
sbitPl_7=PlA7;〃位定義
voidmain()
TMOD=0x20;//設(shè)置為工作模式2的計(jì)數(shù)工作方式
THl=0x88;//設(shè)置計(jì)數(shù)器初始值
TLl=0x88;
TR1=1;//啟動(dòng)T1
While(!TFl)//查詢計(jì)數(shù)器是否完成200次計(jì)
TF1=O;//計(jì)數(shù)完成,溢出標(biāo)志位TF1清零
P1_7=~P1_7;〃計(jì)數(shù)完成,PL0取反
練習(xí)與提高5
1.填空題
(i)共陰極;共陽(yáng)極。
(2)低電平;高電平。
(3)靜態(tài);少。
(4)靜態(tài);動(dòng)態(tài)。
(5)觸點(diǎn)式按鍵;非觸點(diǎn)式按鍵;觸點(diǎn)式按鍵;非觸點(diǎn)式按鍵;觸點(diǎn)式按鍵
(6)硬件去抖;軟件去抖;硬件去抖;軟件去抖。
2.簡(jiǎn)答題
(1)當(dāng)需要顯示位數(shù)較多時(shí),可采用哪些方法增加顯示位數(shù)?
答:1、采用動(dòng)態(tài)顯示方法;2、采用硬件電路擴(kuò)展顯示位數(shù);3、擴(kuò)展I/O口
(2)簡(jiǎn)述動(dòng)態(tài)顯示原理。動(dòng)態(tài)顯示實(shí)際上能實(shí)現(xiàn)多位同時(shí)點(diǎn)亮嗎?
答:動(dòng)態(tài)掃描顯示是單片機(jī)應(yīng)用系統(tǒng)中最常用的顯示方式。它把所有顯示器的同名段控
端并接在一起,由同一個(gè)8位并行輸出端口控制,輸出的控制字稱為段碼;而各位顯示器的
公共端即位控端,則分別由不同輸出口線控制,輸出的控制字稱為位碼。這樣,各顯示位不
能同時(shí)顯示不同的數(shù)字或字符。因此要采用循環(huán)掃描的方法,即自左到右(或自右向左)依
次輪流使每位顯示器顯示數(shù)字或字符并持續(xù)一段時(shí)間(通常為1ms),由于發(fā)光物體具有余
輝特性以及人眼視覺(jué)的惰性,盡管各位顯示器是分時(shí)斷續(xù)地顯示,只要適當(dāng)選取掃描頻率,
顯示效果就是連續(xù)穩(wěn)定地顯示,而察覺(jué)不到有閃爍現(xiàn)象。
動(dòng)態(tài)顯示實(shí)際上不能實(shí)現(xiàn)多位同時(shí)點(diǎn)亮。只能從產(chǎn)生視覺(jué)上的同時(shí)點(diǎn)亮效果。
(3)單片機(jī)的鍵盤(pán)接口電路可以完成哪些功能?
答:1.確定按鍵是否按下;2.鍵盤(pán)去抖;3.鍵值計(jì)算;4.按鍵處理。
3.設(shè)計(jì)題
(1)設(shè)計(jì)一個(gè)LED數(shù)碼管的靜態(tài)顯示電路并設(shè)計(jì)程序?qū)崿F(xiàn)以下功能:完成2位顯示,
要求兩位分別正序和逆序依次循環(huán)顯示0~9十個(gè)數(shù)字。
答:電路原理圖如下:
二
H
U
U
R
H
源程序如下:
#include"reg5l.h"〃包含頭文件reg51.h
voiddelayls();〃延時(shí)Is函數(shù)聲明
voidmain()〃主函數(shù)
(
unsignedchari;
unsignedcharled[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
〃定義數(shù)組led存放數(shù)字0?9的字型碼
TMOD=0x01;//設(shè)置TO為定時(shí)、工作模式1
TH0=0x3c;//設(shè)置計(jì)數(shù)器初值為3CB0H
TL0=0xb0;
while(l)
for(i=0;i<10;i++)
(
P2=led[i];〃正序顯示
P3=~led[9-i];〃逆序顯示
delayls();〃延時(shí)Is
voiddelayls()
{
unsignedchari;
TRO=1;//啟動(dòng)TO
for(i=0;i<20;i++)
(
while(!TF0);//查詢計(jì)數(shù)是否溢出,即定時(shí)50ms時(shí)間到,TFO=1
TF0=0;//50ms定時(shí)時(shí)間到,將TO溢出標(biāo)志位TFO清零
TH0=0x3c;〃恢復(fù)計(jì)數(shù)器初值
TLO=OxbO;
(2)設(shè)計(jì)一個(gè)多位LED數(shù)碼管顯示系統(tǒng),要求6個(gè)LED數(shù)碼管依次顯示A、b、C、
d、E、F六個(gè)字符,試設(shè)計(jì)電路并編寫(xiě)程序。
答:
電路原理圖如下:
Tl-_
l_ll_ll_ll_ll_ll_l
□.□.□.U.□.LI.
里盟如三
include"REG51.H"
voiddelay50ms();〃延時(shí)50ms函數(shù)聲明
voidmain()//主函數(shù)
unsignedcharled[J={0x88,0x83,0xc6,Oxa1,0x86,0x8e};
〃設(shè)置數(shù)字a?f字型碼
unsignedchari,w;
TMOD=0x01;〃設(shè)置定時(shí)器0工作方式1
while(l)
{
w=0x01;//位選碼初值為01H
for(i=0;i<8;i++)
(
P2=w;〃位選碼送位控制口P2口
w?=l;//位選碼左移,選中下一位
Pl=led[i];//顯示字型碼送Pl口
delay50ms();〃延時(shí)50ms
)
)
}
voiddelay50ms()
(
TH0=0x3c;//置定時(shí)器初值
TL0=0xb0;
TRO=1;//啟動(dòng)定時(shí)器0
while(!TF0);//查詢計(jì)數(shù)是否溢出,即定時(shí)到時(shí)計(jì)數(shù)溢出,TF0=l
TF0=0;//50ms定時(shí)時(shí)間到,將定時(shí)器溢出標(biāo)志位TF0清零
)
(3)在一塊8x8的LED點(diǎn)陣上循環(huán)顯示0~9十個(gè)數(shù)字字符,時(shí)間間隔為Is。
答:
電路原理圖如下:
mjil
X?=L
「HI-------三三二
O----------------
斗1_一■=__—_
源程序如下:
include“REG51.H”
voiddelay1ms();
voidmain()
unsignedcharcodeled[]={0xl8,0x24,0x24,0x24,0x24,0x24,0x24,Ox18,//0
0x00,Ox18,0x1c,0x18,0x18,Ox18,0x18,0x18,//I
0x00,Ox1e,0x30,0x30,Ox1c,0x06,0x06,0x3e,//2
0x00,Ox1e,0x30,0x30,Ox1c,0x30,0x30,Ox1e,//3
0x00,0x30,0x38,0x34,0x32,Ox3e,0x30,0x30,//4
0x00,Ox1e,0x02,Ox1e,0x30,0x30,0x30,Ox1e,//5
OxOO.OxIc,0x06,Ox1e,0x36,0x36,0x36,Ox1c,//6
0x00,Ox3f,0x30,Ox18,Ox18,0x0c,0x0c,0x0c,//7
0x00,Ox1c,0x36,0x36,Ox1c,0x36,0x36,Ox1c,//8
0x00,Ox1c,0x36,0x36,0x36,0x3c,0x30,Oxlc};//9
unsignedcharw;
unsignedinti,j,k,m;
while(l)
for(k=0;k<10;k++)
for(m=0;m<400;m++)
w=0x01;
j=k*8;
for(i=0;i<8;i++)
Pl=w;
PO=led[j];
delaylms();
w?=l;
j++;
voiddelaylms()
unsignedchari;
for(i=0;i<0x10;i++);
(4)設(shè)計(jì)簡(jiǎn)易時(shí)間顯示電路,要求顯示“XX:YY”分別對(duì)應(yīng)“分:秒”,并帶有清零、暫
停、開(kāi)始3個(gè)控制鍵。
答:
電路原理圖如下:
源程序如下:
#include<reg5l.h>
unsignedcharmsec,sec,min;//定義msec為50ms計(jì)數(shù)變量,sec為秒變量
unsignedcharled[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsignedchardis[]={0xbf,0xbf?0xbf,0xbf);
voidTOdelay(void)interrupt1〃定時(shí)器0中斷類型號(hào)為1
TH0=0x3c;//50ms定時(shí)初值
TL0=0xb0;
msec++;〃中斷次數(shù)增1
if(msec==20)〃中斷次數(shù)到20次嗎?
(
msec=0;〃是,1秒計(jì)時(shí)到,50ms計(jì)數(shù)單元清零
sec++;〃秒單元加1
if(sec==60)〃到1分嗎?
sec=0;//是,秒單元清零
min++;〃分單元加1
if(min==60)
{
min=O;
)
)
)
)
voiddisplayO
{unsignedcharm,n=0x01;
for(m=0;m<4;m++)
P2=~n;〃送位碼
Pl=dis[m];〃送段碼
n?=l;〃位碼左移一位,為下一個(gè)做準(zhǔn)備
delay(10);〃點(diǎn)亮一段時(shí)間,實(shí)現(xiàn)顯示
voidmain()〃主函數(shù)
unsignedchartemp;
TMOD=0x01;〃定時(shí)器0工作方式1
TH0=0x3c;//50ms定時(shí)初值
TL0=0xb0;
EA=1;〃開(kāi)總中斷
ET0=l;〃開(kāi)定時(shí)器0中斷
P3=0xff;〃P3口做輸入
while(l)
dis[3]=led[min/10];〃分十位
dis[2]=led[min%10J;〃分個(gè)位
dis[l]=led[sec/10];〃秒十位
dis[O]=led[sec%10];〃秒個(gè)位
temp=-P3;//讀入P3口引腳狀態(tài)并取反
temp=temp&0xe0;//屏蔽掉無(wú)關(guān)位,保留三位按鍵狀態(tài)xxxOOOOO
if(temp==0)〃判斷有無(wú)按鍵按下
fi
if(temp==0x01)//按下暫停鍵
TR0=0;〃暫停計(jì)數(shù)
if(temp==0x02)〃按下開(kāi)始鍵
TRO=1;〃開(kāi)始計(jì)數(shù)
if(temp==0x04)〃按下清零鍵
{TRO=O;min=O;sec=O;msec=O;}
)
displayO;〃數(shù)碼管顯示“分:秒”
練習(xí)與提高6
1.填空題
(1)并行通信;串行通信。
(2)逐位按順序;1;1;慢;遠(yuǎn);低;強(qiáng);低。
(3)單工制式;半雙工制式;全雙工制式。
(4)全雙工。
2.選擇題
(1)C;(2)A;(3)C;(4)B;(5)A;(6)D。
3.簡(jiǎn)答題
(1)異步串行通信方式的特點(diǎn)是什么?異步串行通信方式的數(shù)據(jù)幀格式如何組成?
串行通信是指將數(shù)據(jù)逐位按順序傳送,占用數(shù)據(jù)線條數(shù)較少、傳輸速度慢,適合遠(yuǎn)距
離數(shù)據(jù)通信。
異步串行通信的數(shù)據(jù)幀由起始位、數(shù)據(jù)位、校驗(yàn)位和停止位構(gòu)成.
(2)單片機(jī)的串行數(shù)據(jù)緩沖器有幾個(gè),結(jié)構(gòu)如何?如何工作?
串行口數(shù)據(jù)緩沖器SBUF是一個(gè)8位的寄存器,處于單片機(jī)的特殊功能寄存器區(qū),字
節(jié)地址為99H。它用于存放將要發(fā)送或接收到的數(shù)據(jù)。在物理上,它對(duì)應(yīng)兩個(gè)寄存器,一
個(gè)是發(fā)送寄存器,一個(gè)是接收寄存器,它們共用一個(gè)地址。通過(guò)CPU讀或?qū)懖僮鲄^(qū)別
SBUF的狀態(tài),即作為發(fā)送寄存器使用時(shí),只能寫(xiě)入不能讀出;作為接收寄存器使用時(shí),
只能讀出不能寫(xiě)入。
(3)串行控制寄存器SCON的功能是什么?各位的功能是什么?
串行口控制寄存器SCON用于控制和檢測(cè)串行端口的工作狀態(tài)。
①SM0SM1:串行口工作方式選擇位
②SM2:多機(jī)通信控制器位
③REN:串行接收允許控制位
@TB8:發(fā)送數(shù)據(jù)第9位
⑤RB8:接收數(shù)據(jù)第9位
⑥TI:發(fā)送中斷標(biāo)志位
⑦RI:接收中斷標(biāo)志位。
(4)單片機(jī)串行通信的波特率如何控制?
可以通過(guò)設(shè)置SCON中的SM0和SMI位、PCON中的SMOD位、定時(shí)器T1溢出率
來(lái)設(shè)置。
(5)單片機(jī)的串行口有哪幾種工作方式?功能如何,如何控制?
SMOSM1工作方式功能說(shuō)明
000同步移位寄存器輸入/輸出,波特率固定為AsJ12
01110位異步收發(fā),波特率可變(T1溢出率/n,n=32或16)
10211位異步收發(fā),波特率固定為人sJn,n=64或32)
11311位異步收發(fā),波特率可變(T1溢出率/n,n=32或16)
4.設(shè)〒卜題
(1)利用串口擴(kuò)展實(shí)現(xiàn)4位LED數(shù)碼管的顯示,設(shè)計(jì)電路并編程,要求每隔1s交替
顯示“1357”和“2468”。
電路原理圖如下:
R\
-FT~F°T-JT
DS,DS、
coCD“CO
a.CO
5V開(kāi)出。,卜尸/部H十卜評(píng)TV耳6坪中中“v科[[[[[[,
號(hào)昌號(hào)蔡司=T44-M4=H-r41困全姓
3*3u.匕鄉(xiāng)38鄉(xiāng)3匕8君匕芬8罰魏君|5
憎M9
<on|ddo"<8能i浣5:“皖B
~r-1王叩
TX^6『;r>|
*5V
P3.1
源程序如下:
#include<reg5l.h>
unsignedcharled1[]={0x06,0x4F,0x6D,0x07};
unsignedcharled2l]={0x5B,0x66,0x7D,0x7F};
voiddelayls();〃延時(shí)Is函數(shù)聲明
main()
(
unsignedchari;
SCON=OxOO;〃設(shè)置串行口工作方式為方式0
while(l)
(
for(i=0;i<4;i++)
{
SBUF=ledl[il;〃傳送數(shù)據(jù)
while(!TI);〃查詢TI是否由0變1
TI=0;//軟件給TI清0
dat=?l;〃輸出數(shù)據(jù)左移一位
)
delayls();
for(i=0;i<4;i++)
{
SBUF=led2[i];〃傳送數(shù)據(jù)
while(!TI);〃查詢TI是否由。變1
TI=0;〃軟件給TI清0
dat=?l;〃輸出數(shù)據(jù)左移一位
)
1
)
)
voiddelayls()〃延時(shí)1S子函數(shù),略
(2)編程實(shí)現(xiàn)兩個(gè)單片機(jī)的雙機(jī)通信程序,A機(jī)作為發(fā)送端每秒發(fā)送1個(gè)字符,B機(jī)
接收并在與其連接的LED數(shù)碼管上顯示出來(lái)。
程序:
A機(jī)發(fā)送程序,每秒發(fā)送給B機(jī)1個(gè)數(shù)據(jù)
#include"reg51.h"〃包含頭文件reg5Lh
unsignedcharled[]={OxcO,0xf9,0xa4,0xb0,0x99,0x92,0x82,Oxf8,0x80,0x90,0x88,
0x83,0xc6,0xal,0x86,0x8e);
voidmain()〃主函數(shù)
unsignedcharI;
TMOD=0x20;〃設(shè)定定時(shí)器1的工作方式為方式2
THl=0xfd;〃設(shè)置串行口波特率為9600bps
TLl=Oxfd;
SCON=0x50;〃設(shè)置串行口的工作方式為方式1,允許接收
PCON=OxOO;
TR1=1;
for(i=0;i<16;i++)
SBUF=LED[i];//Pl口的狀態(tài)發(fā)送給乙機(jī)
while(!TI);〃查詢發(fā)送是否完畢
TI=0;〃發(fā)送完畢,TI由軟件清0
delayls();
B機(jī)接收程序,將從甲機(jī)接收到的數(shù)據(jù)在P1口連接的LED數(shù)碼管上顯示
#include<reg5l.h>
voidmain()〃主函數(shù)
TMOD=0x20;〃設(shè)定定時(shí)器1的工作方式為方式2
THl=Oxfd;〃設(shè)置串行口波特率為9600bps
TLl=Oxfd;
SCON=0x50;〃設(shè)置串行口的工作方式為方式1,允許接收
PCON=OxOO;
TR1=1;〃啟動(dòng)定時(shí)器
Pl=Oxff;//Pl口LED全滅
while(l)
while(!RI);〃查詢,等待接收完畢
RI=O;〃接收完畢,RI由軟件清0
P1=SBUF;〃接收到的數(shù)據(jù)送PI口控制LED的狀態(tài)
練習(xí)與提高7
1.填空題
(1)公用通道;輸入輸出設(shè)備。
(2)接口;中轉(zhuǎn)站。
(3)0E?
(4)8K;13;P0和P2口。
(5)高8位地址總線。
2.簡(jiǎn)答題
(1)單片機(jī)總線結(jié)構(gòu)是怎樣?各有什么功能?在使用中用哪些I/O端口實(shí)現(xiàn)?
單片機(jī)的總線系統(tǒng)由數(shù)據(jù)總線、地址總線和控制總線構(gòu)成,也常稱為三總線結(jié)構(gòu)。
地址總線(AddressBus,簡(jiǎn)稱AB),其作用是用來(lái)確定要訪問(wèn)的芯片和訪問(wèn)芯片中單元
的地址,以便單片機(jī)可以通過(guò)控制總線讓數(shù)據(jù)總線與該單元之間進(jìn)行數(shù)據(jù)交換。在系統(tǒng)擴(kuò)展
時(shí)P2端口作為高8位地址總線,P0端口分時(shí)復(fù)用作為低8位地址總線和數(shù)據(jù)總線。
數(shù)據(jù)總線(DataBus,簡(jiǎn)稱DB),其作用是傳輸數(shù)據(jù)。51單片機(jī)的數(shù)據(jù)總線共8位,以
P0端口分時(shí)復(fù)用作為低8位地址總線和數(shù)據(jù)總線,一次可傳遞1個(gè)字節(jié)的數(shù)據(jù)。
控制總線(ControlBus,簡(jiǎn)稱CB),其主要作用是配合數(shù)據(jù)總線與地址總線使用,控制時(shí)
序、傳輸方向等信息。51單片機(jī)的控制總線主要有:PSEN,RD,WR,ALE。
(2)地址鎖存器的功能是什么?常用的地址鎖存器有哪些?
地址鎖存器是一個(gè)暫存器,它根據(jù)控制信號(hào)的狀態(tài),將總線上地址代碼暫存起來(lái)。單片
機(jī)的P0端口采用數(shù)據(jù)和地址總線分時(shí)復(fù)用的操作方法,即用同一總線既傳輸數(shù)據(jù)又傳輸?shù)?/p>
址。當(dāng)單片機(jī)與外設(shè)進(jìn)行交換時(shí),首先由CPU發(fā)出存儲(chǔ)器地址,同時(shí)發(fā)出地址鎖存信號(hào)ALE
給鎖存器,當(dāng)鎖存器接到該信號(hào)后將地址/數(shù)據(jù)總線上的地址鎖存在總線上,才能傳輸數(shù)據(jù)。
常用的地址鎖存芯片有74LS373、8282、74LS273、74HC573等。
(3)當(dāng)系統(tǒng)程序存儲(chǔ)器容量不夠時(shí),有哪些方法解決這個(gè)問(wèn)題?
1)選用片內(nèi)程序存儲(chǔ)器較大的單片機(jī)。比如,深圳宏晶科技的STC系列單片機(jī),其片
內(nèi)程序存儲(chǔ)器容量可選擇的余地很大,對(duì)于不同的存儲(chǔ)容量需求有4KB-64KB的單片機(jī)型
號(hào)可供選擇。
2)用單片機(jī)的擴(kuò)展功能配合合適的程序存儲(chǔ)器芯片來(lái)擴(kuò)展程序存儲(chǔ)器容量。如前面任
務(wù)7.1所進(jìn)行的擴(kuò)展。程序存儲(chǔ)器的類型很多,主要有掩膜ROM、EPROM(紫外線可擦除
型)、EEPROM(電可擦除型)和FlashROM(閃存),其中EPROM芯片是目前單片機(jī)擴(kuò)展
程序存儲(chǔ)器較常用的芯片。
(4)簡(jiǎn)述I/O接口的功能?
1)實(shí)現(xiàn)不同外設(shè)的匹配
2)對(duì)單片機(jī)輸出的數(shù)據(jù)鎖存
3)對(duì)輸入設(shè)備的三態(tài)緩沖
(5)I/O接口擴(kuò)展分類有哪些?
1)通用型I/O電路芯片,如74LS273、74LS373、74LS377.74LS244.74LS245等并行
輸入輸出芯片。
2)可編程I/O擴(kuò)展芯片,如8255A、8253和8279等可編程芯片。
3)串行端口擴(kuò)展芯片,如74LS164串行轉(zhuǎn)并行輸出芯片、74LS165串行轉(zhuǎn)并行輸入芯
片。
(6)單片機(jī)I/O接口數(shù)據(jù)的傳送方式主要有哪幾種?
1)利用TTL、CMOS集成電路來(lái)擴(kuò)展;
2)利用單片機(jī)串行接口擴(kuò)展;
3)利用可編程并行接口芯片來(lái)擴(kuò)展。
3.設(shè)計(jì)題
(1)用8031單片機(jī)和EPROM芯片完成程序存儲(chǔ)器的擴(kuò)展,要求擴(kuò)展4KB的片外程
序存儲(chǔ)空間。請(qǐng)根據(jù)任務(wù)要求寫(xiě)出設(shè)計(jì)方案,畫(huà)出電路圖,并寫(xiě)出芯片的地址范圍。
存儲(chǔ)器擴(kuò)展原理圖如下:
編址結(jié)果
8031P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7..............P0.0
地址
地址線A15A14A13A12AllA10A9A8A7..............A0
最小地址XXX000000..............00000H
最大地址XXX011111..............10FFFH
地址范圍為:0000H~0FFFH。
(2)用8031單片機(jī)和EPROM芯片完成程序存儲(chǔ)器的擴(kuò)展,若當(dāng)前只有程序存儲(chǔ)器芯
片2764,試完成32KB片外程序存儲(chǔ)器擴(kuò)展。請(qǐng)寫(xiě)出設(shè)計(jì)方案,畫(huà)出電路圖,并寫(xiě)出各芯片
的地址范圍。
存儲(chǔ)器擴(kuò)展原理圖如下:
編址結(jié)果
8031P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7..............P0.0
地址
地址線A15A14A13A12AllA10A9A8A7..............A0
1C1最小地址X00000000..............00000H
IC1最大地址X00111111..............11FFFH
IC2最小地址X01000000..............02000H
IC2最大地址X01111111..............13FFFH
1C3最小地址X10000000..............04000H
IC3最大地址X10111111..............15FFFH
IC4最小地址X11000000..............06000H
IC4最大地址X11111111..............17FFFH
(3)用8051單片機(jī)和RAM芯片完成數(shù)據(jù)存儲(chǔ)器的擴(kuò)展,要求擴(kuò)展4KB的片外數(shù)據(jù)
存儲(chǔ)空間。請(qǐng)根據(jù)任務(wù)要求寫(xiě)出設(shè)計(jì)方案,畫(huà)出電路圖,并寫(xiě)出芯片的地址范圍。
存儲(chǔ)器擴(kuò)展原理圖如下:
練習(xí)與提高8
1.填空題
(1)數(shù)字量、模擬量、輸出通道
(2)模擬量、數(shù)字量、輸入通道
(3)電流、電壓運(yùn)算放大器
(4)8、3、雙緩沖
(5)一種特殊的變量、存放地址的變量、數(shù)據(jù)類型、*
2.選擇題
(1)A
(2)C
(3)B
(4)D
(5)C
3.簡(jiǎn)答題
(1)DACO832芯片與單片機(jī)接口有哪幾種連接方式?分別對(duì)應(yīng)哪種工作方式?各有哪
些控制信號(hào)?其作用是什么?
答:連接方式有:?jiǎn)尉彌_工作的連接和雙緩沖的連接。分別對(duì)應(yīng)單緩沖工作方式和雙緩
沖工作方式。
單緩沖連接方式中控制信號(hào)有:CS、WRKCS為片選端,選擇輸入寄存器的端口地址;
WR1為第一寫(xiě)控制信號(hào),實(shí)現(xiàn)對(duì)輸入寄存器的寫(xiě)操作。
雙緩沖連接方式中的控制信有:CS、WRI;XFER、WR2oCS、WR1與單緩沖連接方
式作用相同;XFER為8位DAC寄存器地址端口選擇端,WR2為DAC寄存器寫(xiě)控制信號(hào)。
(2)指針的運(yùn)算有哪幾種?分別是什么?
答:與指針變量有關(guān)的
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 轉(zhuǎn)讓海灘合同范本
- 社交網(wǎng)絡(luò)廣告在商業(yè)中的效果評(píng)估
- 2025至2030年中國(guó)茶閉數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 科技企業(yè)電商運(yùn)營(yíng)的數(shù)字化轉(zhuǎn)型策略
- 科技英語(yǔ)專業(yè)術(shù)語(yǔ)與翻譯技巧
- 現(xiàn)代科技在雕塑工藝中的應(yīng)用研究
- 2025至2030年中國(guó)聚四氟乙烯墊料數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025年度酒店桑拿足浴項(xiàng)目投資風(fēng)險(xiǎn)評(píng)估與管理協(xié)議
- 2025年度電子游戲代理傭金服務(wù)合同
- 社交網(wǎng)絡(luò)對(duì)老年人心理健康的影響分析
- J-STD-033D處理包裝運(yùn)輸和使用濕度回流和過(guò)程敏感設(shè)備
- 文聯(lián)述職報(bào)告
- 四年級(jí)全冊(cè)《勞動(dòng)》課程知識(shí)點(diǎn)匯總精排
- SCI期刊的名稱縮寫(xiě)與全稱對(duì)照表
- 人本位醫(yī)療培訓(xùn)課件
- 《供應(yīng)鏈管理》課程整體設(shè)計(jì)
- 水利工程危險(xiǎn)源辨識(shí)評(píng)價(jià)及風(fēng)險(xiǎn)管控清單
- 桂西北丹池成礦帶主要金屬礦床成礦特征及成礦規(guī)律
- 申論范文:社區(qū)微治理 共建美好家園
- 高等工程熱力學(xué)教案課件
- 2023年征信知識(shí)競(jìng)賽基礎(chǔ)題考試復(fù)習(xí)題庫(kù)(帶答案)
評(píng)論
0/150
提交評(píng)論