gmaissam 110 اشتراک گذاری ارسال شده در 17 اردیبهشت، ۱۳۹۲ سلام چطور میتونم 6تا سون سگمنت کاتد مشترک کوچک رو برنامه نویسی رفرش کنم این سگمنتها با ایسی7448 به میکرو اتصال دارنن درواقع 4پایه یک پورت اشغال میشه ،،منها برنامه نویسیشو بلد نیستم کسی میتونه کمک کنه؟؟؟ این میکرو ساعت دیجیتال با کمک 1307 هست 2 لینک به دیدگاه
gmaissam 110 مالک اشتراک گذاری ارسال شده در 18 اردیبهشت، ۱۳۹۲ این برنامه ای که نوشتم لطف کنید واشکالاتشو بهم بگید ..فایل برنامه رو هم میزارم $regfile = "m32def.dat" $crystal = 11059200 $lib "ds1307clock.lib" '------------------------ 7segment ----------------------------------------------- Config Portb = Output Config Portc.2 = Output Config Portc.3 = Output Config Portc.4 = Output Config Portc.5 = Output '------------------------ ds 1307 ----------------------------------------- 'configure the scl and sda pins Config Sda = Portc.1 Config Scl = Portc.0 'address of ds1307 Const Ds1307w = &HD0 ' Addresses of Ds1307 clock Const Ds1307r = &HD1 Dim I As Byte Dim Seco As Byte , Sec1 As Byte , Sec2 As Byte , Sec3 As Byte Dim Mine As Byte Dim Mine1 As Byte Dim Mine2 As Byte Dim M As Byte Dim *** As Byte Seco = 1 Gosub Ds1307s Gosub Ds1307m Do For I = 0 To 3 If I = 0 Then Portc.3 = 1 Portc.2 = 0 Portb = Lookup(sec2 , 7seg) End If If I = 1 Then Portc.2 = 1 Portc.3 = 0 Portb = Lookup(sec3 , 7seg) End If If I = 2 Then Portc.4 = 0 Portc.5 = 1 Portb = Lookup(mine1 , 7seg) End If If I = 3 Then Portc.5 = 0 Portc.4 = 1 Portb = Lookup(mine2 , 7seg) End If Gosub Ds1307 If Seco > 59 Then Seco = 0 Seco = Makedec(seco) Sec2 = Seco / 10 Sec3 = Seco Mod 10 If Mine > 59 Then Mine = 0 Mine = Makedec(mine) Mine1 = Mine / 10 Mine2 = Mine Mod 10 Loop Ds1307: I2cstart ' Generate start code I2cwbyte Ds1307w ' send address I2cwbyte 0 ' start address in 1307 I2cstart ' Generate start code I2cwbyte Ds1307r ' send address I2crbyte Seco , ack I2crbyte Mine , Ack 'sec I2cstop Return Ds1307s: If Seco > 59 Then Seco = 0 Seco = Makebcd(seco) I2cstart ' Generate start code I2cwbyte Ds1307w ' send address I2cwbyte 0 ' starting address in 1307 I2cwbyte Seco I2cstop Return Ds1307m: If Mine > 59 Then Mine = 0 Mine = Makebcd(mine) I2cstart ' Generate start code I2cwbyte Ds1307w ' send address I2cwbyte 0 ' starting address in 1307 I2cwbyte Mine I2cstop Return End 7seg: Data &H3F , &H06 , &H5B , &H4F , &H66 , &H6D , &H7D , &H07 , &H7F , &H6F 2 لینک به دیدگاه
salamis 1865 اشتراک گذاری ارسال شده در 19 اردیبهشت، ۱۳۹۲ این رو با باسکام نوشتی؟؟؟ من با سی بلد هستم. کلیتش رو بخوای بدونی اینه که 7 تا پایه سون سگمنت ها را به یک پورت وصل می کنی و پایه فعال ساز ها رو هم به یه پورت. حالا به ترتیب هر 20 میلی ثانیه یکی از سون سگمنت ها رو روشن می کنیم و عدد مورد نظر رو می ریزیم روش بعد سون سگمنت بعدی... همین طور روشن و خاموش می شن اما چون این اتفاق سریع رخ میده ما کل ارقام رو ثابت می بینیم 2 لینک به دیدگاه
ارسال های توصیه شده