打印
[通用8051核FLASH系列]

HC89F003F4开发板试用心得之一---LED灯交替闪烁(附代码+注释)

[复制链接]
2296|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
VISUN|  楼主 | 2018-3-19 16:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 芯圣电子官方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 ///////////////////////////////////////////

以上就是代码的实现过程,大家有疑问可以互相探讨,共同进步!!












沙发
ENDRROB| | 2018-3-27 20:20 | 只看该作者
可以在Linux环境下,编译吗

使用特权

评论回复
板凳
guanjiaer| | 2018-7-13 11:50 | 只看该作者
恩 基础的小灯程序

使用特权

评论回复
地板
冷画| | 2018-7-13 13:55 | 只看该作者
芯圣代理商 主营OTP+003 QQ1449251178

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

10

帖子

1

粉丝