单片机应用实例报告_第1页
单片机应用实例报告_第2页
单片机应用实例报告_第3页
单片机应用实例报告_第4页
单片机应用实例报告_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机应用实例报告单片机应用实例报告零、序这个学期一开始便接触了《单片微型计算机原理与接口技术》,听说就是《微型计算机控制技术实用教程》得基础,对于工科得我来说学以致用无非就是一切得一切,虽然还就是个该领域得菜鸟,但就是单片机之于自动化得意义不言而喻,对于这篇论文,以下开始展开,不足之处谅解。bSrzsep。poCrSYl。一、概述单片机就是一种集成在电路芯片,就是采用超大规模集成电路技术把具有数据处理能力得中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口与中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成得一个小而完善得计算机系统。GTjKbji。FOPix3y。关于80C51:该系列单片机就是采用高性能得静态80C51设计由先进CMOS工艺制造并带有非易失性Flash程序存储器全部支持12时钟与6时钟操作P89C51X2与P89C52X2/54X2/58X2分别包含128字节与256字节RAM32条I/O口线3个16位定时/计数器6输入4优先级嵌套中断结构1个串行I/O口可用于多机通信I/O扩展或全双工UART以及片内振荡器与时钟电路。此外,由于器件采用了静态设计,可提供很宽得操作频率范围,频率可降至0。可实现两个由软件选择得节电模式,空闲模式与掉电模式,空闲模式冻结CPU但RAM定时器,串口与中断系统仍然工作掉电模式保存RAM得内容但就是冻结振荡器导致所有其它得片内功能停止工作。由于设计就是静态得时钟可停止而不会丢失用户数据运行可从时钟停止处恢复得。ox6Mp0z。S4Pi2Rp。二、应用领域目前单片机渗透到我们生活得各个领域,几乎很难找到哪个领域没有单片机得踪迹。导弹得导航装置,飞机上各种仪表得控制,计算机得网络通讯与数据传输,工业自动化过程得实时控制与数据处理,广泛使用得各种智能IC卡,民用豪华轿车得安全保障系统,录像机、摄像机、全自动洗衣机得控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域得机器人、智能仪表、医疗器械了。因此,单片机得学习、开发与应用将造就一批计算机应用与智能化控制得科学家、工程师。S5VHGkl。GP0nBw2。单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备得智能化管理及过程控制等领域,大致可分如下几个范畴:oyjO0ur。5PbEcOq。1、在智能仪器仪表上得应用单片机应用实例报告全文共13页,当前为第1页。单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化与使用方便等优点,广泛应用于仪器仪表中,结合不同类型得传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量得测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。例如精密得测量设备(功率计,示波器,各种分析仪)。2jpGCiA。9h9WvlF。单片机应用实例报告全文共13页,当前为第1页。2、在工业控制中得应用用单片机可以构成形式多样得控制系统、数据采集系统。例如工厂流水线得智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。dqmIvMk。TQReolx。3、在家用电器中得应用可以这样说,现在得家用电器基本上都采用了单片机控制,从电饭褒、洗衣机、电冰箱、空调机、彩电、其她音响视频器材、再到电子秤量设备,五花八门,无所不在。OPHNaoo。qfmuyYD。4、在计算机网络与通信领域中得应用现代得单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络与通信设备间得应用提供了极好得物质条件,现在得通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见得移动电话,集群移动通信,无线电对讲机等。c46P9Jx。cKnjQGi。5、单片机在医用设备领域中得应用单片机在医用设备中得用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。rpFj3BB。mg2m6GQ。6、在各种大型电器中得模块化应用某些专用单片机设计用于实现特定功能,从而在各种电路中进行模块化应用,而不要求使用人员了解其内部结构。如音乐集成单片机,瞧似简单得功能,微缩在纯电子芯片中(有别于磁带机得原理),就需要复杂得类似于计算机得原理。如:音乐信号以数字得形式存于存储器中(类似于ROM),由微控制器读出,转化为模拟音乐电信号(类似于声卡)。5qUmJua。fL6uhXD。在大型电路中,这种模块化应用极大地缩小了体积,简化了电路,降低了损坏、错误率,也方便于更换。7、单片机在汽车设备领域中得应用单片机在汽车电子中得应用非常广泛,例如汽车中得发动机控制器,基于CAN总线得汽车发动机智能电子控制器,GPS导航系统,abs防抱死系统,制动系统等等。KcDZEyC。DeZNGpr。此外,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛得用途。三、运用实例实例1、6位数显频率计数器单片机应用实例报告全文共13页,当前为第2页。1.实验任务单片机应用实例报告全文共13页,当前为第2页。利用AT89S51单片机得T0、T1得定时计数器功能,来完成对输入得信号进行频率计数,计数得频率结果通过8位动态数码管显示出来。要求能够对0-250KHZ得信号频率进行准确计数,计数误差不超过±1HZ。jl4UjJ4。9LzyzGw。2.电路原理图图4.31.13.系统板上硬件连线(1).把“单片机系统”区域中得P0、0-P0、7与“动态数码显示”区域中得ABCDEFGH端口用8芯排线连接。IIaMRvo。YWNCVTa。(2).把“单片机系统”区域中得P2、0-P2、7与“动态数码显示”区域中得S1S2S3S4S5S6S7S8端口用8芯排线连接。jBBoUkP。kdxieHi。(3).把“单片机系统”区域中得P3、4(T0)端子用导线连接到“频率产生器”区域中得WAVE端子上。HDDPSvo。EuS9UW3。单片机应用实例报告全文共13页,当前为第3页。4.程序设计内容单片机应用实例报告全文共13页,当前为第3页。(1).定时/计数器T0与T1得工作方式设置,由图可知,T0就是工作在计数状态下,对输入得频率信号进行计数,但对工作在计数状态下得T0,最大计数值为fOSC/24,由于fOSC=12MHz,因此:T0得最大计数频率为250KHz。对于频率得概念就就是在一秒只数脉冲得个数,即为频率值。所以T1工作在定时状态下,每定时1秒中到,就停止T0得计数,而从T0得计数单元中读取计数得数值,然后进行数据处理。送到数码管显示出来。mchY2yM。6XaC14c。(2).T1工作在定时状态下,最大定时时间为65ms,达不到1秒得定时,所以采用定时50ms,共定时20次,即可完成1秒得定时功能。zmwwGY3。SwPMATP。单片机应用实例报告全文共13页,当前为第4页。5.C语言源程序

