STC8H8K64U单片机PWM配置

这篇具有很好参考价值的文章主要介绍了STC8H8K64U单片机PWM配置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

STC8H8K64U单片机配置PWM的通道1、通道2、通道7、通道8。STC8可以分为两组PWM,PWMA和PWMB,在使用时,如果同时使用了两组,那么两组的寄存器需要同时配置。

一、PWM输出频率计算公式

边沿对齐

PWM输出频率 = 系统工作频率 / (PWMx_PSCR + 1) * (PWMx_ARR + 1);

中间对齐

PWM输出频率 = 系统工作频率 / (PWMx_PSCR + 1) * PWMx_ARR * 2;文章来源地址https://www.toymoban.com/news/detail-679350.html

二、引脚重定义

STC8H8K64U单片机PWM引脚重定义对照表
符号 B7 B6 B5 B4 B3 B2 B1 B0
PWMA_PS C4PS[1:0] C3PS[1:0] C2PS[1:0] C1PS[1:0]
PWMB_PS C8PS[1:0] C7PS[1:0] C6PS[1:0] C5PS[1:0]
PWM通道 1 引脚选择
C1PS[1:0] PWM1P PWM1N
00 P1.0 P1.1
01 P2.0 P2.1
10 P6.0 P6.1
11
PWM通道 2 引脚选择
C2PS[1:0] PWM2P PWM2N
00 P1.2 P1.3
01 P2.2 P2.3
10 P6.2 P6.3
11
没有P1.2口的切换到P5.4口上
PWM通道 3 引脚选择
C3PS[1:0] PWM3P PWM3N
00 P1.4 P1.5
01 P2.4 P2.5
10 P6.4 P6.5
11
PWM通道 4 引脚选择
C4PS[1:0] PWM4P PWM4N
00 P1.6 P1.7
01 P2.6 P2.7
10 P6.6 P6.7
11 P3.4 P3.3
PWM通道 5 引脚选择
C5PS[1:0] PWM5
00 P2.0
01 P1.7
10 P0.0
11 P7.4
PWM通道 6 引脚选择
C6PS[1:0] PWM6
00 P2.1
01 P5.4
10 P0.1
11 P7.5
PWM通道 7 引脚选择
C7PS[1:0] PWM7
00 P2.2
01 P3.3
10 P0.2
11 P7.6
PWM通道 8 引脚选择
C8PS[1:0] PWM8
00 P2.3
01 P3.4
10 P0.3
11 P7.7

三、设置PWM输出开关和有效电平

STC8H8K64U单片机PWM捕获/比较使能寄存器
符号 B7 B6 B5 B4 B3 B2 B1 B0
PWMA_CCER1 CC2NP CC2NE CC2P CC2E CC1NP CC1NE CC1P CC1E
PWMB_CCER1 CC6P CC6E CC5P CC5E
PWMA_CCER2 CC4NP CC4NE CC4P CC4E CC3NP CC3NE CC3P CC3E
PWMB_CCER2 CC8P CC8E CC7P CC7E
CC1P 0:关闭输入捕获/比较输出
1:开启输入捕获/比较输出
CC1E 0:高电平有效
1:低电平有效

四、输出使能寄存器

STC8H8K64U单片机PWM输出使能寄存器
符号 B7 B6 B5 B4 B3 B2 B1 B0
PWMA_ENO ENO4N ENO4P ENO3N ENO3P ENO2N ENO2P ENO1N ENO1P
PWMB_ENO ENO8P ENO7P ENO6P ENO5P

五、程序源码

#define PWM_PSC      11     //设置预分频值
#define PWM_PERIOD   124    //设置周期值



