با سلام
من یک برنامه ساده برای pic 16f84a نوشتم ولی خروجی لچ نمی شود وبعد از چند ثانیه صفر میشود
loop: btfss porta,0
goto loop
bsf portb,0
goto loop
end
پورت a ورودی و پورت b خروجی تعریف کردمچ
:?: :?: :?: :?: :?: :?: :?: :?: :?: :?: :?:
این btfss که گفتی یعنی چه؟ :wink:
این دستور رو تاحالا ندیده بودم باید جالب باشه
سلام
مطمعن هستید تا حالا ندیدید
btfss و btfsc تست بیت و پرش در صورت یک یا صفر بودن آن
btfss f,b 0<f<127 0<b<7
:?: :?: :?: :?: :?: :?: :?: :?: :( :( :( :( :( :( :(
آقا من اسمبلی PIC کار نکردم این دستور دومی یه رو هم بگو :wink:
ولی اگه برنامه رو شبیه سازی کردی و کار می کنه احتمالا نویز می گیره تو ورودی یا داره ریست می شه
اگه اون دستور دومی رو هم بگو ببینم چیه
با سلام
اول اینکه می خواهم بااستفاده از pic و شش عدد سویچ فشاری و شش عدد لامپ مداری بسازم که با فشار دادن هر سویچ لامپ مربوطه روشن بماند تا زمانیکه کلید بعدی فشار داده شود و لامپ مربوط به آن روشن شده و قبلی خاموش شود .
بر نامه نوشته شده در بالا با توجه به اینکه پورت A بعنوان ورودی و پورت B بعنوان خروجی تعریف شده است میباشد .
بیت صفر پورت A چک میشود اگر صفر بود که لوپ تکرار میشود
loop: btfss porta,0
goto loop
در صورت یک شدن بیت صفر پورت A بیت صفر پورت B یک میشود
bsf portb,0
سپس لوپ چک بیت صفر پورت A تکرار میشود
BTFSS F.d بیت d از ریجستر (flag) چک شود اگر یک بود یک دستور پرش کن
اگر صفر بود دستور بعدی را انجام بده
bsf f,d بیت dام ریجستر یا فلاگ f را یک کن
این برنامه در pic با اسیلاتور RC با مقادیر R=330K و C=220PF کارمیکند
زمانیکه ورودی یک میشود خروجی یک میشود و پس از چند لحظه دوباره صفر میشود
و اگر دو باره ورودی را یک کنیم خروجی یک مشود و پس از چند لحظه دو باره صفر میشود
در صورتی که طبق برنامه میبایستی خروجی دایم یک باقی بماند
یعنی خروجی یا پورت لچ نمیکند
با تشکر
حالا گرفتم چی شد برنامت درسته
چون هیچ جایی صفر نکردی پرت رو حتی اگر اشتباه هم بود نباید صفر بشه
ولی برای اطمینان می تونی از شبیه ساز خود PIC استفاده کنی نیاز نیست سخت افزاری ببندی خط به خط برنامه رو دیباگ کن ببین کار می کنه (یادمه توی اسمبلی avr همه چیز درست بود ولی به خاطر اینکه stack رو مقدار دهی نکرده بودم اول برنامه قاطی می کرد که با دیباگ معلوم شد)
به نظر مشکل سخت افزاری می یاد و اینکه میکرو دایم ریست می شه شاید مشکل نویز توی خط تغذیه داشته باشی یا گرم شدن آی سی یا یه چیزی تو این مایه ها
سلام
با تشکر
میشه مدار رو روی بردبورد تست کرد یا نه
شدن که می شه
فکر کنم نرم افزاری شبیه سازی کنی بهتره
hamishe baraye avalin bar az dastourate sadeh barname nevisi estefade kon va barnamehatam boulok boulok kon.
زیر خاکی در آوردی ها. ممنون
لطفا، پارسی را با خط پارسی پاس بدار.