HC89F003 是一颗采用高频低功耗 CMOS 工艺设计开发的增强型 8 位单片机,内部有 16K Bytes FLASH 程序存储器,256 Bytes IRAM 和 256 Bytes XRAM,18 个双向 I/O 口,5 个 16 位定时器/计数器,3 组 12 位带死区控制互补 PWM,1 个 8 位 PWM,2 个 UART,1 个 SPI,16 个外部中断,8+2 路 12 位ADC,四种系统工作模式(正常、低频、掉电和空闲)和 16 个中断源。
在单片机上用到很多的中断。在这一款芯片上足够满足绝大部分的产品设计。
Hc89f003具有:
16个中断源
4级中断优先级
16个外部中断
重点来了:一般我们的单片机,比如像51,比较少重映射功能的,比如stm32,他们的重映射功能对应的引脚基本都有固定的引脚。但是,hc89f003不一样了,他绝大部分引脚都可以重映射,比如P00可以作为io口,可以重映射为usart_tx、usart_rx、iic、spi等等等等。也就是说,设计板子的时候不用害怕硬件连接错误,只要连接上了,基本可以实现重映射功能。
Datasheet给出的说明:绝大多数复用端口可以映射到任意 I/O 口,但 PWM 故障检测脚、ADC 输入、INT0-15 功能口等除外。
注意的是:多个输出映射到一个端口上时,只能有一个输出有效。端口重映射类似中断一样还有优先级的。
*下面是默认的优先级:
比如:
CLKO_MAP 配置为 0x01 选择 P0.1 口作为 CLKO 的输出口,T4_MAP 也配置为 0x01,这个时候硬件会按上面的优先级,P0.1 将配置为 CLKO 的输出口,而 T4_MAP 的配置无效。
当所有的端口映射控制寄存器都不等于0x01时,即所有的功能口都不选择P0.1作为输入输出口,此时这个端口的输出就是 P0 端口数据寄存器的第 1 位。
输入可以配置为多个功能从一个 PAD 引脚进入,比如:
T0_MAP 配置为 0x23,则选择 P2.3 作为 T0 的输入口,T5_MAP 也配置为 0x23,这样从 P2.3 端口进入的信号同时作用于 T3 和 T5。
将 TXD 和 RXD 都配置到一个端口上时,并且此端口设置为输出,则 TXD 和 RXD 将内部连接起来。
在输入时,无论端口是什么功能,读端口数据寄存器都读芯片引脚上值。
对于重映射功能有疑问的请仔细阅读官方datasheet。http://www.holychip.cn/uploadfiles/release/preview/HC89F003_003P_SPEC_Ver1.03.pdf(毕竟是中国芯圣产的,datasheet阅读起来毫无压力,以前看英文的,让我这种四级都没过的孩子头都大了)
HC89F003 使用注意事项 :(官方datasheet的重要说明,使用芯片时一定要认真看datasheet)
1、 为保证系统的稳定性,必须在 VDD 和 GND 之间接一电容(容值须等于或大于 0.1μF)。(对于这点,一般我们用芯片的时候都会这样子做,加个电容)
2、 为保证系统的上电稳定性,建议客户程序在系统产生 POR 复位后进行一次重读代码选项的软复位操作。官方说明这项已经改进(我觉得还是很OK的可以去官网下载新版的datasheet)
3、 当使用 ADC 模块时,不论参考电压选择的是什么,系统工作电压 VDD 必须高于 2.7V。(参考电压一般为GND,这个vdd一般为3.3v)
4、 外部中断在使用查询方式时,无**常清除中断标志位。可以通过先禁止中断使能位再清除中断标志,在完成清除中断标志位后再使能外部中断来进行正常的外部中断产生查询。使用中断方式时,无该问题。
5、 当用户使用 T3 计数时钟源选择端口输入外部时钟,应使 TR3 和 T3CLKS[1:0]的配置同时进行(即用一条指令完成配置)。(个人感觉比较奇怪,但是还是可以按照他的做的。他说一条指令就一条指令吧。)
介绍了那么多,是时候上点开箱图了。
国庆回家前接到板子,小的让我出乎意料啊,感谢21ic小喇叭,开心。
打开之后可见一个开发板,一个51link以及一根数据线。
初次见到51—link,有点小小的惊讶。哈哈哈,怪我见识不够。。。。得好好努力了。
打开看看51link里面是什么东西,一看,吓一跳,原来是stm32f1系列芯片。
这个小板子做的还是挺精致的,按键,一些必要的电路都搭载在这一小块上面。
20pin的io口所有已经引出了。板载ch340驱动电路
然后下载回来一堆资料,开干,不就是51内核的芯片吗,不难吧。(这是我刚开始的想法。。。我发现我错了,做智能车的时候,我就说过,当你一开始就轻视了它,你就已经输了一半了。。。不过还好,我还是可以把它搞定的哈哈)
到芯圣电子的官网下载回来一堆资料,慢慢看,装驱动,装hc-link,然后打开例程代码,打开datasheet,慢慢搞。。。
我也是先下载回来的,然后先装hc-51link,这个比较简单,那里也有用户手册。
对其他系统讲解的很详细,本人是64位 win7的,比较简单。
请注意:安装在keil文件夹下。
请注意:安装在keil文件夹下。
请注意:安装在keil文件夹下。
重要的事情说3遍。
然后一直next就行了,建议把360啊什么杀毒的软件退出再安装。
然后打开flash技术资料> F003 Library Example V1.01
这是库函数版本的例程,很像stm32。入门玩起来不难。
F003 Register ExampleV1.01>这是寄存器版本的。我没看。
随便打开一个gpio的工程:
我初次一看,哎呀,怎么这么熟悉啊,,,,,哈哈哈
进入系统初始化看一下,核心部分就是选择系统时钟....