ImageVerifierCode 换一换
格式:DOC , 页数:35 ,大小:288KB ,
资源ID:3549691      下载积分:20 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-3549691.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(51单片机两路或多路pwm波输出程序.doc)为本站会员(hw****26)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

51单片机两路或多路pwm波输出程序.doc

1、利用 T2扩展多个软件定时器,彻底解决定时器不够用的问题/*SoftTimer.h利用定时器 T2模拟多个软件定时器作者:21icbbs LPC900,2005-08特点:只占用一个硬件定时器 T2,就可以扩展出多达数十个以上的软件定时器软件定时器基本定时单位是 10ms,定时范围很宽:0.01163.84s软件定时器数量可以按需要设定,每增加一个,只多消耗2个字节的 RAM空间利用定时器 T2的自动重装特性,能够实现所有软件定时器的精确定时所有软件定时器都工作在 14位倒计时方式,用 TR和 TF位控制,使用极为方便第 0号定时器专门用于 Delay()函数,其它定时器可供用户程序自由使用*

2、/#ifndef_SOFT_TIMER_H_#define_SOFT_TIMER_H_#include/定义软件定时器数量(至少 1个)#defineTIMER_N 8/定义时钟频率(单位:Hz)#defineMCLK 11059200L/定义软件定时器结构/每个定时器只占用 2个字节structvolatile unsignedTR:1; /起停标志,0停止运行,1开始运行volatile unsignedTF:1; /溢出标志,0未溢出,1溢出volatile unsignedTV:14; /14位定时值idataTimerTIMER_N;/软件定时器初始化voidTimerInit()u

3、nsigned intx;unsigned CHARi;EA = 0;for( i=0; i= 600L )x+;#endifx = 0 - x;RCAP2L = (unsigned CHAR)x;RCAP2H = (unsigned CHAR)(x 8);TL2 = RCAP2L;TH2 = RCAP2H;ET2 = 1;TR2 = 1;EA = 1;/*函数:TimerOn()功能:启动定时器参数:n:定时器序号t:定时器初值,取值 016383t0时,定时(0.01*t)st=0时,定时 163.84s*/voidTimerOn(unsigned CHARn,unsigned intt)

4、Timern.TR = 0;Timern.TF = 0;Timern.TV = t;Timern.TR = 1;/*函数:TimerOff()功能:关闭定时器参数:n:定时器序号*/voidTimerOff(unsigned CHARn)Timern.TR = 0;Timern.TF = 0;/*函数:T2_INTR_SVC()功能:定时器 T2中断服务函数,每 10ms中断 1次*/voidT2_INTR_SVC()interrupt5unsigned CHARi;TF2 = 0;for( i=0; i0时,延时(0.01*t)st=0时,延时 163.84s*/voidDelay(unsi

5、gned intt)TimerOn(0,t);for(;)PCON |= 0x01;if(Timer0.TF)TimerOff(0);break;#undefTIMER_N#undefMCLK来源:http:/ 程序 51单片机 T2定时器的应用/* 文 件 名:test.c* 功 能:使用 T2定时器实现 1秒精确定时并闪灯* 1.CPU型号:AT89S52* 2.晶振:11.0592MHz*/【例 2】这是一个跑马灯程序,使用了定时器 2。#include /包括一个 52标准内核的头文件sbit P10 = P10; /头文件中没有定义的 IO就要自己来定义了sbit P11 = P11

6、;sbit P12 = P12; sbit P13 = P13; bit ldelay=“0“; /长定时溢出标记,预置是 0/定时器中断方式的跑马灯void main(void) /主程序unsigned char code ledp4=0xfe,0xfd,0xfb,0xf7;/预定的写入 P1的值unsigned char ledi; /用来指示显示顺序RCAP2H =0x10; /赋 T2的预置值 0x1000,溢出 30次就是 1秒钟RCAP2L =0x00; TR2=1; /启动定时器ET2=1; /打开定时器 2中断EA=“0“; /打开总中断while(1) /主程序循环 if(

7、ldelay) /发现有时间溢出标记,进入处理ldelay=“0“; /清除标记P1=ledpledi; /读出一个值送到 P1口ledi+; /指向下一个if(ledi=4)ledi=0; /到了最后一个灯就换到第一个/定时器 2中断void timer2() interrupt 5 static unsigned char t;TF2=0;t+; if(t=15) /T2的预置值 0x1000,溢出 30次就是 1秒钟,晶振 11.0592MHZt=“0“; ldelay=“0“; /每次长时间的溢出,就置一个标记,以便主程序处理标签: S52 可编程时钟发生器 S52单片机 T2定时器的

8、可编程时钟发生器52单片机里面有一个 T2定时器,它比普通的 16为定时器功能要强大多了,今天研究了 T2定时器的一个应用可编程时钟输出功能。配置成500KHZ的时钟信号输出后,用示波器测量了时钟输出脚 P10,发现还真准。为了把定时器配置成时钟发生器,位 C/T2(T2CON.1)必须清 0,也就是选择定时模式,位 T2OE(T2MOD.1)必须置 1,使能定时器 2输出。位TR2(T2CON.2)启动、停止定时器。时钟输出频率取决于晶振频率和定时器 2捕捉寄存器(RCAP2H,RCAP2L)的重载值,如公式所示:定时器 2的可编程输出模式原理框图如下图 1 定时器 2的可编程输出模式上个测试用的程序/ 文件名: t2_clk.c/ 功能: T2 定时器的可编程时钟输出

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。