返回
最新单片机实习报告~完整版

最新单片机实习报告~完整版

时间:2013-6-26 17:33:40  [下载该文章]  [会员注册]
 单片机应用实习报告;关于单片机应用实习的实习报告;一、实习目的;本次实习的目的在于加深对mcs51单片机的理解;二、设计题目:单片机数据采集系统设计;三、功能描述;1.实时采集05v的电压信号;2.将采集的0;四、方案设计;4.1系统分析;根据系统功能要求,可将系统组成结构分成四大部分;第1页共18页;单片机应用实习报告;于我组单片机实验板缺少烽鸣器,单片机应用实习报告关于单片机应用实习的实习报告一、实习目的本次实习的目的在于加深对mcs51单片机的理解,初步掌握单片机应用系统的设计方法;掌握常用接口芯片的正确使用方法;强化单片机应用电路的设计与分析能力;提高学生在单片机应用方面的实践技能;培育学生综合运用理论知识解决问题的能力,力求实现理论结合实际,学以至用的原则。二、设计题目:单片机数据采集系统设计三、功能描述1.实时采集05v的电压信号;2.将采集的05v的电压信号实时显示;3.可以轮流采集8路通道,或指定通道数据;4.可以设定报警上下限,并报警。四、方案设计4.1系统分析根据系统功能要求,可将系统组成结构分成四大部分。单片机控制中心、键盘接口。其中,单片机控制中心是核心。mcu根据按键输入,可切换不同的显示模式或设置不同的参数。数码显示管第2至4位将实时采集的0~5v电压,数码管第1位显示指定通道数。通过按键可切换到设定电压上下限报警的模式。由第1页共18页单片机应用实习报告于我组单片机实验板缺少烽鸣器,因此利用led灯来报警。以下是系统组成结构图:图1系统组成结构图五、硬件电路设计5.1单片机最小系统设计最小系统包括cpu时钟与复位电路,其原理图如下:图2单片机最小系统设计5.2显示电路设计第2页共18页单片机应用实习报告数码管主要是用于数字的显示,图中采用共阴极。电源+5v通过470欧的电阻直接给数码管的7个段位供电,p0.0p0.7对应了两个接数码管的a,b,c,d,e,f,g和小数点位p,p1.0,p1.1,p1.2,p1.3接位选码。其原理图如下:图3显示电路设计5.3按键电路设计其原理图如下:图4按键电路设计5.4a/d转换电路设计其原理图如下:第3页共18页单片机应用实习报告图5a/d转换电路设计5.5电源电路设计单片机工作电压为5v。一般使用usb接口供电,直接从usb接口获取5v电源。其原理如下图。图6电源电路设计第4页共18页单片机应用实习报告5.6报警电路设计当电压小于下限电压值或大于上限电压值时,蜂鸣器将报警。如图所示:图7报警电路设计六、软件设计6.1操作功能设计根据系统的功能描述,可以将系统功能大致分成三类:轮流采集8路通道,指定通道显示,设置报警上下限。此系统设有四个数码管,三个按键。利用按键可切换形成多个模式,按键1将轮流采集8路通道模式与指定通道显示之间相互切换,按键2将轮流采集8路通道与设置电压上下限报警模式之间相互切换,按键3是增加1,可指定显示1~8通道,也可利用其来设置上下限电压的大小。模式设计如下:第5页共18页 单片机应用实习报告;关于单片机应用实习的实习报告;一、实习目的;本次实习的目的在于加深对mcs51单片机的理解;二、设计题目:单片机数据采集系统设计;三、功能描述;1.实时采集05v的电压信号;2.将采集的0;四、方案设计;4.1系统分析;根据系统功能要求,可将系统组成结构分成四大部分;第1页共18页;单片机应用实习报告;于我组单片机实验板缺少烽鸣器,单片机应用实习报告关于单片机应用实习的实习报告一、实习目的本次实习的目的在于加深对mcs51单片机的理解,初步掌握单片机应用系统的设计方法;掌握常用接口芯片的正确使用方法;强化单片机应用电路的设计与分析能力;提高学生在单片机应用方面的实践技能;培育学生综合运用理论知识解决问题的能力,力求实现理论结合实际,学以至用的原则。二、设计题目:单片机数据采集系统设计三、功能描述1.实时采集05v的电压信号;2.将采集的05v的电压信号实时显示;3.可以轮流采集8路通道,或指定通道数据;4.可以设定报警上下限,并报警。四、方案设计4.1系统分析根据系统功能要求,可将系统组成结构分成四大部分。单片机控制中心、键盘接口。其中,单片机控制中心是核心。mcu根据按键输入,可切换不同的显示模式或设置不同的参数。数码显示管第2至4位将实时采集的0~5v电压,数码管第1位显示指定通道数。通过按键可切换到设定电压上下限报警的模式。由第1页共18页单片机应用实习报告于我组单片机实验板缺少烽鸣器,因此利用led灯来报警。以下是系统组成结构图:图1系统组成结构图五、硬件电路设计5.1单片机最小系统设计最小系统包括cpu时钟与复位电路,其原理图如下:图2单片机最小系统设计5.2显示电路设计第2页共18页单片机应用实习报告数码管主要是用于数字的显示,图中采用共阴极。电源+5v通过470欧的电阻直接给数码管的7个段位供电,p0.0p0.7对应了两个接数码管的a,b,c,d,e,f,g和小数点位p,p1.0,p1.1,p1.2,p1.3接位选码。其原理图如下:图3显示电路设计5.3按键电路设计其原理图如下:图4按键电路设计5.4a/d转换电路设计其原理图如下:第3页共18页单片机应用实习报告图5a/d转换电路设计5.5电源电路设计单片机工作电压为5v。一般使用usb接口供电,直接从usb接口获取5v电源。其原理如下图。图6电源电路设计第4页共18页单片机应用实习报告5.6报警电路设计当电压小于下限电压值或大于上限电压值时,蜂鸣器将报警。如图所示:图7报警电路设计六、软件设计6.1操作功能设计根据系统的功能描述,可以将系统功能大致分成三类:轮流采集8路通道,指定通道显示,设置报警上下限。此系统设有四个数码管,三个按键。利用按键可切换形成多个模式,按键1将轮流采集8路通道模式与指定通道显示之间相互切换,按键2将轮流采集8路通道与设置电压上下限报警模式之间相互切换,按键3是增加1,可指定显示1~8通道,也可利用其来设置上下限电压的大小。模式设计如下:第5页共18页 单片机应用实习报告;模式1:轮流采集8路通道,此时数码管显示如1.0;模式2:指定通道显示,按下键1时,模式由轮流采集;模式3:当在轮流采集8路通道的模式下,按下键2;6.2程序设计思路;此程序所需实现的基本功能主要有:1使数码管显示采;本程序主要分为2大块,主程序与子程序;此程序使用定时器0完成数码管动态扫描,并对按键及;6.3程序流程图;第6页共18页;单片机应用实习报告模式1:轮流采集8路通道,此时数码管显示如1.0.00,2.4.97,3.0.00??8.4.97。(此时1、3通道接地,2、8通道接+5v)模式2:指定通道显示,按下键1时,模式由轮流采集8路通道变成指定通道显示,此时数码管初始显示为1.0.00,表示为1通道的电压值;当按下按键3时,数码管值变为2.4.97,表示2通道的电压值;当再次按下按键3时,数码管显示为3.0.00,表示3通道的电压值。即每按一次键3,通道数即增一,以此显示指定通道的实时电压。模式3:当在轮流采集8路通道的模式下,按下键2。模式将会自动切换到设置电压上下限报警模式。此时,初始设置的电压上限为5v,电压下限为0v,通过键3可对其修改。6.2程序设计思路此程序所需实现的基本功能主要有:1使数码管显示采集来的实时电压,并对8个通道的电压实施轮流输出显示;2使用按键操作,将轮流显示的8个通道的电压切换成按指定通道显示输出;3可通过一功能键切换不同的模式,使系统可以调节上下限报警电压。4通过一按键可实现对通道与上下限电压的更改,如加减。本程序主要分为2大块,主程序与子程序。主程序包括八通道循环采集电压工作方式,模拟量通道输入循环选择,选择通道显示电压工作方式,模拟量通道输入按键选择等。而子程序则需包括对定时器t0进行初始化程序(定时时间设为5ms,即每5ms扫描一次数码管,总共有4位数码管,20ms循环扫描一次),启动a、d转换程序,数码管显示程序,延时程序等。此程序使用定时器0完成数码管动态扫描,并对按键及串口进行扫描。当扫描到相应的按键时即执行相应的操作(如当扫描到键1时,就会改变当前的模式,从轮流采集通道模式转换到指定通道显示电压的模式)。6.3程序流程图第6页共18页单片机应用实习报告图8程序流程图七、程序调试对程序来说,最重要的就是调试阶段。一段写好的程序当中会出现很多问题。在单片机数据采集系统设计的程序中,出现了很多问题,有的是语法错误,以致不能成功编译;有的则是可以成功编译,但是不能达到系统的功能要求。在单片机的实验学习中,我们做过关于a/d转换的实验。它的功能是可以实现单通道采集电压。但如何由单通道变成8通道,并且还能够指定通道显示,而且可以切换模式,对上下限电压进行修改。这就需要对程序的不断调试,其调试过程具体如下:第7页共18页单片机应用实习报告1、由单通道改至8通道:首先,这其中肯定要用到循环语句。程序中用到了for循环,k作为循环变量。全局变量m作为通道,m的值从1至8循环。即当m大于8时,令m等于1。2、按键按下检测及相关设置:此系统用到了三个按键,如何对按键进行扫描,程序位于voidtimer0isrinterrupt1中,即于定时器t0的中断程序中,每5ms调用一次,检测键盘是否按下,如果按下去延时抖动,然后检测到底是哪个按键按下,不同的按键有不同的功能。用“a++,if(a=50ampampp310ampampmoshi1)”程序实现延时消抖。然后用if判断语句实现按键的不同作用。3、数码管刷新显示程序;刷新显示就是根据不同的模式将显示的不同数据放到显示缓冲区中,比如模式1时显示轮流显示采集电压,模式2是显示指定通道的电压,数码管的第一位要显示通道数,数码管的后三位显示电压值,模式3是显示设置电压上下限报警值,然后由数码管输出程序输出到数码管。4、数码管输出程序;数码管输出程序就是送段选码和位选码的程序,位于定时器t0的中断程序中。轮流点亮4个数码管,每5ms变换一次,由于速度快,从而达到点亮每个数码管的作用。八、使用说明8.1功能1.可以轮流显示8个通的实时采集的电压值;2.可以指定通道显示电压值;3.可以设置上下限报警电压。8.2人机接口共有三个按键。分别为键1,键2,键3。总共可以实现3个模式的转换。8.3操作说明1.通电后,在初始状态下,数码管显示的是轮流显示8通道电压值。通过三个按键可以对模式进行切换,以及对其中参数进行修改。第8页共18页单片机应用实习报告2.按下键1,系统切换到指定通道显示界面,在此基础上按键3,可以实现从1通道到8通道任意指定通道显示电压值。再按下键1,又可返回到轮流显示8通道电压值。3.按下键2,系统切换到设置电压上下限报警电压值。在此基础上,按下键3,可以对上下限电压值进行设置,每按一下键3,电压值增1,电压值的范围为0~5v。当电压值设置好之后,再按下键2,则重新返回到轮流显示8通道电压值。九、心得体会在本次实习中,我通过查阅资料,请教于老师及同学。基本完成了硬件设计、程序设计、安装调试等环节。但其中有很多问题值得我去思考。1.实习作风不好:不能积极对待,注意力不够集中;2.实习效率不高:单片机课程功底较差,实践动手能力不强;3.独立解决问题的能力较差。以为三点都值得我反思,本次实习揭露了我的不足,希望在以后学生工作中得到改进。十、实验总结本次实习的过程主要可分为三个部分。分别是绘制硬件原理图,编写程序,系统调试。1.绘制硬件原理图:这是我们第一次接触到protel99电路设计软件,它与cad绘制一样,需要有一个熟悉的过程,其中我觉得难点是建元件库。如单片机与a/d转换部分需要自己绘制,其它部分大多可以在元件库中找到,可直接添加。其次需注意的地方就是端口一定要与程序一致。2.编写程序:编写程序是难点。须一层层做起,刚开始的源程序来自a/d转换实验中的单通道采集电压值。在不断的对程序修改过程中实现8通道。再添加按键程序。3.系统调试;系统调试是最重要的环节,他涉及到程序的各个部分及硬件端口的接线。刚开始,我组用sst单片机,由于端口被占,因此无法接按键,第9页共18页单片机应用实习报告程序虽然能够顺利下载,但是无法对按键进行操作。因此只能换成stc单片机。由于我组电路板上缺少蜂鸣器,因此改用led灯实现电压上下限报警。虽然程序不一定有错。但调试的过程就是程序与硬件相结合的过程。必须相互匹配,才能调试成功。十一、参考文献1.张义辉,李家庆,单片机系统综合训练指导书.重庆科技学院2.汪德彪.mcs51单片机原理及接口技术[m].北京电子工业出版社.3.张毅刚.单片机原理及应用.北京:高等教育出版社,20054.胡文金.单片机系统实训教程.重庆:重庆大学出版社,20055.胡文金,钟秉翔.单片机应用技术实训教程[m].重庆大学出版社.2005.第10页共18页 单片机应用实习报告;附录1:电路原理图;第11页共18页;单片机应用实习报告;附录2:源程序代码;includereg51.hqu;char;code;duan=03f,006,05b,0;unsignedcharuan=0,1,;unsignedintmoshi=0,zengj;/单片机应用实习报告附录1:电路原理图第11页共18页单片机应用实习报告附录2:源程序代码includereg51.hdefinethco0eedefinetlco00unsignedcharcodeduan=03f,006,05b,04f,066,06d,07d,007,07f,06f,000共阴极数码管9段码表unsignedcharuan=0,1,10,11,100,101,110,unsignedchardatabuffer[4]=0,0,0,0unsignedintm=1unsignedintmoshi=0,zengjia=0,sheding=0,dianyazeng=0,shangyazhi=5floatadvalue//sbitp30=p30sbitp31=p31sbitp32=p32三个按键位码口定义//sbitp34=p34sbitp35=p35sbitp36=p36四个数码管的位码口定义sbitp37=p37//sbitadwr=p10sbitrs=p11sbitcs=p12sbitadd1=p13sbitadd2=p14sbitadd3=p15sbiteoc=p16第12页共18页adc0809控制线接通c51p1口位码口定义单片机应用实习报告//sbitled=p17报警灯//voidsysinitvoidadstart(void)voidledfreshvoiddelayms(unsignedint)voidzhuvoidianyajiemian//voidmainunsignedintk,i子函数定义sysinitwhile(1)八通道循环采集电压工作方式if(moshi0)m=8for(k=0k=7k++)if(moshi1)k=0breakadd1=uan[k]/100模拟量通道输入循环选择add2=uan[k]%100/10add3=uan[k]%10m++if(m8)m=1第13页共18页单片机应用实习报告if(dianyazeng1)dianyazeng=0shangyazhi++if(shangyazhi5)shangyazhi=0zhufor(i=0i40000i++)else选择通道显示电压工作方式m=1while(1)if(moshi0)breakadd1=uan[m1]/100模拟量通道输入按键选择add2=uan[m1]%100/10add3=uan[m1]%10if(zengjia1)zengjia=0m++if(m8)m=1zhuvoidtimer0isrinterrupt1第14页共18页单片机应用实习报告staticunsignedcharbit=0,a=0th0=thcotl0=tlcobit++if(bit=4)bit=0p34=0p35=0p36=0p37=0关位码if(sheding0)if(bit0)p2=duan[m]080if(bit1)p2=duan[databuffer[bit]]080开断码elseif(bit1)p2=duan[databuffer[bit]]if(databuffer[1]=shangyazhi)led=0elseled=1elseif(bit1)p2=duan[shangyazhi]080elseif(bit1)p2=duan[databuffer[bit]]第15页共18页开断码 单片机应用实习报告;switch(bit);开位码;case0:p34=1breakcase1:;if(p300p310p32;if(a=50ampampp30;moshi=!moshi;if(a=50ampampp31;if(a=50ampampp32;sheding=!sh单片机应用实习报告switch(bit)开位码case0:p34=1breakcase1:p35=1breakcase2:p36=1breakcase3:p37=1breakif(p300p310p320)按键按下检测及相关设置a++if(a=50ampampp300)a=0moshi=!moshiif(a=50ampampp310ampampmoshi1)a=0zengjia=1if(a=50ampampp320)a=0sheding=!shedingif(a=50ampampp310ampampsheding1)a=0dianyazeng=1第16页共18页单片机应用实习报告voidledfreshunsignedinttempadvalue=advalue1.95temp=advaluedatabuffer[1]=temp/100databuffer[2]=temp/10%10databuffer[3]=temp%10数码管显示数据来源(电压信号的分离)voidsysinittmod=011voidadstart(void)adwr=1cs=0delayms(1)adwr=0delayms(1)adwr=1voiddelayms(unsignedint)延时程序unsignedchary第17页共18页定时器0初始化th0=thcotl0=tlcotr0=1et0=1ea=1开启ad转换单片机应用实习报告for(0)1for(y=110y0y)voidzhuadstartwhile(!eoc)rs=0advalue=p0if(sheding0)ledfreshelsem=0ianyajiemianrs=1voidianyajiemiandatabuffer[2]=0databuffer[3]=0电压上线设置界面初值显示设定第18页共18页

>

相关推荐