6_22_天天向上

本文介绍了使用Zigbee技术的几种设备编程实例,包括变阻器、水银开关摇摆开关、光敏电阻及蜂鸣器等。通过具体的C语言代码示例,展示了如何进行信号读取与控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

BBC经典纪录片:与远古人同行(24集)

zigbee-变阻器
void main(void)
{
 clearIO();
 INT8 adc_value;
 UINT8 potVoltage=0;

 initAdc();
 
 while(1)
 {
  ADC_ENABLE_CHANNEL(ADC_AIN6);
  ADC_SINGLE_CONVERSION(ADC_REF_AVDD|ADC_8_BIT|ADC_AIN6);
  ADC_SAMPLE_SINGLE();
  while(!ADC_SAMPLE_READY());

  adc_value=ADCH;
  
  if(potValtage!=scaleValue(adc_value))
  {
   potVoltage=scaleValue(adc_value);
  }
  
  updateCounter(adc_value);
  halWait(10);
 }
}

zigbee-水银开关 摇摆开关
void main(void)
{
 clearIO();
 p1DIR|=0x10;
 p0DIR&=~0x40;
 while(1)
 {
  if(P0_6==0)
  {
   delay(DELAY_NUM);
   if(P0_6==0)
   P1_4=0;
  }
  else P1_4=1;
 }
}

zigbee-光敏电阻 //电流变化所致
void updateCounter(INT8 delay)
{
 static UINT8 counter=0;
 UINT16 i=0;

 i=((delay>0)?(0x7F-delay)*10:0x7F);
 halWait(i);

 counter++;

 SET_LED_MASK((BYTE)counter);
}

void main(void)
{
 clearIO();
 INT8 adc_value;
 initAdc();
 while(1)
 {
  ADC_ENABLE_CHANNEL(ADC_AIN7);
  ADC_SINGLE_CONVERSION(ADC_REF_AVDD|ADC_8_BIT|ADC_AIN7);
  ADC_SAMPLE_SINGLE();
  while(!ADC_SAMPLE_READY());
  adc_value=ADCH;
  updateCounter(adc_value);
  halWait(10);
 }
}

zigbee-蜂鸣器 联想到封装后的上位机用xml调用实现,对api的io口控制
void main(void)
{
 clearIO();
 IO_DIR_PORT_PIN(2,0,IO_OUT);
 while(1)
 {
  if(joystickPushed()) P2_0=1;
  if(buttonPushed()) P2_0=0;
 }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

doublewei1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值