红外反射式自动干手器的设计(4)

2018-11-29 16:28

山东理工大学 第1 页 共 33 页

NO

开始方波初始化红外频率检测初始化Flag==RUNNINGNoFlag==SETTIMENo获得按键值keyYes显示设置时间Yes显示倒计时Key==1NO Key==2YES设置时间减YES 设置时间加图4.1主程序流程图

4.3 定时中断程序的设计 4.3.1 实现功能

中断程序主要实现了检测接收频率是否符合发射频率,当延时检测接收频率也符合要求时,数码管显示设定时间并倒计时,继电器闭合使得电吹风工作。 4.3.2中断流程图

山东理工大学 第1 页 共 33 页

开吹风YesFlag=INVERIFYYes中断入口Flag==RUNNINGYes计数值加一倒计时结束NoYes停止吹风Flag==INVERIFYYes计数值加一ctrlcount++;确认时间到YesNONoFlag=HAVE_INVERIFYFlag==SETINGTIMEYes计数值加一显示时间到No停止显示设置时间判断是否有物体YesFlag==STARTNoFlag==HAVE_INVERIFYNo频率计数清零开定时器Noctrlcount==0Yesctrlcount--停止吹风No 重载定时值

退出中断图4.2中断函数流程图

山东理工大学 第1 页 共 33 页

4.3.3 关键技术

单片机定时器/计数器在测量控制系统中,常常需要实时时钟,以实现定时或延时控制;也常常需要有计数器,以实现外界事件进行计数。MSC-52单片机内部有3个16位可编程定时器/计数器T0、T1和T2。可编程其功能(如工作方式、定时时间、量程、启动方式等)均可由指令来设置完成、每个定时器的计数信号来自片内振荡器的12分频信号,即每个机器周期,计数器加1,直至溢出。而计数方式是外部脉冲从引脚t0或t1加入,外部脉冲的下降沿将触发计数器计数,直至溢出。定时器方式寄存器TMOD主要用于选定定时器的工作方式。定时器控制寄存器TCON主要控制定时器的启动与停止。在使用定时器/计数器前,需要对其进行初始化设置,大致步骤如下: a. 确定工作方式(对TMOD赋值)。

b. 预置定时或计数初值(可直接将初值写入TH0,TL0或TH1,TL1)。 c. 根据需要开放定时器/计数器的中断(直接对IE赋值)。

d. 启动定时器/计数器(若已规定用软件启动(GATE=1),则需要给外加引脚启动电平。当实现了启动要求之后,定时器/计数器即按规定的工作方式和初值开始计数或定时)。

定时工作方式有四种,不同的工作方式,计数的位数不同,则最大计数值也不同。若最大计数值为M,则各种方式下M的值如下: 工作方式0 M=2^13=8192 工作方式1 M=2^16=65536 工作方式2 M=2^13=256

工作方式3 T0分为两个8位计数器,所以两个M值均为256.因为定时器/计数器是“加1”计数,并在计满溢出是产生中断请求,因而定时器/计数器的初值也可这样计算: X=M – 计数值????(公式1) 定时器控制字有两个分别为TNOD和TCON 定时器/计数器的方式寄存器TMOD

TMOD是一个8位的特殊功能寄存器,对应的地址是89H,不可位寻址。 主要实现三个功能:

(1)确定选择定时器还是计数器; (2)选择何种工作方式;

(3)是否借用外中断控制定时器和计数器的启停;

TMOD的低4位是控制T0的字段(T0——P3.4 定时器/计数器0外部事件脉冲输入端)。 TMOD的高4位是控制T1的字段(T1——P3.5 定时器/计数器1外部事件脉冲输入端)。 M1(TMOD.5),M0(TMOD.4)

用M1,M0来控制定时器/计数器的4种工作方式: 方式0:M1=0,M0=0. 13位定时/计数方式

山东理工大学 第1 页 共 33 页

方式1:M1=0,M0=1. 16位定时/计数器

方式2:M1=1,M0=0. 8位初值自动重新装入的8位定时/计数器 方式3:M1=1,M0=1. 仅适用于T0,分为两个8位计数器,T1停止计数 定时器/计时器控制寄存器TCON

TCON是一个8位的特殊功能寄存器,对应的地址为88H,可为寻址。 控制字的格式和含义:

TF1(TCON.7),TF0(TCON.5)---T1、T0计数溢出标志位

