|
发表于 2018-9-26 15:16:38
|
显示全部楼层
前面的帖子原理已经解释得比较详细了,贴出代码:
$Device= tn13
$Stack = 32
$Clock = 9.6
$Def IO_Switch = PINB.1
$Def IO_RELAY = PORTB.3 '继电器接到这里
Dim rADC As Word
Dim rc As Word
Dim i As Byte
DDRB = &b11111001
PORTB = &b00000000
'Start Adc,Vref=Int '配置 ADC
$Asm
ldi zl,0x41
out ADMUX,zl
ldi zl,0x86
out ADCSRA,zl
$EndAsm
Do
rADC = 0
rc = 0
For i = 0 To 20
rADC = Adc(1)
rc = rc + rADC
Next i
rc = rc / 20
If rc > 700 Then '如果 CPU 供电处电压达到预设值则闭合继电器
IO_RELAY = 1
Else
If IO_Switch = 0 Then '继电器闭合后锁定
IO_RELAY = 0
End If
End If
Loop |
|