while(1)
{
if(sound>threshold)
{
LED_Close()
}
升粗else
{
LED_Open()
}
delay_second(10)
}
你的声音过来是指唯什么值,AD采集到的模拟量还是IIS之类的数字量,驱动那部分肯定要你自己写,官吵逗镇网里面肯定有例程,MPLAB里面应该也有驱动生成工具。
灯是开关量控制,IO口高低电平驱动三极管或者MOS或者继电器来驱动灯。
假设你有XPT2046的或绝困源程序,且上面这段代码可以正常采集AD则只需修改宏隐main函数
sbit led=//引脚定义
#define VALUE//某个经验值
void main(void)
{
uint temp,count
while(1)
{
if(count==50)
{
count=0
temp = Read_AD_Data(0xE4) // AIN3 外部输入
if(temp>VALUE)led=0;//判断大于某个分贝衫念则led亮,否则灭
else led=1;
}
count++
DisplayData[0]=DIG_CODE[0]
DisplayData[1]=DIG_CODE[0]
DisplayData[2]=DIG_CODE[0]
DisplayData[3]=DIG_CODE[0]
DisplayData[4]=DIG_CODE[temp%10000/1000]
DisplayData[5]=DIG_CODE[temp%1000/100]
DisplayData[6]=DIG_CODE[temp%100/10]
DisplayData[7]=DIG_CODE[temp%10/1]
DigDisplay()
}
}
I0.0按下,启动,三灯依次点亮,把网络1中T37设定的300改为30即为3s。
对于TON模块而言,有两个输入和两个输戚孝出,IN:布尔值没做(上升沿启动定时器,下降沿重置定时器),PT:时间类型(定时的时间间隔),Q:布尔值(当到达定时时间,则为TRUE),ET:时间类型(周期内用掉的枯仔衡时间)。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)