填空題
1、設(shè)X=5AH,Y=36H,則X與Y“或”運(yùn)算為__7EH_______,X與Y的“異或”運(yùn)算為___6CH_____。
2、若機(jī)器的字長為8位,X=17,Y=35,則X+Y=__110100_____,X-Y=_11101110______(要求結(jié)果寫出二進(jìn)制形式)。
3、單片機(jī)的復(fù)位操作是____高電平______(高電平/低電平),單片機(jī)復(fù)位后,堆棧指針SP的值是___07h_____。
4、單片機(jī)中,常用作地址鎖存器的芯片是__74HC373____________,常用作地址譯碼器芯片是_____74HC138____________。
5、若選擇內(nèi)部程序存儲器, 應(yīng)該設(shè)置為_____高_(dá)______(高電平/低電平),那么,PSEN信號的處理方式為___不用__________________。
6、單片機(jī)程序的入口地址是____0000H__________,外部中斷1的入口地址是______0013H_________。
7、若采用6MHz的晶體振蕩器,則MCS-51單片機(jī)的振蕩周期為__0.5us_______,機(jī)器周期為_____2us__________。
8、外圍擴(kuò)展芯片的選擇方法有兩種,它們分別是___線選法_______________和_____譯碼法__________。
9、單片機(jī)的內(nèi)部RAM區(qū)中,可以位尋址的地址范圍是____20H~2FH______________,特殊功能寄存器中,可位尋址的地址是___是能被8整除的地址_________________。
10、子程序返回指令是___ret______,中斷子程序返回指令是__ reti 。
單片機(jī)C語言程序設(shè)計師試題2(連載)
11、8051單片機(jī)的存儲器的最大特點(diǎn)是 內(nèi)部RAM 與 外部RAM 分開編址。
12、8051最多可以有 32 個并行輸入輸出口,最少也可以有 8 個并行口。
13、 函數(shù) 是C語言的基本單位。
14、串行口方式2接收到的第9位數(shù)據(jù)送 SCON 寄存器的 RB8 位中保存。
15、MCS-51內(nèi)部提供 3 個可編程的 16 位定時/計數(shù)器,定時器有 4 種工作方式。
16、一個函數(shù)由兩部分組成,即 說明部分 和 語句部分 。
17、串行口方式3發(fā)送的第9位數(shù)據(jù)要事先寫入 SCON 寄存器的 TB8 位。
18、利用8155H可以擴(kuò)展 3 個并行口, 256 個RAM單元。
19、C語言中輸入和輸出操作是由庫函數(shù) scanf 和 printf 等函數(shù)來完成。
單片機(jī)C語言程序設(shè)計師試題3
二、選擇題
1、C語言中最簡單的數(shù)據(jù)類型包括( B )。
A、整型、實(shí)型、邏輯型 B、整型、實(shí)型、字符型
C、整型、字符型、邏輯型 D、整型、實(shí)型、邏輯型、字符型
2、當(dāng)MCS-51單片機(jī)接有外部存儲器,P2口可作為 ( C )。
A、數(shù)據(jù)輸入口 B、數(shù)據(jù)的輸出口
C、準(zhǔn)雙向輸入/輸出口 D、輸出高8位地址
3、下列描述中正確的是( D )。
A、程序就是軟件 B、軟件開發(fā)不受計算機(jī)系統(tǒng)的限制
C、軟件既是邏輯實(shí)體,又是物理實(shí)體 D、軟件是程序、數(shù)據(jù)與相關(guān)文檔的集合
4、下列計算機(jī)語言中,CPU能直接識別的是( D )。
A、 自然語言 B、 高級語言 C、 匯編語言 D、機(jī)器語言
5、MCS-5l單片機(jī)的堆棧區(qū)是設(shè)置在( C )中。
A、片內(nèi)ROM區(qū) B、片外ROM區(qū) C、片內(nèi)RAM區(qū) D、片外RAM區(qū)
6、以下敘述中正確的是( C )。
A、用C語言實(shí)現(xiàn)的算法必須要有輸入和輸出操作
B、用C語言實(shí)現(xiàn)的算法可以沒有輸出但必須要有輸入
C、用C程序?qū)崿F(xiàn)的算法可以沒有輸入但必須要有輸出
D、用C程序?qū)崿F(xiàn)的算法可以既沒有輸入也沒有輸出
7、定時器/計數(shù)器工作方式1是( D )。
A、8位計數(shù)器結(jié)構(gòu) B、2個8位計數(shù)器結(jié)構(gòu)
C、13位計數(shù)結(jié)構(gòu) D、16位計數(shù)結(jié)構(gòu)
8、C語言提供的合法的數(shù)據(jù)類型關(guān)鍵字是( B )。
A、Double B、short C、integer D、Char
9、片內(nèi)RAM的20H~2FH為位尋址區(qū),所包含的位地址是( B )。
A、00H~20H B、00H~7FH C、20H~2FH D、00H~FFH
10、以下能正確定義一維數(shù)組的選項(xiàng)是( B )。
A、int a[5]={0,1,2,3,4,5}; B、char a[ ]={0,1,2,3,4,5};
C、char a={'A','B','C'}; D、int a[5]="0123";
單片機(jī)C語言程序設(shè)計師試題4(連載)
11、數(shù)據(jù)的存儲結(jié)構(gòu)是指(D )。
A、存儲在外存中的數(shù)據(jù) B、數(shù)據(jù)所占的存儲空間量
C、數(shù)據(jù)在計算機(jī)中的順序存儲方式 D、數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機(jī)中的表示
12、下列關(guān)于棧的描述中錯誤的是(C )。
A、棧是先進(jìn)后出的先性表 B、棧只能順序存儲
C、棧具有記憶作用 D、對棧的插入和刪除操作中,不需要改變棧底指針
13、在寄存器間接尋址方式中,間址寄存器中存放的數(shù)據(jù)是( B )。
A、參與操作的數(shù)據(jù) B、操作數(shù)的地址值
C、程序的轉(zhuǎn)換地址 D、指令的操作碼
14、MCS-51單片機(jī)的復(fù)位信號是( A )有效。
A、高電平 B、低電平 C、脈沖 D、下降沿
15、為了使模塊盡可能獨(dú)立,要求( B )。
A、模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量強(qiáng)
B、模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量弱
C、模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量弱
D、模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量強(qiáng)
16、若MCS-51單片機(jī)使用晶振頻率為6MHz時,其復(fù)位持續(xù)時間應(yīng)該超過( B )。
A、2μs B、4μs C、8μs D、1ms
17、以下選項(xiàng)中可作為C語言合法常量的是( A )
A、-80 B、-080 C、-8e1.0 D、-80.0e
18、能夠用紫外光擦除ROM中程序的只讀存儲器稱為( C )。
A、掩膜ROM B、PROM C、EPROM D、EEPROM
19、以下不能定義為用戶標(biāo)識符是( D )。
A、Main B、_0 C、_int D、sizeof
20、下選項(xiàng)中,不能作為合法常量的是( B )。//冪不能為小數(shù)
A、1.234e04 B、1.234e0.4 C、1.234e+4 D、1.234e0
21、以下敘述中錯誤的是( C )
A、對于double類型數(shù)組,不可以直接用數(shù)組名對數(shù)組進(jìn)行整體輸入或輸出
B、數(shù)組名代表的是數(shù)組所占存儲區(qū)的首地址,其值不可改變
C、當(dāng)程序執(zhí)行中,數(shù)組元素的下標(biāo)超出所定義的下標(biāo)范圍時,系統(tǒng)將給出“下標(biāo)越界”的出錯信息
D、可以通過賦初值的方式確定數(shù)組元素的個數(shù)
22、以下與函數(shù)fseek(fp,0L,SEEK_SET)有相同作用的是( D )
A、feof(fp) B、ftell(fp) C、fgetc(fp) D、rewind(fp)
23、存儲16×16點(diǎn)陣的一個漢字信息,需要的字節(jié)數(shù)為( A )
A、 32 B、 64 C、 128 D、 256
24、已知1只共陰極LED顯示器,其中a筆段為字形代碼的最低位,若需顯示數(shù)字1,則它的字形代碼應(yīng)為( B )。
A、06H B、F9H C、30H D、CFH
25、在C語言中,合法的長整型常數(shù)是( A )
A、 OL B、 4962710 C、 324562& D、 216D
26、以下選項(xiàng)中合法的字符常量是( B )
A、 "B" B、 ’\010’ C、 68 D、 D
27、若PSW.4=0,PSW.3=1,要想把寄存器R0的內(nèi)容入棧,應(yīng)使用( D )指令。
A、PUSH R0 B、PUSH @R0 C、PUSH 00H D、PUSH 08H
28、在片外擴(kuò)展一片2764程序存儲器芯片要( B )地址線。
A、8根 B、13根 C、16根 D、20根
29、設(shè)MCS-51單片機(jī)晶振頻率為12MHz,定時器作計數(shù)器使用時,其最高的輸入計數(shù)頻率應(yīng)為( C )
A、2MHz B、1MHz C、500kHz D、250kHz
30、下列數(shù)據(jù)字定義的數(shù)表中,( A )是錯誤的。
A、DW “AA” B、DW “A” C、DW “OABC” D、DW OABCH
三、判斷題
( √ )1、在對某一函數(shù)進(jìn)行多次調(diào)用時,系統(tǒng)會對相應(yīng)的自動變量重新分配存儲單元。
( × )2、在C語言的復(fù)合語句中,只能包含可執(zhí)行語句。
( √ )3、自動變量屬于局部變量。
( × )4、Continue 和break都可用來實(shí)現(xiàn)循環(huán)體的中止。
( √ )5、字符常量的長度肯定為1。
( × )6、在MCS-51系統(tǒng)中,一個機(jī)器周期等于1.5μs。
( √ )7、C語言允許在復(fù)合語句內(nèi)定義自動變量。
( √ )8、若一個函數(shù)的返回類型為void,則表示其沒有返回值。
( × )9、所有定義在主函數(shù)之前的函數(shù)無需進(jìn)行聲明。
( × )10、定時器與計數(shù)器的工作原理均是對輸入脈沖進(jìn)行計數(shù)。
( × )11、END表示指令執(zhí)行到此結(jié)束。
( √ )12、ADC0809是8位逐次逼近式模/數(shù)轉(zhuǎn)換接口。
( √ )13、MCS-51的相對轉(zhuǎn)移指令最大負(fù)跳距是127B。
( × )14、MCS-51的程序存儲器只是用來存放程序的。
( √ )15、TMOD中的GATE=1時,表示由兩個信號控制定時器的的啟停。
( × )16、MCS-51的特殊功能寄存器分布在60H~80H地址范圍內(nèi)。
( × )17、MCS-51系統(tǒng)可以沒有復(fù)位電路。
( × )18、片內(nèi)RAM與外部設(shè)備統(tǒng)一編址時,需要專門的輸入/輸出指令。
( √ )19、鎖存器、三態(tài)緩沖寄存器等簡單芯片中沒有命令寄存和狀態(tài)寄存等功能。
( √ )20、使用8751且 =1時,仍可外擴(kuò)64KB的程序存儲器。
四、簡答題
1、在使用8051的定時器/計數(shù)器前,應(yīng)對它進(jìn)行初始化,其步驟是什么?
答: (1)確定T/C的工作方式——編程TMOD寄存器;
(2)計算T/C中的計數(shù)初值,并裝載到TH和TL;
(3)T/C在中斷方式工作時,須開CPU中斷和源中斷——編程IE寄存器;
(4)啟動定時器/計數(shù)器——編程TCON中TR1或TR0位。
2、什么是重入函數(shù)?重入函數(shù)一般什么情況下使用,使用時有哪些需要注意的地方?
答: 多個函數(shù)可以同時使用的函數(shù),稱為重入函數(shù)。
通常情況下,C51函數(shù)不能被遞歸調(diào)用,也不能應(yīng)用導(dǎo)致遞歸調(diào)用的結(jié)構(gòu)。有此限制是由于函數(shù)參數(shù)和局部變量是存儲在固定的地址單元中。重入函數(shù)特性允許你聲明一個重入函數(shù)。即可以被遞歸調(diào)用的函數(shù)。
重入函數(shù)可以被遞歸調(diào)用,也可以同時被兩個或更多的進(jìn)程調(diào)用。重入函數(shù)在實(shí)時應(yīng)用中及中斷服務(wù)程序代碼和非中斷程序代碼必須共用一個函數(shù)的場合中經(jīng)常用到。
3、8051引腳有多少I/O線?他們和單片機(jī)對外的地址總線和數(shù)據(jù)總線有什么關(guān)系?地址總線和數(shù)據(jù)總線各是幾位?
答:8051引腳共有40個引腳,8051的地址總線由P2和P0口提供,P2口是地址總線的高8位,P0口是地址總線的低8位;數(shù)據(jù)總線由P0口提供;P0口的地址總線和數(shù)據(jù)總線是分時進(jìn)行的,P0口的地址總線需要外接地址鎖存器完成地址鎖存。
地址總線共16位,數(shù)據(jù)總線是8位。
4、在有串行通信時,定時器/計數(shù)器1的作用是什么,怎樣確定串行口的波特率?
答:在有串行通信時,定時器/計數(shù)器1的作用是串行口發(fā)生器。
串行口的波特率根據(jù)串行口的工作方式具有不同的計算方式:
方式0的波特率固定為晶體振蕩器的十二分之一;
方式1的波特率=2SMOD.(定時器1的溢出率)/32;
方式2波特率=2SMOD.(fosc/64);
方式3波特率同方式1(定時器l作波特率發(fā)生器)。
5、如何消除鍵盤的抖動?怎樣設(shè)置鍵盤中的復(fù)合鍵?
答:由于按鍵是機(jī)械開關(guān)結(jié)構(gòu),所以當(dāng)用手按下其中一個鍵時,往往會出現(xiàn)所按鍵在閉合位置和斷開位置之間發(fā)生跳幾下后才會穩(wěn)定到閉合狀態(tài)的情況。在釋放一個鍵時,也會出現(xiàn)類似的情況,這就是鍵的抖動,抖動的持續(xù)時間不一,但通常不會大于10ms。
若抖動問題不解決,就會引起對閉合鍵的多次讀入。對于鍵抖動最方便的解決方法就是當(dāng)發(fā)現(xiàn)有鍵按下后,不是立即進(jìn)行掃描,而是延時大約10ms后再進(jìn)行。由于一個鍵按下的時間一般會持續(xù)上百毫秒,所以延遲10ms后再掃描處理并不遲。
復(fù)合鍵可以仿照計算機(jī)復(fù)合鍵的處理方法,通常可以假設(shè)一個鍵具有復(fù)合功能,再與其它減的鍵值組合成復(fù)合鍵。