۰۲-فروردین-۱۳۹۱, ۱۷:۵۹:۴۵
با سلام خدمت دوستان
من بالاخره تونستم مدار یه دماسنج رو ببندم
من با استفاده از 7segment چهارتایی کاتد مشترک و atmega16 و lm35 این مدار رو درست کردم
اما یه مشکل داره
مشکل اینه که سون سگمنت هر ثانیه رفرش میشه و عدد دوم دما ( مثلا اگه دما 25 درجه باشه شماره ی 5 ) خیلی پرش داره و تند تند بین مثلا 6 و 7 و 8 میگرده و عوض میشه
میخواستم به کدم یه قسمتی اضافه کنم که هر 10 ثانیه عددا به روز بشه که اینقدر چشمک نزنه و چشمو اذیت نکنه
اینم کدم
البته کد رو خودم ننوشتم از یه وبلاگ که اسمش اول کد هست دانلود کردم و یخورده تغییرش دادم
سوال دومم اینه که من برای اتصال 7segment به میکروکنترلر باید از مقاومت استفاده کنم ؟
ممنون میشم دوستان راهنمایی کنند
با تشکر
من بالاخره تونستم مدار یه دماسنج رو ببندم
من با استفاده از 7segment چهارتایی کاتد مشترک و atmega16 و lm35 این مدار رو درست کردم
اما یه مشکل داره
مشکل اینه که سون سگمنت هر ثانیه رفرش میشه و عدد دوم دما ( مثلا اگه دما 25 درجه باشه شماره ی 5 ) خیلی پرش داره و تند تند بین مثلا 6 و 7 و 8 میگرده و عوض میشه
میخواستم به کدم یه قسمتی اضافه کنم که هر 10 ثانیه عددا به روز بشه که اینقدر چشمک نزنه و چشمو اذیت نکنه
اینم کدم
البته کد رو خودم ننوشتم از یه وبلاگ که اسمش اول کد هست دانلود کردم و یخورده تغییرش دادم
سوال دومم اینه که من برای اتصال 7segment به میکروکنترلر باید از مقاومت استفاده کنم ؟
ممنون میشم دوستان راهنمایی کنند
با تشکر
کد:
'www.micro-avr.blogfa.com'
$regfile = "m16def.dat"
$crystal = 1000000
Config Portd = Output
Config Portb = Output
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Dim A As Word , B As Word , C As Single , W As Word , D As Byte , S As Byte
Dim T As Word
Start Adc
Declare Sub Comm
Declare Sub Temp
Declare Sub Refresh
'=================================================================
Do
Call Refresh
Call Temp
Call Comm
Loop
'==================================================================
Sub Temp
B = Getadc(0)
T = B / 2
W = T
End Sub
'===================================================================
Sub Comm
Portd = &B0111 : D = 13 : Call Refresh
Portd = &B1011 : D = 10 : Call Refresh
Portd = &B1101 : D = W Mod 10 : Call Refresh
Portd = &B1110 : D = W / 10 : Call Refresh
Portd = &B1111 : D = 0
End Sub
'=======================================================================
Sub Refresh
Portb = Lookup(d , 7seg)
Waitms 4
End Sub
'=============================================================================
7seg:
Data &H3F , &H6 , &H5B , &H4F , &H66 , &H6D , &H7D , &H7
Data &H7F , &H6F , &H63 , &H40 , &H00 , &H39