芯圣HC18M003是上海芯圣电子股份有限公司生产的一款8位单片机,是一颗采用高速低功耗 CMOS 工艺设计开发的增强型 8 位 ADC 单片机,内部有4K*16bit MTP 程序存储器,512 *8bit RAM,最多 18 个双向 I/O 口,3 个定时器/计数器,1 组 12 位带死区控制互补 PWM,1 个 UART,1 个 SPI,1 个 IIC,1 个外部中断,PORTB 端口支持电平中断,最多 8通道电容触摸按键检测,最多 11+1 路 12 位 ADC,内置高性能的电源稳压电路,四种系统工作模式(高频、低频、绿色、休眠)和 12 个中断源。
通常入手一个单片机,进行的最简单测试都是点亮LED之类的。这款芯片有自己的操作指令集,不能用51单片机的汇编语言操作。以下做一下简单总结。
一、通用及复用I/O
HC18M002/003 所有 I/O 口均可由软件配置成多种工作类型之一,具体为:输入、输出、上下拉。
HC18M002/003 的 PORTC4 为真开漏口。
HC18M002/003 上电复位后,所有 IO 口都默认为模拟输入。
1、IO口输入输出寄存器 TRISx(x=A、B、C、D)

2、IO口模拟模式控制寄存器 ANSELx(x=A、B、C、D)

3、IO口上拉控制寄存器 WPUx(x=A、B、C、D)

4、PB口上拉控制选择寄存器 OPTION

5、IO 口下拉控制寄存器 WPDx(x=A、B、C、D)

6、IO口数据寄存器 PORTx(x=A、B、C、D)

学习了这些指令,我们就可以做一个简单的小测试程序。
以示例工程为模板,编写以下代码:
《holychip_define.h》
#ifndef __holychip_define__ #define __holychip_define__ #include "hc18m003.h" #endif
《main.c》
#include "holychip_define.h"
// 延时毫秒
void delay(unsigned int d) {
unsigned int i=250;
while (d--) {
for (i=0; i< 250; i++) {
}
}
}
void main(void) {
/*********************************系统初始化*******************************************/
OSCCON = 0x04; //Fosc=32MHz,Fcpu=4MHz(Fosc四分频,2T)
/**********************************IO初始化********************************************/
TRISA = 0x01; // PA0设为输出模式
ANSELA = 0x01; // PA0设为数字模式
// WPUA = 0x01; // PA0设为上拉
while(1) {
PORTA = 0x01;
delay(500);
PORTA = 0x00;
delay(500);
}
}编译这个程序,并下载到芯片中。重新为芯片建立供电(3.3V即可,7脚接GND,9脚接Vcc),在PA0引脚(第10脚)上接上LED和限流电阻到Vcc端。通电后,就可以看到LED周期性地闪烁。
到这里我们就验证了HC18M003芯片GPIO口的最简单操作。
我要赚赏金