#include<AT89X52、H>

unsignedcharcodedispbit[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

unsignedcharcodedispcode[]={0x3f,0x06,0x5b,0x4f,0x66,

0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40};

unsignedchardispbuf[8]={0,0,0,0,0,0,10,10};

unsignedchartemp[8];

unsignedchardispcount;

unsignedcharT0count;

unsignedchartimecount;

bitflag;

unsignedlongx;

voidmain(void)

{

unsignedchari;

TMOD=0x15;

TH0=0;

TL0=0;

TH1=(65536-4000)/256;

TL1=(65536-4000)%256;

TR1=1;

TR0=1;

ET0=1;

ET1=1;

EA=1;

while(1)

{

if(flag==1)

{

flag=0;

x=T0count*65536+TH0*256+TL0;

for(i=0;i<8;i++)

{

temp[i]=0;

}

i=0;

while(x/10)

{

temp[i]=x%10;

x=x/10;

i++;

}

temp[i]=x;

for(i=0;i<6;i++)

{

dispbuf[i]=temp[i];

}

timecount=0;

T0count=0;

TH0=0;

TL0=0;

TR0=1;

}

}

}

voidt0(void)interrupt1using0

{

T0count++;

}

voidt1(void)interrupt3using0

{

TH1=(65536-4000)/256;

TL1=(65536-4000)%256;

timecount++;

if(timecount==250)

{

TR0=0;

timecount=0;

flag=1;

}

P0=dispcode[dispbuf[dispcount]];

P2=dispbit[dispcount];

dispcount++;

单片机应用实例报告全文共13页,当前为第5页。if(dispcount==8)

{

dispcount=0;

}

}hQdrcHl。BmT52EP。单片机应用实例报告全文共13页,当前为第4页。单片机应用实例报告全文共13页,当前为第5页。实例2、数字电压表1.实验任务利用单片机AT89S51与ADC0809设计一个数字电压表,能够测量0-5V之间得直流电压值,四位数码显示,但要求使用得元器件数目最少。PDbmIUa。vwkFyJw。2.电路原理图图1.28.1单片机应用实例报告全文共13页,当前为第6页。3.系统板上硬件连线单片机应用实例报告全文共13页,当前为第6页。a)把“单片机系统”区域中得P1、0-P1、7与“动态数码显示”区域中得ABCDEFGH端口用8芯排线连接。ghXPcOy。4JVelk3。b)把“单片机系统”区域中得P2、0-P2、7与“动态数码显示”区域中得S1S2S3S4S5S6S7S8端口用8芯排线连接。IeZriR5。9UiE2rn。c)把“单片机系统”区域中得P3、0与“模数转换模块”区域中得ST端子用导线相连接。d)把“单片机系统”区域中得P3、1与“模数转换模块”区域中得OE端子用导线相连接。e)把“单片机系统”区域中得P3、2与“模数转换模块”区域中得EOC端子用导线相连接。f)把“单片机系统”区域中得P3、3与“模数转换模块”区域中得CLK端子用导线相连接。g)把“模数转换模块”区域中得A2A1A0端子用导线连接到“电源模块”区域中得GND端h)把“模数转换模块”区域中得IN0端子用导线连接到“三路可调电压模块”区域中得VR1端子上。i)把“单片机系统”区域中得P0、0-P0、7用8芯排线连接到“模数转换模块”区域中得D0D1D2D3D4D5D6D7端子上。ZqR14PG。I07IGNt。4.程序设计内容i、由于ADC0809在进行A/D转换时需要有CLK信号,而此时得ADC0809得CLK就是接在AT89S51单片机得P3、3端口上,也就就是要求从P3、3输出CLK信号供ADC0809使用。因此产生CLK信号得方法就得用软件来产生了。h137ARs。F9nFbmO。ii、由于ADC0809得参考电压VREF=VCC,所以转换之后得数据要经过数据处理,在数码管上显示出电压值。实际显示得电压值(D/256*VREF)Dvt3QvC。DLw0QIl。单片机应用实例报告全文共13页,当前为第7页。5.C语言源程序

