截圖版如下:
1
2
3
4
文字版本:
一、填空題(本大題共 10 小題, 每空 1 分, 共 20 分)
1、STC89C52 單片機(jī)為 位微控制器,使用宏來訪問絕對地址,需要 包含的頭文件是 。
2、STC89C52 定時(shí)器工作方式由 寄存器決定,啟動(dòng)與溢出由 控制。
3、STC89C52 一個(gè)機(jī)器周期包含 個(gè)晶振周期,若晶振周期頻率為 12Mhz, 則機(jī)器周期為 。
4、STC89C52 單片機(jī)使用按鍵較多時(shí),為了節(jié)省硬件資源,應(yīng)采用__________ 鍵盤,通過編程使用_________的方式分別讀取行線和列線值檢測按鍵狀態(tài)。
5、在程序設(shè)計(jì)時(shí)對單片機(jī)某些端口進(jìn)行定義,將 P0.4 定義為 KEY4,應(yīng)使用 關(guān)鍵字 進(jìn)行定義,完整的代碼為 。
6、STC89C52 創(chuàng)建中斷服務(wù)函數(shù),它是由 自動(dòng)調(diào)用的, 中斷函數(shù)的定義格式為:函數(shù)類型 函數(shù)名 n using n。
7、串口通信有____種工作方式,其中若使用中斷 RI 和 TI 置 1 后____清零。
8、電源為 5V,LED 壓降是 2V,當(dāng)點(diǎn)亮 LED 的電流是 3mA 時(shí),應(yīng)接______ Ω 的限流電阻,一般采用________(填高或者低)電平點(diǎn)亮 LED。
9、從原理上講,I2C 總線屬于 通信,主要原因是 。
10、為了將單片機(jī)和模擬電路連接必須使用的接口是 和 。
二、選擇題(本大題共 10 小題, 每小題 2 分, 共 20 分)
1、將海拔、溫度是否超限的狀態(tài)定義為標(biāo)志位時(shí),其存儲(chǔ)類型是( )。
A.code B.bdata C. pdata D. xdata
2、STC89C52 進(jìn)行串行通信時(shí),發(fā)送與接受可以同時(shí)進(jìn)行,則稱為( )。
A. 半雙工傳送 B. 單工傳送 C. 全雙工傳送 D. 以上都不是
3、STC89C52 定時(shí)器 T0 的溢出標(biāo)志為 TF0,采用查詢方式,若查詢到有溢出 時(shí),該標(biāo)志( )。
A. 由軟件清零 B. 由硬件自動(dòng)清零 C. 隨機(jī)狀態(tài) D. AB 都可以
4、在中斷允許寄存器中,中斷控制寄存器 EA 位的作用是( )。
A. 總中斷允許控制位 B. 中斷請求總標(biāo)志位 C.使能開關(guān) D.控制總線
5、使用循環(huán)移位函數(shù)時(shí),在程序中需包含的庫文件是( )。
A.absacc.h B.reg51.h C.intrins.h D.startup.h
6、STC89C52 的 XTAL1 和 XTAL2 引腳是 ( )。
A.外接定時(shí)器 B.外接中斷 C.外接晶振 D.內(nèi)部 XTAL 控制
7、LCD1602 存放用戶自定義字符的是 ( )。
A.DDRAM B.CGROM C.CGRAM D.無此功能
8、STC89C52 使用 UART 串行口,選擇的晶振頻率為 ( )。
A.6Mhz B.11.0592Mhz C.12Mhz D.都可以
9、下面哪一種速度模式不屬于 I2C 總線 ( )。
A.100kb/s B.400kb/s C.1.6Mb/s D.3.4Mb/s
10、PCF8591 與 STC89C52 通信使用 ( )。
A.數(shù)字 IO B.UART C.I2C D.SPI
三、編程題 (本大題共 3 小題,每題 15 分,共 45 分)
1、使用單片機(jī)實(shí)現(xiàn)如下圖所示的機(jī)器人生產(chǎn)線未分揀物料計(jì)件功能(生產(chǎn)線 末端物料掉落會(huì)被 IO 口檢測到)簡要說明(5 分)并給出核心代碼(10 分)。
2、實(shí)現(xiàn)串口接收 PC 發(fā)送指令,波特率設(shè)置為 19200,如果 PC 發(fā)送“Y”,單 片機(jī)回復(fù)“STC89C52-Code4Fun”,如果 PC 發(fā)送除“Y”外其他任何字符,均回復(fù)“Blink”并閃爍 LED。簡要說明(5 分)并給出核心代碼(10 分)。
3、野生動(dòng)物園訂購一批報(bào)警器,對動(dòng)物異常狀態(tài)進(jìn)行監(jiān)控并使用燈光和聲音 警示,要求實(shí)現(xiàn)功能有:猛獸/禽進(jìn)入危險(xiǎn)區(qū)域啟動(dòng)聲音警示;若時(shí)間超過 40 秒,再開啟燈光報(bào)警;授權(quán)人員可以通過密碼關(guān)閉燈光和聲音警示。簡要說明 (5 分)并給出核心代碼(10 分)。
四、分析題 (15 分) 位置采樣系統(tǒng)通常使用搖桿獲取信息控制機(jī)器人在環(huán)境中運(yùn)動(dòng),包括前進(jìn)后退 和左右旋轉(zhuǎn),示意圖和代碼如下,閱讀后添加注釋(5 分),簡要說明(5 分) 并繪制流程圖進(jìn)行分析(5 分)。

#include
#include
#include
#include
ros::NodeHandle nh;
rosserial_arduino::Adc adc_msg;
geometry_msgs::Twist twist_msg;
ros::Publisher p("adc", &adc_msg);
ros::Publisher t("cmd_vel", &twist_msg);
long adc_timer;
int x_mid=512,y_mid=512,x_now=512,y_now=512;
void setup()
{
nh.initNode();
nh.advertise(p);
nh.advertise(t);
x_now=analogRead(1);
x_mid=analogRead(1);
y_now=analogRead(0);
y_mid=analogRead(0); }
void loop() {
adc_msg.adc0 = analogRead(0);
adc_msg.adc1 = analogRead(1);
x_now=adc_msg.adc1
-x_mid;
y_now=adc_msg.adc0
-y_mid;
twist_msg.linear.x=1.0*x_now/(1024.0);
twist_msg.angular.z=1.0*
-y_now/(1024.0);
p.publish(&adc_msg);
t.publish(&twist_msg);
nh.spinOnce();
}
單片機(jī)
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。