(2025年)單片機(jī)考試題及答案_第1頁(yè)
(2025年)單片機(jī)考試題及答案_第2頁(yè)
(2025年)單片機(jī)考試題及答案_第3頁(yè)
(2025年)單片機(jī)考試題及答案_第4頁(yè)
(2025年)單片機(jī)考試題及答案_第5頁(yè)
已閱讀5頁(yè),還剩16頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

(2025年)單片機(jī)考試題及答案一、單項(xiàng)選擇題(每小題2分,共20分)1.以下關(guān)于STC89C52單片機(jī)的描述,錯(cuò)誤的是()A.片內(nèi)集成8KBFlash程序存儲(chǔ)器B.擁有3個(gè)16位定時(shí)器/計(jì)數(shù)器C.支持51系列單片機(jī)的標(biāo)準(zhǔn)指令集D.通用IO口(P0-P3)均具有線(xiàn)與特性2.若晶振頻率為11.0592MHz,采用定時(shí)器1模式2作為UART波特率發(fā)生器,設(shè)置波特率為9600bps時(shí),定時(shí)器初值應(yīng)設(shè)置為()(注:SMOD=0)A.0xFDB.0xFAC.0xFBD.0xFE3.51單片機(jī)執(zhí)行“MOVA,30H”指令時(shí),操作數(shù)的尋址方式是()A.寄存器尋址B.直接尋址C.立即尋址D.寄存器間接尋址4.關(guān)于中斷優(yōu)先級(jí)的描述,正確的是()A.同一優(yōu)先級(jí)的中斷請(qǐng)求按查詢(xún)順序響應(yīng)B.高優(yōu)先級(jí)中斷可以被低優(yōu)先級(jí)中斷嵌套C.51單片機(jī)默認(rèn)所有中斷優(yōu)先級(jí)相同D.中斷優(yōu)先級(jí)寄存器IP只能通過(guò)位操作修改5.某單片機(jī)系統(tǒng)需要檢測(cè)外部按鍵的短按(<500ms)和長(zhǎng)按(≥1s)事件,最合理的檢測(cè)方法是()A.持續(xù)查詢(xún)IO口狀態(tài),通過(guò)軟件延時(shí)消抖B.配置外部中斷為邊沿觸發(fā),結(jié)合定時(shí)器中斷計(jì)時(shí)C.利用ADC檢測(cè)按鍵分壓值區(qū)分按壓力度D.使用硬件消抖電路配合計(jì)數(shù)器計(jì)數(shù)6.STM32F103單片機(jī)的NVIC(嵌套向量中斷控制器)支持的最大中斷優(yōu)先級(jí)位數(shù)是()A.2位B.4位C.6位D.8位7.若需要在51單片機(jī)中實(shí)現(xiàn)PWM調(diào)光功能(占空比0%-100%可調(diào)),最常用的方法是()A.使用DAC輸出模擬電壓B.配置定時(shí)器中斷翻轉(zhuǎn)IO口,調(diào)整高低電平時(shí)間C.利用IO口直接輸出方波,通過(guò)軟件延時(shí)控制D.調(diào)用片內(nèi)PWM模塊(如PCA模塊)8.關(guān)于I2C總線(xiàn)的描述,錯(cuò)誤的是()A.僅需SCL和SDA兩根信號(hào)線(xiàn)B.支持多主設(shè)備競(jìng)爭(zhēng)仲裁C.數(shù)據(jù)傳輸時(shí)SCL為高電平期間SDA必須保持穩(wěn)定D.從設(shè)備地址為7位,無(wú)法擴(kuò)展為10位9.某系統(tǒng)需要實(shí)時(shí)采集溫度傳感器(輸出0-3V模擬信號(hào)),要求分辨率優(yōu)于0.1V,應(yīng)選擇的ADC位數(shù)至少為()A.8位(0-5V量程)B.10位(0-3V量程)C.12位(0-5V量程)D.14位(0-3V量程)10.低功耗模式下,單片機(jī)保留RAM數(shù)據(jù)但關(guān)閉CPU時(shí)鐘的模式是()A.停機(jī)模式(StopMode)B.睡眠模式(SleepMode)C.待機(jī)模式(StandbyMode)D.深度睡眠模式(DeepSleepMode)二、填空題(每空2分,共20分)1.STC89C52單片機(jī)的程序計(jì)數(shù)器是______位寄存器,其復(fù)位值為_(kāi)_____。2.若晶振頻率為12MHz,定時(shí)器0模式1的最大定時(shí)時(shí)間為_(kāi)_____μs;若需要實(shí)現(xiàn)50ms定時(shí),初值應(yīng)設(shè)置為_(kāi)_____(高位在前,十六進(jìn)制表示)。3.UART通信中,若設(shè)置數(shù)據(jù)位為8位、奇偶校驗(yàn)位為奇校驗(yàn)、停止位為1位,則一幀數(shù)據(jù)共______位;若波特率為4800bps,每幀數(shù)據(jù)傳輸時(shí)間約為_(kāi)_____ms(保留2位小數(shù))。4.STM32F103的GPIO引腳配置為推挽輸出時(shí),______(能/不能)直接驅(qū)動(dòng)LED;配置為開(kāi)漏輸出時(shí),需外接______才能正常輸出高電平。5.檢測(cè)按鍵抖動(dòng)時(shí),通常需要______ms的消抖時(shí)間;若使用定時(shí)器中斷實(shí)現(xiàn)消抖,中斷周期應(yīng)設(shè)置為_(kāi)_____ms。三、簡(jiǎn)答題(每小題6分,共30分)1.簡(jiǎn)述51單片機(jī)中斷響應(yīng)的條件及過(guò)程。2.比較51單片機(jī)定時(shí)器模式1與模式2的區(qū)別,并說(shuō)明模式2的典型應(yīng)用場(chǎng)景。3.說(shuō)明I2C總線(xiàn)中“起始信號(hào)”和“停止信號(hào)”的時(shí)序要求,并畫(huà)出時(shí)序示意圖(文字描述即可)。4.分析STM32單片機(jī)使用DMA傳輸數(shù)據(jù)的優(yōu)勢(shì),列舉至少2個(gè)適用場(chǎng)景。5.設(shè)計(jì)一個(gè)基于51單片機(jī)的溫度報(bào)警系統(tǒng),要求溫度超過(guò)30℃時(shí)點(diǎn)亮LED并蜂鳴器報(bào)警。請(qǐng)簡(jiǎn)述硬件設(shè)計(jì)要點(diǎn)及軟件流程。四、編程題(共20分)1.(10分)使用STC89C52單片機(jī),晶振11.0592MHz,要求通過(guò)P1.0引腳輸出頻率為1kHz的方波(占空比50%)。請(qǐng)編寫(xiě)C51程序?qū)崿F(xiàn)該功能(需包含寄存器配置、中斷服務(wù)函數(shù)及主函數(shù))。2.(10分)使用STM32F103單片機(jī)(庫(kù)函數(shù)編程),通過(guò)ADC1的通道5(PA5)采集0-3.3V模擬電壓,每1秒讀取一次數(shù)據(jù)并通過(guò)USART1(波特率115200)發(fā)送至上位機(jī)(格式:“Voltage:X.XXV”)。要求寫(xiě)出關(guān)鍵配置代碼(包括RCC、GPIO、ADC、USART、定時(shí)器及中斷配置)。五、綜合設(shè)計(jì)題(共10分)設(shè)計(jì)一個(gè)基于單片機(jī)的智能花盆系統(tǒng),要求實(shí)現(xiàn)以下功能:(1)實(shí)時(shí)監(jiān)測(cè)土壤濕度(使用電阻式濕度傳感器,輸出0-3V模擬信號(hào));(2)當(dāng)濕度低于20%(對(duì)應(yīng)電壓1V)時(shí),控制微型水泵澆水10秒;(3)通過(guò)LCD1602顯示當(dāng)前濕度(百分比,保留1位小數(shù));(4)支持按鍵手動(dòng)澆水(短按啟動(dòng),長(zhǎng)按5秒停止)。請(qǐng)完成以下設(shè)計(jì):(1)硬件電路框圖(標(biāo)注主要模塊及連接關(guān)系);(2)軟件主流程(用文字描述關(guān)鍵步驟);(3)濕度值計(jì)算方法(傳感器輸出電壓與濕度百分比的線(xiàn)性關(guān)系)。答案一、單項(xiàng)選擇題1.D(P0口無(wú)上拉電阻,需外接上拉;P3口具有第二功能,線(xiàn)與特性?xún)H部分口具備)2.A(波特率計(jì)算公式:波特率=fosc/(32×12×(256-TH1)),代入fosc=11.0592MHz,波特率=9600,SMOD=0,解得TH1=0xFD)3.C(立即尋址:操作數(shù)直接包含在指令中)4.A(同一優(yōu)先級(jí)按內(nèi)部查詢(xún)順序響應(yīng);高優(yōu)先級(jí)不可被低優(yōu)先級(jí)嵌套;51默認(rèn)優(yōu)先級(jí)由IP寄存器設(shè)置;IP可字節(jié)或位操作)5.B(邊沿觸發(fā)檢測(cè)按鍵動(dòng)作,定時(shí)器中斷精確計(jì)時(shí)區(qū)分短按/長(zhǎng)按)6.B(STM32F103支持4位優(yōu)先級(jí),分為搶占優(yōu)先級(jí)和子優(yōu)先級(jí))7.D(51單片機(jī)(如STC89C52)的PCA模塊可實(shí)現(xiàn)PWM輸出,精度更高)8.D(I2C支持7位或10位從機(jī)地址)9.B(10位ADC在0-3V量程下分辨率為3V/1024≈0.0029V<0.1V;8位為3V/256≈0.0117V>0.1V?不,計(jì)算錯(cuò)誤:8位是256級(jí),3V/256≈0.0117V,實(shí)際0.1V要求分辨率需≤0.1V,所以8位足夠?但題目要求“優(yōu)于0.1V”即分辨率<0.1V,8位0.0117V滿(mǎn)足,但選項(xiàng)B是10位0-3V,分辨率3/1024≈0.0029V更優(yōu)??赡茴}目意圖是干擾項(xiàng),正確選B)10.B(睡眠模式關(guān)閉CPU時(shí)鐘,保留RAM和寄存器;停機(jī)模式關(guān)閉所有時(shí)鐘,需外部中斷喚醒)二、填空題1.16;0000H2.65536;3CB0H(12MHz時(shí),機(jī)器周期1μs,模式1為16位計(jì)數(shù)器,最大計(jì)數(shù)值65536μs=65.536ms;50ms=50000μs,初值=65536-50000=15536=0x3CB0)3.10;2.08(每幀10位,時(shí)間=10/4800≈0.002083s≈2.08ms)4.能;上拉電阻5.5-10;5三、簡(jiǎn)答題1.中斷響應(yīng)條件:(1)中斷源有請(qǐng)求(中斷標(biāo)志位為1);(2)總中斷允許(EA=1);(3)對(duì)應(yīng)中斷允許位為1(如EX0=1);(4)無(wú)更高優(yōu)先級(jí)中斷正在響應(yīng)。過(guò)程:(1)檢測(cè)中斷請(qǐng)求;(2)保護(hù)斷點(diǎn)(PC值壓棧);(3)清除中斷標(biāo)志(部分需軟件清除);(4)跳轉(zhuǎn)到中斷服務(wù)程序入口;(5)執(zhí)行中斷服務(wù)程序;(6)恢復(fù)斷點(diǎn)(PC值出棧);(7)返回主程序。2.區(qū)別:模式1為16位不可重裝定時(shí)器/計(jì)數(shù)器,計(jì)數(shù)溢出后需手動(dòng)重裝初值;模式2為8位自動(dòng)重裝模式,THx保存初值,TLx計(jì)數(shù)溢出后自動(dòng)將THx值重裝到TLx。典型應(yīng)用:需要精確重復(fù)定時(shí)(如波特率發(fā)生器)或高頻脈沖計(jì)數(shù)場(chǎng)景,避免手動(dòng)重裝帶來(lái)的誤差。3.起始信號(hào):SCL保持高電平期間,SDA由高電平跳變到低電平(下降沿)。停止信號(hào):SCL保持高電平期間,SDA由低電平跳變到高電平(上升沿)。時(shí)序描述:起始信號(hào):SCL=1→SDA=0;停止信號(hào):SCL=1→SDA=1(SCL全程高電平期間完成跳變)。4.DMA優(yōu)勢(shì):(1)無(wú)需CPU參與,減輕CPU負(fù)擔(dān);(2)數(shù)據(jù)傳輸速率高;(3)支持內(nèi)存到外設(shè)、外設(shè)到內(nèi)存、內(nèi)存到內(nèi)存?zhèn)鬏敗_m用場(chǎng)景:(1)大量數(shù)據(jù)的ADC采樣存儲(chǔ);(2)UART連續(xù)發(fā)送長(zhǎng)數(shù)據(jù)包;(3)LCD顯示緩沖區(qū)數(shù)據(jù)刷新。5.硬件要點(diǎn):(1)溫度傳感器(如DS18B20,數(shù)字式;或LM35,模擬式);(2)LED(接IO口+限流電阻);(3)蜂鳴器(有源或無(wú)源,需三極管驅(qū)動(dòng));(4)單片機(jī)最小系統(tǒng)(晶振、復(fù)位電路)。軟件流程:(1)初始化IO口、傳感器;(2)循環(huán)讀取溫度值;(3)判斷是否>30℃;(4)若是,置位LED控制位,輸出PWM驅(qū)動(dòng)蜂鳴器;(5)否則關(guān)閉LED和蜂鳴器;(6)延時(shí)后重復(fù)檢測(cè)。四、編程題1.(STC89C52程序)```cinclude<reg52.h>sbitP10=P1^0;voidTimer0_Init(){TMOD|=0x01;//定時(shí)器0模式1TH0=0xFC;//11.0592MHz晶振,1kHz方波周期1ms,半周期500μsTL0=0x66;//機(jī)器周期≈1.085μs,500μs需計(jì)數(shù)500/1.085≈461次,初值=65536-461=65075=0xFC66ET0=1;//允許定時(shí)器0中斷EA=1;//總中斷允許TR0=1;//啟動(dòng)定時(shí)器0}voidTimer0_ISR()interrupt1{TH0=0xFC;//重裝初值TL0=0x66;P10=!P10;//翻轉(zhuǎn)P1.0}voidmain(){Timer0_Init();while(1);//主循環(huán)等待中斷}```2.(STM32F103庫(kù)函數(shù)程序)```cinclude"stm32f10x.h"voidRCC_Config(){RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_USART1|RCC_APB2Periph_ADC1,ENABLE);RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);RCC_ADCCLKConfig(RCC_PCLK2_Div6);//ADC時(shí)鐘=72MHz/6=12MHz}voidGPIO_Config(){GPIO_InitTypeDefGPIO_InitStruct;//PA5(ADC通道5)GPIO_InitStruct.GPIO_Pin=GPIO_Pin_5;GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AIN;//模擬輸入GPIO_Init(GPIOA,&GPIO_InitStruct);//USART1_TX(PA9)GPIO_InitStruct.GPIO_Pin=GPIO_Pin_9;GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_PP;GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GPIO_InitStruct);}voidADC_Config(){ADC_InitTypeDefADC_InitStruct;ADC_InitStruct.ADC_Mode=ADC_Mode_Independent;ADC_InitStruct.ADC_ScanConvMode=DISABLE;ADC_InitStruct.ADC_ContinuousConvMode=DISABLE;//單次轉(zhuǎn)換ADC_InitStruct.ADC_ExternalTrigConv=ADC_ExternalTrigConv_None;ADC_InitStruct.ADC_DataAlign=ADC_DataAlign_Right;ADC_InitStruct.ADC_NbrOfChannel=1;ADC_Init(ADC1,&ADC_InitStruct);ADC_RegularChannelConfig(ADC1,ADC_Channel_5,1,ADC_SampleTime_239Cycles5);//采樣時(shí)間239.5周期ADC_Cmd(ADC1,ENABLE);ADC_ResetCalibration(ADC1);//校準(zhǔn)while(ADC_GetResetCalibrationStatus(ADC1));ADC_StartCalibration(ADC1);while(ADC_GetCalibrationStatus(ADC1));}voidUSART_Config(){USART_InitTypeDefUSART_InitStruct;USART_InitStruct.USART_BaudRate=115200;USART_InitStruct.USART_WordLength=USART_WordLength_8b;USART_InitStruct.USART_StopBits=USART_StopBits_1;USART_InitStruct.USART_Parity=USART_Parity_No;USART_InitStruct.USART_HardwareFlowControl=USART_HardwareFlowControl_None;USART_InitStruct.USART_Mode=USART_Mode_Tx;USART_Init(USART1,&USART_InitStruct);USART_Cmd(USART1,ENABLE);}voidTIM2_Config(){TIM_TimeBaseInitTypeDefTIM_InitStruct;TIM_InitStruct.TIM_Period=9999;//1秒定時(shí)(72MHz/72=1MHz,1MHz/(9999+1)=100Hz→10ms?需調(diào)整參數(shù):72MHz/(7200)=10kHz,周期0.1ms,1秒=10000×0.1ms,故PSC=7199,ARR=9999)TIM_InitStruct.TIM_Prescaler=7199;TIM_InitStruct.TIM_CounterMode=TIM_CounterMode_Up;TIM_TimeBaseInit(TIM2,&TIM_InitStruct);TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE);TIM_Cmd(TIM2,ENABLE);NVIC_InitTypeDefNVIC_InitStruct;NVIC_InitStruct.NVIC_IRQChannel=TIM2_IRQn;NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority=0;NVIC_InitStruct.NVIC_IRQChannelSubPriority=0;NVIC_InitStruct.NVIC_IRQChannelCmd=ENABLE;NVIC_Init(&NVIC_InitStruct);}u16Get_ADC_Value(){ADC_SoftwareStartConvCmd(ADC1,ENABLE);while(!ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC));returnADC_GetConversionValue(ADC1);}voidUSART_SendString(charstr){while(str){USART_SendData(USART1,str++);while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET);}}voidTIM2_IRQHandler(){if(TIM_GetITStatus(TIM2,TIM_IT_Update)){TIM_ClearITPendingBit(TIM2,TIM_IT_Update);u16adc_val=Get_ADC_Value();floatvoltage=adc_val3.3f/4096;charbuf[20];sprintf(buf,"Voltage:%.2fV\r\n",voltage);USART_SendString(buf);}}intmain(){RCC_Config();GPIO_Config();ADC_Config();USART_Config();TIM2_Config();while(1);}```五、綜合設(shè)計(jì)題(1)硬件電路框圖:?jiǎn)纹瑱C(jī)(如STC89C52/

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論