[通用8051核FLASH系列]

HC89F003特性介绍 - 内部资源管脚全映射

[复制链接]
3524|7
手机看帖
扫描二维码
随时随地手机跟帖
传说中的垚鸟|  楼主 | 2017-7-17 13:24 | 显示全部楼层 |阅读模式
本帖最后由 芯圣电子官方QQ 于 2023-7-25 10:53 编辑

HC89F003是一款兼容型的MCU。今天小编为大家介绍一下这款MCU的一个亮点 - 内部资源的管脚全映射。下面上MCU管脚图,由于管脚全映射的原因,在管脚图上面是看不到UART和SPI等功能的管脚的。
1.png
首先把HC89F003的管脚映射的寄存器贴出来并向大家一一解释。(见HC89F003数据手册的Io章节)
2.png
T0_MAP                定时器0
T1_MAP                定时器1
T3_MAP                定时器3
T4_MAP                定时器4
T5_MAP                定时器5
CLKO_MAP                时钟输出
PWM0_MAP                PWM0输出口
PWM01_MAP                PWM01输出口
PWM1_MAP                PWM1输出口
PWM11_MAP                PWM11输出口
PWM2_MAP                PWM2输出口
PWM21_MAP                PWM21输出口
PWM3_MAP                PWM3输出口
TXD_MAP                串口1的TXD口
RXD_MAP                串口1的RXD口
SS_MAP                SPI的使能控制口
SCK_MAP                SPI的时钟输出口
MOSI_MAP                SPI的 主输出从输入 口
MISO_MAP                SPI的 主输入从输出 口
TXD2_MAP                串口2的TXD口
RXD2_MAP                串口2的RXD口



HC89F003的管脚全映射,是指上图所说的资源可以映射到MCU中除了VDD和GND其他的全部管脚。
3.png
下面上程序,简单的演示下管教全映射的功能。

比如PWM0映射到P23。那么寄存器PWM0_MAP = 0x23;同时需要设置P23口为推挽输出,如果设置为输入模式是检测不到端口的PWM的。
以下是PWM的库函数版本的范例和寄存器范例。欢迎大家来询。

#include "hc89f_wdt.h"
#include "hc89f_clock.h"
#include "hc89f_gpio.h"
#include "hc89f_pwmgroup.h"

void main(void)
{
        WDT_TurnOff();                                                //关闭看门狗
        CLK_OscClockConfig(CLK_OSC_16MHZ);                        //设置OSC时钟为16M
        CLK_CpuClockConfig(2);                                        //设置CPU时钟为8M
        
        /*以下是PWM管脚映射*/
        GPIO_Init(GPIOT0,GPIO_PIN_0,GPIO_MODE_OUT_PP);        //P00推挽输出
        GPIO_Init(GPIOT0,GPIO_PIN_1,GPIO_MODE_OUT_PP);        //P01推挽输出
        PWM_PinRemapConfig(PWM_0_1,PWM_OUTPin_P00);        //PWM01通道映射P00口
        PWM_PinRemapConfig(PWM_0,PWM_OUTPin_P01);        //PWM0通达映射P01口


        /*以下是PWM模式设置*/
        PWM_Init(PWM0_Group,PWMCK_8,PWMX_HIGH_PWX1_LOW_VALID,INDEPENDENT_MODE);
        PWM_OutPutCmd(PWM_0_All,ENABLE);                        //PWM0全部通道输出使能
        PWM_PeriodConfig(PWM0_Group,0x03FF);                        //PWM周期0x03FF
        PWM_DutyCycleConfig(PWM0_Group,0x0155);                        //PWM0占空比33.4%
        PWM_DeadZoneConfig(PWM0_Group,0x0155);                        //PWM01占空比33.4%
        PWM_Cmd(PWM0_Group,ENABLE);                                //PWM0全部通道使能
        while(1);
}




dirtwillfly| | 2017-7-17 22:02 | 显示全部楼层

使用特权

评论回复
mcu_new| | 2017-7-18 15:43 | 显示全部楼层
看不懂

使用特权

评论回复
传说中的垚鸟|  楼主 | 2017-7-18 18:54 | 显示全部楼层

其他的公司的芯片的外设是固定在某一个IO口上的,但是我们的外设可以随意配置到任意的IO口上

使用特权

评论回复
传说中的垚鸟|  楼主 | 2017-7-18 18:58 | 显示全部楼层

就比如说你现在想用UART,TXD和RXD可以配置到任意的IO口上,这样在PCB布板的时候就方便很多

使用特权

评论回复
TXQDM| | 2017-7-22 11:17 | 显示全部楼层
这算是新世纪的黑科技吗,
貌似跟FPGA有的一拼啊

使用特权

评论回复
liufabing| | 2017-8-10 13:31 | 显示全部楼层
这种一般就不容易说画错引脚,还有芯片除了VDD和VSS,其它口都能当AD用.

使用特权

评论回复
木木guainv| | 2018-6-23 09:07 | 显示全部楼层
这个可是真不错

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:上海芯圣(holychip)电子股份有限公司
简介:上海芯圣电子股份有限公司(Holychip)是一家专注于芯片设计研发和销售的集成电路设计企业,专业从事MCU及MCU周边芯片的研发和销售,致力于为客户提供高性能、高性价比的芯片产品、应用开发工具和系统解决方案。

50

主题

90

帖子

15

粉丝