با سلام خدمت دوستان. یک راهنمایی لازم دارم. من یک آمپر متر که با avr کار میکنه را دارم که میخواهم مقدار آمپر را به صورت عدد صحیح و بدون اعشار بر روی lcd کارکتری نمایش دهد. محدوده نیز بین 1 میلی آمپر الی 300 میلی آمپر است. هر کاری میکنم نمی تونم عدد را به صورت بدون اعشار نشون بدم. دوستان اگه ممکنه راهنمایی کنن از دو دستور FORMAT و دستور Fusing هم استفاده کردم فقط میشه اعداد را به تعداد اعشار دلخوان تنظیم کرد نمیشه انگار کلا صحیح کرد. برنامه به بان بیسیک برای مگا 8 است.
$regfile = "m8def.dat"
$crystal = 1000000
Config Lcdpin = Pin , Rs = Pind.1 , E = Pind.2 , Db4 = Pind.3 , Db5 = Pind.4 , Db6 = Pind.5 , Db7 = Pind.6
Config Lcd = 16 * 2
Cursor Off
Cls
Config Adc = Single , Prescaler = auto , Reference = Avcc
Start Adc
Config Portd = Output
Dim W As Word
Dim Input_mv as Single
Dim Input_v As Single
dim x as Single
Dim W2 As Word
Dim Input_mv2 As Single
Dim Input_v2 As Single
Current:
Cls
Do
Gosub Read_the_adc
Gosub Display_lcd
Waitms 5
Loop
End
'**********************************************
'**********************************************
Read_the_adc:
W = Getadc(5)
Input_mv = W * 0.422510455
Input_v = Input_mv / 1000
x=Input_mv
W2 = Getadc(4)
Input_mv2 = W2 * 4.8828125
Input_v2 = Input_mv2 / 1000
Return
'**********************************************
Display_lcd:
Locate 1 , 1 : Lcd "B1: " ; Fusing(input_mv , "#.#") ; "mA"
Locate 2 , 1 : Lcd "B2: " ; Fusing(input_mv2 , "#.#") ; "mA"
Return
'**********************************************
'**********************************************
'**********************************************
همچنین این قسمت صفحه نمایش را به شکل ذیل درآوردم اما علامت اعشار ( نقطه) وجود داره. علامت نقطه را نمیشه حذف کرد بسکام خطا میده.
Display_lcd:
Locate 1 , 1 : Lcd "B1: " ; Fusing(input_mv , "#.") ; "mA"
Locate 2 , 1 : Lcd "B2: " ; Fusing(input_mv2 , "#.") ; "mA"
return
$regfile = "m8def.dat"
$crystal = 1000000
Config Lcdpin = Pin , Rs = Pind.1 , E = Pind.2 , Db4 = Pind.3 , Db5 = Pind.4 , Db6 = Pind.5 , Db7 = Pind.6
Config Lcd = 16 * 2
Cursor Off
Cls
Config Adc = Single , Prescaler = auto , Reference = Avcc
Start Adc
Config Portd = Output
Dim W As Word
Dim Input_mv as Single
Dim Input_v As Single
dim x as Single
Dim W2 As Word
Dim Input_mv2 As Single
Dim Input_v2 As Single
Current:
Cls
Do
Gosub Read_the_adc
Gosub Display_lcd
Waitms 5
Loop
End
'**********************************************
'**********************************************
Read_the_adc:
W = Getadc(5)
Input_mv = W * 0.422510455
Input_v = Input_mv / 1000
x=Input_mv
W2 = Getadc(4)
Input_mv2 = W2 * 4.8828125
Input_v2 = Input_mv2 / 1000
Return
'**********************************************
Display_lcd:
Locate 1 , 1 : Lcd "B1: " ; Fusing(input_mv , "#.#") ; "mA"
Locate 2 , 1 : Lcd "B2: " ; Fusing(input_mv2 , "#.#") ; "mA"
Return
'**********************************************
'**********************************************
'**********************************************
همچنین این قسمت صفحه نمایش را به شکل ذیل درآوردم اما علامت اعشار ( نقطه) وجود داره. علامت نقطه را نمیشه حذف کرد بسکام خطا میده.
Display_lcd:
Locate 1 , 1 : Lcd "B1: " ; Fusing(input_mv , "#.") ; "mA"
Locate 2 , 1 : Lcd "B2: " ; Fusing(input_mv2 , "#.") ; "mA"
return
