




已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数字密码锁 本科生课程设计题目: 数字密码锁课程:单片机课程设计专业:电子信息工程目录一、任务及要求4二、系统原理框图52.1 功能菜单原理框图52.2 输入密码子程序原理图52.3重置密码原理图 6三、硬件原理图83.1板上资源分布83.2单片机ADuC84893.3 电源模块103.4 显示模块113.5 蜂鸣器113.6 按键输入123.7 复位与下载13四、程序134.1主程序main()134.2 lcd12864.c程序274.3 lcd12864.h程序324.4 bless.h程序33五、使用说明书36六、心得体会37七、参考文献37一、任务及要求1.1设计一多位电子密码锁,输入密码用“*”表示,输入密码正确或错误,LED和蜂鸣器有不同显示 1.2 连续输入三次错误密码,报警电路动作,键盘锁定1.3 具有密码重置、修改功能1.4 具有密码输入等待操作时间限制功能,超过限定时间报警1.5 可利用蜂鸣器添加提示音二、系统原理框图2.1 功能菜单原理框图212.2 输入密码子程序原理图2.3重置密码原理图三、硬件原理图本单片机学习板集成多个基础硬件资源模块,各个资源模块可以相互组合使该板实现不同的功能。因此,本学习板既可用于51单片机的教学实验,又可用于做功能比较强的单片机课程设计,是51单片机初学者的好帮手。 3.1板上资源分布 单片机学习板板上资源如下图所示:1、2、3:单片机P0、P2、P3口引出接口(有限流保护电阻);4:上排图形点阵LCD12864的接口、下排LCD1602的接口;5、6:两路16位ADC输入、可作差分输入;7、8:12位DAC输出、对DAC输出进行比例放大或者跟随的运放;9:单片机AduC848;10:无源蜂鸣器、由单片机PWM模块输出信号控制;11:8位数码管;12、13:LCD亮度调节口;14:USB接口(通过USB接口供电、在线下载、单步、断点、运行到某一行等方式调试程序);15:8路LED,从左至右为LED70,分别被P0.7P0.0控制;16:步进电机(5V、70欧姆、6线4相)接口;17:UART接口;18:复位按键和下载按键;19、20:IIC总线上的EEPROM AT24C08和RTC DS1307;21:IIC接口;22:PS/2接口;23:红外接收头;24:功能选择和配置插针;25:4X4矩阵式键盘或4个独立按键;26:SPI接口;27:直流电源输入;此外还有红外二极管(由单片机PWM 模块输出信号控制)。3.2单片机ADuC848 3.2.1 ADuC848的简要介绍(针对本设计所选择的型号) 详细情况请参考芯片手册。1、8051-based core、5V供电电压; 2、可以通过串口在线下载程序和单步、断点、运行到某一行等方式调试程序; 3、16位8通道-ADC,片内有1.25V参考电压、buffer和PGA; 4、12位电压输出DAC、Dual 16-BIT - DAC; 5、32kbyte程序存储器、4kbyte用户信息Flash存储器、256RAM+2048XRAM(byte); 6、PLL(12.58 MHz max)(片外只需接32.768kHz晶振); 7、316位定时/计数器、看门狗定时器; 8、11中断源(2优先级)、11位堆栈指针; 9、24I/O+8模拟或数字输入; 10、UART、 SPI和I2C、高速115200波特率发生; 11、Power supply monitor、上电复位、Dual 200A激励电流源。3.2.2 单片机引脚分布 详见原理图。Pin14:(P1.0P1.3)作为矩阵式键盘或独立按键的输入,P1口只能用于输入,默认用于模拟输入,作为数字输入使用时应先往P1口相应引脚写0,这里可以用P0&=0xf0。若P2、P3、P0口要作为输入,则应往相应引脚写1。Pin5、6:AVDD、AGND,模拟电源输入。Pin7、8:外部参考电压接入,Pin7接AGND。片内DAC有2.5V内部参考,ADC有1.25V内部参考。Pin9、10:(P1.4、P1.5)两路AD输入,可做差分输入,需要设置ADC的寄存器。Pin11、12:(P1.6、P1.7)各200uA激励电流源,可配合RTD等做应用。Pin13:两路AD输入做普通输入时的电压参考端,AD输入电压不能低于此引脚电压。Pin14:片内DAC输出。Pin15:复位引脚。Pin16、17:单片机RS232接口的RXD(P3.0) TXD(P3.1)。Pin18:(P3.2) 外部中断0,用于红外接收和PS/2接口。Pin19:(P3.3)LCD1602,LCD12864A的EN引脚,控制第一位数码管。Pin20、21:DVDD、DGND数字电源输入。Pin22:(P3.4)PS/2接口的data信号。Pin23:(P3.5)LCD1602和LCD12864A的RW。Pin24:(P3.6)LCD1602和LCD12864A的RS。Pin25:LCD12864A的CS1。Pin26:IIC接口时钟信号。Pin27:IIC接口data信号。Pin28:(P2.0)SPI接口时钟信号。Pin29:(P2.1)SPI接口MOSI信号、控制第6位数码管的位码。Pin30:(P2.2)SPI接口MISO信号、控制第7位数码管的位码。Pin31:(P2.3)SPI接口SS信号、控制第8位数码管的位码;P2.03也作为4X4矩阵式键盘的扫描输出信号、步进电机的控制信号、数码管第数码管第6、7、8位位码。但是SPI、4X4矩阵式键盘、步进电机、数码管第6、7、8位功能不能同时实现。Pin32、Pin33:接外部32.768KHz晶振。Pin34、Pin35:DVDD、DGND。Pin36:(P2.4)LCD12864A的CS2。Pin37:(P2.5)内部PWM模块输出,控制红外LED。Pin38:(P2.6)内部PWM模块输出,控制蜂鸣器。Pin39:(P2.7)内部PWM模块的外部时钟输入(也可以用内部时钟)。Pin40:EA,低电平有效,正常使用时拉低。Pin41:PSEN,在此引脚电平为低时按复位键进入debug模式,可以下载和调试程序。Pin42:ALE。Pin47、Pin48:DGND、DVDD。Pin43、44、45、46、49、50、51、52:P0口、LCD1602和LCD12864的数据总线,数码管的段码。3.3 电源模块 电源模块原理图如图1.2所示。本学习板共有如下3种供电方式: (1)5V电源适配器供电(开关往上拨、插针1下面两脚接跳线帽)。将开关sw4第2、3脚接通(开关往上拨),电源网络DVDD连接到插针1第2脚的输出,将插针1的第1、2脚(插针1下面两脚)接跳线帽,DVDD直接连接到电源适配器输入端,即为5V电源适配器供电模式。(2)712V电源适配器供电(开关往上拨、插针1上面两脚接跳线帽) 将开关sw4第2、3脚接通(开关往上拨),电源网络DVDD连接到插针1第2脚的输出,将插针1的第2、3脚(插针1上面两脚)接跳线帽,DVDD连接到稳压芯片7805的输出,而7805的输入端连接到电源适配器输入端,即为712V的电源适配器经7805给学习板供电的模式。(3)USB供电(开关往下拨)。将开关sw4第1、2脚接通(开关往下拨),电源网络DVDD连接到USB电源输入端。对DVDD网络和AVDD网络设了测试点,方便调试。测试点具体位置参见附图1。3.4 显示模块 本系统共有四种显示模式可供选择,这四种模式分别是:LCD12864、LCD1602、数码管、8路LED。引脚复用:四种显示模式复用数据总线,控制总线,故用户只可选择其中一种使用。我们选用了LCD12864显示。3.4.1 LCD显示 LCD显示信号连接图如图1.7所示。图1.7 LCD信号连接关键网络名和引脚名解释: (1)DISCTRL04:显示控制信号。(2)D0D7、DB0DB7:数据总线。(3)E:LCD使能信号。(4)RS:数据、指令选择信号。(5)RW:读、写选择信号。(6)CS1、CS2:LCD12864由两部分组成,CS1和CS2为选择信号。板上接口4的上排位LCD12864的接口,下排位LCD1602的接口,排针和排母左对齐插入。切勿插错。3.4.2 8路LED 该模块原理如图1.9所示。图1.9 8路LED 8个LED接P0口,低电平时LED亮,这样不会影响P0口逻辑电平。LED限流电阻取4.7K,通过LED电流约为0.8mA,在P0口驱动能力范围之内。该部分可以用于做跑马灯等实验、帮助用户更好的了解和熟练对端口的操作、还可以用于观测P0口的状态。插针配置: (1)若要使用该模块,可以接通插针2,为减少功耗,不用请断开。3.5 蜂鸣器该模块原理图如图1.10所示。图1.10 蜂鸣器和红外发送本设计中采用无源电磁式蜂鸣器,蜂鸣器由PWM1(P2.6)控制,红外二极管由PWM0(P2.5)控制。PWM1和PWM0均为片内PWM模块的输出。蜂鸣器和红外LED的驱动均采用普通NPN三极管。为方便调试,对该模块中的信号设了测试点,具体位置参见附图1。插针配置: (1)若要使用蜂鸣器,可以接通插针3,为减少功耗,不用请断开。(2)若要使用红外二极管,可以接通插针4,为减少功耗,不用请断开。3.6 按键输入 该模块原理如图1.12所示。图1.12 按键模块由于P1口(用于行扫描)内部无上拉电阻,为使无键按下时行信号为高电平,故将行信号接上拉电阻,电阻大小10K即可。引脚复用:P2.0P2.3为4X4矩阵式键盘列扫描信号,又复用作步进电机控制信号,SPI信号、P2.1P2.3还复用为数码管第5、6、7位位码控制信号。参与复用的一项功能使用时,其他参与复用的功能则不能使用。插针配置: (1)插针10上面两脚接跳线帽,4X4矩阵式键盘输入,行扫描信号为P1.0P1.3,列扫描信号为P2.02.3。(2)插针10下面两脚接跳线帽,独立按键输入,该模式有4个独立按键可用,按键扫描所用端口为P1.0P1.3。这4个按键为4X4矩阵键盘的左边4个按键。3.7 复位与下载 复位与下载电路如图1.14所示。图1.14 复位与下载进入下载或调试模式的步骤为: (1)按住BTN1(down or debug按键)不要放开; (2)按下BTN2(reset按键),然后放开BTN2(reset按键);(3)放开BTN1(down or debug按键)。这样单片机就进入了调试模式,可以下载或调试程序。四、程序4.1主程序main()#include#include#include #include #define uint unsigned int#define uchar unsigned char#define ulong unsigned long void inputkey(); /输入密码子程序 void setkey(); /重置密码子程序 void LED(unsigned int x);/LED标志显示程序/ void display0();/显示子程序 void delay_0(int numb); /延时子程序 void bee(unsigned int b);/蜂鸣器子程序 unsigned char getkey();/密码锁主键盘程序int timecount=1500,alarmcount=0,sjflag;/报警时用的变量int realkey; /正确密码int yourkey=0;/用户输入密码int keynum=0; /输入密码的位数 uchar okflag;/输入密码正确标志uchar key; unsigned char pmdeng;/跑马灯uchar kbflag=0,purrentlock=0,mimaflag;/键盘锁定标志,KB是总的键盘锁定标志,PURR是暂时锁定主键盘,MIMA是决定是否释放后有效bit change=0;bit change1=0;void init(void);/初始化void I2CWR(uchar DATA,uchar ADDR);/写IICuchar FUNSEL=0;/功能选择 uchar keyscan();/按键扫描uchar keyNO=16;/按键返回值。设置初值void delayms(uint n);/1ms延时void xianshi0(void);/显示菜单 void main() realkey=888888; init(); PLLCON&=0xf8;/设置频率为12.58MHz okflag=0; /输入密码正确标识 LCD_init(); /屏幕初始化 LCD_Write_Sentence(2,0,欢迎使用密码锁); while(1) PT0=1; /定时中断0为优先 TR0=1;TR1=0; /开启定时中断0和定时中断1 key=16; if(kbflag=0) key=keyscan(); if(key=10) inputkey();/密码输入 else if(key=13) /13键确认 if(okflag=1) setkey();change=1; if(change=1) LCD_init(); PT1=1;TR0=0;TR1=1; PLLCON&=0x01; /设置频率为6.291456MHz FUNSEL=0; while(change) keyNO=keyscan(); if(FUNSEL=0&keyNO=15) FUNSEL=0;keyNO=16; if (FUNSEL=0&keyNO=1)FUNSEL=1;LCD_init();keyNO=16; if (FUNSEL=0&keyNO=2)FUNSEL=2;LCD_init();keyNO=16; if(FUNSEL=0)/显示菜单 xianshi0(); if(FUNSEL=1)/输入密码 change=0; okflag=0; LCD_Write_Sentence(2,3,密码输入); if(FUNSEL=2) /重置密码 change=0; LCD_Write_Sentence(2,3,密码重置); /*密码输入子程序 *void inputkey() int i,j,m; int yourkey=0;int keyv; /读取键号值 keynum=0; /输入密码位数 LCD_init();LCD_Write_Sentence(2,3,请输入密码); LCD_write_fuhao(2,13,0); for(i=0;i3;i+) yourkey=0; if(okflag!=0) /是否跳出最外循环标志 break; for(j=0;j=14); TR0=0;/关闭定时 if(keyv=11) /j=j-keynum; j-;keynum=0;break; else if(keyv=0) keynum+; yourkey=yourkey*10+keyv; if(keynum=1) LCD_write_fuhao(4,13,1); if(keynum=2) LCD_write_fuhao(4,12,1); LCD_write_fuhao(4,13,1); if(keynum=3) LCD_write_fuhao(4,11,1); LCD_write_fuhao(4,12,1); LCD_write_fuhao(4,13,1); if(keynum=4) LCD_write_fuhao(4,10,1); LCD_write_fuhao(4,11,1); LCD_write_fuhao(4,12,1); LCD_write_fuhao(4,13,1); if(keynum=5) LCD_write_fuhao(4,9,1); LCD_write_fuhao(4,10,1); LCD_write_fuhao(4,11,1); LCD_write_fuhao(4,12,1); LCD_write_fuhao(4,13,1); if(keynum=6) LCD_write_fuhao(4,8,1); LCD_write_fuhao(4,9,1); LCD_write_fuhao(4,10,1); LCD_write_fuhao(4,11,1); LCD_write_fuhao(4,12,1); LCD_write_fuhao(4,13,1); if(yourkey=realkey) /密码输入成功 P3&=0x17; LED(1); /密码正确,LED左右四位闪烁bee(1); /蜂鸣器短鸣LCD_init(); LCD_Write_Sentence(2,5,恭喜你); LCD_Write_Sentence(4,6,成功);delayms(3000);okflag=1; /成功标志change=1; /成功后显示主菜单 break; else if(i=0) LCD_init(); LCD_Write_Sentence(0,4,密码错误一次); LCD_Write_Sentence(2,4,请重新输入); LCD_write_fuhao(2,14,0); LED(0); else if(i=1) LCD_init(); LCD_Write_Sentence(0,4,密码错误二次); LCD_Write_Sentence(2,4,请重新输入); LCD_write_fuhao(2,14,0); LED(0); if(i=3) kbflag=1; P3&=0x17; LCD_init(); LCD_Write_Sentence(2,4,密码错误); LCD_Write_Sentence(4,4,锁定屏幕); LED(4); bee(2); /* 密码重置子程序*void setkey() int yourkey1=0,yourkey2=0,keyv0,yourkey=0; int i,j; for(j=0;j2;j+) yourkey=0;keynum=0;/密码的位数if(j=0) LCD_init(); LCD_Write_Sentence(2,2,请输入新密码); LCD_write_fuhao(2,14,0);if(j=1) LCD_init(); LCD_Write_Sentence(2,4,请再次输入); LCD_write_fuhao(2,14,0); for(i=0;i=15); if(keyv0=12) if(i=1) okflag=1; /第二次密码不用输入 ,直接返回 break; else i- ; -keynum; yourkey=yourkey/10; continue; else if(keyv0=11) /重置密码确认 i=0; break; else if(keyv0=0) keynum+; yourkey=yourkey*10+keyv0; if(keynum=1) LCD_write_fuhao(4,13,1); if(keynum=2) LCD_write_fuhao(4,12,1); LCD_write_fuhao(4,13,1); if(keynum=3) LCD_write_fuhao(4,11,1); LCD_write_fuhao(4,12,1); LCD_write_fuhao(4,13,1); if(keynum=4) LCD_write_fuhao(4,10,1); LCD_write_fuhao(4,11,1); LCD_write_fuhao(4,12,1); LCD_write_fuhao(4,13,1); if(keynum=5) LCD_write_fuhao(4,9,1); LCD_write_fuhao(4,10,1); LCD_write_fuhao(4,11,1); LCD_write_fuhao(4,12,1); LCD_write_fuhao(4,13,1); if(keynum=6) LCD_write_fuhao(4,8,1); LCD_write_fuhao(4,9,1); LCD_write_fuhao(4,10,1); LCD_write_fuhao(4,11,1); LCD_write_fuhao(4,12,1); LCD_write_fuhao(4,13,1); if(j=0) yourkey1=yourkey; if(j=1) yourkey2=yourkey; if(yourkey1=yourkey2) realkey=yourkey1; P3&=0x17; LCD_init(); LCD_Write_Sentence(2,3,重置成功); /重置密码成功,LED低四位跑马灯 LED(2); bee(1); TR0=0; else P3&=0x17; LCD_init(); LCD_Write_Sentence(2,3,重置失败); LED(3); /重置密码失败,LED高四位跑马灯 bee(2); /*LED显示标志程序*void LED(unsigned int x) unsigned int m,n; if(x=0) for(n=0;n4;n+)/报警,LED8路闪烁 for(m=0;m4;m+) pmdeng=0xff; P0=pmdeng; pmdeng=pmdeng8; delay_0(32233); P0=pmdeng; delay_0(32233); P0=0Xff; if(x=1) pmdeng=0x0f; for(n=0;n10;n+)/密码正确,LED左右四位闪烁 for(m=0;m4;m+) P0=pmdeng; pmdeng=pmdeng4; if(pmdeng=0x00)pmdeng=0x0f; delay_0(32233); P0=0Xff; if(x=2) pmdeng=0xfe; for(n=0;n5;n+) /重置密码成功,LED低四位跑马灯 for(m=0;m4;m+) P0=pmdeng; pmdeng=pmdeng1; pmdeng=pmdeng+1; if(pmdeng=0xef)pmdeng=0xfe; delay_0(22222); P0=0xff; if(x=3) pmdeng=0x7f; for(n=0;n5;n+) /重置密码失败,LED高四位跑马灯 for(m=0;m1; pmdeng=pmdeng+0x80 ;if(pmdeng=0xf7)pmdeng=0x7f;delay_0(22222); P0=0xff; if(x=4) pmdeng=0x7f; for(n=0;n8;n+) /键盘锁定标志,LED间隔一位跑马灯 for(m=0;m2; pmdeng=pmdeng+0xc0; if(pmdeng=0xff)pmdeng=0x7f; delay_0(22222); /*蜂鸣器模块*void bee(unsigned int b) /密码正确的响声 unsigned int i; PWMCON=0x21;/配置pwm模块工作在方式2,选择频率为32.768khz if(b=1) /报警时 PWM0H=128; PWM1L=256; for(i=0;i=33333;i+) ;if(b=2) /报警时 PWM0H=64; PWM1L=128; for(i=0;i=33333;i+) ;for(i=0;i=33333;i+) ;for(i=0;i=33333;i+) ;for(i=0;i=33333;i+) ; PWMCON=0x01; /关响声 /*延时子程序*void delay_0(int numb) unsigned char temp; int j;for (j=0;j=numb;j+) temp+ ; void init(void)/初始化 uchar i=13; EA=1;ET0=1;ET1=1;/开启定时器012的中断 TMOD=0X11; while(i-!=0) TH0=0X38;TL0=0X00; TH1=(65536-62914)/256;TL0=(65536-62914)%256; / TR0=1;TR1=1; I2CM=1; MDE=1;uchar keyscan()/键盘扫描 static unsigned char Key_temp = 0Xff;unsigned char temp;P1&=0xf0; /P1口低四位作为数字输入时应往相应引脚写0P2&=0xf0;Key_temp = 0Xff; /置列扫描信号为0temp=P1&0x0f; if(temp!=0x0f) /P1口低四位不全为1,则有键被按下 delayms(10); /延时消抖 if(temp=(P1&0x0f) /消抖后再判断键值 P2|=0x07; /P2.3为0switch(P1&0x0f)case 0x0e:while(P1&0x0f)=0x0e)Key_temp = 1;break;case 0x0d:while(P1&0x0f)=0x0d)Key_temp = 4;break;case 0x0b:while(P1&0x0f)=0x0b)Key_temp = 7;break;case 0x07:while(P1&0x0f)=0x07)Key_temp = 13;break;case 0x0f:break;default:Key_temp = 0Xff;break;P2&=0xf0; P2|=0x0b; /P2.2为0switch(P1&0x0f)case 0x0e:Key_temp = 2;while(P1&0x0f)=0x0e)break;case 0x0d:Key_temp = 5;while(P1&0x0f)=0x0d)break;case 0x0b:Key_temp = 8;while(P1&0x0f)=0x0b)break;case 0x07:Key_temp = 0;while(P1&0x0f)=0x07)break;case 0x0f:break;default:Key_temp = 0Xff;break;P2&=0xf0; P2|=0x0d; /P2.1为0switch(P1&0x0f)case 0x0e:Key_temp = 3;while(P1&0x0f)=0x0e)break;case 0x0d:Key_temp = 6;while(P1&0x0f)=0x0d)break;case 0x0b:Key_temp = 9;while(P1&0x0f)=0x0b)break;case 0x07:Key_temp = 14;while(P1&0x0f)=0x07)break;case 0x0f:break;default:Key_temp = 0Xff;break;P2&=0xf0; P2|=0x0e; /P2.0为0switch(P1&0x0f)case 0x0e:Key_temp = 10;while(P1&0x0f)=0x0e)break;case 0x0d:Key_temp = 11;while(P1&0x0f)=0x0d)break;case 0x0b:Key_temp = 12;while(P1&0x0f)=0x0b)break;case 0x07:Key_temp = 15;while(P1&0x0f)=0x07)break;case 0x0f:break;default:Key_temp = 0Xff;break;return Key_temp; void delayms(uint n) /1ms延迟 uchar i=222; while(n-) while(i-);i=222;while(i-);i=222;while(i-);i=222;while(i-);i=222; void xianshi0(void)/显示菜单 LCD_Write_Sentence(0,4,功能菜单); LCD_write_shuzi(6,0,1);LCD_write_fuhao(6,1,0); LCD_Write_Sentence(6,2,输入); LCD_write_shuzi(6,10,2);LCD_write_fuhao(6,11,0); LCD_Write_Sentence(6,12,重置);/*定时中断子程序*void time_r() interrupt 1 TR0=0; TH0=0X38; TL0=0X00; timecount-; if(timecount=0) alarmcount=1;timecount=1500; P3&=0x17; LED(0); /超时报警,LED8路闪烁 bee(1); if(sjflag!=2) /sjflag=2时关定时器 TR0=1;else TR0=0;4.2 lcd12864.c程序#include #include #includebless.hsbit RS = P36;sbit RW = P35;sbit E = P33;sbit CS1 = P37;sbit CS2 = P24;void LCD_delay()unsigned char i;for(i = 0;i 50;i+);/*检测忙函数*/void Check_busy()P0 = 0xff; /P0口作为输入时应往相应引脚写1RS = 0; RW = 1;E = 1;LCD_delay();while(P0&0x80);/判断最
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新质生产力催生新产业形态
- 宠物店服务质量管理方案
- 测绘地理信息行业新质生产力
- 2025年病理科镜下病理切片鉴定能力评估试卷答案及解析
- 民族学田野调查课件
- 2025年心血管内科心电图诊断与分析试题答案及解析
- 2025年肺功能科呼吸道疾病患者的肺功能检查要点模拟考试卷答案及解析
- 民族团结爱我中华课件
- 新质生产力与现代产业
- 新质生产力的核心解读维度
- 建筑行业信息化管理与施工监控系统方案
- 高职高考英语词汇表
- 常住人口登记表(集体户口)-英文翻译
- 药品经营质量管理规范培训课件
- 法律检索教学课程设计
- 12D401-3 爆炸危险环境电气线路和电气设备安装
- DL∕ T 799.1-2010 电力行业劳动环境监测技术规范 第1部分:总则
- 2024版个人居间协议书范本
- 待摊投资工作底稿模板
- 2024年高考作文备考之议论文写作素材:人物篇(墨子)
- 3种不锈钢多辊冷轧机的使用比较
评论
0/150
提交评论