当前位置: 首页 > wzjs >正文

企业网站建设方案撰写深圳推广系统

企业网站建设方案撰写,深圳推广系统,phpcms做双语网站,美乐乐 网站建设文章目录 前言简介定时器的工作模式1.模式02.模式13.模式24.模式3 定时器的寄存器1.TMOD2.TCON3.THO/TL04.TH1/TL1 定时器的使用步骤1.配置TMOD2.设置初值3.启动定时器4.使能中断5.编写中断服务函数 示例代码:定时器的基本使用代码说明示例代码:定时器1用…

文章目录

  • 前言
  • 简介
  • 定时器的工作模式
    • 1.模式0
    • 2.模式1
    • 3.模式2
    • 4.模式3
  • 定时器的寄存器
    • 1.TMOD
    • 2.TCON
    • 3.THO/TL0
    • 4.TH1/TL1
  • 定时器的使用步骤
    • 1.配置TMOD
    • 2.设置初值
    • 3.启动定时器
    • 4.使能中断
    • 5.编写中断服务函数
  • 示例代码:定时器的基本使用
  • 代码说明
  • 示例代码:定时器1用于PWM生成
  • 代码说明
  • 注意事项
    • 1.初值计算
    • 2.公式
    • 3.中断优先级
    • 4.模式选择
    • 5.PWM精度
  • 总结


前言

本文仅仅简单介绍了IAP15F2K61S2中的定时器的使用以及使用定时器生成PWM。


简介

IAP15F2K61S2 是一款基于8051内核的单片机,内置多个定时器(如定时器0、定时器1等),可用于定时、计数、PWM生成、频率测量等功能。定时器是单片机中非常重要的外设,能够实现精确的时间控制和事件处理

定时器的工作模式

IAP15F2K61S2 的定时器通常有以下几种工作模式:

1.模式0

模式0:13位定时器/计数器。

2.模式1

模式1:16位定时器/计数器。

3.模式2

模式2:8位自动重装定时器/计数器。

4.模式3

模式3:双8位定时器/计数器(仅定时器0可用)。

定时器的寄存器

1.TMOD

TMOD:定时器模式寄存器,用于设置定时器的工作模式

2.TCON

TCON:定时器控制寄存器,用于启动或停止定时器

3.THO/TL0

TH0/TL0:定时器0的高8位和低8位寄存器

4.TH1/TL1

TH1/TL1:定时器1的高8位和低8位寄存器

定时器的使用步骤

1.配置TMOD

配置 TMOD:设置定时器的工作模式

2.设置初值

设置初值:给 THx/TLx 寄存器赋初值

3.启动定时器

启动定时器:设置 TCON 中的 TRx 位

4.使能中断

使能中断:如果需要定时器中断,需配置 IE 寄存器

5.编写中断服务函数

编写中断服务函数:处理定时器溢出事件

示例代码:定时器的基本使用

以下代码展示了如何使用定时器0在 IAP15F2K61S2 上实现1秒的定时,并控制LED闪烁。

#include <reg52.h>#define uchar unsigned char
#define uint unsigned intsbit LED = P1^0;  // LED连接到P1.0void Timer0_Init() {TMOD |= 0x01;  // 定时器0,模式1(16位定时器)TH0 = 0xFC;    // 初值,定时1msTL0 = 0x18;ET0 = 1;       // 使能定时器0中断EA = 1;        // 使能总中断TR0 = 1;       // 启动定时器0
}void Timer0_ISR() interrupt 1 {static uint count = 0;TH0 = 0xFC;  // 重装初值TL0 = 0x18;count++;if (count >= 1000) {  // 1秒到达count = 0;LED = ~LED;  // LED状态取反}
}void main() {Timer0_Init();  // 初始化定时器0while (1);      // 主循环,等待中断
}

代码说明

Timer0_Init:
设置定时器0为模式1(16位定时器)。
初值设置为 TH0 = 0xFC 和 TL0 = 0x18,定时1ms。
使能定时器0中断和总中断。
启动定时器0。

Timer0_ISR:
定时器0中断服务函数,每次溢出时重装初值。
使用静态变量 count 计数,达到1000次(即1秒)时切换LED状态。

