本帖最后由 芯圣电子官方QQ 于 2023-7-24 15:29 编辑
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
首先先感谢21ic.com、感谢芯圣、感谢这个平台!
HC89F003开发板--------> LED篇(主要涉及 GPIO配置 以及 时钟的初始化)
1、安装官方驱动“HC-Link.exe”(包括JATG和USB驱动) ,因为没权限发不了链接,所以可以去芯圣官网下载
2、打开IDE--keil,新建工程项目LED_PROJECT
3、选择“Holychip MCU Database”系列芯片,选择HC89F003(此处针对本开发板芯片所选)
4、编写代码(代码实现如下+注释)
///////////////////////////////main.c文件 ///////////////////////////////////////////
#define ALLOCATE_EXTERN //预编译(XRAM部分特殊寄存器)
#include <main.h>
int main(void)
{
CLKSWR = 0x51; //设置时钟输出选择以及分频系数
while(CLKCON & 0x20 != 0x20); //等待设置完成
CLKDIV = 0x01;
LED_INIT(); //LED1、LED2 <==> GPIO初始化
while(1)
{
/* 实现LED1、LED2 200ms交替闪烁*/
LED1_ON_LED2_OFF;
Delay_Ms(200);
LED1_OFF_LED2_ON;
Delay_Ms(200);
}
return 0;
}
///////////////////////////////main.h文件 ///////////////////////////////////////////
#ifndef __MAIN_H_
#define __MAIN_H_
#include <HC89F003.h>
#include <led.h>
#include <delay.h>
#define DELAY_ENABLE
#define LED1_ON_LED2_OFF P2 = 0 << 2;P1 = 1 << 0;
#define LED1_OFF_LED2_ON P2 = 1 << 2;P1 = 0 << 0;
#endif
///////////////////////////////led.c文件 ///////////////////////////////////////////
#include <led.h>
void LED_INIT()
{
P2M1 = P2M1 & 0xF0 | 0x08; //P22 LED1
P1M0 = P1M0 & 0xF0 | 0x08; //P10 LED2
P0 = 1<<0;
P2 = 1<<2;
}
///////////////////////////////led.h文件 ///////////////////////////////////////////
#ifndef __LED_H_
#define __LED_H_
#include <main.h>
extern void LED_INIT();
#endif
///////////////////////////////delay.c文件 ///////////////////////////////////////////
#include <delay.h>
#ifdef DELAY_ENABLE
void Delay_Ms(u16 Time_count)
{
u16 j;
for(;Time_count > 0;Time_count --)
for(j = 1596;j > 0;j --);
}
#endif
///////////////////////////////delay.h文件 ///////////////////////////////////////////
#ifndef __DELAY_H_
#define __DELAY_H_
#include <main.h>
extern void Delay_Ms(u16 Time_count);
extern void Delay_Us(u16 Time_count);
#endif
///////////////////////////////end ///////////////////////////////////////////
以上就是代码的实现过程,大家有疑问可以互相探讨,共同进步!!
|