版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
目錄TOC\o"1-3"\h\u1 引言 61.1研究意義 61.2 國內(nèi)外研究現(xiàn)狀 61.3穿戴式降暑設(shè)備設(shè)計(jì)的主要內(nèi)容 72系統(tǒng)硬件方案設(shè)計(jì) 72.1硬件系統(tǒng)總體設(shè)計(jì)方案 72.2系統(tǒng)元器件選型及參數(shù)介紹 72.2.1單片機(jī)的選擇 72.2.2顯示屏的選擇 73 系統(tǒng)硬件電路原理圖設(shè)計(jì) 83.1 單片機(jī)主要控制電路 83.2 OLED顯示屏電路 83.3 按鍵電路設(shè)計(jì) 93.4 DS18B20溫度采集模塊設(shè)計(jì) 103.5 AD轉(zhuǎn)換電路設(shè)計(jì) 104 系統(tǒng)電路軟件設(shè)計(jì) 114.1 OLED顯示屏電路程序設(shè)計(jì) 114.2 風(fēng)扇溫控開關(guān)子程序流程框圖 144.3 DS18B20溫度信號(hào)采集工作流程 144.4 按鍵設(shè)置工作流程 174.5 系統(tǒng)主程序設(shè)計(jì) [10]下圖4.2。以下展示了執(zhí)行過程的相關(guān)函數(shù):圖4.2溫度信號(hào)采集數(shù)據(jù)流程圖//復(fù)位DS18B20voidDS18B20_Rst(void){DS18B20_IO_OUT();DS18B20_DQ_OUT=0;delay_us(750);DS18B20_DQ_OUT=1;delay_us(15);}//溫度轉(zhuǎn)換voidDS18B20_Start(void){ DS18B20_Rst(); DS18B20_Check(); DS18B20_Write_Byte(0xcc); DS18B20_Write_Byte(0x44); }//寫一個(gè)字節(jié)到DS18B20voidDS18B20_Write_Byte(u8dat){u8j;u8testb; DS18B20_IO_OUT(); //SETPG11OUTPUT;for(j=1;j<=8;j++) {testb=dat&0x01;dat=dat>>1;if(testb){DS18B20_DQ_OUT=0; delay_us(2);DS18B20_DQ_OUT=1;delay_us(60);}else{DS18B20_DQ_OUT=0; delay_us(60);DS18B20_DQ_OUT=1;delay_us(2);}}}//從DS180B20得到溫度值//精度:0.1℃//返回值:溫度值(-550到1250)shortDS18B20_Get_Temp(void){u8temp;u8TL,TH; shorttem;DS18B20_Start(); DS18B20_Rst();DS18B20_Check(); DS18B20_Write_Byte(0xcc); DS18B20_Write_Byte(0xbe); TL=DS18B20_Read_Byte(); TH=DS18B20_Read_Byte(); if(TH>7){TH=~TH;TL=~TL;temp=0; }elsetemp=1; tem=TH; tem<<=8;tem+=TL; tem=(float)tem*0.625; if(temp)returntem; elsereturn-tem;}4.4按鍵設(shè)置工作流程本設(shè)計(jì)中采用單片機(jī)控制實(shí)現(xiàn)鍵盤按鍵功能和溫度閾值設(shè)置。首先,將鍵盤與單片機(jī)連接,確保按鍵信號(hào)可以被準(zhǔn)確接收。在程序中,設(shè)定一個(gè)循環(huán)結(jié)構(gòu)用于持續(xù)掃描鍵盤狀態(tài)。當(dāng)檢測到按鍵按下將采集到的溫度值與所設(shè)置的閾值進(jìn)行比較。過程如圖4.3所示,以下有相關(guān)函數(shù)部分:圖4.3//初始化#include“key.h”#include“sys.h”#include“delay.h”#include“user_peripheral.h”#ifKEY_PrevoidKEY_Init(void)//按鍵松開u8KEY_Scan(u8mode){ staticu8key_up=1;//連按if(mode)key_up=1;//去除抖動(dòng)if(key_up&&(KEY1==0||KEY2==0||KEY3==0)) { delay_ms(10);4.5系統(tǒng)主程序設(shè)計(jì)系統(tǒng)主程序在整個(gè)設(shè)計(jì)中起著關(guān)鍵的作用,負(fù)責(zé)控制程序的整個(gè)運(yùn)行流程,包括啟動(dòng)、初始化、運(yùn)行和退出等方面。在本設(shè)計(jì)中,系統(tǒng)主程序涵蓋了以下功能模塊:顯示函數(shù)的調(diào)用:系統(tǒng)主程序通過調(diào)用顯示函數(shù),將相關(guān)信息顯示在屏幕上,如溫度值、設(shè)定值。時(shí)間函數(shù)的調(diào)用:通過調(diào)用時(shí)間函數(shù),系統(tǒng)主程序可以獲取當(dāng)前的時(shí)間信息,用于記錄數(shù)據(jù)、計(jì)時(shí)或執(zhí)行定時(shí)任務(wù)。按鍵處理函數(shù):系統(tǒng)主程序通過調(diào)用按鍵處理函數(shù),檢測和處理來自按鍵的輸入??梢栽O(shè)置溫度閾值實(shí)現(xiàn)與系統(tǒng)的交互。風(fēng)扇啟用驅(qū)動(dòng):系統(tǒng)主程序在特定條件下調(diào)用風(fēng)扇啟用驅(qū)動(dòng)函數(shù),控制風(fēng)扇的啟停。根據(jù)溫度值和設(shè)定值的比較,決定是否需要啟動(dòng)風(fēng)扇來調(diào)節(jié)溫度。以下顯示相關(guān)主函數(shù)。//主函數(shù)#include"delay.h"#include"sys.h"#include"usart.h" #include"led.h" #include"key.h" #include"math.h" #include"string.h" #include"user_peripheral.h"#include"UserPrintf.h"u8kk,rrr_th,rrr;intmain(void){ delay_init(); //延時(shí)函數(shù)初始化 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); uart_init(9600); //串口初始化user_peripheral_init();OLED_ShowString(0,2,"W:",16); OLED_ShowString(0,4,"Y:",16); rrr_th=20; while(1) {rrr=DS18B20_Get_Temp()/10; OLED_ShowNum(8*2,2,rrr,2,16);OLED_ShowNum(8*2,4,rrr_th,2,16); if(rrr>=rrr_th) { LED1=1; } else { LED1=0; } kk=KEY_Scan(0); if(kk==1) { rrr_th++; if(rrr_th>40) rrr_th=20; }}}5電路調(diào)試及功能演示需要注意的是,具電路調(diào)試是在電路設(shè)計(jì)或搭建完成后的一個(gè)重要環(huán)節(jié),其涉及到對電路進(jìn)行測試、故障排除和性能優(yōu)化的過程。在電路調(diào)試過程中,首先需要進(jìn)行電路的基本功能測試,以驗(yàn)證電路是否按照設(shè)計(jì)要求正常工作。如果發(fā)現(xiàn)電路存在問題,需要通過仔細(xì)檢查和測量,確定故障的具體位置和原因。常用的調(diào)試工具包括示波器、萬用表、信號(hào)發(fā)生器等。通過針對性的調(diào)整和修復(fù),可以逐步解決電路中的問題,并確保電路的正常運(yùn)行。下圖5.1至5.4展示了實(shí)物功能演示。圖5.1未通電狀態(tài)圖5.2傳感器檢測溫度小于閾值,風(fēng)扇自動(dòng)關(guān)閉圖5.3傳感器檢測溫度大于閾值,風(fēng)扇自動(dòng)啟動(dòng)圖5.4調(diào)節(jié)閾值大小6總結(jié)自動(dòng)溫控風(fēng)扇作為一種穿戴式降暑設(shè)備,具有廣泛的應(yīng)用前景。本論文旨在研究和探討自動(dòng)溫控風(fēng)扇在降低人體熱應(yīng)激和提供舒適體驗(yàn)方面的效果和潛力。通過對相關(guān)文獻(xiàn)的綜述和實(shí)驗(yàn)研究的分析,本文介紹了自動(dòng)溫控風(fēng)扇的設(shè)計(jì)原理和主要構(gòu)成部分。其中,溫度檢測作為核心組件,通過判斷溫度閾值來判斷降溫過程。溫度傳感器和控制系統(tǒng)實(shí)現(xiàn)了風(fēng)扇自動(dòng)調(diào)節(jié)功能,根據(jù)環(huán)境溫度和用戶需求進(jìn)行智能控制。本論文的研究結(jié)果表明,自動(dòng)溫控風(fēng)扇能夠有效降低體表溫度、減輕熱應(yīng)激反應(yīng),并提供舒適的體驗(yàn)。然而,仍需要進(jìn)一步的研究和發(fā)展,以小型化,多功能化進(jìn)一步完善設(shè)備的性能和功能,滿足不同用戶群體的需求。參考文獻(xiàn)夏念洋.現(xiàn)場防暑降溫工作中的運(yùn)用[J].中交二航局第一工程有限公司,2021(11):89-90.孫云龍.風(fēng)扇自動(dòng)檢測控制系統(tǒng)設(shè)計(jì)[J].江蘇電子信息職業(yè)學(xué)院電子網(wǎng)絡(luò)學(xué)院,2020(13):29-30.谷彩云,丁南紅,周俞秋子.基于伯努力原理的自動(dòng)除塵風(fēng)扇的研究與設(shè)計(jì)[J].安徽三聯(lián)學(xué)院電子電氣工程學(xué)院,2021,18(22):58-59.張定祥.模塊化設(shè)計(jì)在單片機(jī)編程中的應(yīng)用[J].數(shù)字技術(shù)與應(yīng)用,2023,41(01):190-192+216.蔣鳴東,劉巖.利用STM單片機(jī)的自動(dòng)溫度感知與控制系統(tǒng)[J].安徽工業(yè)經(jīng)濟(jì)職業(yè)技術(shù)學(xué)院電氣工程學(xué)院福建師范大學(xué)地理科學(xué)學(xué)院,2023,30(04):264-270.代國勇.基于STM32單片機(jī)溫室大棚環(huán)境的智能控制系統(tǒng)設(shè)計(jì)及實(shí)現(xiàn)[D].石家莊:石家莊鐵道大學(xué),2018:73. 何文靜.基于52單片機(jī)的數(shù)字時(shí)鐘設(shè)計(jì)[J].電子制作,2015,286(13):62.陳杰鴻.電子節(jié)溫器控制策略及其測控裝置研究[D].天津:天津工業(yè)大學(xué),2018:88.彭文莉.基于單片機(jī)的智能控溫風(fēng)扇系統(tǒng)設(shè)計(jì)[J].湖南科技學(xué)院信息工程學(xué)院,2023,20(05):31-33+42.姬志君.基于半導(dǎo)體制冷技術(shù)的自動(dòng)溫控箱的研究與設(shè)計(jì)[D].保定:河北農(nóng)業(yè)大學(xué),2012:60. 附錄#include"delay.h"#include"sys.h"#include"usart.h" #include"led.h" #include"key.h" #include"math.h" #include"string.h" #include"user_peripheral.h"#include"UserPrintf.h"u8kk,rrr_th,rrr;intmain(void){ delay_init(); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);uart_init(9600); user_peripheral_init();OLED_ShowString(0,2,"W:",16); OLED_ShowString(0,4,"Y:",16); rrr_th=20; while(1) {rrr=DS18B20_Get_Temp()/10; OLED_ShowNum(8*2,2,rrr,2,16);OLED_ShowNum(8*2,4,rrr_th,2,16); if(rrr>=rrr_th) { LED1=1; } else { LED1=0; } kk=KEY_Scan(0); if(kk==1) { rrr_th++; if(rrr_th>40) rrr_th=20; } }}#include"oled.h"#include"stdlib.h"#include"oledfont.h" #include"delay.h"#include"user_peripheral.h"#ifOLED_0_96_PrevoidIIC_Start(){ OLED_SCLK_Set(); OLED_SDIN_Set(); OLED_SDIN_Clr(); OLED_SCLK_Clr();}voidIIC_Stop(){OLED_SCLK_Set(); OLED_SDIN_Clr(); OLED_SDIN_Set(); }voidIIC_Wait_Ack(){ OLED_SCLK_Set(); OLED_SCLK_Clr();}voidWrite_IIC_Byte(unsignedcharIIC_Byte){ unsignedchari; unsignedcharm,da; da=IIC_Byte; OLED_SCLK_Clr(); for(i=0;i<8;i++) { m=da; m=m&0x80; if(m==0x80) {OLED_SDIN_Set();} elseOLED_SDIN_Clr(); da=da<<1; OLED_SCLK_Set(); OLED_SCLK_Clr(); }}voidWrite_IIC_Command(unsignedcharIIC_Command){IIC_Start();Write_IIC_Byte(0x78); IIC_Wait_Ack(); Write_IIC_Byte(0x00); IIC_Wait_Ack(); Write_IIC_Byte(IIC_Command); IIC_Wait_Ack(); IIC_Stop();}voidWrite_IIC_Data(unsignedcharIIC_Data){IIC_Start();Write_IIC_Byte(0x78); IIC_Wait_Ack(); Write_IIC_Byte(0x40); IIC_Wait_Ack(); Write_IIC_Byte(IIC_Data); IIC_Wait_Ack(); IIC_Stop();}voidOLED_WR_Byte(unsigneddat,unsignedcmd){ if(cmd) {Write_IIC_Data(dat); } else{Write_IIC_Command(dat); }}voidfill_picture(unsignedcharfill_Data){ unsignedcharm,n; for(m=0;m<8;m++) { OLED_WR_Byte(0xb0+m,0); OLED_WR_Byte(0x00,0); for(n=0;n<128;n++) { OLED_WR_Byte(fill_Data,1); } }}voidOLED_Set_Pos(unsignedcharx,unsignedchary){ OLED_WR_Byte(0xb0+y,OLED_CMD); OLED_WR_Byte(((x&0xf0)>>4)|0x10,OLED_CMD); OLED_WR_Byte((x&0x0f),OLED_CMD);} voidOLED_Display_On(void){ OLED_WR_Byte(0X8D,OLED_CMD); OLED_WR_Byte(0X14,OLED_CMD); OLED_WR_Byte(0XAF,OLED_CMD);}voidOLED_Display_Off(void){ OLED_WR_Byte(0X8D,OLED_CMD); OLED_WR_Byte(0X10,OLED_CMD); OLED_WR_Byte(0XAE,OLED_CMD);} voidOLED_Clear(void){ u8i,n; for(i=0;i<8;i++) { OLED_WR_Byte(0xb0+i,OLED_CMD); OLED_WR_Byte(0x00,OLED_CMD); OLED_WR_Byte(0x10,OLED_CMD); for(n=0;n<128;n++)OLED_WR_Byte(0,OLED_DATA); }}voidOLED_On(void){ u8i,n; for(i=0;i<8;i++) { OLED_WR_Byte(0xb0+i,OLED_CMD); OLED_WR_Byte(0x00,OLED_CMD); OLED_WR_Byte(0x10,OLED_CMD); for(n=0;n<128;n++)OLED_WR_Byte(1,OLED_DATA); }}voidOLED_ShowChar(u8x,u8y,u8chr,u8Char_Size){ unsignedcharc=0,i=0; c=chr-''; if(x>Max_Column-1){x=0;y=y+2;} if(Char_Size==16) { OLED_Set_Pos(x,y); for(i=0;i<8;i++) OLED_WR_Byte(F8X16[c*16+i],OLED_DATA); OLED_Set_Pos(x,y+1); for(i=0;i<8;i++) OLED_WR_Byte(F8X16[c*16+i+8],OLED_DATA); } else{ OLED_Set_Pos(x,y); for(i=0;i<6;i++) OLED_WR_Byte(F6x8[c][i],OLED_DATA); }}u32oled_pow(u8m,u8n){ u32result=1; while(n--)result*=m; returnresult;} voidOLED_ShowNum(u8x,u8y,u32num,u8len,u8size2){ u8t,temp; u8enshow=0; for(t=0;t<len;t++) { temp=(num/oled_pow(10,len-t-1))%10; if(enshow==0&&t<(len-1)) { if(temp==0) { OLED_ShowChar(x+(size2/2)*t,y,'',size2); continue; }elseenshow=1; } OLED_ShowChar(x+(size2/2)*t,y,temp+'0',size2); }}voidOLED_ShowString(u8x,u8y,u8*chr,u8Char_Size){ unsignedcharj=0; while(chr[j]!='\0') { OLED_ShowChar(x,y,chr[j],Char_Size); x+=8; if(x>120){x=0;y+=2;} j++; }}voidOLED_ShowCHinese(u8x,u8y,u8no){ u8t,adder=0; OLED_Set_Pos(x,y); for(t=0;t<16;t++) { OLED_WR_Byte(Hzk[2*no][t],OLED_DATA); adder+=1;} OLED_Set_Pos(x,y+1); for(t=0;t<16;t++) { OLED_WR_Byte(Hzk[2*no+1][t],OLED_DATA); adder+=1;} }voidOLED_DrawBMP(unsignedcharx0,unsignedchary0,unsignedcharx1,unsignedchary1,unsignedcharBMP[]){ unsignedintj=0;unsignedcharx,y;if(y1%8==0)y=y1/8;elsey=y1/8+1; for(y=y0;y<y1;y++) { OLED_Set_Pos(x0,y);for(x=x0;x<x1;x++) { OLED_WR_Byte(BMP[j++],OLED_DATA); } }}voidOLED_Init(void){ GPIO_InitTypeDefGPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); GPIO_InitStructure.GPIO_Pin=GPIO_Pin_8|GPIO_Pin_9; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOB,&GPIO_InitStructure); GPIO_SetBits(GPIOB,GPIO_Pin_8|GPIO_Pin_9); delay_ms(800); OLED_WR_Byte(0xAE,OLED_CMD); OLED_WR_Byte(0x00,OLED_CMD); OLED_WR_Byte(0x10,OLED_CMD); OLED_WR_Byte(0x40,OLED_CMD); OLED_WR_Byte(0xB0,OLED_CMD); OLED_WR_Byte(0x81,OLED_CMD); OLED_WR_Byte(0xFF,OLED_CMD); OLED_WR_Byte(0xA1,OLED_CMD); OLED_WR_Byte(0xA6,OLED_CMD); OLED_WR_Byte(0xA8,OLED_CMD); OLED_WR_Byte(0x3F,OLED_CMD); OLED_WR_Byte(0xC8,OLED_CMD); OLED_WR_Byte(0xD3,OLED_CMD); OLED_WR_Byte(0x00,OLED_CMD); OLED_WR_Byte(0xD5,OLED_CMD); OLED_WR_Byte(0x80,OLED_CMD); OLED_WR_Byte(0xD8,OLED_CMD); OLED_WR_Byte(0x05,OLED_CMD); OLED_WR_Byte(0xD9,OLED_CMD); OLED_WR_Byte(0xF1,OLED_CMD); OLED_WR_Byte(0xDA,OLED_CMD); OLED_WR_Byte(0x12,OLED_CMD); OLED_WR_Byte(0xDB,OLED_CMD); OLED_WR_Byte(0x30,OLED_CMD); OLED_WR_Byte(0x8D,OLED_CMD); OLED_WR_Byte(0x14,OLED_CMD); OLED_WR_Byte(0xAF,OLED_CMD); OLED_Clear();}#include"ds18b20.h"#include"delay.h" #include"user_peripheral.h"#ifDS18B20_PrevoidDS18B20_Rst(void) { DS18B20_IO_OUT(); DS18B20_DQ_OUT=0; delay_us(750); DS18B20_DQ_OUT=1; delay_us(15); }u8DS18B20_Check(void) { u8retry=0; DS18B20_IO_IN(); while(DS18B20_DQ_IN&&retry<200) { retry++; delay_us(1); }; if(retry>=200)return1; elseretry=0;while(!DS18B20_DQ_IN&&retry<240) { retry++; delay_us(1); }; if(retry>=240)return1; return0;}u8DS18B20_Read_Bit(void) {u8data; DS18B20_IO_OUT(); DS18B20_DQ_OUT=0; delay_us(2);DS18B20_DQ_OUT=1; DS18B20_IO_IN(); delay_us(12); if(DS18B20_DQ_IN)data=1;elsedata=0; delay_us(50);returndata;}u8DS18B20_Read_Byte(void){u8i,j,dat;dat=0; for(i=1;i<=8;i++) {j=DS18B20_Read_Bit();dat=(j<<7)|(dat>>1);} returndat;}voidDS18B20_Write_Byte(u8dat){u8j;u8testb; DS18B20_IO_OUT(); for(j=1;j<=8;j++) {testb=dat&0x01;dat=dat>>1;if(testb){DS18B20_DQ_OUT=0; delay_us(2);DS18B20_DQ_OUT=1;delay_us(60);}else{DS18B20_DQ_OUT=0; delay_us(60);DS18B20_DQ_OUT=1;delay_us(2);}}}voidDS18B20_Start(void){ DS18B20_Rst(); DS18B20_Check(); DS18B20_Write_Byte(0xcc); DS18B20_Write_Byte(0x44); }u8DS18B20_Init(void){ GPIO_InitTypeDefGPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10; GPIO_I
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高校教學(xué)質(zhì)量監(jiān)控體系建設(shè)與改進(jìn)方案
- 工廠環(huán)境污染防治舉措方案
- 小學(xué)數(shù)學(xué)跳繩教學(xué)活動(dòng)設(shè)計(jì)方案
- 建筑設(shè)備安裝工程質(zhì)量管理方案
- 企業(yè)股權(quán)激勵(lì)方案可行性研究報(bào)告
- 業(yè)務(wù)領(lǐng)域應(yīng)用解決方案工具箱
- 機(jī)械設(shè)計(jì)課程項(xiàng)目管理方案設(shè)計(jì)
- 績效考核關(guān)鍵指標(biāo)設(shè)計(jì)與管理方案
- 醫(yī)院急診部流程優(yōu)化及人員配置方案
- 餐飲連鎖店品牌形象建設(shè)方案
- JJG 1148-2022 電動(dòng)汽車交流充電樁(試行)
- 周黑鴨加盟合同協(xié)議
- 黃色垃圾袋合同
- 急性呼吸窘迫綜合征ARDS教案
- 實(shí)驗(yàn)室質(zhì)量控制操作規(guī)程計(jì)劃
- 骨科手術(shù)術(shù)前宣教
- 電梯安全培訓(xùn)課件下載
- 事業(yè)單位職工勞動(dòng)合同管理規(guī)范
- 老年人靜脈輸液技巧
- 呼吸內(nèi)科一科一品護(hù)理匯報(bào)
- 2025年公安機(jī)關(guān)人民警察基本級執(zhí)法資格考試試卷及答案
評論
0/150
提交評論