main:
初始化定时器0,进入主循环等待中断。

示例代码:定时器1用于PWM生成

以下代码展示了如何使用定时器1在 IAP15F2K61S2 上生成PWM信号,控制LED亮度。

#include <reg52.h>#define uchar unsigned char
#define uint unsigned intsbit PWM_OUT = P1^0;  // PWM输出引脚void Timer1_Init() {TMOD |= 0x10;  // 定时器1,模式1(16位定时器)TH1 = 0xFF;    // 初值,定时较短TL1 = 0x00;ET1 = 1;       // 使能定时器1中断EA = 1;        // 使能总中断TR1 = 1;       // 启动定时器1
}void Timer1_ISR() interrupt 3 {static uchar pwm_count = 0;TH1 = 0xFF;  // 重装初值TL1 = 0x00;pwm_count++;if (pwm_count < 50) {  // 占空比调整PWM_OUT = 1;       // 高电平} else {PWM_OUT = 0;       // 低电平}if (pwm_count >= 100) {pwm_count = 0;      // 重置计数}
}void main() {Timer1_Init();  // 初始化定时器1while (1);      // 主循环,等待中断
}

代码说明

Timer1_Init:
设置定时器1为模式1(16位定时器)。
初值设置为 TH1 = 0xFF 和 TL1 = 0x00,定时较短。
使能定时器1中断和总中断。
启动定时器1。

Timer1_ISR:
定时器1中断服务函数,每次溢出时重装初值。
使用静态变量 pwm_count 计数,实现占空比控制。
占空比为50%(高电平50次,低电平50次)。

main:
初始化定时器1,进入主循环等待中断。

注意事项

1.初值计算

初值计算:定时器的初值需要根据晶振频率和定时时间计算。

2.公式

公式:初值 = 65536 - (定时时间 * 晶振频率) / 12。

3.中断优先级

中断优先级:如果有多个中断,需合理设置中断优先级。

4.模式选择

模式选择:根据需求选择合适的定时器模式

5.PWM精度

PWM精度:PWM的精度取决于定时器的溢出时间和占空比调整的粒度

通过以上代码和说明,你可以在 IAP15F2K61S2 上灵活使用定时器实现定时、PWM生成等功能。


总结

以上就是今天要讲的内容,本文仅仅简单介绍了IAP15F2K61S2中的定时器的使用以及使用定时器生成PWM。

http://www.dtcms.com/wzjs/479962.html

相关文章:

  • 顺德人做多上哪个网站网络营销成功案例
  • 移动端网站开发论文seo网站优化怎么做
  • 建立网站的目的和功能现在怎么做网络推广
  • 新颖的网站策划专业网站快速
  • 自动打开多个同网站网页成都seo经理
  • 大画册设计网站游戏推广平台哪个好
  • 鞍山网站开发自己做网站如何赚钱
  • 五莲建设监理有限公司网站市场推广是做什么的
  • 通化网站建设单位如何在百度发广告推广
  • 天河网站建设制作seo视频教程汇总
  • 合肥设计工作室seo刷排名软件
  • 桂林网站建设哪家好微信推广软件有哪些
  • o2o网站建设最好公司网络广告电话
  • 枣庄建网站的公司北京网站优化托管
  • 刘金鹏做网站靠谱吗微信社群营销
  • 做360手机网站快百度关键词收录
  • 安全工程师证报考条件是什么重庆seo公司排名
  • 医疗器械做网站到哪里先备案指数函数运算法则
  • seo查询爱站网排名优化服务
  • 上海浦东新区做网站手机网站seo免费软件
  • apache 建立网站如何在百度做推广
  • 服装网站怎么做关键词资源
  • 在线客服系统程序河北seo网络推广
  • 网站网页压缩成人教育培训机构
  • 定西市建设委员会网站本周国内重大新闻十条
  • 网站前端用的到ps经典软文推广案例
  • 工程装修免费seo刷排名
  • 重庆网站建设c网站优化推广
  • 菜鸟教程网站建设网站托管代运营
  • 哪里可学做网站网络推广站