维晟WS51F7030 系列的特点和概括

1T 8051 内核,8KB Flash,512B SRAM,128B EEPROM,12 通道过 CS-10V 低功耗 Touch Key,1 个 5 位精度 DAC,3 对 6 通道 16 位互补输出 PWM,3 个通用定时器,1 个 UART,1 个 I2C,1 个 WDT,1 个 WKT,软件 LED 驱动,软件 LCD 驱动.
1 WS51F7030 系列特性
工作电压: 1.7V-5.5V
工作温度: -40-+105℃
封装类型: SOP16/SOP14/MSOP10/SOP8
内核:增强型 1T 8051
最高工作频率:16MHz
Flash ROM:8K Bytes,10 万次擦写
EEPROM:128 Bytes,无需擦,10 万次写入
SRAM:内部 256 Bytes,外部 512 Bytes
时钟(3.3V@25℃)
内置 RC 振荡器 LRC:32KHz,可调精度±1%
内置 RC 振荡器 HRC:16MHz,可调精度±1%
中断
7 个有效中断源,两级中断优先级
4 个外部中断,可配置任意引脚输入,支持上沿/
下沿/双沿触发
定时器
3 个 16 位通用定时器 0/1/2,兼容标准 8051
IO 端口
14 个通用 GPIO 口
支持推挽/开漏/上拉/下拉/高阻等模式
上拉可选 60KΩ 或 10KΩ,下拉为 15 KΩ
推电流支持 20mA,灌电流 45mA
通用串行接口(UART 0)
1 个 UART 接口:UART0,兼容标准 8051
I2C 接口(I2C)
内置 1 路 I2C 接口,支持主从模式,支持标准/
快速模式
看门狗(WDT)
15 位看门狗定时器,计数时钟为 LRC 时钟
8 位调节精度, 调整范围为 7.8125ms-1s
可配置看门狗产生复位或中断
自唤醒定时器(WKT)
可选 0.5s/1s 中断,支持中断唤醒
脉宽调制(PWM)
3 对 6 通道 16 位 PWM,每通道可独立设置周期和
占空比
可选时钟源,可直接输出内部时钟
支持互补输出和死区控制
低电压检测(LVD)
8 级电压检测 1.8/2.0/2.4/2.8/3.0/3.4/3.7/4.2V
可设置低电压复位或中断
触摸按键(Touch Key)
共 12 通道,可一次全部扫描
支持触摸待机唤醒
支持触摸按键与软件 LED 驱动共用引脚
超低功耗,增加一个按键功耗增加 0.3uA 功耗
通过 CS 动态 10V 测试
数模转换器(DAC)
1 个 5 位精度 DAC
可选外部 VDD、内部 1.5V 基准或外部 DAVF 作为基
准电源
软件 LED 驱动
采用交替轮流 COM 端口方式进行 LED 扫描
最多支持 11seg*12com 的 LED 驱动
软件 LCD 驱动
支持 1/2 偏压软件 LCD 驱动
最多支持 5 个 COM
芯片复位
支持硬复位、软复位、看门狗复位、LVD 复位和
上电/掉电复位
程序加密及保护
内置程序读保护
内置程序 ID 加密保护功能
程序下载和仿真
支持 ISP 和 IAP,IAP 可配置大小
支持在线仿真功能
低功耗模式
STOP 模式最低电流 1.7uA
16Mhz@5V 运行典型功耗 1.5mA
抗干扰能力
ESD > 8KV
EFT > 4.5KV

2 WS51F7030 系列概述
WS51F7030 系列芯片是基于增强型 1T 8051 内核的 8 位微控制器,指令完全兼容传统 8051,而运行速度比传统 8051 快 10 倍。WS51F7030 集成 8KB Flash、512B SRAM、128B 独立 EEPROM、12 通道过 CS-10V 低功耗 Touch Key、1 个 5 位精度 DAC、3 对 6 通道 12 位互补输出 PWM、3 个 16 位定时器、1 个 UART、1 个 I2C、16MHz 内部RC 振荡器、32KHz 内部 RC 振荡器、14 个 GPIO、软件 LED 驱动、软件 LCD 驱动等资源。为了提高芯片可靠性, WS51F7030 还集成了上电掉电复位、8 级可选电压低电压检测(LVD)、低功耗独立看门狗计数器(WDT)、自唤醒定时器(WKT)等模块。WS51F7030 具有非常优异的抗干扰能力和低功耗特性,非常适合用在家用照明、控制开关、无线通讯、小家电等物联网工业控制及消费电子领域。

以下是一个基于WS51F7030芯片通过按键控制PWM调整灯光亮度的代码: ```c #include <WS51F7030.h> #define LED P3_2 // 控制 LED 的引脚 #define KEY P3_7 // 按键输入的引脚 void delay(unsigned int); // 延时函数 void main() { unsigned char pwm_value = 0; // 用于存储 PWM 的占空比 unsigned char key_state = 0; // 用于存储按键的状态 unsigned char key_count = 0; // 用于计数按键的按下次数 TMOD = 0x01; // 定时器 0 工作在模式 1 TH0 = 0xFC; // 定时器 0 初值 TL0 = 0x67; TR0 = 1; // 启动定时器 0 while (1) { // 无限循环 if (TF0 == 1) { // 定时器 0 溢出中断 TF0 = 0; // 清除中断标志 pwm_value++; // 递增 PWM 的占空比 if (pwm_value == 100) pwm_value = 0; // 占空比达到 100% 时重置为 0 if (pwm_value > key_count * 10) LED = 0; // 根据占空比控制 LED 的亮度 // 检测按键状态 key_state = KEY; if (key_state == 0) { key_count++; // 每次按下按键增加一次计数 if (key_count > 10) key_count = 1; // 计数达到 10 时重置为 1 } delay(20); // 延时一段时间 } } } void delay(unsigned int t) { unsigned int i, j; for (i = 0; i < t; i++) { for (j = 0; j < 120; j++); } } ``` 该代码使用了定时器 0 和按键输入来控制 PWM 的占空比,从而调整 LED 的亮度。每当定时器 0 溢出时,会递增 PWM 的占空比,并根据占空比控制 LED 的亮度。同时,代码还检测按键的状态,每次按下按键会增加一次计数,从而控制 PWM 的周期,进一步调整 LED 的亮度。其中 `delay()` 函数是一个简单的延时函数,可以根据需要进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值