单片机源程序如下:
- #include "ioCC2530.h" // 申明该文件中用到的头文件
- #define uint unsigned int
- #define uchar unsigned char
- //定义控制灯的端口
- #define LED0 P1_0 //定义LED_1为P10口控制
- #define LED1 P1_1 //定义LED_2为P11口控制
- //按键控制口
- #define KEY1 P0_0 //定义按键为P00口控制
- #define KEY2 P0_1 //定义按键为P01口控制
- #define KEY_1 1
- #define KEY_2 2
- void Delay(uint n);
- void InitLed(void)
- {
- P1DIR |= 0x13; //P10、P11定义为输出
- LED0 = 0;
- LED1 = 0;
- }
- void InitKey(void)
- {
- P0SEL &= ~0X03;
- P0DIR &= ~0X03; //按键在P00、P01口,设置为输入模式
- }
- void SET_MAIN_CLOCK(source)
- {
- if(source) {
- CLKCONCMD |= 0x40; // /* RC
- while(!(CLKCONSTA &0X40)); // /* 待稳
- }
- else {
- CLKCONCMD &= ~0x47; ///* 晶振
- while((CLKCONSTA &0X40)); // /* 待稳
- }
- }
- void Init_Watchdog(void)
- {
- WDCTL = 0x00; //时间间隔一秒,看门狗模式
- WDCTL |= 0x08; //启动看门狗
- }
- void FeedDog(void)
- {
- WDCTL = 0xa0;
- WDCTL = 0x50;
- }
- void main( void )
- {
- SET_MAIN_CLOCK(0) ; //设置系统晶振时钟
- InitLed(); //初始化LED
- InitKey(); //初始化按键控制IO口
- Init_Watchdog(); //初始化看门狗
- LED1 = 1; //当按下键1值时,系统不喂狗,一直复位,LED1则一直闪烁
- Delay(5000);
- while(1)
- {
- if (KEY1 != 0) //读取按键动作,如果按键没有按下则一直执行
- {
- FeedDog(); //喂狗指令(加入后系统不复位,小灯一直闪烁)
- LED0 = !LED0;
- Delay(5000);
- }
- LED1 = 0;
- Delay(5000);
- }
- }
- void Delay(uint n)
- {
- uint i;
- for(i=0;i<n;i++);
- for(i=0;i<n;i++);
- for(i=0;i<n;i++);
- for(i=0;i<n;i++);
- for(i=0;i<n;i++);
- }
复制代码
Zigbee代码下载:
源代码.zip
(250.28 KB, 下载次数: 4)
|