عضویت     ورود  همانا ، نماز بهترين عبادت برای خداست . امام رضا (ع) دوشنبه، 1 مرداد ماه ، 1397

کانال تلگرام


تبلیغات متنی


منوی سایت


جست و جو در بانك مقالات




مقالات جدید
تعداد شاخه ها: 30 عدد
تعداد مقالات: 758 عدد 1: آزمايشگاه الكترونيك - استاد محرري 
[دفعات مشاهده : 4722 بار]
 2: جزوه درس مخابرات 1 - دانشگاه فردوسي مشهد 
[دفعات مشاهده : 4661 بار]
 3: كتاب مهندسي تاسيسات / دكتر كلهر 
[دفعات مشاهده : 4680 بار]
 4: مجموع اعوجاج هارمونیک T.H.D 
[دفعات مشاهده : 4645 بار]
 5: كتاب "روش طراحي و تحليل مدارهاي الكترونيك" 
[دفعات مشاهده : 11060 بار]
 6: ادوات نوري 
[دفعات مشاهده : 4721 بار]
 7: كتاب اصول تلويزيون رنگي 
[دفعات مشاهده : 6280 بار]
 8: پروژه دزد گیر با سنسور تشخیص حرکت pir با قفل رمز الکترونیکی 
[دفعات مشاهده : 5908 بار]
 9: جزوه اندازه گیری الکتریکی 
[دفعات مشاهده : 5050 بار]
 10: سوالات کنکور کارشناسی ارشد 90 / گروه مهندسی برق 
[دفعات مشاهده : 7011 بار]
 11: آرشيو پروژه هاي 8051 
[دفعات مشاهده : 5736 بار]
 12: آرشيو پروژه هاي AVR‌ (ـ‌ 126 پروژه ) 
[دفعات مشاهده : 13468 بار]
 13: آموزش برنامه نويسي و كار با ماژول Sim300CZ با ميكروكنترلر AVR 
[دفعات مشاهده : 9769 بار]
 14: سوالات كنكور كارشناسي ناپيوسته 89 - گروه برق 
[دفعات مشاهده : 7147 بار]
 15: ارتباط میکروهای PIC با کمک پروتکل سریال I2C و نکات تکمیلی ماژول MSSP 
[دفعات مشاهده : 5304 بار]
 16: ساعت تقویم با کمک میکروکنترلر PIC و DS1307 
[دفعات مشاهده : 5869 بار]
 17: تایمرهای چند زمانه ( ساعت مرکزی ) با میکرو PIC 
[دفعات مشاهده : 5335 بار]
 18: ساعت تقویم شمسی مجهز به آلارم روزانه و هفتگی 
[دفعات مشاهده : 6269 بار]
 19: صفحه کلید وقفه ای با میکروکنترلر PIC 
[دفعات مشاهده : 4993 بار]
 20: کرنومتر دیجیتال با میکروکنترلر PIC با قابلیت ثبت 3 زمان 
[دفعات مشاهده : 5135 بار]
 21: طراحی و ساخت مدارات انتقال دیتا به وسیله ماژول های HMTR + پروژه چت متنی بیسیم 
[دفعات مشاهده : 7921 بار]
 22: سنسورهای حرارت 
[دفعات مشاهده : 7282 بار]
 23: کنترل وسایل برقی از طریق خط تلفن با میکروکنترلر PIC 
[دفعات مشاهده : 7297 بار]
 24: ارتباط سریال UART بین دو میکروکنترلر PIC 
[دفعات مشاهده : 5562 بار]
 25: گزارش کار آموزی : ماشین های ابزار کنترل عددی CNC 
[دفعات مشاهده : 5830 بار]
 26: کنترل وسایل به کمک ماژول HM-TR و میکرو AVR 
[دفعات مشاهده : 8265 بار]
 27: طراحی و ساخت کنترل از راه دور 1 کانال با کمک ماژول های ASK و آی سی های سری PT 
[دفعات مشاهده : 6849 بار]
 28: مجموعه رفرنس های آموزشی میکروکنترلرهای سری dsPIC 
[دفعات مشاهده : 6321 بار]
 29: مجموعه پروژه های میکروکنترلر AVR با کامپایلر بسکام 
[دفعات مشاهده : 11442 بار]
 30: طراحی و ساخت مدارات انتقال دیتا به وسیله ماژول های HM-T و HM-R با میکرو AVR 
[دفعات مشاهده : 9354 بار]


آخرين مطالب ارسال شده
· روش طراحي و تحليل مدارهاي الكترونيك[ 1 نظر شما چيه؟ - 38695 مشاهده ]
· اصول تلويزيون رنگي[ 0 نظر شما چيه؟ - 17455 مشاهده ]
· نرم افزار DigSilent[ 2 نظر شما چيه؟ - 20809 مشاهده ]
· AVR Tech Lib 2011[ 1 نظر شما چيه؟ - 24309 مشاهده ]
· مجموعه كنفرانس هاي سالينه ميكروچيپ / سال 2009 /[ 2 نظر شما چيه؟ - 21981 مشاهده ]
· آموزش كار با ماژول SIM300CZ با ميكرو AVR[ 4 نظر شما چيه؟ - 24396 مشاهده ]
· مجموعه فيلم هاي آموزشي نرم افزار Altium Designer[ 0 نظر شما چيه؟ - 37640 مشاهده ]
·  سوالات كنكور كارشناسي ناپيوسته 89 - گروه برق[ 0 نظر شما چيه؟ - 19270 مشاهده ]
· لينك دانلود مجله October 2010 / SERVO[ 0 نظر شما چيه؟ - 16502 مشاهده ]
· Catalog CA 01 (10/2009) / International version[ 0 نظر شما چيه؟ - 20449 مشاهده ]

[ موارد بیشتر در بخش اخبار و تازه ها ]


زبان
انتخاب زبان نمایش :



