ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ورود برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 18
  1. #1
    2011/04/17
    تهران
    230
    2

    تبدیل برنامه ساعت دیجیتالی با 7 سگمنت کاتد مشترک به آند مشترک

    سلام به تمامی دوستان ECA :bye
    من یه مدار تپل ساعت دیجیتالی پیدا کردم و تمامی قطعات اون توی خونه آماده هست ولی سون سگمنتی که توی این مدار استفاده شده از نوع کاتد مشترک هست و من خیلی جمهوری رو گشتم و فقط آند مشترک پیدا کردم . ( سون سگمنت کاتد مشترک کوچیک خیلی هست ولی من از نوع 7 در 11 سانتی متر رو میخوام که پیدا نمیشه ) .
    حالا از دوستان خواهش میکنم که فایل پروژه رو دانلود کنند و کسانی که وارد هستند سورس برنامرو از کاتد مشترک به آند مشترک تبدیل کنند . خیلی حیاتیه . مدار با سون سگمنت کاتد مشترک کوچیک بسته شده و جواب داده .

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

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    [size=10pt]چه دعايي کنمت بهتر از آن که خدا پنجره باز اتاقت باشد ...[/size]
  2. #2
    2010/04/09
    اسلامشهر
    1,499
    37

    پاسخ : تبدیل برنامه ساعت دیجیتالی با 7 سگمنت کاتد مشترک به آند مشترک

    با سلام
    اینها رو not کنید :

    If Temp_clock >= 3 And Temp_clock <= 4 Then
    Com1 = 1 : Com2 = 0 : Com3 = 1 : Com4 = 1 : Com_dot = 1
    Temp = W \ 10 : Call Send
    Com1 = 1 : Com2 = 1 : Com3 = 0 : Com4 = 1 : Com_dot = 1
    Temp = W Mod 10 : Call Send
    Com1 = 1 : Com2 = 1 : Com3 = 1 : Com4 = 0 : Com_dot = 1
    Temp = 10 : Call Send
    Com1 = 1 : Com2 = 1 : Com3 = 1 : Com4 = 1 : Com_dot = 0
    '----------------
    و
    '------------------
    Sub Send
    Select Case Temp
    Case 0:
    Seg_a = 1
    Seg_b = 1
    Seg_c = 1
    Seg_d = 1
    Seg_e = 1
    Seg_f = 1
    Seg_g = 0
    Case 1:
    Seg_a = 0
    Seg_b = 1
    Seg_c = 1
    Seg_d = 0
    Seg_e = 0
    Seg_f = 0
    Seg_g = 0
    Case 2:
    Seg_a = 1
    Seg_b = 1
    Seg_c = 0
    Seg_d = 1
    Seg_e = 1
    Seg_f = 0
    Seg_g = 1
    Case 3:
    Seg_a = 1
    Seg_b = 1
    Seg_c = 1
    Seg_d = 1
    Seg_e = 0
    Seg_f = 0
    Seg_g = 1
    Case 4:
    Seg_a = 0
    Seg_b = 1
    Seg_c = 1
    Seg_d = 0
    Seg_e = 0
    Seg_f = 1
    Seg_g = 1
    Case 5:
    Seg_a = 1
    Seg_b = 0
    Seg_c = 1
    Seg_d = 1
    Seg_e = 0
    Seg_f = 1
    Seg_g = 1
    Case 6:
    Seg_a = 1
    Seg_b = 0
    Seg_c = 1
    Seg_d = 1
    Seg_e = 1
    Seg_f = 1
    Seg_g = 1
    Case 7:
    Seg_a = 1
    Seg_b = 1
    Seg_c = 1
    Seg_d = 0
    Seg_e = 0
    Seg_f = 0
    Seg_g = 0
    Case 8:
    Seg_a = 1
    Seg_b = 1
    Seg_c = 1
    Seg_d = 1
    Seg_e = 1
    Seg_f = 1
    Seg_g = 1
    Case 9:
    Seg_a = 1
    Seg_b = 1
    Seg_c = 1
    Seg_d = 1
    Seg_e = 0
    Seg_f = 1
    Seg_g = 1
    Case 10:
    'C
    Seg_a = 1
    Seg_b = 0
    Seg_c = 0
    Seg_d = 1
    Seg_e = 1
    Seg_f = 1
    Seg_g = 0
    End Select
    Waitms 2
    Seg_a = 0
    Seg_b = 0
    Seg_c = 0
    Seg_d = 0
    Seg_e = 0
    Seg_f = 0
    Seg_g = 0
    End Sub


    البته توی سخت افزار هم بهتره برای درایو سگمن از ترانزیستو استفاده کنید!چون اینچزی که شما میگید احتمالا به جریان بالا برای روشن شدن سگمنتش نیاز داره !
  3. #3
    2011/04/17
    تهران
    230
    2

    پاسخ : تبدیل برنامه ساعت دیجیتالی با 7 سگمنت کاتد مشترک به آند مشترک

    ممنون که به مدار نگاه کردین :smile:

    برای درایو کردن مشکلی وجود نداره ! از آیسی ULN2008 استفاده میکنم .
    ولی من هم دیروز همه اون قسمتی رو که نشون دادین رو NOT کردم ولی روی سون سگمنت چیزهای عجیب قریبی نمایش داده میشد . :angry:
    نمی دونم که چرا این جوری میشه .
    [size=10pt]چه دعايي کنمت بهتر از آن که خدا پنجره باز اتاقت باشد ...[/size]
  4. #4
    2010/04/09
    اسلامشهر
    1,499
    37

    پاسخ : تبدیل برنامه ساعت دیجیتالی با 7 سگمنت کاتد مشترک به آند مشترک

    آقا من تاحالا uln2008 ندیدم دیتاشیتشم پیدا نکردم مطمئنین خروجیاش اینورس نیست؟
  5. #5
    2007/03/01
    تهران
    1,248
    220

    پاسخ : تبدیل برنامه ساعت دیجیتالی با 7 سگمنت کاتد مشترک به آند مشترک

    سلام،

    از کد زیر استفاده کن و یادت هم نره که جهت D2 و D3 و D4 رو هم عوض کنی!
    کد:
    '*******************************************************************************
    '* Digital DS1307 Clock and Thermometer                              *
    '* Compiler: BASCOM-AVR 2.0.4.0                        *
    '* Creation Date: 01.10.2010                          *
    '* Author: Behnam Zakizadeh                          *
    '* License: freeware                              *
    '* © www.avr64.com                               *
    '* Ver: 1.0                                  *
    '*******************************************************************************
    $regfile = "m8def.dat"
    $crystal = 4000000
    '$projecttime = 0
    $hwstack = 64
    $swstack = 64
    $framesize = 64
    $lib "ds1307clock.lib"
    
    'Sub
    Declare Sub Refresh
    Declare Sub Send
    Declare Sub Keyscan
    Declare Sub Wait4key
    
    'A2D
    Config Adc = Single , Prescaler = Auto , Reference = Avcc
    Enable Adc
    Start Adc
    
    'Var
    Dim Temp As Byte , Sec_blink As Bit
    Dim Temp2 As Byte , W As Word , Temp_clock As Byte
    
    Config Sda = Portc.4
    Config Scl = Portc.3
    
    'address of ds1307
    Const Ds1307w = &HD0                    ' Addresses of Ds1307 clock
    Const Ds1307r = &HD1
    
    Config Clock = User
    
    'dim other needed variables
    Dim Weekday As Byte
    Waitms 100
    
    'For Blink LED
    Config Timer1 = Timer , Prescale = 64
    Enable Interrupts
    Enable Timer1
    Timer1 = 34276
    On Ovf1 Ov1
    Stop Timer1
    
    'I/O
    Ddrd = &B00011111
    Portd = &B11100000
    
    Min_key Alias Pind.7
    Hour_key Alias Pind.6
    Dip_key Alias Pind.5
    
    Com4 Alias Portd.4
    Com3 Alias Portd.3
    Com2 Alias Portd.1
    Com1 Alias Portd.0
    Com_dot Alias Portd.2
    
    Ddrb = &B00111110
    Portb = &H00
    
    Seg_a Alias Portb.1
    Seg_g Alias Portb.2
    Seg_b Alias Portb.3
    Seg_c Alias Portb.4
    Seg_f Alias Portb.5
    
    Point_up Alias Portb.1
    Point_dn Alias Portb.3
    Point_dg Alias Portb.4
    
    Ddrc = &B00000011
    
    Seg_e Alias Portc.0
    Seg_d Alias Portc.1
    
    'Main prog start here:
    If Dip_key = 0 Then
      Time$ = "23:59:50"                    ' to watch the day changing value
      Date$ = "06-08-10"                    ' 08 june 2010
    End If
    
    Start Timer1
    Do
      Call Refresh
      Call Keyscan
    Loop
    
    End
    
    Sub Refresh
      Gosub Getdatetime
      If Temp_clock >= 3 And Temp_clock <= 4 Then
       Com1 = 0 : Com2 = 1 : Com3 = 0 : Com4 = 0 : Com_dot = 0
       Temp = W \ 10 : Call Send
       Com1 = 0 : Com2 = 0 : Com3 = 1 : Com4 = 0 : Com_dot = 0
       Temp = W Mod 10 : Call Send
       Com1 = 0 : Com2 = 0 : Com3 = 0 : Com4 = 1 : Com_dot = 0
       Temp = 10 : Call Send
       Com1 = 0 : Com2 = 0 : Com3 = 0 : Com4 = 0 : Com_dot = 1
       Point_dg = 0
       Waitms 2
       Point_dg = 1
      Else
       W = Getadc(5)
       W = W / 2
       W = W - 2
       Com1 = 1 : Com2 = 0 : Com3 = 0 : Com4 = 0 : Com_dot = 0
       Temp = _hour \ 10 : Call Send
       Com1 = 0 : Com2 = 1 : Com3 = 0 : Com4 = 0 : Com_dot = 0
       Temp = _hour Mod 10 : Call Send
       Com1 = 0 : Com2 = 0 : Com3 = 1 : Com4 = 0 : Com_dot = 0
       Temp = _min \ 10 : Call Send
       Com1 = 0 : Com2 = 0 : Com3 = 0 : Com4 = 1 : Com_dot = 0
       Temp = _min Mod 10 : Call Send
       Com1 = 0 : Com2 = 0 : Com3 = 0 : Com4 = 0 : Com_dot = 1
       Point_up = Sec_blink
       Point_dn = Sec_blink
       Waitms 2
       Point_up = 1
       Point_dn = 1
      End If
    End Sub
    
    Sub Send
      Select Case Temp
      Case 0:
       Seg_a = 0
       Seg_b = 0
       Seg_c = 0
       Seg_d = 0
       Seg_e = 0
       Seg_f = 0
       Seg_g = 1
      Case 1:
       Seg_a = 1
       Seg_b = 0
       Seg_c = 0
       Seg_d = 1
       Seg_e = 1
       Seg_f = 1
       Seg_g = 1
      Case 2:
       Seg_a = 0
       Seg_b = 0
       Seg_c = 1
       Seg_d = 0
       Seg_e = 0
       Seg_f = 1
       Seg_g = 0
      Case 3:
       Seg_a = 0
       Seg_b = 0
       Seg_c = 0
       Seg_d = 0
       Seg_e = 1
       Seg_f = 1
       Seg_g = 0
      Case 4:
       Seg_a = 1
       Seg_b = 0
       Seg_c = 0
       Seg_d = 1
       Seg_e = 1
       Seg_f = 0
       Seg_g = 0
      Case 5:
       Seg_a = 0
       Seg_b = 1
       Seg_c = 0
       Seg_d = 0
       Seg_e = 1
       Seg_f = 0
       Seg_g = 0
      Case 6:
       Seg_a = 0
       Seg_b = 1
       Seg_c = 0
       Seg_d = 0
       Seg_e = 0
       Seg_f = 0
       Seg_g = 0
      Case 7:
       Seg_a = 0
       Seg_b = 0
       Seg_c = 0
       Seg_d = 1
       Seg_e = 1
       Seg_f = 1
       Seg_g = 1
      Case 8:
       Seg_a = 0
       Seg_b = 0
       Seg_c = 0
       Seg_d = 0
       Seg_e = 0
       Seg_f = 0
       Seg_g = 0
      Case 9:
       Seg_a = 0
       Seg_b = 0
       Seg_c = 0
       Seg_d = 0
       Seg_e = 1
       Seg_f = 0
       Seg_g = 0
      Case 10:
       'C
       Seg_a = 0
       Seg_b = 1
       Seg_c = 1
       Seg_d = 0
       Seg_e = 0
       Seg_f = 0
       Seg_g = 1
      End Select
      Waitms 2
       Seg_a = 1
       Seg_b = 1
       Seg_c = 1
       Seg_d = 1
       Seg_e = 1
       Seg_f = 1
       Seg_g = 1
    End Sub
    
    Ov1:
    Timer1 = 34276
    Toggle Sec_blink
    Incr Temp_clock
    If Temp_clock > 4 Then Temp_clock = 0
    Return
    
    'called from ds1307clock.lib
    Getdatetime:
     I2cstart                         ' Generate start code
     I2cwbyte Ds1307w                     ' send address
     I2cwbyte 0                        ' start address in 1307
    
     I2cstart                         ' Generate start code
     I2cwbyte Ds1307r                     ' send address
     I2crbyte _sec , Ack
     I2crbyte _min , Ack                    ' MINUTES
     I2crbyte _hour , Ack                   ' Hours
     I2crbyte Weekday , Ack                  ' Day of Week
     I2crbyte _day , Ack                    ' Day of Month
     I2crbyte _month , Ack                   ' Month of Year
     I2crbyte _year , Nack                   ' Year
     I2cstop
     _sec = Makedec(_sec) : _min = Makedec(_min) : _hour = Makedec(_hour)
     _day = Makedec(_day) : _month = Makedec(_month) : _year = Makedec(_year)
    Return
    
    Setdate:
     _day = Makebcd(_day) : _month = Makebcd(_month) : _year = Makebcd(_year)
     I2cstart                         ' Generate start code
     I2cwbyte Ds1307w                     ' send address
     I2cwbyte 4                        ' starting address in 1307
     I2cwbyte _day                       ' Send Data to SECONDS
     I2cwbyte _month                      ' MINUTES
     I2cwbyte _year                      ' Hours
     I2cstop
    Return
    
    Settime:
     _sec = Makebcd(_sec) : _min = Makebcd(_min) : _hour = Makebcd(_hour)
     I2cstart                         ' Generate start code
     I2cwbyte Ds1307w                     ' send address
     I2cwbyte 0                        ' starting address in 1307
     I2cwbyte _sec                       ' Send Data to SECONDS
     I2cwbyte _min                       ' MINUTES
     I2cwbyte _hour                      ' Hours
     I2cstop
    Return
    
    
    Sub Keyscan
      If Hour_key = 0 Then
       Incr _hour
       If _hour > 23 Then _hour = 0
       Gosub Settime
       Call Wait4key
      End If
      If Min_key = 0 Then
       Incr _min
       If _min > 59 Then _min = 0
       Gosub Settime
       Call Wait4key
      End If
    End Sub
    
    Sub Wait4key
      For Temp2 = 1 To 25
       Call Refresh
      Next
    End Sub

    در ضمن، ULN هم نمیخواد، مگر اینکه 7Seg هائی که استفاده میکنی بزرگ باشن و جریان بیشتر از 10 میلی آمپر بخوان.... تازشم، ULN رو کجاش گذاشتی؟! مهمه!!! چون فقط میتونی روی پین های پورت B و C که رفتن به 7Seg بزاریشون. و در اینصورت از کد زیر استفاده کن
    کد:
    '*******************************************************************************
    '* Digital DS1307 Clock and Thermometer                              *
    '* Compiler: BASCOM-AVR 2.0.4.0                        *
    '* Creation Date: 01.10.2010                          *
    '* Author: Behnam Zakizadeh                          *
    '* License: freeware                              *
    '* © www.avr64.com                               *
    '* Ver: 1.0                                  *
    '*******************************************************************************
    $regfile = "m8def.dat"
    $crystal = 4000000
    '$projecttime = 0
    $hwstack = 64
    $swstack = 64
    $framesize = 64
    $lib "ds1307clock.lib"
    
    'Sub
    Declare Sub Refresh
    Declare Sub Send
    Declare Sub Keyscan
    Declare Sub Wait4key
    
    'A2D
    Config Adc = Single , Prescaler = Auto , Reference = Avcc
    Enable Adc
    Start Adc
    
    'Var
    Dim Temp As Byte , Sec_blink As Bit
    Dim Temp2 As Byte , W As Word , Temp_clock As Byte
    
    Config Sda = Portc.4
    Config Scl = Portc.3
    
    'address of ds1307
    Const Ds1307w = &HD0                    ' Addresses of Ds1307 clock
    Const Ds1307r = &HD1
    
    Config Clock = User
    
    'dim other needed variables
    Dim Weekday As Byte
    Waitms 100
    
    'For Blink LED
    Config Timer1 = Timer , Prescale = 64
    Enable Interrupts
    Enable Timer1
    Timer1 = 34276
    On Ovf1 Ov1
    Stop Timer1
    
    'I/O
    Ddrd = &B00011111
    Portd = &B11100000
    
    Min_key Alias Pind.7
    Hour_key Alias Pind.6
    Dip_key Alias Pind.5
    
    Com4 Alias Portd.4
    Com3 Alias Portd.3
    Com2 Alias Portd.1
    Com1 Alias Portd.0
    Com_dot Alias Portd.2
    
    Ddrb = &B00111110
    Portb = &H00
    
    Seg_a Alias Portb.1
    Seg_g Alias Portb.2
    Seg_b Alias Portb.3
    Seg_c Alias Portb.4
    Seg_f Alias Portb.5
    
    Point_up Alias Portb.1
    Point_dn Alias Portb.3
    Point_dg Alias Portb.4
    
    Ddrc = &B00000011
    
    Seg_e Alias Portc.0
    Seg_d Alias Portc.1
    
    'Main prog start here:
    If Dip_key = 0 Then
      Time$ = "23:59:50"                    ' to watch the day changing value
      Date$ = "06-08-10"                    ' 08 june 2010
    End If
    
    Start Timer1
    Do
      Call Refresh
      Call Keyscan
    Loop
    
    End
    
    Sub Refresh
      Gosub Getdatetime
      If Temp_clock >= 3 And Temp_clock <= 4 Then
       Com1 = 0 : Com2 = 1 : Com3 = 0 : Com4 = 0 : Com_dot = 0
       Temp = W \ 10 : Call Send
       Com1 = 0 : Com2 = 0 : Com3 = 1 : Com4 = 0 : Com_dot = 0
       Temp = W Mod 10 : Call Send
       Com1 = 0 : Com2 = 0 : Com3 = 0 : Com4 = 1 : Com_dot = 0
       Temp = 10 : Call Send
       Com1 = 0 : Com2 = 0 : Com3 = 0 : Com4 = 0 : Com_dot = 1
       Point_dg = 0
       Waitms 2
       Point_dg = 1
      Else
       W = Getadc(5)
       W = W / 2
       W = W - 2
       Com1 = 1 : Com2 = 0 : Com3 = 0 : Com4 = 0 : Com_dot = 0
       Temp = _hour \ 10 : Call Send
       Com1 = 0 : Com2 = 1 : Com3 = 0 : Com4 = 0 : Com_dot = 0
       Temp = _hour Mod 10 : Call Send
       Com1 = 0 : Com2 = 0 : Com3 = 1 : Com4 = 0 : Com_dot = 0
       Temp = _min \ 10 : Call Send
       Com1 = 0 : Com2 = 0 : Com3 = 0 : Com4 = 1 : Com_dot = 0
       Temp = _min Mod 10 : Call Send
       Com1 = 0 : Com2 = 0 : Com3 = 0 : Com4 = 0 : Com_dot = 1
       Point_up = Sec_blink
       Point_dn = Sec_blink
       Waitms 2
       Point_up = 1
       Point_dn = 1
      End If
    End Sub
    
    Sub Send
      Select Case Temp
      Case 0:
       Seg_a = 1
       Seg_b = 1
       Seg_c = 1
       Seg_d = 1
       Seg_e = 1
       Seg_f = 1
       Seg_g = 0
      Case 1:
       Seg_a = 0
       Seg_b = 1
       Seg_c = 1
       Seg_d = 0
       Seg_e = 0
       Seg_f = 0
       Seg_g = 0
      Case 2:
       Seg_a = 1
       Seg_b = 1
       Seg_c = 0
       Seg_d = 1
       Seg_e = 1
       Seg_f = 0
       Seg_g = 1
      Case 3:
       Seg_a = 1
       Seg_b = 1
       Seg_c = 1
       Seg_d = 1
       Seg_e = 0
       Seg_f = 0
       Seg_g = 1
      Case 4:
       Seg_a = 0
       Seg_b = 1
       Seg_c = 1
       Seg_d = 0
       Seg_e = 0
       Seg_f = 1
       Seg_g = 1
      Case 5:
       Seg_a = 1
       Seg_b = 0
       Seg_c = 1
       Seg_d = 1
       Seg_e = 0
       Seg_f = 1
       Seg_g = 1
      Case 6:
       Seg_a = 1
       Seg_b = 0
       Seg_c = 1
       Seg_d = 1
       Seg_e = 1
       Seg_f = 1
       Seg_g = 1
      Case 7:
       Seg_a = 1
       Seg_b = 1
       Seg_c = 1
       Seg_d = 0
       Seg_e = 0
       Seg_f = 0
       Seg_g = 0
      Case 8:
       Seg_a = 1
       Seg_b = 1
       Seg_c = 1
       Seg_d = 1
       Seg_e = 1
       Seg_f = 1
       Seg_g = 1
      Case 9:
       Seg_a = 1
       Seg_b = 1
       Seg_c = 1
       Seg_d = 1
       Seg_e = 0
       Seg_f = 1
       Seg_g = 1
      Case 10:
       'C
       Seg_a = 1
       Seg_b = 0
       Seg_c = 0
       Seg_d = 1
       Seg_e = 1
       Seg_f = 1
       Seg_g = 0
      End Select
      Waitms 2
       Seg_a = 0
       Seg_b = 0
       Seg_c = 0
       Seg_d = 0
       Seg_e = 0
       Seg_f = 0
       Seg_g = 0
    End Sub
    
    Ov1:
    Timer1 = 34276
    Toggle Sec_blink
    Incr Temp_clock
    If Temp_clock > 4 Then Temp_clock = 0
    Return
    
    'called from ds1307clock.lib
    Getdatetime:
     I2cstart                         ' Generate start code
     I2cwbyte Ds1307w                     ' send address
     I2cwbyte 0                        ' start address in 1307
    
     I2cstart                         ' Generate start code
     I2cwbyte Ds1307r                     ' send address
     I2crbyte _sec , Ack
     I2crbyte _min , Ack                    ' MINUTES
     I2crbyte _hour , Ack                   ' Hours
     I2crbyte Weekday , Ack                  ' Day of Week
     I2crbyte _day , Ack                    ' Day of Month
     I2crbyte _month , Ack                   ' Month of Year
     I2crbyte _year , Nack                   ' Year
     I2cstop
     _sec = Makedec(_sec) : _min = Makedec(_min) : _hour = Makedec(_hour)
     _day = Makedec(_day) : _month = Makedec(_month) : _year = Makedec(_year)
    Return
    
    Setdate:
     _day = Makebcd(_day) : _month = Makebcd(_month) : _year = Makebcd(_year)
     I2cstart                         ' Generate start code
     I2cwbyte Ds1307w                     ' send address
     I2cwbyte 4                        ' starting address in 1307
     I2cwbyte _day                       ' Send Data to SECONDS
     I2cwbyte _month                      ' MINUTES
     I2cwbyte _year                      ' Hours
     I2cstop
    Return
    
    Settime:
     _sec = Makebcd(_sec) : _min = Makebcd(_min) : _hour = Makebcd(_hour)
     I2cstart                         ' Generate start code
     I2cwbyte Ds1307w                     ' send address
     I2cwbyte 0                        ' starting address in 1307
     I2cwbyte _sec                       ' Send Data to SECONDS
     I2cwbyte _min                       ' MINUTES
     I2cwbyte _hour                      ' Hours
     I2cstop
    Return
    
    
    Sub Keyscan
      If Hour_key = 0 Then
       Incr _hour
       If _hour > 23 Then _hour = 0
       Gosub Settime
       Call Wait4key
      End If
      If Min_key = 0 Then
       Incr _min
       If _min > 59 Then _min = 0
       Gosub Settime
       Call Wait4key
      End If
    End Sub
    
    Sub Wait4key
      For Temp2 = 1 To 25
       Call Refresh
      Next
    End Sub

    خوش گذشت ....
    مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

    Sh_Nourbakhsh@Yahoo.com

    http://s2.picofile.com/file/7170362468/_Wall_e_.jp
  6. #6
    2010/07/13
    تهران
    1,282
    20

    پاسخ : تبديل برنامه ساعت ديجيتالي با 7 سگمنت کاتد مشترک به آند مشترک

    نقل قول نوشته اصلی توسط OutLandish992
    سلام به تمامي دوستان ECA :bye
    من يه مدار تپل ساعت ديجيتالي پيدا کردم و تمامي قطعات اون توي خونه آماده هست ولي سون سگمنتي که توي اين مدار استفاده شده از نوع کاتد مشترک هست و من خيلي جمهوري رو گشتم و فقط آند مشترک پيدا کردم . ( سون سگمنت کاتد مشترک کوچيک خيلي هست ولي من از نوع 7 در 11 سانتي متر رو ميخوام که پيدا نميشه ) .
    حالا از دوستان خواهش ميکنم که فايل پروژه رو دانلود کنند و کساني که وارد هستند سورس برنامرو از کاتد مشترک به آند مشترک تبديل کنند . خيلي حياتيه . مدار با سون سگمنت کاتد مشترک کوچيک بسته شده و جواب داده .

    سورس : بيسيک ( بسکام )
    قابليت : ذخيره ساعت در هنگام قطعي برق - نمايش دما و ...
    سون سگمنت استفاده شده از نوع کاتد مشترک

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    سلام ميتوني از ايسي 4049B استفاده کني يه ايسي not هست اينم ديتاشيت :

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


    AV Maziton 100
    Render By Artlantis Studio
    [img width=346 height=100]http://maziyar123.persiangig.com/View.jpg[/img]
  7. #7
    2011/04/17
    تهران
    230
    2

    پاسخ : تبدیل برنامه ساعت دیجیتالی با 7 سگمنت کاتد مشترک به آند مشترک

    دوستان محترم . ممنون از نظرات ارزشمندتون .

    من برای درایو کردن سون سگمنت های بزرگ به مشکل خوردم . من توی ذهنم آیسی ULN2003 رو در نظر گرفته بودم ولی الان که فکر میکنم نمیشه چون 180 درجه ورودی و خروجی اختلاف فاز دارن. یعنی NOT هستند .

    به نظر شما من چه کاری میتونم انجام بدم . آیا آیسی هست که درست مثل رله عمل کنه . توی آیسی ULN پایه مشترک حتما باید به زمین وصل بشه چونکه امیتر ترانزیستورها محسوب میشه و اگه اونو به تغذیه وصل کنیم کار نمیکنه .
    [size=10pt]چه دعايي کنمت بهتر از آن که خدا پنجره باز اتاقت باشد ...[/size]
  8. #8
    2007/03/01
    تهران
    1,248
    220

    پاسخ : تبدیل برنامه ساعت دیجیتالی با 7 سگمنت کاتد مشترک به آند مشترک

    نقل قول نوشته اصلی توسط OutLandish992
    دوستان محترم . ممنون از نظرات ارزشمندتون .

    من برای درایو کردن سون سگمنت های بزرگ به مشکل خوردم . من توی ذهنم آیسی ULN2003 رو در نظر گرفته بودم ولی الان که فکر میکنم نمیشه چون 180 درجه ورودی و خروجی اختلاف فاز دارن. یعنی NOT هستند .

    به نظر شما من چه کاری میتونم انجام بدم . آیا آیسی هست که درست مثل رله عمل کنه . توی آیسی ULN پایه مشترک حتما باید به زمین وصل بشه چونکه امیتر ترانزیستورها محسوب میشه و اگه اونو به تغذیه وصل کنیم کار نمیکنه .
    با سلام،

    اگر سون سگمنت هات بزرگن و جریان زیادی میکشن، من پیشنهاد میکنم که که یک ULN2003 بزاری سمت دیتای سون سگمنت ها ( a,b,c,d,e,f,g,p ) و از 4 تا ترانزیستور مثبت هم سمت مشترکها استفاده کنی....
    مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

    Sh_Nourbakhsh@Yahoo.com

    http://s2.picofile.com/file/7170362468/_Wall_e_.jp
  9. #9
    2011/04/17
    تهران
    230
    2

    پاسخ : تبدیل برنامه ساعت دیجیتالی با 7 سگمنت کاتد مشترک به آند مشترک

    با تشکر از دوستان خوبم .
    اما این کار رو هم انجام دادم . به هیچ صراطی مستقیم نمیشه . همه سون سگمنته روشن میشن و 8 رو نشون میدن . :angry: :cry2:
    [size=10pt]چه دعايي کنمت بهتر از آن که خدا پنجره باز اتاقت باشد ...[/size]
  10. #10
    2007/03/01
    تهران
    1,248
    220

    پاسخ : تبدیل برنامه ساعت دیجیتالی با 7 سگمنت کاتد مشترک به آند مشترک

    نقل قول نوشته اصلی توسط OutLandish992
    با تشکر از دوستان خوبم .
    اما این کار رو هم انجام دادم . به هیچ صراطی مستقیم نمیشه . همه سون سگمنته روشن میشن و 8 رو نشون میدن . :angry: :cry2:
    با سلام،

    با فرض سون سگمنت آند مشترک و با توجه به توضیحات پست قبلی، به سمت دیتا ( a,b,c,d,e,f,g,p ) که یک بدی و به سمت مشترک اونها صفر بدی، اونوقت روشن میشن....

    از این کد استفاده کن ( فقط صفر و یک قسمت Com برعکس شده )
    کد:
    '*******************************************************************************
    '* Digital DS1307 Clock and Thermometer                    *
    '* Compiler: BASCOM-AVR 2.0.4.0                        *
    '* Creation Date: 01.10.2010                          *
    '* Author: Behnam Zakizadeh                          *
    '* License: freeware                              *
    '* © www.avr64.com                               *
    '* Ver: 1.0                                  *
    '*******************************************************************************
    $regfile = "m8def.dat"
    $crystal = 4000000
    '$projecttime = 0
    $hwstack = 64
    $swstack = 64
    $framesize = 64
    $lib "ds1307clock.lib"
    
    'Sub
    Declare Sub Refresh
    Declare Sub Send
    Declare Sub Keyscan
    Declare Sub Wait4key
    
    'A2D
    Config Adc = Single , Prescaler = Auto , Reference = Avcc
    Enable Adc
    Start Adc
    
    'Var
    Dim Temp As Byte , Sec_blink As Bit
    Dim Temp2 As Byte , W As Word , Temp_clock As Byte
    
    Config Sda = Portc.4
    Config Scl = Portc.3
    
    'address of ds1307
    Const Ds1307w = &HD0                    ' Addresses of Ds1307 clock
    Const Ds1307r = &HD1
    
    Config Clock = User
    
    'dim other needed variables
    Dim Weekday As Byte
    Waitms 100
    
    'For Blink LED
    Config Timer1 = Timer , Prescale = 64
    Enable Interrupts
    Enable Timer1
    Timer1 = 34276
    On Ovf1 Ov1
    Stop Timer1
    
    'I/O
    Ddrd = &B00011111
    Portd = &B11100000
    
    Min_key Alias Pind.7
    Hour_key Alias Pind.6
    Dip_key Alias Pind.5
    
    Com4 Alias Portd.4
    Com3 Alias Portd.3
    Com2 Alias Portd.1
    Com1 Alias Portd.0
    Com_dot Alias Portd.2
    
    Ddrb = &B00111110
    Portb = &H00
    
    Seg_a Alias Portb.1
    Seg_g Alias Portb.2
    Seg_b Alias Portb.3
    Seg_c Alias Portb.4
    Seg_f Alias Portb.5
    
    Point_up Alias Portb.1
    Point_dn Alias Portb.3
    Point_dg Alias Portb.4
    
    Ddrc = &B00000011
    
    Seg_e Alias Portc.0
    Seg_d Alias Portc.1
    
    'Main prog start here:
    If Dip_key = 0 Then
      Time$ = "23:59:50"                    ' to watch the day changing value
      Date$ = "06-08-10"                    ' 08 june 2010
    End If
    
    Start Timer1
    Do
      Call Refresh
      Call Keyscan
    Loop
    
    End
    
    Sub Refresh
      Gosub Getdatetime
      If Temp_clock >= 3 And Temp_clock <= 4 Then
       Com1 = 0 : Com2 = 1 : Com3 = 0 : Com4 = 0 : Com_dot = 0
       Temp = W \ 10 : Call Send
       Com1 = 0 : Com2 = 0 : Com3 = 1 : Com4 = 0 : Com_dot = 0
       Temp = W Mod 10 : Call Send
       Com1 = 0 : Com2 = 0 : Com3 = 0 : Com4 = 1 : Com_dot = 0
       Temp = 10 : Call Send
       Com1 = 0 : Com2 = 0 : Com3 = 0 : Com4 = 0 : Com_dot = 1
       Point_dg = 0
       Waitms 2
       Point_dg = 1
      Else
       W = Getadc(5)
       W = W / 2
       W = W - 2
       Com1 = 1 : Com2 = 0 : Com3 = 0 : Com4 = 0 : Com_dot = 0
       Temp = _hour \ 10 : Call Send
       Com1 = 0 : Com2 = 1 : Com3 = 0 : Com4 = 0 : Com_dot = 0
       Temp = _hour Mod 10 : Call Send
       Com1 = 0 : Com2 = 0 : Com3 = 1 : Com4 = 0 : Com_dot = 0
       Temp = _min \ 10 : Call Send
       Com1 = 0 : Com2 = 0 : Com3 = 0 : Com4 = 1 : Com_dot = 0
       Temp = _min Mod 10 : Call Send
       Com1 = 0 : Com2 = 0 : Com3 = 0 : Com4 = 0 : Com_dot = 1
       Point_up = Sec_blink
       Point_dn = Sec_blink
       Waitms 2
       Point_up = 1
       Point_dn = 1
      End If
    End Sub
    
    Sub Send
      Select Case Temp
      Case 0:
       Seg_a = 1
       Seg_b = 1
       Seg_c = 1
       Seg_d = 1
       Seg_e = 1
       Seg_f = 1
       Seg_g = 0
      Case 1:
       Seg_a = 0
       Seg_b = 1
       Seg_c = 1
       Seg_d = 0
       Seg_e = 0
       Seg_f = 0
       Seg_g = 0
      Case 2:
       Seg_a = 1
       Seg_b = 1
       Seg_c = 0
       Seg_d = 1
       Seg_e = 1
       Seg_f = 0
       Seg_g = 1
      Case 3:
       Seg_a = 1
       Seg_b = 1
       Seg_c = 1
       Seg_d = 1
       Seg_e = 0
       Seg_f = 0
       Seg_g = 1
      Case 4:
       Seg_a = 0
       Seg_b = 1
       Seg_c = 1
       Seg_d = 0
       Seg_e = 0
       Seg_f = 1
       Seg_g = 1
      Case 5:
       Seg_a = 1
       Seg_b = 0
       Seg_c = 1
       Seg_d = 1
       Seg_e = 0
       Seg_f = 1
       Seg_g = 1
      Case 6:
       Seg_a = 1
       Seg_b = 0
       Seg_c = 1
       Seg_d = 1
       Seg_e = 1
       Seg_f = 1
       Seg_g = 1
      Case 7:
       Seg_a = 1
       Seg_b = 1
       Seg_c = 1
       Seg_d = 0
       Seg_e = 0
       Seg_f = 0
       Seg_g = 0
      Case 8:
       Seg_a = 1
       Seg_b = 1
       Seg_c = 1
       Seg_d = 1
       Seg_e = 1
       Seg_f = 1
       Seg_g = 1
      Case 9:
       Seg_a = 1
       Seg_b = 1
       Seg_c = 1
       Seg_d = 1
       Seg_e = 0
       Seg_f = 1
       Seg_g = 1
      Case 10:
       'C
       Seg_a = 1
       Seg_b = 0
       Seg_c = 0
       Seg_d = 1
       Seg_e = 1
       Seg_f = 1
       Seg_g = 0
      End Select
      Waitms 2
       Seg_a = 0
       Seg_b = 0
       Seg_c = 0
       Seg_d = 0
       Seg_e = 0
       Seg_f = 0
       Seg_g = 0
    End Sub
    
    Ov1:
    Timer1 = 34276
    Toggle Sec_blink
    Incr Temp_clock
    If Temp_clock > 4 Then Temp_clock = 0
    Return
    
    'called from ds1307clock.lib
    Getdatetime:
     I2cstart                         ' Generate start code
     I2cwbyte Ds1307w                     ' send address
     I2cwbyte 0                        ' start address in 1307
    
     I2cstart                         ' Generate start code
     I2cwbyte Ds1307r                     ' send address
     I2crbyte _sec , Ack
     I2crbyte _min , Ack                    ' MINUTES
     I2crbyte _hour , Ack                   ' Hours
     I2crbyte Weekday , Ack                  ' Day of Week
     I2crbyte _day , Ack                    ' Day of Month
     I2crbyte _month , Ack                   ' Month of Year
     I2crbyte _year , Nack                   ' Year
     I2cstop
     _sec = Makedec(_sec) : _min = Makedec(_min) : _hour = Makedec(_hour)
     _day = Makedec(_day) : _month = Makedec(_month) : _year = Makedec(_year)
    Return
    
    Setdate:
     _day = Makebcd(_day) : _month = Makebcd(_month) : _year = Makebcd(_year)
     I2cstart                         ' Generate start code
     I2cwbyte Ds1307w                     ' send address
     I2cwbyte 4                        ' starting address in 1307
     I2cwbyte _day                       ' Send Data to SECONDS
     I2cwbyte _month                      ' MINUTES
     I2cwbyte _year                      ' Hours
     I2cstop
    Return
    
    Settime:
     _sec = Makebcd(_sec) : _min = Makebcd(_min) : _hour = Makebcd(_hour)
     I2cstart                         ' Generate start code
     I2cwbyte Ds1307w                     ' send address
     I2cwbyte 0                        ' starting address in 1307
     I2cwbyte _sec                       ' Send Data to SECONDS
     I2cwbyte _min                       ' MINUTES
     I2cwbyte _hour                      ' Hours
     I2cstop
    Return
    
    
    Sub Keyscan
      If Hour_key = 0 Then
       Incr _hour
       If _hour > 23 Then _hour = 0
       Gosub Settime
       Call Wait4key
      End If
      If Min_key = 0 Then
       Incr _min
       If _min > 59 Then _min = 0
       Gosub Settime
       Call Wait4key
      End If
    End Sub
    
    Sub Wait4key
      For Temp2 = 1 To 25
       Call Refresh
      Next
    End Sub
    مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

    Sh_Nourbakhsh@Yahoo.com

    http://s2.picofile.com/file/7170362468/_Wall_e_.jp
صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 18

موضوعات مشابه

  1. تبدیل کاتد مشترک به آند مشترک با ترانزیستور
    توسط Msn.elecomp در انجمن مفاهیم پایه برق و الکترونیک
    پاسخ: 5
    آخرين نوشته: 2020/01/29, 22:39
  2. رول led rgb آند مشترک هست یا کاتد؟
    توسط M3R-E در انجمن نورپردازی و روشنایی
    پاسخ: 1
    آخرين نوشته: 2016/04/08, 00:50
  3. چراغ راهنمايي دوتايي با4سون سگمنت کاتد مشترک(بيسکام)همراه بافايل پروتئوس
    توسط mahan.rafiee در انجمن پروژه ها و مقالات تكميل شده AVR
    پاسخ: 2
    آخرين نوشته: 2014/02/15, 12:15
  4. کمک براي تغيير برنامه بسکام از اند مشترک به کاتد مشترک
    توسط sky_man847 در انجمن میکروکنترلرهای AVR
    پاسخ: 13
    آخرين نوشته: 2013/07/10, 21:15
  5. پاسخ: 7
    آخرين نوشته: 2013/05/08, 18:09

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •