[通用8051核FLASH系列] HC89S003F4开发板试用心得之——定时中断实现LED闪烁

[复制链接]
 楼主| 狼烟客 发表于 2018-3-27 19:47 | 显示全部楼层 |阅读模式
本帖最后由 芯圣电子官方QQ 于 2023-7-24 15:38 编辑

感谢芯圣和二姨家,之前申请的芯圣开发板已经到手了,按照活动规则,要分享使用心得。水平有限,如有不对的地方还请指教。


先上几个图吧,分别是开发三件套与开发板图特写:

开始进入正题。

一、环境

使用keil C51环境,此外要从芯圣官网下载“HC-LINK V3.0.3.0.zip”keil插件以获得相应的器件型号。解压出压缩包后有一个HC-LINK_工具用户手册_Ver1.02,按照里面的步骤执行即可。


二、烧写器驱动

同样的,在官网下载HC-LINK驱动,同样的,解压压缩包后,有一份HC工具驱动_用户手册,阅读按照指示安装即可。


以上两个均提示文件过大,附下载地址:http://www.holychip.cn/kfgj/info_14.aspx?itemid=390(从另外一哥们的分享贴挪来的,善哉善哉。。。)


三、建立工程


1、实验目的:P2^2口接led小灯,实现1s闪烁一次的效果。


2、芯片选型:选择;HC89S003F4。

3、新建mian.c源文件。

附程序代码:


#include "HC89S003F4"


#define TRUE  1

#define FALSE 0


#define LED_TOGGLE                          {P2_2 =~ P2_2;}  //LED灯取反

#define GLOBAL_INTERRUPT_ENABLE  {EA = TRUE;}          //打开全局中断

#defien WDT_DISABLE                        {WDTCCR = 0x00;} //关闭看门狗


unsigned char timer0_cnt;


void clock_initial(void)

{

        while((CLKCON&0x20)!=0x20);                        //等待内部高频RC起振

        CLKSWR = 0x51;                                                //选择内部高频时钟为主时钟,内部高频RC2分频,Fosc=16MHz

        while((CLKSWR&0xC0)!=0x40);                        //等待内部高频切换完成

        CLKDIV = 0x01;                                                //Fosc1分频得到Fcpu,Fcpu=16MHz

}


void gpio_initial(void)

{

         P2M1 = P2M1&0xF0|0x08;                                //P22设置为推挽输出

}


void timer0_initial(void)

{

        TCON1 = 0x00;                                                //Tx0定时器时钟为Fosc

        TMOD = 0x00;                                                //16位重装载定时器/计数器


        //定时10ms : 65536 - ((10/1000) / (1/(Fosc / Timer分频系数))) = 65536 - ((10/1000) / (1/(16000000 / 12))) = 0xcbee

        TH0 = 0xcb;

        TL0 = 0xee;                                                        //T0定时时间1ms

        IE |= 0x02;                                                        //打开T0中断

        TCON |= 0x10;                                                //使能T0


        EA = 1;                                                                //打开总中断

}


int main()

{

        WDT_DISABLE


        clock_initial();


        gpio_initial();


        timer0_initial();


        GLOBAL_INTERRUPT_ENABLE


        while(1)

        {

                ;

        }


    return 0;

}


/***************************************************************************************

  * @说明          T0中断服务函数

  *        @参数        无

  * @返回值 无

  * @注                无

***************************************************************************************/

void timer0_interrupt_handler(void) interrupt TIMER0_VECTOR        //10ms

{

        if(++timer0_cnt < 100)

        {

                if(timer0_cnt % 10 == 0)                        //100ms

                {

                        ;

                }

                else if(timer0_cnt % 50 == 0)            //500ms

                {

                        LED_TOGGLE                                    //LED闪烁

                }

                //如有需要,添加其它时基(1s以内)

        }

        else

        {

                timer0_cnt = 0;

        }

}




开发三件套

开发三件套

开发板特写

开发板特写

芯片选型

芯片选型
Bruing 发表于 2018-4-26 23:04 | 显示全部楼层
你的hclink可以直接供电下载吗?为什么别人的都可以,就我的不可以。
 楼主| 狼烟客 发表于 2018-4-27 11:00 | 显示全部楼层
Bruing 发表于 2018-4-26 23:04
你的hclink可以直接供电下载吗?为什么别人的都可以,就我的不可以。

不能,要电源供电才行
Puremr 发表于 2018-4-28 15:15 | 显示全部楼层
芯圣的供电有点复杂,如果像STC那样方便就好了。
 楼主| 狼烟客 发表于 2018-5-2 08:55 | 显示全部楼层
Puremr 发表于 2018-4-28 15:15
芯圣的供电有点复杂,如果像STC那样方便就好了。

可能是有其他的什么考虑吧
abin88 发表于 2018-5-7 15:18 | 显示全部楼层
怎么都没找到 HC89S003F4 的KEIL   database,能给一份吗?或者告诉下载地址
 楼主| 狼烟客 发表于 2018-5-9 09:30 | 显示全部楼层
abin88 发表于 2018-5-7 15:18
怎么都没找到 HC89S003F4 的KEIL   database,能给一份吗?或者告诉下载地址

其实,有很多帖子里面都有的,给你贴一份

HC89S003F4_Datasheet_Ver1.01.pdf

4.33 MB, 下载次数: 4

Puremr 发表于 2018-5-24 15:33 | 显示全部楼层
狼烟客 发表于 2018-5-2 08:55
可能是有其他的什么考虑吧

手册再三强调对供电很严格,我觉得还是设计的问题。
Puremr 发表于 2018-5-24 15:33 | 显示全部楼层
abin88 发表于 2018-5-7 15:18
怎么都没找到 HC89S003F4 的KEIL   database,能给一份吗?或者告诉下载地址

官网就有的,芯圣的手册还是很全的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:含着泪 我一读再读 却不得不承认 青春 是一本太仓促的书

4

主题

378

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部