مطالب جديد
· 1: Guide to Electric Power Generation
· 2: Phase Converters, Their Application and Current Demand
· 3: A Survey on Wearable Sensor-Based Systems for Health Monitoring and Prognosis
· 4: آشكارسازي عروق كرونري قلب درتصاوير آنژيوگرافي با استفاده از الگوريتم دسته بندي ميانگين هاي فازي
· 5: Inductor Size Vs Q:A Dimensional Analysis
· 6: Mobile Learning in Practice
· 7: Electron Beam Cutting Techiques For Electronic Application
· 8: آشكارسازي دو مرحله اي لبه با استفاده از تبديل موجك ايزوتروپيك و جهت دار
· 9: ارائه الكترود و روش اجراي جديدي براي سيستم اتصال زمين در شبكه هاي توزيع
· 10: کنترل فازی موتور DC
· 11: مدل سازي و ساخت سلول سنسور فشار ميكروالكترومكانيكي آزمايشگاهي با استفاده از فرآيند ميكروماشين كاري
· 12: New Methods in Iris Recognition
· 13: بررسي آماري اثرات رطوبت و شرايط جوي بر پانچ مقره ها در شركت توزيع نيروي برق مشهد
· 14: Plasmonics for Laser Beam Shaping
· 15: پخش بار مستقیم در شبکه های سیستم توزیع
· 16: بررسي مراحل التيام طبيعي تاندون آشيل خرگوش توسط ميكروسكوپ الكتروني و نوري
· 17: Distributed Localization Scheme for Mobile Sensor Networks
· 18: بررسی القاء ولتاژ بر روی خطوط سیستم توزیع بر اثربرخورد صاعقه به مجاورت خط
· 19: Newnes Data Communications Pocket Book
· 20: تشخيص وضعيت بدن انسان در تصاوير ويدئويي بكمك ماشين بردارهاي پشتيبان (SVM)

[ آخرين مقالات ]


ارسال مقاله به سايت

 



...::: Ir-Micro.Com :::... :: View topic - سوالات مربوط به برنامه نويسي بسكام


سوالات مربوط به برنامه نويسي بسكام

 
Post new topic   Reply to topic    ...::: Ir-Micro.Com :::... Forum Index -> برنامه نویسی و مباحث مربوط به AVR Printable Version
View previous topic :: View next topic  
Author Message
heidarali
کاربر تازه وارد
کاربر تازه وارد

Joined: Mar 29, 2007
Posts: 8





387.20 امتیاز

Items

Status: Offline

PostPosted: يكشنبه، 22 ارديبهشت ماه ، 1387 22:49:41 Reply with quote Scroll Down to Next postGo to last Post of Page

با سلام
ميخواستم بدونم اين دستورات كارشون چيه؟
$HWSTACK = var
$SWSTACK = var
$FRAMESIZE = var
$EEPROM
متشكرم
يا حق

Back to top
View user's profile Send private message
brainbaran
کاربر ماهر
کاربر ماهر

Joined: Jan 17, 2008
Posts: 813





38919.68 امتیاز

Items

Status: Offline

PostPosted: دوشنبه، 23 ارديبهشت ماه ، 1387 01:01:51 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

heidarali wrote:
با سلام
ميخواستم بدونم اين دستورات كارشون چيه؟
$HWSTACK = var
$SWSTACK = var
$FRAMESIZE = var
$EEPROM
متشكرم
يا حق


سلام .....
نه ! فایده نداره ! مثل اینکه کلک من تو سایت کنده اس ! خوب بریم سر کلام خودمون !
$HWSTACK = var
اشاره داره به فضایی از Ram مورد نیاز برنامه ی میکرو که بسته به وظایفی که شما در برنامتون تعیین کردین ازین فضا استفاده کنن .. مثل Gosub ها Call ها و یا وظایف دیگه
اون HW هم یه کلمه کلیدیه که منظورش اینه که به میکرو از طریق زبان ماشین همین حرفای منو حالیش میکنه ! و با اون دو تای دیگه $SWSTACK = var
$FRAMESIZE = var ارتباط متقابلی باید داشته باشن
$EEPROM
خوب این یکی هم که از اسمش پیداست شما می تونی داده هایی رو در حافظه ی eepromn میکرو که برنامه تون نیاز به ذخیره سازیشون داره قرار بدی و واسه اینکه بفهمونی چه داده هایی باید ذخیره بشن باید از کلمه کلیدی data استفاده کنی و ...
که البته تمام دستورات کلیدی فوق نیازمند بهره بردن از چند دستور دیگس !

حق نگهدارتون فقط یادت باشه من از بی خبری زیاد دل خوشی ندارم Embarassed بی خبرمون نذاری !
مرسی حق نگهدارتون
ناقابل
!

Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger
heidarali
کاربر تازه وارد
کاربر تازه وارد

Joined: Mar 29, 2007
Posts: 8





387.20 امتیاز

Items

Status: Offline

PostPosted: دوشنبه، 23 ارديبهشت ماه ، 1387 02:35:56 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

Quote:
حق نگهدارتون فقط یادت باشه من از بی خبری زیاد دل خوشی ندارم Embarassed بی خبرمون نذاری !
مرسی حق نگهدارتون
ناقابل


بازم احسنت و دو صد درود به شما
در جواب شما دوست عزيز عارضم سوالي كه كردم از اين برنامه اي كه در زير قرار دادم هست و مربوط به همون سنسور رطوبت sht75 هست كه يكي از عزيزان در سايت

قرار دادند.
من با چند تا از اين دستورات رو كه تو برنامه ذكر شده كار نكردم.توكتاب هم نديدم.اين برنامه كمك چنداني نميتونه بهم بكنه چون از ال سي دي استفاده كرده اونم از نوع گرافيكيش كه اصلاْ به كار من نمياد.من ميخوام مقدار دما و رطوبت رو
روي سگمنت يا نهايتاْ روي ال سي دي 2 يا 3 سطري بخونم.
در ضمن يه چيزاي خيلي زيادي هم بايد بهش اضافه كنم.
آيا كسي هست ياري كند مرا درتحليل و تفكيك و تصحيح اين برنامه؟
دست ياريتان را به گرمي هر چه تمام تر ميفشارم.
متشكرم
يا حق


