yan河南理工大学_第1页
yan河南理工大学_第2页
yan河南理工大学_第3页
yan河南理工大学_第4页
yan河南理工大学_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

微机原理与单片机接口技术课程设计题目名称:四路定时器专业班级:电气本13-03姓名:楚雪玲侯璐学号:321308010301321308010302指导教师:苏珊—摘要随着科技的发展,单片机的应用正不断深入,本次设计的目的就是让我们在理论学习的基础上,通过完成一个涉及MCS-51单片机都种资源应用并具有综合功能的小系统目标板的设计与编程应用,使我们学生不但能够将课堂上学到的理论知识与实际应用结合起来,而且能够对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、排版调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能够独立进行某些单片机应用系统的开发设计工作打下一定的基础。这里我们采用单片机STC10F08XE芯片为中心器件,结合实用性和器件条件,设计了一个简单的四路定时控制器,系统操作简单、实用性强、扩展性强。单片机定时控制系统最基本的要求是可以实现定时控制,要实现这一功能只要在定时器程序中加判断指令,当判断成立时,即执行预设的动作,达到定时控制的目的。其主要应用于定时控制四个回路的电源通断,通过定时来实现以当前时间为基准,以24小时为周期,可以任意设定哪个回路于某时刻开,到某时刻关,也可以自己设定时间段,来控制电路的通断,同时我们也利用了数码管来显示当前时间,利用四个发光二极管分别显示四路控制电路是否工作,更加直接明了。关键字:四路定时器智能控制开关目录TOC\o"1-5"\h\z\o"CurrentDocument"目录1\o"CurrentDocument"1概述11.1实验要求11.2实验原理1\o"CurrentDocument"2总体方案及硬件设计32.1总体方案32.2硬件设计3\o"CurrentDocument"3软件设计63.1程序设计6\o"CurrentDocument"4仿真模拟74.1proteus模拟7\o"CurrentDocument"5心得体会8\o"CurrentDocument"参考文献9\o"CurrentDocument"附1:源程序代码10\o"CurrentDocument"附2:系统原理图171概述1.1实验要求主要应用于定时控制四个回路的电源通断。以当前时间为基准,以24小时为周期,可以任意设定哪个回路于某时刻开,到某时刻关。如可以设置第一个回路在8:30-11:30开,14:30-18:00开,其他时间段为关。能通过按键任意设置某回路某时间段的开关状态,并利用数码管显示当前时间,利用四个发光二极管分别显示四路控制电路的通断,直接明了。1.2实验原理结合我们对理论知识的学习,完成一个涉及MCS-51单片机都种资源应用并具有综合功能的小系统目标板的设计与编程应用。这里我们采用单片机STC10F08XE芯片为中心器件,结合实用性和器件条件,设计了一个简单的四路定时控制器,系统操作简单、实用性强、扩展性强。单片机定时控制系统最基本的要求是可以实现定时控制,要实现这一功能只要在程要在定时器程序中加判断指令,当判断成立时,即执行预设的动作,达到定时控制的目的。其主要应用于定时控制四个回路的电源通断,通过定时器来实现时钟和定时功能,当判断成立时,即通过程序命令预设的I/O口输出相应电平来控制外围的控制电路,即继电器控制显示电路。继电器工作原理:其一般由铁芯、线圈、衔铁、触点簧片等组成的。只要在线圈两端加上一定的电压,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点(常开触点)吸合。当线圈断电后,电磁的吸力也随之消失,衔铁就会在弹簧的反作用力返回原来的位置,使动触点与原来的静触点(常闭触点)释放。这样吸合、释放,从而达到了在电路中的导通、切断的目的。对于继电器的“常开、常闭”触点,可以这样来区分:继电器线圈未通电时处于断开状态的静触点,称为“常开触点”;处于接通状态的静触点称为“常闭触点”。继电器一般有两股电路,为低压控制电路和高压工作电路。所以我们就利用继电器此特性,加上单片机IO口电压的控制,即完成了四路定时控制器。9012三极管驱动电路:当控制端电压为0时,Q1基极电压为(12-0.7=11.3V),改变R1的大小便可改变基极电流,当基极电流足够大时,三极管饱合。为了验证以上的分析,我们搭了一个电路,R1取4.7K,此时基极电流为2.4ma,测得Q1ec电压为0.2V,继电器两端电压为11.8V。注意:R1的取值不能太小,要保证基极电流在安全范围,也不能太大,要保证三极管能完全饱合,这个可以通过电压和电阻算出来。第一种电路能工作,那是因为继电器有较宽的电压范围,有时它欠电压也能勉强工作,但状况是不稳定的,因此我们在设计时不建议采用这种方式。正确的电路应该是电路二,正确的连接方式,大小合适的基极电阻才能保证设计的合理和稳定性。最后注明一下,本次实验采用的12V继电器,因此该电路的控制极不能直接用单片机IO口驱动,否则会关不断。若选用5V继电器则可以,原理同"+12RelayCHI>

