版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2025年單片機習題集題庫及答案一、基礎(chǔ)概念題1.判斷題:51系列單片機的程序計數(shù)器(PC)是16位寄存器,可尋址64KB的程序存儲器空間。()答案:√。51單片機PC為16位,最大尋址范圍2^16=65536字節(jié)(64KB),符合其架構(gòu)設計。2.選擇題:以下關(guān)于STM32F103單片機的描述,錯誤的是()A.采用ARMCortex-M3內(nèi)核B.片上集成Flash存儲器和SRAMC.所有I/O口均支持5V容限D(zhuǎn).支持多種通信接口(如USART、I2C、SPI)答案:C。STM32F103部分I/O口(如PA0-PA15、PB0-PB15)支持5V容限,PC、PD等端口僅支持3.3V,因此“所有”表述錯誤。3.填空題:單片機的三總線結(jié)構(gòu)指()、()和控制總線。答案:地址總線;數(shù)據(jù)總線。4.簡答題:簡述馮·諾依曼結(jié)構(gòu)與哈佛結(jié)構(gòu)的核心區(qū)別。答案:馮·諾依曼結(jié)構(gòu)采用程序和數(shù)據(jù)共享同一存儲空間、同一總線的架構(gòu),取指令和取數(shù)據(jù)需分時進行;哈佛結(jié)構(gòu)則將程序存儲器與數(shù)據(jù)存儲器分開,擁有獨立的地址總線和數(shù)據(jù)總線,可同時取指令和數(shù)據(jù),提高了并行處理能力。51單片機采用哈佛結(jié)構(gòu),ARMCortex-M系列部分型號(如M0)也采用哈佛結(jié)構(gòu)。5.分析題:某單片機系統(tǒng)中,晶振頻率為12MHz,機器周期為1μs(假設為12分頻)。若需實現(xiàn)1ms的定時,采用定時器模式1(16位定時器),計算需要寫入的初值(請給出計算過程)。答案:機器周期=12/12MHz=1μs。定時時間=(2^16-初值)×機器周期。設初值為X,則1ms=(65536-X)×1μs→65536-X=1000→X=65536-1000=64536(十六進制為0xFC18)。因此初值應為TH=0xFC,TL=0x18。二、寄存器與I/O口配置題6.填空題:51單片機中,P0口作為通用I/O口使用時,需外接();其內(nèi)部結(jié)構(gòu)無(),因此輸出高電平時需外部上拉。答案:上拉電阻;上拉晶體管。7.選擇題:STM32F103的GPIO端口配置寄存器(CRL、CRH)中,每個I/O口的配置占()位。A.2B.4C.8D.16答案:B。CRL控制P0-P7,CRH控制P8-P15,每個引腳占4位(2位模式+2位速度/輸出類型)。8.簡答題:51單片機中,若要將P1.0設為輸出高電平,需如何操作?若P1口已被其他引腳占用,是否影響P1.0的配置?答案:直接向P1口寫入數(shù)據(jù),如P1=0x01(二進制00000001),則P1.0輸出高電平,其余引腳輸出低電平。51單片機的I/O口為準雙向口,每個引腳的狀態(tài)由端口鎖存器控制,因此修改P1口整體值會影響所有引腳,但可通過位操作單獨設置(如P1_0=1),不影響其他引腳狀態(tài)(需注意:直接賦值會覆蓋其他位,位操作更安全)。9.編程題(51單片機):使用P2口控制8位LED(LED低電平點亮),要求初始狀態(tài)全滅,3秒后全亮,循環(huán)執(zhí)行。晶振11.0592MHz,要求用軟件延時實現(xiàn)(需給出延時函數(shù)設計思路及主程序代碼)。答案:延時函數(shù)設計:機器周期=12/11.0592MHz≈1.085μs。假設設計1ms延時,需循環(huán)約922次(1ms/1.085μs≈922)。嵌套兩層循環(huán)可擴展延時時間(如外層循環(huán)3000次,內(nèi)層循環(huán)922次,總延時約3000×1ms=3s)。主程序代碼:```cinclude<reg52.h>defineucharunsignedchardefineuintunsignedintsbitLED=P2;voiddelay_ms(uintms){uinti,j;for(i=ms;i>0;i--)for(j=922;j>0;j--);}voidmain(){while(1){P2=0xFF;//全滅(高電平)delay_ms(3000);P2=0x00;//全亮(低電平)delay_ms(3000);}}```三、中斷系統(tǒng)題10.判斷題:51單片機中,外部中斷0(INT0)的觸發(fā)方式可通過TCON寄存器的IT0位設置(0為低電平觸發(fā),1為下降沿觸發(fā))。()答案:√。TCON的IT0位控制INT0的觸發(fā)方式,IT1控制INT1的觸發(fā)方式。11.選擇題:STM32的NVIC(嵌套向量中斷控制器)中,中斷優(yōu)先級由()決定。A.搶占優(yōu)先級B.子優(yōu)先級C.搶占優(yōu)先級和子優(yōu)先級共同D.中斷向量表地址答案:C。STM32的中斷優(yōu)先級由搶占優(yōu)先級(主優(yōu)先級)和子優(yōu)先級(副優(yōu)先級)共同決定,搶占優(yōu)先級高的可嵌套低優(yōu)先級中斷,子優(yōu)先級僅在搶占優(yōu)先級相同時決定響應順序。12.簡答題:51單片機執(zhí)行中斷服務程序時,為何需保護現(xiàn)場?哪些寄存器通常需要保護?答案:中斷可能在主程序執(zhí)行過程中隨機發(fā)生,若主程序中使用的寄存器(如ACC、B、PSW、工作寄存器組等)在中斷服務程序中被修改,返回主程序后會導致數(shù)據(jù)錯誤。因此需在中斷服務程序開始時將這些寄存器的值壓入堆棧(保護現(xiàn)場),結(jié)束前彈出(恢復現(xiàn)場)。13.編程題(STM32):配置PA0為外部中斷源(下降沿觸發(fā)),中斷服務函數(shù)中翻轉(zhuǎn)PB1的電平。要求寫出GPIO初始化、中斷配置及中斷服務函數(shù)代碼(基于標準庫)。答案:```cinclude"stm32f10x.h"voidGPIO_Config(void){GPIO_InitTypeDefGPIO_InitStruct;//PA0輸入(中斷源)RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);GPIO_InitStruct.GPIO_Pin=GPIO_Pin_0;GPIO_InitStruct.GPIO_Mode=GPIO_Mode_IPU;//上拉輸入GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GPIO_InitStruct);//PB1輸出RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);GPIO_InitStruct.GPIO_Pin=GPIO_Pin_1;GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;//推挽輸出GPIO_Init(GPIOB,&GPIO_InitStruct);}voidEXTI_Config(void){EXTI_InitTypeDefEXTI_InitStruct;NVIC_InitTypeDefNVIC_InitStruct;//映射PA0到EXTI0GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource0);EXTI_InitStruct.EXTI_Line=EXTI_Line0;EXTI_InitStruct.EXTI_Mode=EXTI_Mode_Interrupt;EXTI_InitStruct.EXTI_Trigger=EXTI_Trigger_Falling;//下降沿觸發(fā)EXTI_InitStruct.EXTI_LineCmd=ENABLE;EXTI_Init(&EXTI_InitStruct);//配置NVICNVIC_InitStruct.NVIC_IRQChannel=EXTI0_IRQn;NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority=0x01;NVIC_InitStruct.NVIC_IRQChannelSubPriority=0x01;NVIC_InitStruct.NVIC_IRQChannelCmd=ENABLE;NVIC_Init(&NVIC_InitStruct);}voidEXTI0_IRQHandler(void){//中斷服務函數(shù)if(EXTI_GetITStatus(EXTI_Line0)!=RESET){GPIO_WriteBit(GPIOB,GPIO_Pin_1,(BitAction)(1-GPIO_ReadOutputDataBit(GPIOB,GPIO_Pin_1)));EXTI_ClearITPendingBit(EXTI_Line0);//清除中斷標志}}intmain(void){GPIO_Config();EXTI_Config();while(1);}```四、定時器與計數(shù)器題14.填空題:51單片機定時器/計數(shù)器的四種工作模式中,()模式為16位自動重裝模式,適合用于精確定時。答案:模式2。15.選擇題:STM32的高級定時器(如TIM1)支持()功能,而通用定時器(如TIM2)不支持。A.輸入捕獲B.輸出比較C.死區(qū)時間提供D.PWM輸出答案:C。高級定時器額外支持死區(qū)時間提供、互補輸出等,用于電機控制等場景。16.分析題:某51單片機系統(tǒng)使用定時器1的模式1(16位定時器),晶振12MHz,要求產(chǎn)生20ms的定時中斷。若系統(tǒng)需要同時使用定時器0,則定時器1的初值應如何計算?是否需要考慮中斷優(yōu)先級?答案:機器周期=1μs,20ms=20000μs。定時時間=(65536-X)×1μs=20000μs→X=65536-20000=45536(十六進制0xB1E0),因此TH1=0xB1,TL1=0xE0。若同時使用定時器0,需在中斷初始化時設置兩者的優(yōu)先級(51單片機默認優(yōu)先級:INT0>Timer0>INT1>Timer1>串口),若需調(diào)整優(yōu)先級,可通過IP寄存器設置(如PS=1提高串口優(yōu)先級,PT1=1提高Timer1優(yōu)先級)。17.編程題(51單片機):使用定時器0的模式2(8位自動重裝)實現(xiàn)100μs定時中斷,在中斷服務函數(shù)中對計數(shù)器變量cnt加1,當cnt=1000時,翻轉(zhuǎn)P3.7的電平(晶振12MHz)。要求寫出定時器初始化、中斷服務函數(shù)及主程序代碼。答案:```cinclude<reg52.h>defineucharunsignedchardefineuintunsignedintsbitLED=P3^7;ucharcnt=0;voidTimer0_Init(void){TMOD=0x02;//定時器0模式2(8位自動重裝)TH0=0x9C;//初值計算:100μs=(256-X)×1μs→X=256-100=156=0x9CTL0=0x9C;ET0=1;//使能定時器0中斷EA=1;//總中斷使能TR0=1;//啟動定時器0}voidTimer0_ISR()interrupt1{//中斷號1(定時器0)cnt++;if(cnt>=1000){LED=~LED;cnt=0;}}voidmain(){Timer0_Init();while(1);//等待中斷}```五、串口通信題18.填空題:51單片機串口通信中,若波特率為9600bps,晶振11.0592MHz,SMOD=0(波特率不加倍),則定時器1的溢出率應為()。答案:9600bps。串口波特率計算公式:波特率=(2^SMOD/32)×(定時器1溢出率)。當SMOD=0時,溢出率=9600×32=307200Hz,定時器1工作于模式2(自動重裝),初值X=256-(11.0592MHz/(12×307200))=256-3=253(0xFD)。19.選擇題:STM32的USART接口中,若要實現(xiàn)全雙工通信,至少需要()根信號線。A.1B.2C.3D.4答案:B。全雙工需TX(發(fā)送)和RX(接收)兩根線,GND為參考地,通常不計入信號線數(shù)量。20.簡答題:51單片機串口通信中,為何通常選擇晶振11.0592MHz而非12MHz?答案:12MHz晶振在計算9600bps波特率時,定時器1初值為256-(12MHz/(12×32×9600))=256-3.255≈252.745(非整數(shù)),導致波特率誤差較大(約3.5%);而11.0592MHz晶振計算得初值256-(11.0592MHz/(12×32×9600))=256-3=253(整數(shù)),波特率無誤差,因此更適合串口通信。21.編程題(STM32):配置USART1(波特率115200,8位數(shù)據(jù)位,1位停止位,無校驗),實現(xiàn)通過串口發(fā)送字符串“Hello,MCU!”。要求寫出USART初始化及發(fā)送函數(shù)代碼(基于標準庫,晶振72MHz)。答案:```cinclude"stm32f10x.h"voidUSART1_Init(void){GPIO_InitTypeDefGPIO_InitStruct;USART_InitTypeDefUSART_InitStruct;//使能時鐘RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_USART1,ENABLE);//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);//RX(PA10)浮空輸入GPIO_InitStruct.GPIO_Pin=GPIO_Pin_10;GPIO_InitStruct.GPIO_Mode=GPIO_Mode_IN_FLOATING;GPIO_Init(GPIOA,&GPIO_InitStruct);//USART配置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;//僅發(fā)送USART_Init(USART1,&USART_InitStruct);USART_Cmd(USART1,ENABLE);//使能USART1}voidUSART1_SendStr(charstr){while(str){USART_SendData(USART1,str++);while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET);//等待發(fā)送完成}}intmain(void){USART1_Init();USART1_SendStr("Hello,MCU!");while(1);}```六、綜合應用題22.設計題:使用STC89C52單片機(晶振11.0592MHz)設計一個溫度監(jiān)測系統(tǒng),要求:(1)通過ADC0832采集溫度傳感器(輸出0-5V,對應0-100℃)的模擬信號;(2)將溫度值通過串口(9600bps)發(fā)送至上位機;(3)當溫度超過80℃時,P2.0控制的蜂鳴器報警(低電平觸發(fā))。要求:畫出簡化硬件連接圖(標注關(guān)鍵引腳),寫出ADC讀取、溫度計算、串口發(fā)送及報警判斷的核心代碼。答案:硬件連接:-STC89C52的P1.0(CS)→ADC0832的CS;-P1.1(CLK)→ADC0832的CLK;-P1.2(DO/DI)→ADC0832的DO/DI(雙向);-串口TXD(P3.1)→上位機RX;-P2.0→蜂鳴器(經(jīng)三極管驅(qū)動);-溫度傳感器輸出→ADC0832的CH0(IN+)。核心代碼:```cinclude<reg52.h>include<intrins.h>defineucharunsignedchardefineuintunsignedintsbitCS=P1^0;sbitCLK=P1^1;sbitDIO=P1^2;sbitBuzzer=P2^0;uchartemp_value;//溫度值(℃)//ADC0832讀取函數(shù)(單通道)ucharRead_ADC0832(){uchari,dat=0;CS=0;//啟動轉(zhuǎn)換CLK=0;DIO=1;_nop_();CLK=1;_nop_();//起始位CLK=0;DIO=1;_nop_();CLK=1;_nop_();//通道選擇(CH0)CLK=0;DIO=0;_nop_();CLK=1;_nop_();CLK=0;DIO=1;//釋放DIOfo
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2026年五年級科學(核心考點)下學期期末測試卷
- 2025年中職會計(審計實操綜合)試題及答案
- 2025年大學工商管理(制造團隊運營)試題及答案
- 2025年高職廣播電視技術(shù)(廣電設備操作)試題及答案
- 深度解析(2026)《GBT 18258-2000阻尼材料 阻尼性能測試方法》(2026年)深度解析
- 深度解析(2026)《GBT 17786-1999有線電視頻率配置》
- 深度解析(2026)《GBT 17642-2025土工合成材料 非織造布復合土工膜》
- 深度解析(2026)《GBT 687-2011化學試劑 丙三醇》
- 關(guān)節(jié)健康體檢項目設置規(guī)范
- 東莞職業(yè)技術(shù)學院《建筑模型》2025-2026學年第一學期期末試卷
- 電氣工程師2025年度計劃
- 彩鋼夾芯板墻面安裝施工工藝-共3種方案
- 歷史建筑測繪建檔技術(shù)規(guī)范
- 波譜色譜學智慧樹知到期末考試答案章節(jié)答案2024年沈陽農(nóng)業(yè)大學
- 勞動關(guān)系解除協(xié)議合同
- 應急指揮管理平臺系統(tǒng)設計方案
- 佛教的由來、發(fā)展和概況課件
- 大陸火災基本形勢
- 非物質(zhì)文化遺產(chǎn)申請表
- 基層銷售人員入職培訓課程完整版課件
- 2023年郴州職業(yè)技術(shù)學院單招職業(yè)適應性測試題庫及答案解析word版
評論
0/150
提交評論