Code:
$regfile = "m323def.dat"                                    ' specify the used micro
$crystal = 8000000                                          ' used crystal frequency
'$baud = 19200                                               ' use baud rate
$hwstack = 60                                               ' default use 32 for the hardware stack
$swstack = 40                                               ' default use 10 for the SW stack
$framesize = 60                                             ' default use 40 for the frame space
$eeprom

'some routines to control the display are in the glcdKS108.lib file
$lib "glcdKS108.lib"
Enable Interrupts


Config Date = Mdy , Separator = /                           ' ANSI-Format
Config Clock = Soft                                         'this is how simple it is
Date$ = "11/11/00"
Time$ = "00:00:00"





'First we define that we use a graphic LCD
Config Graphlcd = 128 * 64sed , Dataport = Portd , Controlport = Portb , Ce = 4 , Ce2 = 3 , Cd = 0 , Rd = 1 , Reset = 5 , Enable = 2
Setfont Font8x8
Cls
Lcdat 1 , 2 , "welcome to "
Lcdat 3 , 1 , "DataLogger"
Lcdat 5 , 1 , "By ARST"

Wait 2
Cls
Dim Epadd As Eram Byte
Dim Last As String * 20
Dim Dissave As String * 30
Dim Er As Long
Dim Crc_cor As Byte
Dim C As Byte
Dim Crc_sht As Byte
Dim A As Byte
Dim I As Byte , J As Byte
Dim Z(3) As Byte
Dim X As Byte
Dim Idx As Byte
Dim Crc As Byte
Dim Ctr As Byte
Dim Dataword As Word
Dim Command As Byte
Dim Dis As String * 20
Dim Dish As String * 20
Dim Calc As Single
Dim Calc2 As Single
Dim Rhlinear As Single
Dim Rhlintemp As Single
Dim Key_temp As Single
Dim Tempc As Single
Dim Tempf As Single

Const C1 = -4
Const C2 = 0.0405
Const C3 = -0.0000028
Const T1c = .01
Const T2 = .00008
Const T1f = .018
Save Alias Pinb7
Sck Alias Porta.0                                           'Sck
Dataout Alias Porta.1                                       'Data
Datain Alias Pina.1
Cls
Declare Sub Getit()
Declare Sub Calc_crc(byval X As Byte)


Config Pina.0 = Output
Config Pina.1 = Output
Config Pinb.7 = Input
'Ddrd = &HFE

Set Dataout
For Ctr = 1 To 12
 Set Sck
 Waitus 2
 Reset Sck
 Waitus 2
Next Ctr
Do
   Waitms 20
   'Cls
   'Lcdat 8 , 3 , Er
   'Waitms 20
   Gosub Get_hum
   'Wait 10
   'Cls
   Waitms 20
   Readeeprom Last , Epadd
   Setfont Font8x8
    Last = "l= " + Last

   Lcdat 7 , 1 , Last
      Gosub Get_temp

Loop

Get_temp:

   Command = &B00000011
   Z(1) = 3
   Call Getit
 '
   Tempf = T1f * Dataword
   Tempf = Tempf - 40

   Tempc = T1c * Dataword
   Tempc = Tempc - 40

   Dis = Fusing(tempc , "###.##")
   Dis = Dis + "c"
   Waitms 20
   Lcdat 1 , 1 , Dis
  ' Waitms 200

 Return


 Get_hum:
 Command = &B00000101
 Z(1) = 5
 Call Getit
 Calc = C2 * Dataword
 Calc2 = Dataword * Dataword
 Calc2 = C3 * Calc2
 Calc = Calc + C1
 Rhlinear = Calc + Calc2

 'Dis = Fusing(rhlinear , "##.##")
 'Print "Humidity adjusted for linear = " ; Dis


 Calc = T2 * Dataword
 Calc = Calc + T1c
 Calc2 = Tempc - 25
 Calc = Calc2 * Calc
 Rhlintemp = Calc + Rhlinear

 Dish = Fusing(rhlintemp , "##.##")
 Dish = Dish + "%"
 Lcdat 5 , 1 , "           "
 Waitms 20

 Lcdat 5 , 1 , Dish

 'Waitms 200
 Setfont Font8x8
 Lcdat 8 , 1 , Time$
 Setfont Font8x8
 If Pinb.7 = 0 Then
 Cls
 Lcdat 1 , 1 , "Saving..."
 Dissave = Dis + Dish
 Writeeeprom Dissave , Epadd
 Waitms 5
  Cls
  End If
 Return

 End



 Sub Getit()

 Local Datavalue As Word
 Local Databyte As Byte

 Set Sck
 Reset Dataout
 Reset Sck
 Set Sck
 Set Dataout
 Reset Sck


 Shiftout Dataout , Sck , Command , 1

 Config Datain = Input
 Set Sck
 Reset Sck
 Waitus 10

 Bitwait Datain , Reset

 Shiftin Datain , Sck , Databyte , 1
 Datavalue = Databyte
 Z(2) = Databyte

 Config Datain = Output

 Reset Dataout
 Set Sck
 Reset Sck

 Config Datain = Input

 Shiftin Datain , Sck , Databyte , 1
 Shift Datavalue , Left , 8
 Datavalue = Datavalue Or Databyte
 Dataword = Datavalue
 Z(3) = Databyte

 Config Datain = Output

 Reset Dataout
 Set Sck
 Reset Sck

 Config Datain = Input

 Shiftin Datain , Sck , Databyte , 1

   Crc_sht = Databyte
   Gosub Crc_ex

   Crc = 0

   For J = 1 To 3
      X = Z(j)
      Call Calc_crc(x)
   Next

   'Lcdat 2 , 1 , Databyte
   'Waitms 20

   If Crc = Crc_cor Then
         '  Lcdat 4 , 1 , "CRC - OK"
     ' Waitms 20
   Else
      '     Lcdat 5 , 1 , "CRC - Error"
      'Waitms 20
      Incr Er
      Command = &B00011110
      Set Sck
      Reset Dataout
      Reset Sck
      Set Sck
      Set Dataout
      Reset Sck


      Shiftout Dataout , Sck , Command , 1
      Waitms 20

   End If

 Config Datain = Output

 Set Dataout
 Set Sck
 Reset Sck