void PWM_Init(void)
{	
	P_SW2 |= 0x80;			 //使能XFR
	
	PWMA_PS = 0x0A; 		//PWM-1设置为 P6.0;PWM-2设置为P6.2
	PWMB_PS = 0xF0;			//PWM-7设置为P7.6;PWM-8设置为P7.7
	
	PWMA_CCER1 = 0x00;      //写CCMRx前必须先清零CCERx关闭通道
	PWMB_CCER1 = 0x00;      //写CCMRx前必须先清零CCERx关闭通道
	PWMA_CCER2 = 0x00;      //写CCMRx前必须先清零CCERx关闭通道
	PWMB_CCER2 = 0x00;      //写CCMRx前必须先清零CCERx关闭通道
			
	PWMA_CCMR1 = 0x68;      //设置CC1为PWMA输出模式 PWM模式1
	PWMA_CCMR2 = 0x68;      //设置CC2为PWMA输出模式 PWM模式1
	PWMB_CCMR3 = 0x68;      //设置CC7为PWMA输出模式 PWM模式1
	PWMB_CCMR4 = 0x68;      //设置CC8为PWMA输出模式 PWM模式1
		
	PWMA_CCER1 = 0x11;      //使能CC1、CC2通道
	PWMB_CCER2 = 0x11;      //使能CC7、CC8通道
	
	PWMA_PSCRH = (u8)(PWM_PSC >> 8); //设置分频系数
	PWMA_PSCRL = (u8)PWM_PSC;
	PWMB_PSCRH = (u8)(PWM_PSC >> 8); //设置分频系数
	PWMB_PSCRL = (u8)PWM_PSC;
		
	PWMA_ARRH = (u8)(PWM_PERIOD >> 8); //设置周期时间
	PWMA_ARRL = (u8)PWM_PERIOD;
	PWMB_ARRH = (u8)(PWM_PERIOD >> 8); //设置周期时间
	PWMB_ARRL = (u8)PWM_PERIOD;
		
	PWMA_ENO |= 0x05;       //使能PWM1P和PWM2P端口输出 
	PWMB_ENO |= 0x50;       //使能PWM8P和PWM7P端口输出 
		
	PWMA_BKR = 0x80;        //使能主输出
	PWMB_BKR = 0x80;        //使能主输出
	
	PWMA_CR1 = 0x01;        //开始计时   向上计数
	PWMB_CR1 = 0x01;        //开始计时   向上计数
}


void Set_CHx_Speed(u8 ch,u16 Compare1)
{
    switch(ch)
    {
        case 1:
        {
	        PWMA_CCR1H = (u8)(Compare1 >> 8); //设置占空比时间
	        PWMA_CCR1L = (u8)(Compare1);
        }break;
        case 2:
        {
	        PWMA_CCR2H = (u8)(Compare1 >> 8); //设置占空比时间
	        PWMA_CCR2L = (u8)(Compare1);
        }break;
        case 7:
        {
	        PWMB_CCR7H = (u8)(Compare1 >> 8); //设置占空比时间
	        PWMB_CCR7L = (u8)(Compare1);
        }break;
        case 8:
        {
	        PWMB_CCR8H = (u8)(Compare1 >> 8); //设置占空比时间
	        PWMB_CCR8L = (u8)(Compare1);
        }break;
    }
}




