C语言在干手器中起什么作用,论文自动干手器毕业设计 - 图文

西南科技大学高等教育自学考试毕业论文

4.2.2中断流程图

Flag==INVERIFYYesNoFlag==RUNNINGYes计数值加一中断入口倒计时结束Yes停止吹风计数值加一ctrlcount++;确认时间到YesNO No Flag=HAVE_INVERIFYFlag==SETINGTIMEYes计数值加一显示时间到No 停止显示设置时间Noctrlcount==0Yesctrlcount--停止吹风No判断是否有物体YesFlag=INVERIFYYes开吹风YesNo频率计数清零重载定时值开定时器Flag==STARTNo Flag==HAVE_INVERIFY退出中断图4--2中断函数流程图

4.2.3 关键技术

单片机定时器/计数器在测量控制系统中,常常需要实时时钟,以实现定时或延时控制;也常常需要有计数器,以实现外界事件进行计数。MSC-52单片机内部有3个16位可编程定时器/计数器T0、T1和T2。可编程其功能(如工作方式、定时时间、量程、启动方式等)均可由指令来设置完成、每个定时器的计数

17

西南科技大学高等教育自学考试毕业论文

信号来自片内振荡器的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位定时/计数方式

18

西南科技大学高等教育自学考试毕业论文

方式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;

19

西南科技大学高等教育自学考试毕业论文

第5章 系统制作及调试

5.1 软件调试

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

20

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值