End Sub

Sub Calc_crc(byval X As Byte)
   Restore Crc_table
   Idx = Crc Xor X
   If X = 0 Then Idx = 3

   For I = 0 To Idx
      Read Crc
   Next

End Sub

Crc_ex:

C = 0
A = 7
Do
   Crc_cor.c = Crc_sht.a
   Incr C
   Decr A
Loop Until C = 8

Return

 Crc_table:

Data 0 , 49 , 98 , 83 , 196 , 245 , 166 , 151 , 185 , 136 , 219 , 234 , 125 , 76 , 31 , 46,
Data 67 , 114 , 33 , 16 , 135 , 182 , 229 , 212 , 250 , 203 , 152 , 169 , 62 , 15 , 92 , 109,
Data 134 , 183 , 228 , 213 , 66 , 115 , 32 , 17 , 63 , 14 , 93 , 108 , 251 , 202 , 153 , 168,
Data 197 , 244 , 167 , 150 , 1 , 48 , 99 , 82 , 124 , 77 , 30 , 47 , 184 , 137 , 218 , 235,
Data 61 , 12 , 95 , 110 , 249 , 200 , 155 , 170 , 132 , 181 , 230 , 215 , 64 , 113 , 34 , 19,
Data 126 , 79 , 28 , 45 , 186 , 139 , 216 , 233 , 199 , 246 , 165 , 148 , 3 , 50 , 97 , 80,
Data 187 , 138 , 217 , 232 , 127 , 78 , 29 , 44 , 2 , 51 , 96 , 81 , 198 , 247 , 164 , 149,
Data 248 , 201 , 154 , 171 , 60 , 13 , 94 , 111 , 65 , 112 , 35 , 18 , 133 , 180 , 231 , 214,
Data 122 , 75 , 24 , 41 , 190 , 143 , 220 , 237 , 195 , 242 , 161 , 144 , 7 , 54 , 101 , 84,
Data 57 , 8 , 91 , 106 , 253 , 204 , 159 , 174 , 128 , 177 , 226 , 211 , 68 , 117 , 38 , 23,
Data 252 , 205 , 158 , 175 , 56 , 9 , 90 , 107 , 69 , 116 , 39 , 22 , 129 , 176 , 227 , 210,
Data 191 , 142 , 221 , 236 , 123 , 74 , 25 , 40 , 6 , 55 , 100 , 85 , 194 , 243 , 160 , 145,
Data 71 , 118 , 37 , 20 , 131 , 178 , 225 , 208 , 254 , 207 , 156 , 173 , 58 , 11 , 88 , 105,
Data 4 , 53 , 102 , 87 , 192 , 241 , 162 , 147 , 189 , 140 , 223 , 238 , 121 , 72 , 27 , 42,
Data 193 , 240 , 163 , 146 , 5 , 52 , 103 , 86 , 120 , 73 , 26 , 43 , 188 , 141 , 222 , 239,
Data 130 , 179 , 224 , 209 , 70 , 119 , 36 , 21 , 59 , 10 , 89 , 104 , 255 , 206 , 157 , 172




                                                         'end program


'we need to include the font files
'Notice that this is a testfont with only numbers defined !
'$include "smallfont8x8.font"
$include "font8x8.font"
$include "font16x16.font"


Plaatje:
'include the picture data
$bgf "ks108.bgf
"

Back to top
View user's profile Send private message
saleh_chz
مدیر انجمن
مدیر انجمن

Joined: Jan 10, 2008
Posts: 2582




Location: مشهد
3049681.20 امتیاز

Items

Status: Offline

PostPosted: دوشنبه، 23 ارديبهشت ماه ، 1387 21:41:38 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

سلام
ضمن تشكر از باران عزيز و آرزوي موفقيت براي تمام دوستان در امتحانات ...

دوست گلم من مي تونم در مورد كار با سون سگمنت توي سي كمكت كنم اما با بيسيك نمي تونم .
دوست داريد توي سي واستون نمونه بذارم شايد تونستيد ازش با بچه ها و باران ايده بگيريد .

زنده باد

Back to top
View user's profile Send private message Send e-mail Visit poster's website
heidarali
کاربر تازه وارد
کاربر تازه وارد

Joined: Mar 29, 2007
Posts: 8





387.20 امتیاز

Items

Status: Offline

PostPosted: سه شنبه، 24 ارديبهشت ماه ، 1387 02:47:14 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

آقا من يه برنامه به زبون سي هم گير آوردم مربوط به همين سنسور sht75 ميشه
ولي از صحتش اطمينان ندارم.لطفاْ اين رو آلاليز كنيد.
آخه من نميدونم وقتي كسي بلد نيست با اين سنسور ها كار كنه پس اين فروشندها چطوري فروش دارند.
خوش بختانه با توجه به قيمتش من هنوز تهيه نكردم.تا اگه نتونستم برنامش رو بنويسم ضرري نكرده باشم.
اينم برنامه تستش كنيد:

Code:


#include <avr/io.h>
#include <stdlib.h>
#include <math.h>

#define DATA_REG_OUT DDRC|=_BV(PC7);
#define DATA_REG_IN DDRC&=~_BV(PC7);

#define SET_SCK PORTC|=_BV(PC6);
#define CLEAR_SCK PORTC&=~_BV(PC6);

#define SET_DATA PORTC|=_BV(PC7);
#define CLEAR_DATA PORTC&=~_BV(PC7);

#define noACK 0
#define ACK 1

//SHT7x commands
#define STATUS_REG_W 0x06 //000 0011 0
#define STATUS_REG_R 0x07 //000 0011 1
#define MEASURE_TEMP 0x03 //000 0001 1
#define MEASURE_HUMI 0x05 //000 0010 1
#define RESET 0x1e //000 1111 0

// SHTxx constants
#define C1 -4.0
#define C2 0.0405
#define C3 -0.0000028

#define D1 -40.0
#define D2 0.04

#define T1 0.01
#define T2 0.00008

....
<LCD procedures>
....

//SHT75

/*************************************************************** *************/
// START TRANSMISSION
// _____ _________
// DATA: |_______|
// ___ ___
// SCK : ___| |___| |______
/****************************************************************** **********/