到了这里,关于STC8H8K64U单片机PWM配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STC8H8K蓝牙智能巡线小车——1. 环境搭建(基于RTX51操作系统)

    开发环境准备:Keil uVision5 烧录软件:STC-ISP(V6.92A) 芯片: STC8H8K64U-45I-LQFP64 芯片引脚: 打开Keil,点击【Project】,选择【new uVersion project】 Device选择【STC MCU Database】 在search中输入“8H8K”,选择【STC8H8K64U Series】,点击【ok】 选择项目所在的文件夹,添加一个Keil项目

    2024年01月17日
    浏览(52)
  • 单片机STC8H入门

      STC8H系列单片机是不需要外部晶振和外部复位的单片机。在相同的工作频率下,STC8H系列单片机比传统的8051快约12倍,是宽电压/高速/高可靠/低功耗/强抗静电/较强干扰的新一代8051单片机。 用常用的C51版的keil安装,可以进入下面链接下载: https://download.csdn.net/download/wei

    2024年02月02日
    浏览(51)
  • STC8H系列单片机IAP实现不停电下载(通过串口)

    在使用串口往STC单片机烧录程序时,需要冷启动,先点击下载再上电。这样做有一定的缺点。首先,一些特殊的外围电路要求一直保持有电状态,有些客户需求我们能远程操控设备就可以升级程序,而不需要去现场断电设备。其次,频繁的断电上电操作也比较麻烦。 STC 单片

    2024年02月03日
    浏览(79)
  • STC8H系列单片机入门教程之ADC基础知识(四)

    目录 一、A/D转换过程 二、ADC转换流程图 三、采样定理 四、ADC基本参数 4.1、分辨率 4.2、采样速率 4.3、转换时间 4.4、量程  4.5、最低有效位 五、静态参数 5.1、微分非线性 5.2、积分非线性 六、逐次逼近型模数转换器 七、ADC常用分压电路 八、示例代码 ADC即模数转换器,用来

    2024年04月11日
    浏览(59)
  • STC8H系列单片机入门教程之GPIO基本知识(一)

    IO口即输入输出口,STC8H系列单片机支持四种工作模式, 即准双向口、推挽输出、高阻输入、开漏输出,每个IO通过两个寄存器进行配置,如下图所示,注:n = 0,1,2,3,4,5,6,7。 PnM1 PnM0 I/O 口工作模式 0 0 准双向口(弱上拉),灌电流可达 20mA ,拉电流 150-270uA 0 1 推挽输出,强上拉

    2024年04月14日
    浏览(68)
  • 基于STC8A8K64SD4的蓝牙小车

    为了检测自己学习51单片机的成果,制作了一个简单的蓝牙小车,特此来记录一下。 本文会讲解HC-05,L298N电机驱动的使用,12V转5V这个模块比较简单就不做讲解。 废话少说,先上代码!!! main.c PWM.h Timer0.c Timer0.h UART.h  HC-05模块的使用 概述 HC-05蓝牙模块是一种基于蓝牙协议的

    2024年02月09日
    浏览(38)
  • 【STC8A8K64D4开发板】第2-12讲:数码管显示

    学习目的 了解数码管分类、工作原理及驱动电路的设计。 掌握STC8A8K64D4系列单片机驱动8位共阴数码管的动态显示的软件设计。 数码管概述 数码管是一种常用的显示设备,他有着价格便宜、使用简单的特点,在各个领域被广泛的应用,如空调、电子万年历、冰箱等等。学习数

    2024年02月20日
    浏览(40)
  • 【STC8A8K64D4开发板】——新建工程模板之编译、下载、运行和仿真

    说明 :本章讲解的程序的编译、下载、运行和仿真适用于开发板配套的所有例程。 编译工程 这里特别说明一下,本章的讲解的重点是Keil软件的使用,因此,我们直接在“main.c”文件中输入“实验2-1-1:点灯实验”的代码,至于代码的编写和原理在后续的章节会讲解的。 图

    2023年04月11日
    浏览(100)
  • 16个触摸按键,16个8段LED数码管大电流自动刷新,STC8H4K64TL

    16个触摸按键,16个8段LED数码管大电流自动涮新,STC8H4K64TL STC8H4K64TL-45MHz-LQFP48/32, QFN48/32, 主要功能演示板, 附详细的演示程序/原理图,大家可在本贴技术讨论 1,演示了16个触摸按键输入的效果, 2,演示了 大电流自动涮新 16个8段LED数码管,简化了硬件设计,减轻了CPU的压力,

    2024年02月10日
    浏览(44)
  • 51单片机(STC8) -- 开发环境搭建(Keil C51)

    STC8H3K系列芯片概述 文章中所用的芯片选型为STC8H3K64S4,后续STC8案例均以该芯片展开 内核 • 超高速 8051 内核(1T),比传统 8051 约快 12 倍以上,指令代码完全兼容传统8051 • 21个中断源,4 级中断优先级 • 支持在线仿真 工作电压 • 1.9V~5.5V 工作温度 • -40℃~85℃ Flash 存储

    2024年01月25日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包