📄 adc实验程序.bas
字号:
'*****************************************************************
'利用单片机ADC实验程序
'程序语言:BASCOM-AVR
'编译版本BASCOM-AVR 1.11.8.3
'本程序 ADC使用中断
'程序编译、仿真通过
'参考p223例8.35
'******************************************************************
$regfile = "m16def.dat" ' 定义目标单片机是ATmega16
$crystal = 8000000
Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , E = Portb.4 , Rs = Portb.5
Config Lcd = 16 * 2
Config Adc = Single , Prescaler = Auto '设定ADC使用在单次转换模式,转换频率由编译器自动选择
Dim W As Integer , Channel As Byte , Parameter1 As Word , Parameter2 As Word
Channel = 4 '使用4号模拟输入通道
Parameter1 = 614
Parameter2 = 409
Leds Alias Portd
Const Red = &B011
Const Green = &B101
Const Yellow = &B110
Enable Interrupts ' 中断使能
Start Adc
On Adc Adc_isr ' ADC转换结束中断入口地址
Ddrd = &H07
Do '死循环,等待中断
nop
Loop
End
Adc_isr: 'Adc 转换结束中断服务程序
W = Getadc(channel)
If W > Parameter1 Then '输入电压高于3v时
Leds = Red
Locate 1 , 2
Lcd "dayu3V"
Elseif W < Parameter2 Then ' 输入电压低于2v时
Leds = Yellow
Locate 1 , 2
Lcd "diyu2V"
Else '输入电压介于2V与3V之间时
Leds = Green
Locate 1 , 2
Lcd "zhongjian"
End If
Return
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -