这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界» 论坛首页» 嵌入式开发» 国产MCU» 芯圣HC18M003的GPIO口操作指令

共2条 1/1 1 跳转至

芯圣HC18M003的GPIO口操作指令

专家
2023-09-09 19:08:51 打赏

芯圣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)

1.png

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

2.png

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

3.png

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

4.png

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

5.png

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

6.png

学习了这些指令,我们就可以做一个简单的小测试程序。

以示例工程为模板,编写以下代码:

《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口的最简单操作。





关键词: 菜鸟学单片机 芯圣 HC18M003 GPIO操作

高工
2023-09-09 20:29:56 打赏
2楼

好久没有使用过8位单片机了


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册]