void s_transstart(void)
{
DATA_REG_OUT; //DATA as output
asm("nop");
SET_DATA;
CLEAR_SCK;
asm("nop");
SET_SCK;
asm("nop");
CLEAR_DATA;
asm("nop");
CLEAR_SCK;
asm("nop");
SET_SCK;
asm("nop");
SET_DATA;
asm("nop");
CLEAR_SCK;
asm("nop");
}

/*************************************************************** *************/
// WRITE BYTE
/****************************************************************** **********/

unsigned char s_write_byte(unsigned char value)
{
unsigned char i, error=0;

DATA_REG_OUT; //DATA as output
CLEAR_SCK;

for (i=0x80;i>0; i/=2) //mask
{
if (( i & value ))
{
SET_DATA;
}
else
{
CLEAR_DATA;
}
SET_SCK;
asm("nop");
CLEAR_SCK;
}
DATA_REG_IN; //DATA as input
asm("nop");
SET_SCK;

//sprawdz ack
if(bit_is_set(PINC,7))
{
error=1;
}
if(bit_is_clear(PINC,7))
{
error=0;
}

asm("nop");
CLEAR_SCK;
return error; //error=1 if no ack from sht
}

/*************************************************************** *************/
// READ BYTE
/****************************************************************** **********/

unsigned char s_read_byte(unsigned char ack)

{
unsigned char i, val=0;

DATA_REG_IN; //DATA as input
for (i=0x80;i>0;i/=2) //mask
{
SET_SCK;

if (bit_is_set(PORTC,7))
{
val=((val | i)); //read bit
}

CLEAR_SCK;
}

DATA_REG_OUT; //DATA as output

if(ack==1)
{
CLEAR_DATA;
}
if(ack==0)
{
SET_DATA;
}

SET_SCK;
asm("nop");
CLEAR_SCK;
DATA_REG_IN; //DATA as input
return val;
}

//-------------------------------------------------------------- --------------------
// Communication reset: DATA=1 i 9 *SCK
// _____________________________________________________ ________
// DATA: |_______|
// _ _ _ _ _ _ _ _ _ ___ ___
// SCK : __| |__| |__| |__| |__| |__| |__| |__| |__| |______| |___| |______
//----------------------------------------------------------------- -----------------

void s_connectionreset(void)
{
unsigned char i;
DATA_REG_OUT;
SET_DATA;
CLEAR_SCK;
asm("nop");
for(i=0;i<9;i++)
{
SET_SCK;
asm("nop");
CLEAR_SCK;
}
s_transstart(); //start transmisji
}



/********************************************************* *******************/
// MAIN
/****************************************************************** **********/

int main (void)
{
int lValue_Temp,fTemp_true,i;
unsigned char byte_1,byte_2,a=5;
unsigned char temp[10];

DDRC=0xFF;
DDRA=0xFF;
DDRB=0x07;
DDRD=0x00;

for(i=0;i<10000;i++)
{
asm("nop");
}

s_connectionreset();

for(i=0;i<10000;i++)
{
asm("nop");
}

s_transstart();
a=s_write_byte(MEASURE_TEMP);

while(bit_is_set(PINC,7));


byte_1 = (unsigned char) s_read_byte(ACK);
byte_2 = (unsigned char) s_read_byte(ACK);
s_read_byte(noACK);

lValue_Temp = ((unsigned char)byte_1 * 256) + (unsigned char)byte_2;

fTemp_true = (D1+(D2*lValue_Temp))*100;


itoa(fTemp_true, temp, 10);


lcd_init();

write_text(temp);


return 0;
}//end main

Back to top
View user's profile Send private message
saleh_chz
مدیر انجمن
مدیر انجمن

Joined: Jan 10, 2008
Posts: 2582




Location: مشهد
3049681.20 امتیاز

Items

Status: Offline

PostPosted: سه شنبه، 24 ارديبهشت ماه ، 1387 08:12:48 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

سلام
Quote:
آخه من نميدونم وقتي كسي بلد نيست با اين سنسور ها كار كنه پس اين فروشندها چطوري فروش دارند.

انتظاري نيست .

دوست خوبم من برنامه رو برداشتم . يه نگاهي ميندازم اما قول نميدم بتونم كاري بكنم . همونطور كه گفتم روي قسمت نمايشگرش با سون سگمنت كار مي كنم . واست يه لينك مي ذارم در مورد كار با سون سگمنت توي سي . شما هم يه نيگاه بنداز ببين چيزي گيرت مياد :




دوست خوبم واسه ي اينكه برنامه هايي كه مي ذاريد درست نمايش داده بشه ؛ توي محيط نوشتن متن ؛ برنامه ها رو انتخواب كنيد و توي منوي بالاي اديتور يه آيكون هست كه وقتي روش نگه مي داري مينويسه code رو بزنيد .
اينطوري كد ها درست ديده مي شه توي فروم .

زنده باد

Back to top
View user's profile Send private message Send e-mail Visit poster's website
saleh_chz
مدیر انجمن
مدیر انجمن

Joined: Jan 10, 2008
Posts: 2582




Location: مشهد
3049681.20 امتیاز

Items

Status: Offline

PostPosted: سه شنبه، 24 ارديبهشت ماه ، 1387 08:20:00 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

اين هم يه لينك از ماشين حساب كه توي كدش تعداد فكر كنم 9 تا سون سگمت استفاده شده :



و اين هم يه لينك ديگه مربوط به تايمر رنگ كوره كه باز هم از سون سگمنت استفاده كردم و اجرا هم شده و جواب داده :



توي اين لينك ها مي توني كد پيدا كني .
اين مورد آخري هم برنامه اش طوريه كه مي شه سون سگمنت رو هر طور كه خواستي به هر پايه ي ميكرو وصل كني . به طور كل خيلي منعطف هست .

زنده باد

Back to top
View user's profile Send private message Send e-mail Visit poster's website
1nafar
کاربر ماهر
کاربر ماهر

Joined: Mar 18, 2008
Posts: 1053




