本帖最后由 芯圣电子官方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; } }
|