松翰单片机之外设的使用
定时/计数器 TC1
作周期定时
定时周期10ms,非自动重装
EQU_FCPU_DIV_64 EQU 00100000B ; 010--->Fcpu/64EQU_CTCX_10MS EQU 100 ; 此处赋值 100 ,看下文介绍CALL_INIT_TC1:B0BCLR FTC1IEN ; 禁止TC0 中断B0BCLR FTC1ENB ; 禁止TC0 定时器B0BCLR FGIE ; 关闭全局中断(在 STKP 寄存器)CLR TC1M ; 清 TC1MMOV A,#EQU_FCPU_DIV_64 ; CLK_DIV_64OR TC1M,A ; Set TC0 Clock=fcpu/64MOV A,#CTCX_10MS ; MOV TC1C,A ; TC1间隔Cycle=10.0msB0BCLR FTC1IRQ ; 清TC1中断请求标志B0BSET FTC1IEN ; 使能TC1中断B0BSET FTC1ENB ; 开启TC0 定时器B0BSET FGIE ; 使能全局中断RET/*---------------------------------中断服务函数-------------------------------------------*/
CALL_INTTC1_Handel: B0BCLR FTC1IRQ ; 清中断标志位MOV A,#CTCX_10MSB0MOV TC1C,A ; 手动重装技术值...
TC1C 初始值的计算公式如下:
TC1C 初始值 = N - (TC1 中断间隔时间 * TC1 时钟 rate)
TC1C 初始值:需要求的值,即定义的 EQU_CTCX_10MS;
N值:N 为 TC1 二进制计数范围。各模式下参数的设定如下表所示,此处PWM1 = 0,所以 N = 256:
TC1 中断间隔时间:即定义的中断间隔时间 10ms;
TC1 时钟rate:EQU_FCPU_DIV_64 EQU 00100000B ; 010—>Fcpu/64
因为选项中定义系统时钟如下:
.Code_Option High_Clk IHRC_16M ; Internal 16M RC Oscillator.Code_Option Fcpu #7 ; Fcpu = Fosc/16
所以,TC0 时钟 rate= Fosc/16/64 = 16M / 16 /64 = 15625
TC0C 初始值 = 256 - (0.01S -15625) = 99.75 ≈ 100
作PWM输出
EQU_FCPU_DIV_64 EQU 00100000B ; 010--->Fcpu/64INIT_TC0PWM:MOV A,#0x00B0MOV TC0M,A ; 清TC0M,复位TC0MOV A,#FCPU_DIV_64B0MOV TC0M,A ; 设置TC0RATE[2:0],即PWM周期MOV A,#00000000B ; OR TC0M,A ; ALOAD0 = 0 和TC0OUT = 0,PWM分辨率 = 1/256MOV A,#0x00B0MOV TC0R,A ; 设置TC0R寄存器获得PWM占空比CLR TC0C ; 清TC0CB0BSET FTC0ENB ; 使能TC0 定时器B0BSET FPWM0OUT ; 使能PWMRET
1、PWM周期:TC0Rate[2:0]控制 PWM 的周期
EQU_FCPU_DIV_64 EQU 00100000B ; 010—>Fcpu/64
因为选项中定义系统时钟如下:
.Code_Option High_Clk IHRC_16M ; Internal 16M RC Oscillator.Code_Option Fcpu #7 ; Fcpu = Fosc/16
PWM周期 = Fosc/16/64 = 16M / 16 /64 = 15625 Hz
2、PWM分辨率:ALOAD0 和TC0OUT 决定 PWM 的分辨率,当 ALOAD0、TC0OUT = 00 时,PWM 的分辨率为 1/256;ALOAD0、TC0OUT = 01 时,PWM 的分辨率为 1/64;ALOAD0、TC0OUT = 10 时,PWM 的分辨率为1/32;ALOAD0、TC0OUT = 11 时,PWM 的分辨率为 1/16。
3、PWM占空比:TC0R 寄存器决定 PWM 的占空比(脉冲高电平的长度),取值范围 00H~FFH。开启 TC0 定时器且定时器溢出后,TC0C 的初始值为 0。TC0C开始计时,PWM输出高电平,当 TC0C=TC0R 时,PWM 输出低电平;TC0 溢出时(TC0C 的值从 0FFH 到 00H),整个PWM 周期完成,并进入下一个周期。TC0 溢出时,PWM 的一个周期完成。在 PWM 输出的过程由程序更改 PWM 的占空比,则在下一个周期开始输出新的占空比的 PWM 信号。
改变占空比:在需要改变占空比的地方加上该语句
MOV A,PWMTCXR ; PWMTCXR 占空比值MOV TC0R,A
松翰单片机之外设的使用相关推荐
- 松翰单片机keil环境芯片包
松翰单片机keil环境芯片包(SN8F5700系列):安装时与Keil安装位置相同可以直接使用. 安装后依次点击可查看芯片包具体型号: 芯片包下载链接:阿里云盘分享https://www.aliyun ...
- FS2712A单片机可替换松翰SN8P2711
FS2712A单片机可以替代松翰SN8P2711B型号,程序直接转换使用,不需要修改PCB,因此FS2712A的成本更低,让微薄的利润再增添一笔,FS单片机更加节省成本! FS2712A是以EPROM ...
- FS2711单片机可替换松翰SN8P2711
FS2711单片机可以替代松翰SN8P2711B型号,程序直接转换使用,不需要修改PCB,因此FS2711的成本更低,让微薄的利润再增添一笔,FS单片机更加节省成本! FS2711 是以EPROM作為 ...
- 松翰SN8F5703单片机WDT例程
松翰5703例程-WDT //-------------------------------------------------------------------------- //Filename ...
- 替代松翰sn8p2711,153系列主控IC
8P153/8P2711/8S003F3P6/32F103CBT6/32F103C8T6/32F103RBT6/32F103R8T6原厂封装欢迎来人来电咨询洽谈张生151.1803*6667 现货单片 ...
- 松翰松翰c语言编程指导,松翰C程序检单例程代码下载
标签: 松翰C程序检单例程 #include "define.h" #include "sn8p2501b.h" //--------------------- ...
- 单片机与外设模块数据传输不成功各种原因分析总结
单片机与外设模块数据传输不成功各种原因分析总结 下面会不断总结在工作中遇到的问题分享给大家: 1.波特率:花了半天时间检查接线.模块.电压.电流等等,都排除了原因,最终发现原来模块的波特率是11 ...
- sonix c语言 pdf,松翰c语言(项目)例程(Sonix C language routines (project)).doc
松翰c语言(项目)例程(Sonix C language routines (project)) 松翰c语言(项目)例程(Sonix C language routines (project)) So ...
- 凌阳SPCA2688 4K摄像头/松翰1080P H.264 摄像头/瑞昱WDR(宽动态)USB摄像头模组
SPCA2688 4K2K/8M高端USB2.0网络摄像头模组 支持定制开发联系17666 接下行 ...
- 华大单片机m4内核的滴答定时器_微处理器、单片机及其外设,处理还是控制?...
每项新应用设计都需要一个单片机或微处理器.当在两者之间选择其一时,需要考虑一些因素.以下是微处理器.单片机以及异构架构的概述. 考虑选择微处理器(MPU)或者单片机(MCU)时,应用类型通常是关键因素 ...
最新文章
- php禁止组合热键,cad组合快捷键命令有哪些
- pip源更换为清华源_kali2020更换国内的源
- mysql 配置多个数据库连接_总结MySQL修改最大连接数的两个方式
- 微处理器 微型计算机系统,作业答案11微处理器微型计算机和微型计算机系统三者之间.DOC...
- 软件开发模型_QT开发(二十三)——软件开发流程
- ansible操作远程服务器报Error: ansible requires the stdlib json or simplejson module, neither was found!...
- 基于Dialog的MFC程序在启动时隐藏为托盘程序(三)
- Java基础知识强化84:System类之exit()方法和currentTimeMillis()方法
- 设计模式面对面之单例模式
- MongoDB数据库可视化工具
- 2022最新短信验证码平台汇总
- 2022年7月22日,记录我的第一篇博客
- 智能音箱的五大核心技术
- 大型支付系统后台对账系统的控制和管理
- Shader 如何表现攻击范围
- C++之solmyr小品文
- 《走着走着就散了,回忆都淡了》
- 什么是光纤?光纤有什么用途?(分布式光纤测温DTS+振动DAS+应变BOTDA)
- Python每日一练——第3天:三种猜数字小游戏
- 【论文翻译】聚类算法研究
热门文章
- Vue · 导航守卫:beforeRouteEnter、beforeRouteUpdate、beforeRouteLeave
- 轩小陌的Python笔记-day09 文件操作相关
- 如何将图片做成内外边框HTML,如何用html给图片加边框
- kindle自定义屏保之自定义字帖
- 色度抽样(4:2:0)到底是什么意思?
- PTA(类和对象)用java写 7-2 定义商品类,封装成员变量,输出对象
- 听说现在消防控制室都要求中级消防设施操作员了?这个工作前景怎么样?
- 免费的HTTP代理IP服务器地址
- Micropython——看门狗定时器(WDT类)
- 阿里云MVP精选2018年终盘点:大咖专访+最佳实践,丰富干货等你来!