这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » 国产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 跳转至

回复

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