打印
[通用8051核FLASH系列]

HC89S003F4开发板试用心得之——定时中断实现LED闪烁

[复制链接]
2130|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 芯圣电子官方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;

        }

}




开发三件套.jpg (412.29 KB )

开发三件套

开发三件套

开发板.jpg (368.52 KB )

开发板特写

开发板特写

芯片选型.png (79.55 KB )

芯片选型

芯片选型
沙发
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那样方便就好了。

使用特权

评论回复
5
狼烟客|  楼主 | 2018-5-2 08:55 | 只看该作者
Puremr 发表于 2018-4-28 15:15
芯圣的供电有点复杂,如果像STC那样方便就好了。

可能是有其他的什么考虑吧

使用特权

评论回复
6
abin88| | 2018-5-7 15:18 | 只看该作者
怎么都没找到 HC89S003F4 的KEIL   database,能给一份吗?或者告诉下载地址

使用特权

评论回复
7
狼烟客|  楼主 | 2018-5-9 09:30 | 只看该作者
abin88 发表于 2018-5-7 15:18
怎么都没找到 HC89S003F4 的KEIL   database,能给一份吗?或者告诉下载地址

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

HC89S003F4_Datasheet_Ver1.01.pdf

4.33 MB

使用特权

评论回复
8
Puremr| | 2018-5-24 15:33 | 只看该作者
狼烟客 发表于 2018-5-2 08:55
可能是有其他的什么考虑吧

手册再三强调对供电很严格,我觉得还是设计的问题。

使用特权

评论回复
9
Puremr| | 2018-5-24 15:33 | 只看该作者
abin88 发表于 2018-5-7 15:18
怎么都没找到 HC89S003F4 的KEIL   database,能给一份吗?或者告诉下载地址

官网就有的,芯圣的手册还是很全的。

使用特权

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

本版积分规则

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

4

主题

378

帖子

1

粉丝