#include<AT89X52、H>

unsignedcharcodedispbitcode[]={0xfe,0xfd,0xfb,0xf7,

0xef,0xdf,0xbf,0x7f};

unsignedcharcodedispcode[]={0x3f,0x06,0x5b,0x4f,0x66,

0x6d,0x7d,0x07,0x7f,0x6f,0x00};

unsignedchardispbuf[8]={10,10,10,10,0,0,0,0};

unsignedchardispcount;

unsignedchargetdata;

unsignedinttemp;

unsignedchari;

sbitST=P3^0;

sbitOE=P3^1;

sbitEOC=P3^2;

sbitCLK=P3^3;

voidmain(void)

{

ST=0;

OE=0;

ET0=1;

ET1=1;

EA=1;

TMOD=0x12;

TH0=216;

TL0=216;

TH1=(65536-4000)/256;

TL1=(65536-4000)%256;

TR1=1;

TR0=1;

ST=1;

ST=0;

while(1)

{

if(EOC==1)

{

OE=1;

getdata=P0;

OE=0;

temp=getdata*235;

temp=temp/128;

i=5;

dispbuf[0]=10;

dispbuf[1]=10;

dispbuf[2]=10;

dispbuf[3]=10;

dispbuf[4]=10;

单片机应用实例报告全文共13页,当前为第8页。dispbuf[5]=0;

dispbuf[6]=0;

dispbuf[7]=0;

while(temp/10)

{

dispbuf[i]=temp%10;

temp=temp/10;

i++;

}

dispbuf[i]=temp;

ST=1;

ST=0;

}

}

}