Location: www.1nafar.com
55594.32 امتیاز

Items

Status: Offline

PostPosted: پنجشنبه، 26 ارديبهشت ماه ، 1387 07:37:05 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

سلام
اینم برنامه برای lcd 2*16




Back to top
View user's profile Send private message Visit poster's website
saleh_chz
مدیر انجمن
مدیر انجمن

Joined: Jan 10, 2008
Posts: 2582




Location: مشهد
3049681.20 امتیاز

Items

Status: Offline

PostPosted: پنجشنبه، 26 ارديبهشت ماه ، 1387 10:40:27 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

سلام
ببخشید جوابم خیلی طول کشید .
و اما سنسور sht7x که یه سنسور دوقلو هست در حقیقت . ینی یه سنسوره که هم دما رو اندازه گیری می کنه و هم رطوبت .
خیلی کلی مطالبی رو که از دیتاشیت گرفتم رو عرض می کنم بقیه ی کار با دوستان انشالله . من هم واسه ی اینکه یاد بگیرم جریان مرحمت دوستان رو دنبال می کنم .


اینترفیس این سنسور سریال بوده و علاوه بر شباهت هایی که داره با ارتباط دو سیمه سازگار نیست .
پایه ی کلاک برای سنکرون کردن ارتباط بین میکرو و سنسور استفاده می شه :
شکل 1 :


داده بعد از لبه ی پایین رونده ی کلاک تغییر می کنه و روی لبه ی بالا رونده قابل دسترسی هست .
در طول ارسال ، مادامی که خط کلاک 1 است خط داده باید ثابت باشه و برای لغو ارتباط میکرو فقط بایست خط داده رو صفر کنه .

یک عدد مقاومت بالاکش 10 کیلو برای پول آپ خط داده لازمه که البته این مقاومت معمولا توی مدارات داخلی خود میکرو موجود هست .

برای شروع یک ارسال ، یک مرحله ی " آغاز ارسال " تولید می شه که نحوه ی اون توی شکل مشخصه :
شکل 2 :
Click to view this image at its original size
Click on the image to view it at its original size

جریان بعدی از 3 بیت آدرس تشکیل شده ( که در حال حاضر برای این سنسور فقط 000 توسط کارخونه ساپورت شده و مقادیر دیگه قابل استفاده نیست ) و 5 بیت دستور . سنسور با پایین کشیدن خط داده بعد از لبه ی پایین رونده ی هشتمین پالس کلاک یک دریافت صحیح رو نشون می ده که به این عکس العمل می گن " بیت تایید " . (Acknowledge)
جدول دستورات :
شکل 3 :
Click to view this image at its original size
Click on the image to view it at its original size

در مرحله ی اندازه گیری ، بعد از اینکه یه دستور اندازه گیری صادر شد ، میکرو بایست منتظر بمونه تا جریان اندازه گیری تموم بشه که این کار تقریبا 11 میلی ثانیه برای اندازه گیری با دقت 8 بیت طول می کشه . برای دقت 12 بیت 55 میلی ثانیه ، برای دقت 14 بیت هم 210 میلی ثانیه حدودا زمان نیاز هست .
زمان صحیح با در نظر گرفتن حدود 15%- + و با سرعت اسیلاتور داخلی تقریب زنده می شه .

سنسور برای نشون دادن این که اندازه گیری تموم شده ( آماده بودن داده ) خط داده رو پایین می کشه ( صفر می کنه ) و وارد حالت کاری معلق می شه ( idle)
میکرو حتما و حتما باید منتظر این سیگنال " آماده بودن داده " قبل از ری استارت کلاک برای خوندن داده بشه .
داده ی اندازه گیری شده تا وقتی که خونده بشه ذخیره شده ، است . سپس میکرو می تونه کارای دیگه رو ادامه بده و راحت داده رو بخونه .
2 بایت داده ی اندازه گیری شده و یه بایت به عنوان crc ارسال خواهد شد . میکرو باید هر بایت رو بوسیله ی پایین کشیدن ( صفر کردن ) خط داده " تایید " کنه . ( همون Acknowledge)
ارسال همه ی داده ها از با ارزش ترین بیت شروع می شه . ( برای یه مقدار 12 بیتی پنجمین کلاک با ارزش ترین بیت هست و برای یه مقدار 8 بیتی اولین بایت استفاده نمی شه )
ارتباط بعد از " بیت تاییدی " که برای داده ی crc ایجاد شده خاتمه پیدا می کنه .
اگه crc-8bit استفاده نمی شه ، میکرو می تونه ارتباط رو بعد از دریافت کم ارزش ترین بیت داده اندازه گیری شده بوسیله ی بالا نگه داشتن " بیت تایید " خاتمه بده .
سنسور بعد از پایان اندازه گیری و ارتباط به صورت اتوماتیک به حالت خواب ( sleep ) میره .

یه نکته ی مهم :
برای اینکه دمای خود سنسور زیر ( صالح : هر ) 0.1 درجه سانتیگراد نگه داشته بشه ، نباید بیشتر از 10 % زمان فعال باشه .
به عبارت دیگه برای اندازه گیری 12 بیتی حداکثر 2 عدد اندازه گیری در ثانیه باید داشته باشیم .

اگه ارتباط با سنسور با شکست مواجه بشه سیگنال " ریست اتصال " اینترفیس سریال رو ریست می کنه .
برای این کار در حالی که خط داده یک هست باید 9 کلاک یا بیشتر روی خط کلاک ایجاد کرد .
این کار باید بوسیله ی سیگنال " آغاز ارسال" قبل از دستور بعدی ادامه پیدا کنه .
شکل 4 :
Click to view this image at its original size
Click on the image to view it at its original size

ارسال کامل ارقام بوسیله ی یه 8 بیت crc ایمن شده . این تضمین می کنه که هر داده ی اشتباه می تونه تشخیص و اصلاح بشه .

شکل های 5 و 6 :
Click to view this image at its original size
Click on the image to view it at its original size
Click to view this image at its original size
Click on the image to view it at its original size