设计的程序用TO计数,T1计时,T0、T1都工作于自启动、方式2。故TMOD=ox15; 本程序需要用10ms的定时,由单片机晶振Fosc=12MHz,所以机器周期T=12*t0=12*(1/12MHz)=1us设定定时器T1初始值为X,则:(2^16-X)*1us=10ms 从而可知定时器T1初始值X=65536-10000=55536=d8f0H,因而可得到定时10ms计算频率的程序: #define TIMER_H 0xd8; #define TIMER_L 0xf0;

定时计数器T2具有时钟输出方式,当RCLK=TCLK=0,T2OE=1,C/T’=0时,T2处于时钟输出方式,T2的溢出脉冲从P1.0输出,输出脉冲的频率f由下式决定:f=Fosc/[4*(65536-(RCAP2H,RCAP2L))]

本设计需要产生一个20 KHz的方波信号来调制红外线发射,由20×1000=12×1000000÷(65536-(RCAP2H,RCAP2L)),得(RCAP2H,RCAP2L)=65386=ff6aH #define RCAP2_H 0xff; #define RCAP2_L 0x6a;

5系统制作及调试

5.1 系统制作

单片机的应用开发可分为以下四个过程:

(1)硬件系统设计调试。如电路设计、PCB印制板绘制等。 (2)应用程序的设计。如程序的构思、用软件编写等。

(3)应用程序的调试。对硬件进行在线调试,在调试中不断修改、完善硬件及软件。 (4)系统脱机运行检查。进行全面检查,针对出现的问题修正硬件、软件或总体设计

方案。 5.2 电路板的制作

电路设计好以后,需要用画图软件对电路图经行设计。PCB板的设计也是一个十分重要的内容,在画图中器件的布局要合理,围绕核心元件布局,考虑实际的元件连接,那样设计的电路图才较美观。电路线条的大小要注意,过小的线条腐蚀的时候容易被腐蚀掉。自己第一次画图的时候没有注意焊盘的大小,导致钻孔之后得到的电路板焊接情况不理想。经过改进后得到理想的电路板。

山东理工大学 第1 页 共 33 页

5.3 硬件调试

在制作完硬件后,我根据设计的步骤要求我对自己的硬件电路板进行了调试工作,首先是检测器件的好坏,是否正常工作,导线是否导通等。具体的实现方法是先检测电容、电阻及导线是否短接,采用的工具是万用表。在测试的时候发现红外感应电路中的运放器LM358没有工作,经检查是地线没有接好。接着检查各个引脚的信号,给电路接通电源,大概用手摸一下元器件是否发热,有的话,关掉电源,进行再次检测;没有的话,则测试所有芯片的VCC端电压是否达到要求,接地端是否都接地,无误后,则开始对电路中所用到的引脚进行信号波形测试,所使用的工具最好是示波器。在测试中发现红外感应输出的波形不甚理想,经检查是输入方波信号经过电容后波形会上漂,所以在电路中增加了一个上拉电阻,使得输出的波形达到理想状态。最后进行联机调试。调试的时候,采用的是也是部分调试。原来测试的时候能够检测到单片机,但是再次检测时发现电脑检测不到单片机。将检查发现单片机和下载线都没有问题。最后经过逐步排查发现是晶振坏了,通过换好的晶振使得单片机正常工作。 5.4 软件调试

本设计系统的控制程序是采用C51语言编程,编程所采用的软件是Keil uVision3 MCS-51编程软件。关于单片机C语言软件调试,在语句中出现的语法错误,该软件会提示出来,以便于更正。因此,软件调试主要的工作是检查头文件是否正确,是否与单片机的端口地址相匹配。其次,就是检查初始化程序的正确性,根据设计的要求定义正确的初始化程序,为后面程序的执行做好铺垫作用。然后就是根据软件实现步骤逐个检查程序的可行性,以及程序的嵌套性是否都能达到设计的要求。在编译的过程中发现软件找不到T2定时器,经过多次检查是自己漏写了头文件“sfr T2MOD = 0xC9;”经过改正后系统达到了初步预期的结果。在调试的时候发现红外感应误判的情况较严重。经过修改程序,使新的程序能够对红外感应接收到的频率进行再次确认之后才进行相应的操作。使得误判的情况基本消失。 5.5整机调试

整机调试主要是测试按键时候符合要求,接线时候正确等。通过各个模块的、各个功能的测试并改进最终使得设计的系统达到预期的目的。


红外反射式自动干手器的设计(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:三1班“遵纪守法,从我做起”主题班会活动方案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: