本帖最后由 芯圣电子官方QQ 于 2023-7-25 11:12 编辑
拿到芯圣的开发版已经有一段时间了,由于工作直到现在才开始测试。
下面是关于这款开发版MCU的简介:
HC89F0541是芯圣电子研发的增强型1T 8051单片机,CPU工作频率可达16MHz,内置32K Bytes FLASH程序存储器和256 Bytes IRAM 和 1K Bytes XRAM数据存储器,支持2.0V至5.5V宽工作电压和-40℃至85℃工作温度,并具备4KV ESD和4KV EFT的高抗干扰能力。
HC89F0541提供了丰富的外设资源,提供了丰富的外设资源,包含5个16位定时器/计数器,3组12位带死区控制互补PWM,支持最多16+2 ch 12位ADC检测,1个8位PWM,2个UART,1个SPI,1个IIC,1个段码LCD驱动等。内部提供最高32MHz时钟,外设可以通过配置选择最高32MHz时钟工作。内部全映射PTM模块,提供配置方式将全部的外设资源引脚映射到单片机18个双向IO口的任意引脚,大大方便用户的硬件设计。
HC89F0541内建误差<2%的高精度32MHz RC和11+2路12位ADC,并具备看门狗、低压检测和CRC校验等功能,提供LQFP48 , LQFP44 ,LQFP32三种封装。
应用领域:
燃气报警器、断路器、电子烟、电动车表头、2.4G灯控、电子标签、智能锁、电动牙刷、无线充电等。
关键特性:
CPU
增强型1T 8051内核
工作频率可达16MHz
工作电压:2.0V-5.5V
工作温度:-40°C-+85°C
存储器
32K Bytes FLASH ROM
256 Bytes IRAM 和 1K Bytes XRAM,
可配置的Data FLASH
灵活的代码保护模式
支持在应用编程IAP(In Application Programming)
支持在系统编程ISP(In System Programming)
支持在电路编程ICP(In Circuit Programming)
时钟
内部误差<2%的高精度32MHz RC
内部44KHz RC
外部高频晶振4MHz-20MHz
外部低频晶振32.768KHz
GPIO
最多41/29个双向I/O口
多种模式可配:输入、带上拉输入、带下拉输入、施密特输入、模拟输入、强推挽输出、开漏输出、开漏带上拉输出
所有端口可配置为1/2bias、1/3bias软件LCD驱动
定时器/计数器
T0/T1兼容标准8051,16位自动重载
T3可以工作在掉电模式
T4可以使用外部信号触发定时
T5带捕获功能
PWM
最多3组12位带死区控制互补PWM
可配置为6路独立输出
可当定时器使用
通讯模块
2个UART,可达115200 bps
1个SPI,可达8 MHz
1个 IIC,最多400 K
模拟数字转换器(ADC)
12位ADC,支持16路外部输入和2路内部输入ADC检测
ADC参考电压可选内部高精度VREF、外部VREF、VDD
选择外部参考电压VREF或VDD时,最快ADC检测时间为2μs
选择内部参考电压VREF时,最快ADC检测时间为10μs
支持5种转换模式:单次模式、连续模式、带缓存的连续模式、单次扫描模式、连续扫描模式
内置省电唤醒功能
关于日常开发使用,这款单片机足够了,并且有HC-LINK在线仿真调试,可以使整个工作效率大大提高。
今天就用OLED来测试一下,我所使用的是基于I2C接口的。为此,我还专门买了一块来进行测试。并且用HC89F0541开发板做了一个简单的尝试实验。
该OLED屏与MCU的连接关系为:
SDA 和 P35
SCK 和 P34
下面是字库部分的程序函数
void OLED_ShowCHinese(u8 x,u8 y,u8 no)
{
u8 t,adder=0;
OLED_Set_Pos(x,y);
for(t=0;t<16;t++)
{
OLED_WR_Byte(Hzk[2*no][t],OLED_DATA);
adder+=1;
}
OLED_Set_Pos(x,y+1);
for(t=0;t<16;t++)
{
OLED_WR_Byte(Hzk[2*no+1][t],OLED_DATA);
adder+=1;
}
}
下面是主函数部分
void main(void)
{
unsigned char i;
while((CLKCON&0x20)!=0x20);
CLKSWR = 0x51;
while((CLKSWR&0xC0)!=0x40);
CLKDIV = 0x01;
P2M4 = 0xC2;
P3M5 = 0xC2;
P3M4 = 0xC2;
P3M3 = 0xC2;
P1M7 = 0xC2;
delay_ms(5000);
OLED_Init();
while(1)
{
OLED_Clear();
OLED_ShowString(22,0,"OLED TEST");
OLED_ShowString(8,2," Jinglixixi");
OLED_ShowString(20,4,"2020/07/01");
delay_ms(50000);
OLED_Clear();
OLED_ShowCHinese(0,0,0);
OLED_ShowCHinese(18,0,1);
OLED_ShowCHinese(36,0,2);
OLED_ShowCHinese(54,0,3);
OLED_ShowCHinese(72,0,4);
OLED_ShowCHinese(90,0,5);
OLED_ShowCHinese(108,0,6);
delay_ms(50000);
}
}
以上是在OLED上显示小汉字的部分程序,综合来看这款开发版还是很有优势的。对于新手学习、产品开发等都有很好的可移植性。 |