2022单片机实训报告.docx

上传人:h**** 文档编号:10968173 上传时间:2022-04-15 格式:DOCX 页数:19 大小:40.94KB
返回 下载 相关 举报
2022单片机实训报告.docx_第1页
第1页 / 共19页
2022单片机实训报告.docx_第2页
第2页 / 共19页
点击查看更多>>
资源描述

《2022单片机实训报告.docx》由会员分享,可在线阅读,更多相关《2022单片机实训报告.docx(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、2022单片机实训报告 单片机实训报告一.实训目的:单片机专周实训是在学习完单片机应用技术课程之后开设的两周实训课程,在课程学习中,通过理论与试验相结合的学习,同学们已经驾驭了单片机基本的运用方法,但是教材上的例子比较简洁,扩展的空间不大,因此此次实训的目的是为了加强同学们对单片机开发流程的相识,加深对单片机I/O口扩展与外围器件的运用,加强同学们的职业素养,加强同学们的实际动手实力与调试实力,从而实现从理论到实践的升华。二试验设备:1.单片机试验板2.计算机3.ISIS7Professional、SuperPro等相关调试编程软件4.5V电源5.烧录器三.实训要求:本次实训的项目是运用单片机

2、制作一个数字温度计,2位7段数码管用以显示两位温度数据。实训过程先运用仿真软件实现电路的仿真,再运用万用板焊接电路,实现功能。要求仿真通过,实训看法仔细,制作电路整齐,能实现功能。设计要求:运用热敏电阻作为温度传感器,单片机作为处理芯片,依据佛山的气候,要求温度显示数据范围为从045,辨别率为1,数码管显示采纳动态扫描显示方式。四.实训电路:五.设计过程:依据开发的要求,热敏电阻作为温度传感器,必需运用直流偏置电路和AD转换器,单片机接收AD转换器的数据,比照预先做好的温度数据查表,查到了相应的温度数据,送到数码管动态显示。硬件结构图如下图。因此该系统重点解决的问题是热敏电阻的运用与AD转换器

3、的运用,而多位7段数码管的动态显示已经特别熟识了,因此不做过多的阐述。下面对一些重点问题进一步进行分析。热敏电阻偏置电路电压AD转换器数据51单片机数码管限制1.热敏电阻:热敏电阻器有NTC与PTC两种,NTC是NegativeTemperatureCoefficient的缩写,意思是负的温度系数,泛指负温度系数很大的半导体材料或元件,所谓NTC热敏电阻器就是负温度系数热敏电阻器。它是以锰、钴、镍和铜等金属氧化物为主要材料,采纳陶瓷工艺制造而成的。这些金属氧化物材料都具有半导体性质,因为在导电方式上完全类似锗、硅等半导体材料。温度低时,这些氧化物材料的载流子(电子和孔穴)数目少,所以其电阻值较

4、高;随着温度的上升,载流子数目增加,所以电阻值降低。NTC热敏电阻器在室温下的改变范围为1001M,温度系数为2%6.5%。NTC热敏电阻器可广泛应用于温度测量、温度补偿、抑制浪涌电流等场合。NTC热敏电阻专业术语:(1)零功率电阻值RT()RT指在规定温度T时,采纳引起电阻值改变相对于总的测量误差来说可以忽视不计的测量功率测得的电阻值。电阻值和温度改变的关系式为RT=RNexpB(1/T1/TN)RT:在温度T(K)时的NTC热敏电阻阻值。RN:在额定温度TN(K)时的NTC热敏电阻阻值。T:规定温度(K)。B:NTC热敏电阻的材料常数,又叫热敏指数。exp:以自然数e为底的指数(e=2.7

5、1828)。该关系式是阅历公式,只在额定温度TN或额定电阻阻值RN的有限范围内才具有肯定的精确度,因为材料常数B本身也是温度T的函数。(2)额定零功率电阻值R25()依据国家标准规定,额定零功率电阻值是NTC热敏电阻在基准温度25时测得的电阻值R25,这个电阻值就是NTC热敏电阻的标称电阻值。通常所说的NTC热敏电阻多少阻值,亦指该值。(3)材料常数(热敏指数)B值(K)B值被定义为BT1T2RlnT1T2T1RT2RT1:温度T1(K)时的零功率电阻值。RT2:温度T2(K)时的零功率电阻值。T1,T2:两个被指定的温度(K)。对于常用的NTC热敏电阻,B值的范围一般为201*K6000K。

6、本次实训所运用NTC(负温度系数)热敏电阻型号为MF58-503-390,其标称阻值R25为50K,材料常数B值为3900K(见型号的最终的三位数,补0)。依据上述公式,我们可以推算出MF58-503-390在099的电阻值,可以使用excel表格公式推算,非常便利,当然也可以参见课本的数据表格。(4)热敏电阻偏置电路VCC171415818192022D0D1D2D3D4D5D6D7ABCVR(+)12热敏电阻本身是无源元件,只是温度改变导致电阻值改变,因此使R720K16用时必需外接偏置电路,从而实现温度改变导致电压(电流)的改变。VR(-)最志向的状况是运用电流源串联热敏电阻,电流恒定,

7、电阻改变干脆导25IC2ADC0809致热敏电阻两端电压与热敏电阻呈线性改变,但是电流源电流相对困难,262423运用的元器件太多,因此在温度计这样精度不高的场合并不适合。109226OEALESC7简洁的偏置电路可以运用右图的电路,电路简洁,而且线性化较好,EOCCLK比较适合于简洁的测温电路。因此我们采纳这种偏置电路。IN0IN1IN2IN3IN4IN5IN6IN7272812345RTR8100K2.AD转换器:本次实训运用ADC0809芯片,在设计电路的时候肯定要预先规划好0809的运用方式,详细运用查询方法、中断方法还是定时访问方法可以自己选择,因此电路的敏捷性很强,编程也随着硬件改

8、变而改变。3.数码管显示数码管显示运用动态扫描方式,为了削减干扰和提高单片机的稳定性,驱动数码管运用一个74LS04(非门)驱动。六.实训程序:ORG0000HLOOP:CLRP2.2SETBP2.2JNBP2.1,$CLRP2.0MOVA,P0SETBP2.0CLRCSUBBA,#2CHMOVDPTR,#TEMPTABMOVCA,A+DPTRSETBP3.1SETBP3.MOVB,#10DIVABMOVR3,AMOVR4,BMOVDPTR,#DIGITTABMOVA,R3MOVCA,A+DPTRMOVP1,ACLRP3.2ACALLDELAYMOVA,R4MOVCA,A+DPTRSETRP3

9、.2MOVP1,ACLRP3.1ACALLDELAYAJMPLOOPDELAY:MOVR6,#2D1:MOVR7.#250D2:NOPDJNZR7,D2DJNZR6,D1RETDIGITTAB:DB0C0HDB0F9HDB0A4HDB0B0HDB099HDB092HDB082HDB0F8HDB080HDB090HDB08EHTEMPTAB:DB90,89,88,97,100,86,85,84,83,100,82,81,100,80DB79,100,78,77,100,76,75,100,74,100,73,100,72,71DB100,70,100,69,100,68,100,67,100,6

10、6,100,65,100,64DB100,63,100,62,100,61,100,60,100,100,59,100,58,100DB57,100,100,56,100,55,100,54,100,100,53,100,52,100DB100,51,100,50,100,100,49,100,48,100,100,47,100,46DB100,100,45,100,100,44,100,43,100,100,42,100,100,41DB100,40,100,100,39,100,38,100,100,37,100,100,36,1DB35,100,100,34,100,100,33,100

11、,32,100,100,31,100,30DB100,100,29,100,28,100,100,27,100,26,100,100,25,100DB24,100,100,23,100,22,100,21,100,20,100,100,19,100DB18,100,17,100,16,100,15,100,14,100,13,100,12,100DB11,100,10,9,100,8,100,7,6,100,5,4,100,3DB2,1,100,0END七.实训心得:通过几天的实训和刘志远老师细心备课的教育,我在理论的基础上更深刻的驾驭了单片机的深层内容及实际生活中的应用,实训熬炼了自己动手实

12、力和思维实力。经过这几个星期的实训,我懂了单片机温度显示器的工作原理:天气的凹凸靠热敏电阻来反应出分压后出来相对应的电压用ADC0809数模转换的芯片把相对应的电压反馈到单片机里,单片机内部程序已经编译好温度的精度(即是辨别率)然后用动态七段数码管显示出相对应的温度来,最终焊接出实物,用手紧贴住热敏电阻温度顺手贴的时间不断上升放手后温度复原成室温的温度,调试胜利。实训让我对单片机限制系统的探讨产生深厚的爱好,还让我了解了怎样制作单片机烧录器及程序的烧录,在此以后,我会更多的去了解这个奇异的领域。扩展阅读:单片机实训报告心得广东轻工职业技术学院实训报告实训项目系别:专业:班级:姓名:学号:指导老

13、师:实训地点:实训时间:单片机实训电子通信工程系应用电子技术嵌入式091班11222201*080202316丁向荣、赵慧第三实训楼C309201*年1月10日至1月1日前言单片机应用技术是现代电子设计的核心技术,学习单片机只是就是要将单片机应用到电子产品中,以单片机为限制核心实现电子系统所需实现的功能。单片机的应用实力许多程度上确定了电子类专业学生电子设计与电子应用的水平与实力,尤其是高职学生更是如此。本项目要求设计一个简洁的电子时钟,用六位LED数码管实现电子时钟的功能,显示方式为时、分、秒,采纳24h(小时)计时方式,运用按键开关可实现时分调整。通过电子闹钟项目的课题设计,让同学们体验项

14、目设计的要点,了解项目设计的流程,加深对单片机应用学问的学习,体会团队协作的力气所在。为日后的嵌入式专业学习巩固基础。书目1概述1.1系统的作用1.2系统的功能要求2系统硬件设计.2.1系统的电路原理2.2电路原理图2.3各限制按钮限制功能说明.3系统软件设计.4系统调试.5.总结1.概述1.1系统的作用本系统是利用AT89C51单片机结合6个七段显示器以24时制“时时分分秒秒”格式显示时间的电子定时闹铃,系统可以设置8组定时闹铃和组倒计时功能;当定时闹铃和倒计结束时,该电子时钟通过蜂鸣器发出嘀嘀嘀响声;本系统还具有半点和整点报时功能,当现在时间为半点时会发出嘀的一声响,当现在时间为整点时报整

15、点数响声。由于该电子定时闹铃有强大功能可以在多种场合下运用,利用七段显示器发光也可以在夜晚和黑暗场合下运用。1.2系统的功能要求(1)运用6位七段显示器显示24时制时间。(2)时间显示格式为“时时分分秒秒”。(3)定时闹铃功能。(4)倒计时功能。(5)半点报时功能:当现在时间为半点时,蜂鸣器发出“嘀”一声响。(6)整点报时功能:当现在时间为整点时,蜂鸣器发出现在时间整点数响声。(7)当任一闹铃时间到时发出连续“嘀嘀嘀”响声,七段显示器显示“XHHMM”。(8)当倒计时时间到时发出嘀嘀嘀响声,七段显示器显示“000000”。(9)定时闹铃、倒计时和现在时间模式可以相互切换而不影响各自功能。(10

16、)具有4个按键来进行功能设置,可以设置当前时间、组闹铃的时间设置和开关及倒计时的时间设置。(11)通过复位按键可以重启系统。2.系统的硬件设计2.1系统的电路原理(1)系统以AT89C51单片机为本电路的核心元件,通过单片机的P0.0P0.7引脚和A102J排阻加上拉电压来驱动七段显示器段显示数字。(2)通过单片机的P2.2P2.7引脚连接A103J排阻拉升电压信号,限制6个8050NPN三极管使共阴极七段显示器连通接地来循环点亮6位七段显示器。(3)在七段显示器供电的同时由P0脚驱动显示不同数字。依据人眼的视觉暂留特点,调整延迟时间使所视察到时间数字是稳定的数字。(4)系统运用了HYDZ蜂鸣

17、器,通过单片机P3.7引脚连接8550PNP三极管推动发声。(5)电路通过4个按键连接单片机P1.0P1.3引脚低电平限制系统功能设置。(6)单片机的复位电路,采纳传统上电复位,通过Reset按键限制。(7)电路可以通过+5V和+12V直流电供电,当运用+12V直流供电时,电路通过1个7805三端稳电器、2个35v100F电解电容和1个50v10F电解电容转换成+5V直流电供电。(8)系统通过一个发光二极管指示电路供电是或正常。2.2电路原理图图示为数码管显示电路图示为主程序电路图2.3各限制按钮限制功能说明KEY0(按键INT0):调时向左移一位数接P3.0KEY1(按键INT1):当前位加

18、1接P3.1KEY2(按键T0):当前位减1接P3.2KEY3(按键T1):确定调时时间接P3.3S1:切换闹钟调时模式(高电平)接P3.4S2:中断程序(高电平),中断当前的闹钟或整点报时的响应接P3.5S3:暂停和起先计时(高电平)接P3.6BELL:蜂鸣器接P3.7当整点报时和闹钟响应的时候会响。LED灯当整点报时和闹钟响应的时候会亮。P1.0P1.3分别接LED灯的高四位,P1.4P1.7分别接灯的低四位。P0.0P0.7分别口接数码管的段选的ah位P2.0P2.5口分别接数码管的位选的61位3.软件设计表一程序内存资源安排表内存地址20H21H22H23H24H25H26H27H.0

19、27H.127H.227H.327H.427H.527H.6变量名称作用说明SECONMINHOUR存放50毫秒计时存放0.5秒计时存放1秒计时存放1分计时存放1小时计时用于中断1(#6H)用于显示中的闪耀闹钟标记位允许响铃用于标记分、秒(1为秒),闹钟功能时也一样闹钟总开关(1为开)用于闪耀标记用于闪耀秒表标记表一程序内存资源安排表内存地址27H.728H-29H30H-35H36H37H-39H40H变量名称作用说明DISPSP两组闹钟的标记位,默认值为0用于保存闪耀时的调时区地址存放调时区地址用于存放要显示的首字(例如秒)第一组闹钟的时分栈底秒表其次组闹钟的时分存放闹钟调分地址存放闹钟调

20、时地址闹钟组的切换标记(默认值为0)切换(默认值为0)闹钟其次组开关(默认值为0)50H-52H53H-55H56H57H2AH.02AH.12AH.2表二芯片端口资源安排表芯片端口P1.0P1.1P1.2P1.3P1.7P0P2.2P2.3变量名称作用说明K1K2K3K4SPK操作键K1操作键K2操作键K3操作键K4压电喇叭限制信号七段显示器数数字形态限制限制时间小时的十位七段显示器亮灭限制时间小时的个位七段显示器亮灭表二芯片端口资源安排表芯片端口P2.4P2.5P2.6P2.7P3.0P3.1P3.2P3.3变量名称作用说明BELL限制时间分钟的十位七段显示器亮灭限制时间分钟的个位七段显示

21、器亮灭限制时间秒钟的十位七段显示器亮灭限制时间秒钟的个位七段显示器亮灭蜂鸣器LED半秒闪耀LED显示第一组闹钟是否开启LED显示其次组闹钟是否开启表三寄存器资源安排表组寄存器R0R1第0组R2R3R4R6、R7第1组作用说明存放秒显示地址显示首址#06H#0FEH#3H延时初始值用于keyB、C用于中断R0R5流程图显示如下:起先系统初始化电子钟时分秒显示中断允许T0中断显示子程序按键子程序主程序流程图12调时0.3s闪耀显示中断起先系统初始化推断中断S1=1?S2=1?S3=0?进入闹钟调时强制退出中断暂停计时返回计时结束功能选择中断起先N开启按钮中断?Y接着计时进入按钮推断显示+1YKey

22、3=0?Y退出按钮中断Key3=0?Key1=0?N调时位左移一位Key2=0?显示-1调时程序流程图起先爱护现场N中断6次?Y当前调整位熄灭复原现场返回调时0.3s闪耀显示中断源程序清单:#include#defineucharunsignedchar#defineled_dataP0/P0显示数码管当前位的数字#defineled_bitP2/P2限制当前数码管显示的位数intb;ucharconls=0x00;/记录秒分时的个位数ucharcons=0x00;/记录秒分时的十位数ucharcon=0x00;/记录调时程序当前位数ucharx=0x00;/记录闹钟sbitkey0=P30;

23、/key0限制调时位左移以一位sbitkey1=P31;/key1限制挑时当前位数字+1sbitkey2=P32;/key1限制挑时当前位数字-1sbitkey3=P33;/确定当前挑时中断程序sbitstop=P34;/用来短暂计时和启动计时sbitbaojing=P35;/用以响应整点报时和闹钟sbitnaozhong=P36;/用来开启闹钟调时程序sbitbeep=P37;/用来终止当前整点报时或闹钟响应ucharcodetable=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00;/数码管当前位09的显示码uchardatas

24、can_con6=0xFE,0xFD,0xFB,0xF7,0xEF,0xDF;/数码管左到右6个位的显示uchardatadis8=0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x00;/数码管的显示码uchardatatimedata6=0x00,0x00,0x00,0x00,0x00,0x00;/电子钟的初始时间:00:00:00uchardatasecclock6=0x00,0x00,0x00,0x00,0x00,0x00;/闹钟调时的初始时间:00:00:00uchari;display();/显示数码管函数申明keyscan();/调时按钮函数声明/alar

25、mcolk();/*/*1ms延时显示程序*/*/voiddelay(intz)intx,y;for(x=0;x/*/*初始化子程序*/*/initializa()for(i=0;ibaojing=0;P1=0x00;delay(500);baojing=1;P1=0xff;delay(500);if(key3=0)con=0;x=0;TR1=0;ET1=0;TR0=1;ET0=1;/关闭调时按钮中断,接着显示电子钟的时间elseif(naozhong=0)/开启调时按钮中断EA=0;if(key0=0)delay(10);while(key0=0);if(discon=10)dis7=dis

26、con;discon=dis6;dis6=dis7;con+;TR0=0;ET0=0;TR1=1;ET1=1;if(con=6)/若左移位数超过6,则关闭调时按钮中断,接着显示电子钟的时间con=0;TR1=0;ET1=0;TR0=1;ET0=1;if(con!=0)if(key1=0)delay(10);while(key1=0);timedatacon+;/当前位数据+1switch(con)case1:case3:if(timedatacon=6)/1、3位满6进一timedatacon=0;break;case2:case4:if(timedatacon=10)进一timedataco

27、n=0;break;case5:if(timedatacon=3)timedatacon=0;break;default:;discon=timedatacon;dis6=0x0a;if(con!=0)if(key2=0)delay(10);while(key2=0);switch(con)case1:case3:if(timedatacon=0)timedatacon=0x05;的减1处理elsetimedatacon-;break;case2:case4:if(timedatacon=0)20/2、4位满10/5位满2清零/1、3位为0时/当前位数据-timedatacon=0x09;的减

28、1处理elsetimedatacon-;break;case5:if(timedatacon=0)timedatacon=0x02;减1处理elsetimedatacon-;break;default:;discon=timedatacon;dis6=0x0a;EA=1;elseif(naozhong!=0)断,功能类似上面EA=0;if(key0=0)delay(10);while(key0=0);if(disx=10)dis7=disx;disx=dis6;dis6=dis7;x+;TR0=0;ET0=0;TR1=1;ET1=1;if(x=6)x=0;TR1=0;ET1=0;TR0=1;E

29、T0=1;21/2、4位为0时/当前位数据-1/5位为0时的/减1处理/送显示数据/开启调时按钮中if(x=6)secclockx=0;break;case2:case4:if(secclockx=10)secclockx=0;break;case5:if(secclockx=3)secclockx=0;break;default:;disx=secclockx;dis6=0x0a;if(x=0)if(key2=0)delay(10);while(key2=0);switch(x)case1:case3:if(secclockx=0)secclockx=0x05;elsesecclockx-;

30、break;case2:case4:if(secclockx=0)secclockx=0x09;elsesecclockx-;break;case5:if(secclockx=0)secclockx=0x02;elsesecclockx-;break;default:;disx=secclockx;dis6=0x0a;EA=1;/*/*0.3s闪耀中断小程序*/*/voidtime_intt1(void)interrupt3EA=0;TR1=0;TH1=0X3C;TL0=0XB0;TR1=1;cons+;if(cons=6)/50msx6=300ms=0.3scons=0x00;dis7=di

31、scon;discon=dis6;dis6=dis7;EA=1;/*/*电子钟显示进位处理程序*/*/voidtime_intt0(void)interrupt1inti,j,x=0;j=0;if(naozhong=0&stop=1)ET0=0;TR0=0;TH0=0X3C;TL0=0XB0;TR0=1;conls+;if(conls=20)/20次延时,秒+1conls=0x00;timedata0+;if(timedata0=10)/10s时,秒十位数+1timedata0=0;timedata1+;if(timedata1=6)/60s时,分+1/5timedata1=0;timedat

32、a2+;if(timedata2=10)/10min时,分十位数+1timedata2=0;timedata3+;if(timedata3=6)/60min时,时+1timedata3=0;timedata4+;if(beep=0)for(i=1;i=10)时,时十位数+1timedata4=0;timedata5+;if(timedata5=2)/当h等于24时,清零if(timedata4=4)timedata4=0;timedata5=0;for(b=0;b显示码disb=timedatab;ET0=1;/*显示清零并转换成秒计时(原时间仍旧保存)*/*elseif(jishi=1)fo

33、r(j=0;j=10)timedata0=0;timedata1+;if(secclock0=10)secclock0=0;secclock1+;if(timedata1=6)timedata1=0;timedata2+;if(secclock1=6)secclock1=0;secclock2+;if(timedata2=10)26timedata2=0;if(secclock2=10)secclock2=0;secclock3+;for(b=0;b5.总结AT89C51单片机作为嵌入式专业的入门基础,受到行业内的高度重视。作为一名高职高专的学生,最重要的是实际操作实力,而对于修读嵌入式专业的

34、高职学生更是如此。单片机实训,敲开了同学们对学问求知若渴的大门。本周的单片机实训项目课题是定时闹铃。刚接到课题时感觉毫无压力,觉得自己的实力应当很快就可以完成,因为本项目要实现的功能只不过是同等于价值2元的电子闹钟!但是现实却击垮了浮夸的我们。程序设计无从入手,调试错误,单片机无响应老师在讲解课题任务的时候的确是很简洁,清楚明白。但是真正到我们设计的时候,错误接一连二。由于对汇编语言驾驭不足,最终放弃汇编语言改换C语言编写程序。函数调用,设计循环语句,调用数组函数一步步渐渐深化,一点点慢慢驾驭。最终,经过小组成员不停地编码,测试,运行,一个小项目最终完成。项目虽然完成,但通过本次实训的确感受不

35、少。于嵌入式行业而言,单片机谈得上是基础,但是就连这样一门基础我们也没有熟识驾驭,对于日后ARM的学习就更是困难。不过在实训中我们也学会了许多。项目设计、功能选定、搭建硬件工作环境、编写软件程序,程序下载测试、程序最终实现,以及在项目设计中的团队分工与合作。嵌入式行业在我国日趋发展成熟,而嵌入式行业的人才却是非常紧缺,这就取决于嵌入式行业对技术型人才要求高的特点。要想在嵌入式行业站稳脚,就必需要痛下苦工,敢于钻研。信任通过日后的专业学问学习,我们会在嵌入式学习的道路上越走越远。友情提示:本文中关于单片机实训报告给出的范例仅供您参考拓展思维运用,单片机实训报告:该篇文章建议您自主创作。 本文来源:网络收集与整理,如有侵权,请联系作者删除,谢谢!第19页 共19页第 19 页 共 19 页第 19 页 共 19 页第 19 页 共 19 页第 19 页 共 19 页第 19 页 共 19 页第 19 页 共 19 页第 19 页 共 19 页第 19 页 共 19 页第 19 页 共 19 页第 19 页 共 19 页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