voidt0(void)interrupt1using0

{

CLK=~CLK;

}

voidt1(void)interrupt3using0

{

TH1=(65536-4000)/256;

TL1=(65536-4000)%256;

P1=dispcode[dispbuf[dispcount]];

P2=dispbitcode[dispcount];

if(dispcount==7)

{

P1=P1|0x80;

}

dispcount++;

if(dispcount==8)

{

dispcount=0;

}

}tFeP16j。VQtiJnI。单片机应用实例报告全文共13页,当前为第7页。单片机应用实例报告全文共13页,当前为第8页。实例三、报警器1.实验任务单片机应用实例报告全文共13页,当前为第9页。用AT89S51单片机产生“嘀、嘀、…”报警声从P1、0端口输出,产生频率为1KHz,根据上面图可知:1KHZ方波从P1、0输出0、2秒,接着0、2秒从P1、0输出电平信号,如此循环下去,就形成我们所需得报警声了。UoTuZMu。gHEA7yM。单片机应用实例报告全文共13页,当前为第9页。2.电路原理图图4.18.13.系统板硬件连线(1.把“单片机系统”区域中得P1、0端口用导线连接到“音频放大模块”区域中得SPKIN端口上,(2.在“音频放大模块”区域中得SPKOUT端口上接上一个8欧或者就是16欧得喇叭;4.程序设计方法(1.生活中我们常常到各种各样得报警声,例如“嘀、嘀、…”就就是常见得一种声音报警声,但对于这种报警声,嘀0、2秒钟,然后断0、2秒钟,如此循环下去,假设嘀声得频率为1KHz,则报警声时序图如下图所示:ydcuCqI。giNIBF3。单片机应用实例报告全文共13页,当前为第10页。上述波形信号如何用单片机来产生呢?单片机应用实例报告全文共13页,当前为第10页。(2.由于要产生上面得信号,我们把上面得信号分成两部分,一部分为1KHZ方波,占用时间为0、2秒;另一部分为电平,也就是占用0、2秒;因此,我们利用单片机得定时/计数器T0作为定时,可以定时0、2秒;同时,也要用单片机产生1KHZ得方波,对于1KHZ得方波信号周期为1ms,高电平占用0、5ms,低电平占用0、5ms,因此也采用定时器T0来完成0、5ms得定时;最后,可以选定定时/计数器T0得定时时间为0、5ms,而要定时0、2秒则就是0、5ms得400倍,也就就是说以0、5ms定时400次就达到0、2秒得定时时间了。Inqdlmf。xoD1x9E。5.程序框图主程序框图中断服务程序框图单片机应用实例报告全文共13页,当前为第11页。单片机应用实例报告全文共13页,当前为第11页。图4.18.2单片机应用实例报告全文共13页,当前为第12页。6.汇编源程序

T02SAEQU30H

T02SBEQU31H

FLAGBIT00H

ORG00H

LJMPSTART

ORG0BH

LJMPINT_T0

START:MOVT02SA,#00H

MOVT02SB,#00H

CLRFLAG

MOVTMOD,#01H

MOVTH0,#(65536-500)/256

MOVTL0,#(65536-500)MOD256

SETBTR0

SETBET0

SETBEA

SJMP$

INT_T0:

MOVTH0,#(65536-500)/256

MOVTL0,#(65536-500)MOD256

INCT02SA

MOVA,T02SA

CJNEA,#100,NEXT

INCT02SB

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论