خوب هنوز دو مطلب که اگه دقت کنید توی جدول دستورات بود رو ننوشتم . ( موارد مروبط به وضعیت سنسور )
انشالله باز فرصتی پیش اومد اونا رو هم سعی میکنم بذارم .

زنده باد

Back to top
View user's profile Send private message Send e-mail Visit poster's website
saleh_chz
مدیر انجمن
مدیر انجمن

Joined: Jan 10, 2008
Posts: 2582




Location: مشهد
3049681.20 امتیاز

Items

Status: Offline

PostPosted: پنجشنبه، 26 ارديبهشت ماه ، 1387 10:49:57 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

دوست خوبم
شما اگه مي خواهيد داده رو روي سون سگمنت نمايش بديد به من بگيد :
1- از چند تا سون سگمنت مي خواهيد استفاده كنيد ؟
2- آيا مي تونين از يه آي سي كوچولوي ديكودر خارجي استفاده كنين توي مدار ؟
3- چند تا پايه از ميكرو رو مي تونين به من بدين ؟
4- توي اعدادتون مميز هم هست ؟

واسه ي برنامه هم شما متغييري رو كه مي خواهيد نمايش داده بشه رو به من بديد بقيش رو هم من سعي ميكنم با كمك دوستان انجام بدم .

اميدوارم زمان اجازه بده اين كار رو انجام بدم .

موفق باشيد .

Back to top
View user's profile Send private message Send e-mail Visit poster's website
brainbaran
کاربر ماهر
کاربر ماهر

Joined: Jan 17, 2008
Posts: 813





38919.68 امتیاز

Items

Status: Offline

PostPosted: جمعه، 27 ارديبهشت ماه ، 1387 13:29:17 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

heidarali wrote:
آقا من يه برنامه به زبون سي هم گير آوردم مربوط به همين سنسور sht75 ميشه
ولي از صحتش اطمينان ندارم.لطفاْ اين رو آلاليز كنيد.
آخه من نميدونم وقتي كسي بلد نيست با اين سنسور ها كار كنه پس اين فروشندها چطوري فروش دارند.
خوش بختانه با توجه به قيمتش من هنوز تهيه نكردم.تا اگه نتونستم برنامش رو بنويسم ضرري نكرده باشم.


سلام
بچه ها همگی خسته نباشین ....
منم به نوبه خودم ممنونم
دوست گلم کارتون راه افتاد ؟ Rolling Eyes
شرمنده که رفتم تا بیام ! تازه هفته بعدم یه امتحان غیر مترقبه برامون گذاشتن ! Crying or Very sad
امیدوارم با کدویژن مشکلتون حل شه...
به کجا رسیدین ؟
نتیجه رو حتما بذارین ....

Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger
heidarali
کاربر تازه وارد
کاربر تازه وارد

Joined: Mar 29, 2007
Posts: 8





387.20 امتیاز

Items

Status: Offline

PostPosted: شنبه، 28 ارديبهشت ماه ، 1387 19:41:41 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

با تشكر از صالح جان
ولي دوستان من به شدت از اين زبون سي متنفرم.شما هم كه فقط با اين زبون كار كردين.
صالح جان ممنون كه ديتاشيت رو ترجمه كردي.اما چرا اينقدر دير.من سعي كردم از رو همون برنامه اولي بفهمم كه چي به چي شده.ولي يه جا گير كردم كه كسي هم كمكم نكرد.(قسمت checksum)
يه برنامه ديگه هم گير آوردم به زبون بيسيك كه اون ساده تر بود نسبت به برنامه اولي.
اين برنامه نه از ال سي دي استفاده كرده و نه از قسمت دريافت( checksum)
يه جورايي فهميدم چي به چيه .البته نقش بابيلون رو هم نبايد دستم گرفت aa)
ولي من ميخوام بفهمم اين checksum چيه و چطوري بايد تو برنامه ازش استفاده كرد.
اونطور كه متوجه شدم اين بايت برايه اطمينان از صحت اطلاعات ارسال شده قبلي از سنسور هست.درسته؟
اگه اينطوريه چطوري.منكه از ديتا شيتش به درستي سر در نيآوردم.همون قدي هم كه فهميدم به كمك برنامها بود .

Back to top
View user's profile Send private message
brainbaran
کاربر ماهر
کاربر ماهر

Joined: Jan 17, 2008
Posts: 813





38919.68 امتیاز

Items

Status: Offline

PostPosted: شنبه، 28 ارديبهشت ماه ، 1387 23:11:48 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

heidarali wrote:
با تشكر از صالح جان
ولي دوستان من به شدت از اين زبون سي متنفرم.شما هم كه فقط با اين زبون كار كردين.
صالح جان ممنون كه ديتاشيت رو ترجمه كردي.اما چرا اينقدر دير.من سعي كردم از رو همون برنامه اولي بفهمم كه چي به چي شده.ولي يه جا گير كردم كه كسي هم كمكم نكرد.(قسمت checksum)
يه برنامه ديگه هم گير آوردم به زبون بيسيك كه اون ساده تر بود نسبت به برنامه اولي.
اين برنامه نه از ال سي دي استفاده كرده و نه از قسمت دريافت( checksum)
يه جورايي فهميدم چي به چيه .البته نقش بابيلون رو هم نبايد دستم گرفت aa)
ولي من ميخوام بفهمم اين checksum چيه و چطوري بايد تو برنامه ازش استفاده كرد.
اونطور كه متوجه شدم اين بايت برايه اطمينان از صحت اطلاعات ارسال شده قبلي از سنسور هست.درسته؟
اگه اينطوريه چطوري.منكه از ديتا شيتش به درستي سر در نيآوردم.همون قدي هم كه فهميدم به كمك برنامها بود .


سلام
خسته نباشین
خوب بیسیک به مراتب ساده تر و قابل هضم تره درین شکی نیس!
اما تابعی که گفتین به نام checksum اگه منظورتون در بیسکام باشه تابعیه که بایتهای رشته ی ورودی رو بر می گردونه
یه تابع با ورودی رشته ای و خروجی صحیح
ولی برای راه اندازیش در بسکام تا جایی که بلدی راهنمایی تون می کنیم ....
اینم بگم برای دریافت خروجی سنسور توسط میکرو و پردازش اون و توید خروجی مناسب از لحاظ برنامه اگه اونم بیسیک باشه کار چندانی در پیش ندارین
البته اگه قرار باشه نتایج رو به LCD بدین ... برنامه ی سختی فکر نکنم داشته باشه
این چند تا لینکم برای راه اندازی LCD



