سلام بر دوستان
من قصد استفاده از میکرو مگا 8 دارم. زبان برنامه نویسی بسکام است. و کریستال داخلی فعال است
من میخواهم دامنه سیگنال از 10 میلی ولت تا 500 میلی ولت را با کمک adc داخلی میکرو اندازه گیری کنم و روی صفحه نمایش کارکتری نمایش دهم
آیا میکرو می تواندبرای شروع از حداقل 10 میلی ولت را اندازه گیری کند؟؟
آیا نیاز به مقاومت پول آپ یا پول دان است؟ اگه نیاز است چه مقدار باشد؟
برنامه زیر در شبیه سازی پروتیوس جواب میدهد. آیا در عمل نیز درست است و بدون مشکل؟؟
سطر بالا در صفحه نمایش ولتاز بر اساس ولت و سطر پاینی بر اساس میلی ولت نمایش میدهد.
$regfile = "m8def.dat"
$crystal = 1000000
Config Lcdpin = Pin , Rs = Pind.0 , E = Pind.2 , Db4 = Pind.4 , Db5 = Pind.5 , Db6 = Pind.6 , Db7 = Pind.7
Config Lcd = 16 * 2
Cursor Off
Cls
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc
Dim W As Word
Dim Input_mv As Single
Dim Input_v As Single
Do
Gosub Read_the_adc
Gosub Display_lcd
Waitms 200
Loop
End
'**********************************************
Read_the_adc:
W = Getadc(7)
Input_mv = W * 4.8828125
Input_v = Input_mv / 1000
Return
'**********************************************
Display_lcd:
Locate 1 , 1 : Lcd "Input: " ; Fusing(input_v , "#.#") ; "V"
Locate 2 , 1 : Lcd "Input: " ; Fusing(input_mv , "#.#") ; "mV"
Return
من قصد استفاده از میکرو مگا 8 دارم. زبان برنامه نویسی بسکام است. و کریستال داخلی فعال است
من میخواهم دامنه سیگنال از 10 میلی ولت تا 500 میلی ولت را با کمک adc داخلی میکرو اندازه گیری کنم و روی صفحه نمایش کارکتری نمایش دهم
آیا میکرو می تواندبرای شروع از حداقل 10 میلی ولت را اندازه گیری کند؟؟
آیا نیاز به مقاومت پول آپ یا پول دان است؟ اگه نیاز است چه مقدار باشد؟
برنامه زیر در شبیه سازی پروتیوس جواب میدهد. آیا در عمل نیز درست است و بدون مشکل؟؟
سطر بالا در صفحه نمایش ولتاز بر اساس ولت و سطر پاینی بر اساس میلی ولت نمایش میدهد.
$regfile = "m8def.dat"
$crystal = 1000000
Config Lcdpin = Pin , Rs = Pind.0 , E = Pind.2 , Db4 = Pind.4 , Db5 = Pind.5 , Db6 = Pind.6 , Db7 = Pind.7
Config Lcd = 16 * 2
Cursor Off
Cls
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc
Dim W As Word
Dim Input_mv As Single
Dim Input_v As Single
Do
Gosub Read_the_adc
Gosub Display_lcd
Waitms 200
Loop
End
'**********************************************
Read_the_adc:
W = Getadc(7)
Input_mv = W * 4.8828125
Input_v = Input_mv / 1000
Return
'**********************************************
Display_lcd:
Locate 1 , 1 : Lcd "Input: " ; Fusing(input_v , "#.#") ; "V"
Locate 2 , 1 : Lcd "Input: " ; Fusing(input_mv , "#.#") ; "mV"
Return
دیدگاه