本帖最后由 芯圣电子官方QQ 于 2023-7-24 15:04 编辑
学习下HC89S003P芯片GPIO端口输出测试
一、手册中GPIO相关的资料
1.1、GPIO端口配置寄存器
这次测试主要测试端口输出功能,所以只关注输出配置设置。
二、硬件连接
硬件上使用P00和P11外接两个LED指示灯来看GPIO输出状态
三、程序部分
3.1、main.c
#define ALLOCATE_EXTERN
#include "config.h"
//系统初始化
void SystemInit(void)
{
/************************************系统初始化****************************************/
WDTCCR = 0x00; //关闭看门狗
while((CLKCON&0x20)!=0x20); //等待内部高频RC起振
CLKSWR = 0x51; //选择内部高频时钟为主时钟,内部高频RC2分频,Fosc=16MHz
while((CLKSWR&0xC0)!=0x40); //等待内部高频切换完成
CLKDIV = 0x01; //Fosc1分频得到Fcpu,Fcpu=16MHz
}
void main(void)
{
uint i;
SystemInit(); //系统初始化
Init_Port(); //端口初始化
//CCO_Init(); //CCO输出
while(1)
{
P0_0=0;
P1_1=1;
for(i=0;i<60000;i++);
P0_0=1;
P1_1=0;
for(i=0;i<60000;i++);
}
}
3.2、gpio初始化程序
#include "config.h"
void Init_Port(void)
{
//P0xM[3:0]
//1x00 -- 推挽输出
//1x01 -- 开漏输出
//1x10 -- 开漏带上拉输出
P0M0 = P0M0&0xF0|0x08; //P00设置为推挽输出
P0M0 = P0M0&0x0F|0x80; //P01设置为推挽输出
P1M0 = P1M0&0x0F|0x80; //P11设置为推挽输出
}
四、执行结果
|