2总体方案及硬件设计2.1总体方案整个定时控制系统电路可分为四大部分:电源电路、核心芯片、显示部分、控制部分。电源电路、核心芯片、显示部分,由开发板集成真题提供。开发板2.2硬件设计1.核心芯片:STC11/10xx系列单片机是高速/低功耗/超强抗干oanauU1扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。内部集成高可靠复位电路,针对高速通信,智能控制,强干扰场合。定时器0/定时器1/串行口与传统8051兼容,增加了独立波特率发生器,省去了定时器2.传统开发板2.2硬件设计1.核心芯片:STC11/10xx系列单片机是高速/低功耗/超强抗干oanauU1扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。内部集成高可靠复位电路,针对高速通信,智能控制,强干扰场合。定时器0/定时器1/串行口与传统8051兼容,增加了独立波特率发生器,省去了定时器2.传统8051的111条指令执行速度全面提速,最快的指令快24倍,最慢的指令快3倍1.增强型8051CPU1T,单时钟/机器周期,指令代码完全兼容传统80512.19189293D3112345678:XT.AL1PD.Li/«LuPD.1/«D1PD.2/.«JZi2灯凸12PD.3/w£[3PLI.4/.AJZ4PUMD5PLi.ti/AJZtiRSTPD.7/WD7P2.0/.WE:P2.1/.AyP2.2/A1DPSENP2.3/A11.凸LEP2.4/A12EAP2.5/A13P2.6/A14P2.7/A15P1.D/T2P3.D/RXDP1.1jT2E:{P=3.1jT:::DP1.2P3.2/INTDP1.3P3.3/INT1Pl.4P3.47T1DP1.5P3.5ZT1P1.6P3.6/WRP1.7P3.7/RDAF89C52393837363534333221222324252627281D111213141516172.显示部分:Gan<}G«口Gan<}G«口PQE/aIDF-S^aiQ:S5—T・=!冲y提数码管是时钟最为重要的部分,共需要8位LED显示器。采用动态显示方式,由于端口的问题以及动态显示方式的优越性,在此设计的连接方式上采用共阴级接法。显示器LED有段选和位选两个端口,首先说段选端,它由LED八个端口构成,通过对这八个端口输入的不同的二进制数据使得它的显示也不同,可以通过控制输入二进制的信息来达到我们所需的时间的动态显示,从而满足我们时间准确显示的目的。3.控制电路:此电路主要是利用四个继电器工作组集成的GandGRL2Ik<TD(T>LED-BIBYLJn.iIk12NJ9D<TE(T7—*\r1■<J-1N40i?rW3软件设计3.1程序设计程序流程如下:4.1proteus模拟4仿真模拟LED-3IFT二TJ^IP:旷rixmP1.11TZB1:Hi2ALE,XTM1ZCTALZPQn.A.[DPD.1.U.D-IPH芯[>2PH,叫D3M.硕[>■FnJhACSPDfi:0.[6PD.TADTFZIV^iBFN.li■阳PI3A-DPZ3X11PZ.4IA12P3fiA<aPZJ9AHrz.TLA-eFZ1H>DP32nnnPgTTTTF3巾TOF35iFP3.6TiTRFi.Tflnri一,¥王■l[OER・1硕C1RSW2IAjAjC3ER1硒C1RG2GeH.-1*-AG1H2130?-n.4-=1HiUi>曲i,:TEC-E:'-EIBZ:T?-:T<TE<I>R21h=H:i:5心得体会通过这次实训,我发现在现实设计中还需要注意很多的细节,包括程序设计和硬件设计都要我们小心仔细,一个地方出错就可能会整个系统失效。在硬件设计时,我们得注意3方面:1,我们在设计电路时一定要事先把相关的参数计算正确,否则焊出来的电路毛病百出;2如果有条件一定要进行仿真模拟,这样可以对自己设计的电路有一定的监测作用;3最后在焊接电路时一定先进行模拟排布,达到美观实用可靠。在软件调试过程中我们需要注意四方面,就拿我们这个定时器电路来说吧,1,先整体把握,先把主要的重要的程序段写出来,先进行调试,调试成功后,在进行下一步操作,切不可一下子把程序全部写完,在调试监测;2,写程序时最好按功能分段进行处理,一方面美观,有条理,另一方面也方便我们进行调试和修改;3,关于定时器程序,一方面我们必须把计数初值计算正确,另一方面得把程序的逻辑时间很清楚,4,对于按键监测,我们最好加上消抖程序,谨防按键操作时,出现混乱情况;在写调整时间程序时,当按选择键择选要调整时还是秒或分时,看不出是要调整那一位为了方便用户看出现在是在调整那一位,就必须使调整位闪烁,但显示的时候已经用动态显示,如果直接改显示时间,就会使所有的位都闪烁,这样根本就不能实现,后面经过和同学讨论,我使不调的位显示4到5次再显示调整位1次,这样做最后就可以实现了,而且这样做还可以改变闪烁速度。在软件设计时,还遇到了许多问题,毕竟想像和现实还是有很大的区别的,然而到了最后这些问题都一一被解决了,我也在这次实训中学会了很多东西,总结出自己的一套解决问题的方法,这让我觉得自己有了很大的收获,为今后的学习和工作打下了坚定的基础。参考文献余发山王福忠杨凌霄王荷.《微机原理与单片机接口技术》.北京:煤炭工业出版社,2013。康华光.《电子技术基础》.北京:高等教育出版社,2006。艾永乐付子义.《模拟电子技术基础》.北京:中国电力出版社,2008。藏春华.《电子线路设计与应用》.高等教育出版社,2004。附1:源程序代码#include"reg51.h”#defineuintunsignedint#defineucharunsignedcharsbitD9=P3”2;sbitD10=P3"3;sbitD11=P3"4;sbitD12=P3"5;sbitH1=P3”6;sbitH2=P3"7;sbitout1=P0”4;sfrP1M1=0x91;sfrP1M0=0x92;bitsflag;ucharnum,shi,fen,k;ucharshi1k,fen1k,shi2k,fen2k,shi3k,fen3k,shi4k,fen4k;ucharshi1g,fen1g,shi2g,fen2g,shi3g,fen3g,shi4g,fen4g;uchars1;unsignedinttable1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};〃数组共阴数码管显示从0到9unsignedinttable2[]={0xf7,0xfb,0xfd,0xfe};//数码管位定义unsignedinttable3[4]={0};voiddisplay(unsignedcharshi,unsignedcharfen);unsignedcharkey();voidDelay10ms();voidmain(){P1M0=0xff;P1M1=0x00;TMOD=0x10;TH1=0xd8;TL1=0xf0;EA=1;//总中断ET1=1;//定时器中断TR1=1;//开启定时器while(1){if(s1==0){display(shi,fen);}k=key();if(k==1){s1++;}if(s1!=0){TR1=0;if(s1==1){if(k==2)shi++;if(k==3)shi--;if(k==5)fen++;if(k==6)fen--;P2=0xfe;display(shi,fen);}if(s1==2){if(k==2)shi1k++;if(k==3)shi1k--;if(k==5)fen1k++;if(k==6)fen1k--;P2=0xfd;display(shi1k,fen1k);}if(s1==3){if(k==2)shi1g++;if(k==3)shi1g--;if(k==5)fen1g++;if(k==6)fenlg—;P2=0xff;display(shi1g,fen1g);}if(s1==4){if(k==2)shi2k++;if(k==3)shi2k—;if(k==5)fen2k++;if(k==6)fen2k—;P2=0xfb;display(shi2k,fen2k);}if(s1==5){if(k==2)shi2g++;if(k==3)shi2g—;if(k==5)fen2g++;if(k==6)fen2g—;P2=0xff;display(shi2g,fen2g);}if(s1==6){if(k==2)shi3k++;if(k==3)shi3k—;if(k==5)fen3k++;if(k==6)fen3k—;P2=0xf7;display(shi3k,fen3k);}if(s1==7){if(k==2)shi3g++;if(k==3)shi3g—;if(k==5)fen3g++;if(k==6)fen3g—;P2=0xff;

display(shi3g,fen3g);}if(s1==8){if(k==2)shi4k++;if(k==3)shi4k--;if(k==5)fen4k++;if(k==6)fen4k--;P2=0xef;display(shi4k,fen4k);}if(s1==9){if(k==2)shi4g++;if(k==3)shi4g--;if(k==5)fen4g++;if(k==6)fen4g--;P2=0xff;display(shi4g,fen4g);}if(s1==10){s1=0;TR1=1;sflag=1;}}if(s1==0&&sflag==1){out1=0;D9=0;}{out1=1;D9=1;}D10=0;D10=1;D11=0;D11=1;D12=0;D12=1;{if(shi==shi1k&&fen==fen1k)if(shi==shi1g&&fen==fen1g)if(shi==shi2k&&fen==fen2k)if(shi==shi2g&&fen==fen2g)if(shi==shi3k&&fen==fen3k)if(shi==shi3g&&fen==fen3g)if(shi==shi4k&&fen==fen4k)if(shi==shi4g&&fen==fen4g)unsignedcharkey(){uchartemp1,temp2,k=0;P0=0xff;//将P0口(列线)全部送高电平H1=0;H2=1;temp1=P0;//读取P0口当前的状态赋给temp,例如为11011111temp1=temp1&0xe0;//将temp和0xe0进行与运算(11100000),结果为11000000if(temp1!=0xe0)//如果temp不等于0xe0,则说明有按键按下{{out1=0;D9=0;}{out1=1;D9=1;}D10=0;D10=1;D11=0;D11=1;D12=0;D12=1;switch(temp1)//判断按下的是该行的第几列{case0xdf:k=1;break;//11011111,第一行第一列case0xbf:k=2;break;//10111111,第一行,第二列case0x7f:k=3;break;//01111111,第一行,第三列}while(temp1!=0xe0)//等待按键释放,只要结果不等于0xe0,则说明按键没有被释放{temp1=P0;temp1=temp1&0xe0;}}}P0=0xff;//将P0口(列线)全部送高电平H1=1;H2=0;temp2=P0;//读取P0口当前的状态赋给temp,例如为11011111temp2=temp2&0xe0;//将temp和0xe0进行与运算(11100000),结果为11000000if(temp2!=0xe0)//如果temp不等于0xe0,则说明有按键按下{Delay10ms();//延时去抖操作temp2=P0;//再重复一次上述操作temp2=temp2&0xe0;if(temp2!=0xe0){temp2=P0;switch(temp2)//判断按下的是该行的第几列{case0xdf:k=4;break;//11011111,第二行第一列case0xbf:k=5;break;//1

温馨提示

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

评论

0/150

提交评论