IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> STC15W204S-35I SOP16 - 定时器 0,工作模式 0,16 位自动重装定时器 -> 正文阅读

[嵌入式]STC15W204S-35I SOP16 - 定时器 0,工作模式 0,16 位自动重装定时器

定时器 0

在这里插入图片描述

原理图

在这里插入图片描述

工作模式 0

配置定时器 0:

  • 工作模式 0,16 位自动重装定时器;
  • 时钟源来自内部系统时钟 / 12
  • 允许其在计数溢出之后请求中断;
  • 每次 T0 中断,反转一次 P1.1 的输出电平。

main.c 文件:

/**
 * Interrupt Registers Definition
 */
sfr IE = 0xA8; /* Interrupt Enable Register */

/**
 * Interrupt Registers Bits Definition
 */
/** IE */
#define GLOBAL_IE_EA    (0x80)
#define T0_IE_ET0       (0x02)


/**
 * Timer 0 Registers Definition
 */
sfr TCON = 0x88; /* Timer 0 & Timer 1 Control Register */
sfr TMOD = 0x89; /* Timer 0 & Timer 1 Working Mode */
sfr TL0 = 0x8A; /* Timer 0 Counter Low Register */
sfr TH0 = 0x8C; /* Timer 0 Counter High Register */
sfr AUXR = 0x8E; /* Auxiliary Register */

/**
 * Timer 0 Registers Bits Definition
 */
/** TCON */
#define T0_TCON_TF0     (0x20) /* Timer 0 - Overflow Flag */
#define T0_TCON_TR0     (0x10) /* Timer 0 - Run Control */
/** TMOD */
#define T0_TMOD_GATE    (0x08) /* Timer 0 - Gate Control */
#define T0_TMOD_CT      (0x04) /* Timer 0 - Counter or Timer Selection */ 
#define T0_TMOD_M1      (0x02) /* Timer 0 - Mode Selection Bit 1 */
#define T0_TMOD_M0      (0x01) /* Timer 0 - Mode Selection Bit 0 */
/** AUXR */
#define T0_AUXR_T0x12   (0x80) /* Timer 0 - Speed Control */


/**
 * Port 1 Registers Definition
 */
sfr P1 = 0x90; /* Port 1 Register */

sbit LED = P1^1; 


void main() {
    TMOD &= ~T0_TMOD_GATE;
    TMOD &= ~T0_TMOD_CT; // T0 acts as a timer
    TMOD &= ~(T0_TMOD_M1 | T0_TMOD_M0); // Mode 0: 16-bit auto-reload
    
    TH0 = (65536 - 10000) >> 8; // 8 MSB
    TL0 = (65536 - 10000) & 0xFF; // 8 LSB
    
//    AUXR |= T0_AUXR_T0x12; // T0's clock source is divided by 1
    
    TCON &= ~T0_TCON_TF0; // Clear T0 overflow flag
    TCON |= T0_TCON_TR0; // T0 run
    
    IE |= T0_IE_ET0; // Enable T0 overflow interrupt request
    
    IE |= GLOBAL_IE_EA; // Enable global interrupt
    
    while(1) {}
}

void Timer0InterruptService() interrupt 1 {
    LED = !LED;
}

使用 STC-ISP 下载程序,频率设为 12.000 MHz

注意:虽然 STC-ISP 提示下载失败!但是,我发现单片机仍然按照我的设想执行程序,这里可能是 STC-ISP 有问题。

在这里插入图片描述

T0 的时钟源进行 12 分频(AUXR &= ~T0_AUXR_T0x12;),测量 P1.1 输出:

注意:虽然在原理图中,我给单片机的电源符号是 5V,但是在实际测试中,我使用的是 USB 转串口模块上提供的 3.3V(实测没有 3.3V),这并不妨碍单片机正常运行。

在这里插入图片描述

不对 T0 的时钟源进行分频(AUXR |= T0_AUXR_T0x12;),测量 P1.1 输出:

在这里插入图片描述

参考

宏晶科技 STC - STC15 系列单片机器件手册

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-07-31 16:48:39  更:2021-07-31 16:48:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 18:33:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码