موفق باشین

Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger
saleh_chz
مدیر انجمن
مدیر انجمن

Joined: Jan 10, 2008
Posts: 2582




Location: مشهد
3049681.20 امتیاز

Items

Status: Offline

PostPosted: يكشنبه، 29 ارديبهشت ماه ، 1387 22:08:15 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

سلام
شب همگي بخير . فرصت مقتنمي پيش اومد در خدمت دوستان باشم . راستي من نمي دونم چرا امضام نشون داده نمي شه . نوشتمش ولي ... حامد جان ؟ ... Wink

باران جان ضمن عذر خواهي فرمايش شما رو در اينجا رد مي كنم . باران عزيز اين چك سام رو اگه هم شما و هم دوستمون توي ديتا شيتي كه ترجمه كردم بخونيد همون crc است .
دوست گلم حدس شما تا حدودي صحيح است . اين بايت واسه ي تشخيص و تصحيح خطا در داده ي ارسالي است .
شما مي تونيد از اين crc صرف نظر كنيد اما اين صرف نظر به اين قيمت نبايست تمام بشه كه شما اين بايت رو دريافت نكنيد .
شما بعد از تكميل دريافت crc بايست فرايند دريافت رو بوسيله ي Acknowledge تاييد كنيد . حالا اگه دوست نداريد از اين بايت استفاده كنيد به خودتون بستگي داره كه به نظر من اين واسه ي محيط هاي پرنويز و طولاني ايجاد شده .

متوجه شديد دوست من ؟ اين چك سام همان crc هشت بيتي است كه واسه ي جزئيات محاسبه اش يه جستجو بفرماييد در سايت بد نيست .

زنده باد

Back to top
View user's profile Send private message Send e-mail Visit poster's website
brainbaran
کاربر ماهر
کاربر ماهر

Joined: Jan 17, 2008
Posts: 813





38919.68 امتیاز

Items

Status: Offline

PostPosted: دوشنبه، 30 ارديبهشت ماه ، 1387 23:21:38 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

saleh_chz wrote:


باران جان ضمن عذر خواهي فرمايش شما رو در اينجا رد مي كنم . باران عزيز اين چك سام رو اگه هم شما و هم دوستمون توي ديتا شيتي كه ترجمه كردم بخونيد همون crc است .



سلام ...
ببخشین که اشتباه گفتم ... من فکر کردم منظورشون دستور checksum در بسکام باشه
به نظرم تو این سایت زیاد دارم اظهار نظر می کنم ....
تا اینجا هم که زیادی صحبت میکردم واسه این بود که بعضیا توصیه کرده بودن سایت رو همراهی کنین .....
بهتره که خودمو محدود کنم به همون نرم افزارایی که بلدم ... Embarassed
اگه هم دوباره اشتباه کردم معذرت می خوام ولی دیگه آخرین دفعه بود ....
دوستان زبل تر و متخصص تر تو سایت زیادن مطمئنا جای امثالهم مثل منو به خوبی پر میکنن ....
خوب دیگه بازم زیاد حرف زدم ! با اجازه همگی ....

Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger
heidarali
کاربر تازه وارد
کاربر تازه وارد

Joined: Mar 29, 2007
Posts: 8





387.20 امتیاز

Items

Status: Offline

PostPosted: سه شنبه، 31 ارديبهشت ماه ، 1387 21:47:50 Reply with quote Go to Top of PageScroll Up to Previous post

سلام
صالح جان تو اون برنامه دومي كه گفتم از lcd و crc استفاده نكرده:
اون برنامه بايت crc رو ميخونه ولي فقط ميزارتش تو يه متغيير و ديگه ازش استفاده نميكنه .
ولي به علت حساسيت پروژم من قصد دارم از اين crc استفاده كنم.
اعتراف ميكنم كه اصلاْ اسم crc به گوشمم نخورده .چه برسه كه بخوام باهاش كار كنم.
ميشه بگي چطوري ميشه با اين crc كار كرد؟
متشكرم
يا حق

Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    ...::: Ir-Micro.Com :::... Forum Index -> برنامه نویسی و مباحث مربوط به AVR All times are GMT + 3.5 Hours
Page 1 of 1
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You cannot download files in this forum

 
 Jump to:   

Related topics
 Topics   Replies   Author   Views   Last Post 
No new posts ضبط صدا (Eeprom) 12 pink_man0102 9721 شنبه، 28 شهريور ماه ، 1388 03:01:27
smsm View latest post
No new posts چگونگي استفاده از حافظه داخلي ميكرو eeprom ؟ 3 negar_elec 4767 سه شنبه، 29 ارديبهشت ماه ، 1388 18:47:03
mohamic View latest post
No new posts مدار ضبط صدا با EEPROM 0 mojtaba_mza 4223 شنبه، 23 آذر ماه ، 1387 17:02:17
mojtaba_mza View latest post
No new posts مشکل برنامه نویسی EEPROM داخلی میکرو atmega16 8 aminshafiei 7424 جمعه، 17 آبان ماه ، 1387 22:29:10
yashar666 View latest post
No new posts پروگرامر براي آي سي 93c46 EEPROM 2 ghaheri 4577 چهارشنبه، 26 تير ماه ، 1387 21:02:52
ghaheri View latest post
 


Powered by phpBB © 2001, 2008 phpBB Group

Ported to Platinum 7.6.b.4 V2 by sadeghkhafan

فروشگاه تخصصی برق و الکترونیک ایران میکرو
www.iran-micro.com
PHP-Nuke Copyright © 2005 by Francisco Burzi. This is free software, and you may redistribute it under the GPL.
Powered by Platinum 7.6.b.4 v2
Powered by Platinum 7.6.b.4 v2 Persian

مدت زمان ایجاد صفحه : 4.69 ثانیه