HT66F70A使用总结之IO端口

写作背景:合泰公司开发了一款IDE3000编译器,想找一些学生测试编译器是否有BUG,不过测试编译器需要有芯片,于是经过长达两个半月的测试,完成测试编译的任务同时,我也了解了合泰HT66F70A芯片的使用方法。


HT66F70A一共有A~H组IO口,每一组有8个IO端口,各对应1字节的数据寄存器。即PA~PH。除了IO的数据寄存器,还有输入输出控制寄存器PAC~PHC,上拉电阻控制寄存器PAPU~PHPU。A组除了以上三个寄存器以外比其他组多了一个寄存器PAWU,即唤醒功能寄存器。


下面对各个寄存器分别简单介绍

数据寄存器Pn(n为A~H)。对IO口输出高电平还是低电平,或保存IO口输入的是高电平还是低电平。

控制寄存器PnC(n为A~H)。选择IO引脚是输入状态还是输出状态,低电平为输出,高电平为输入。

上拉电阻寄存器PnPU(n为A~H)。低电平为对应的IO口上拉电阻除能,高电平为上拉电阻使能。

唤醒功能寄存器PAWU(A组IO口特有)。低电平除能,高电平使能。在使能状态下,当单片机进入休眠或空闲模式时, PA 口的其中一个引脚从高电平转为低电平即可唤醒单片机。


除了以上有关IO口的寄存器以外,还有引脚共用寄存器PxSn或IFSn等(x为A~H,n为数字)。

因为HT6670A芯片的引脚具有复用功能,每一个引脚可以选择是否作为IO口引脚,或其他功能诸如AD转换器的输入引脚ANn、IIC的控制引脚、PWN输出引脚等。


总而言之,如果想要使用此芯片IO口的功能,需要初始化有关IO口的三个寄存器以外,还要初始化引脚共用寄存器。


下面是点亮一个LED灯的程序。


#include "HT66F70A.h"

#define PINC _pgc3
#define LED	_pg3

//引脚配置
#define OUT 0
#define IN 1

//LED开关
#define ON	0
#define OFF	1

void main()
{
	_wdtc = 0xab;	//关闭看门狗
	_pgs1 = 0;	//设置引脚复用功能为IO口功能
	PINC = OUT;	//选择IO口为输出状态
	LED = ON;		//点亮一个LED灯
	while(1);
}

参考资料:HT66F70A芯片手册

你可能感兴趣的:(单片机,芯片,IO口,合泰)