دستورات forدرزبان c

tabasoomtz

عضو جدید
سلام
می خواستم ببینم چطوری می شه با دستور forیه چشمک زن درست کرد؟؟؟؟/
بعد از اون مدارچطوری می تونم مثلا با همون forاول porta.0روشن بشه اون که روشن شد porta.7روشن بشه بعد porta.1وبعداز اون porta.6روشن شه و به همین ترتیب بره؟؟؟؟؟؟؟؟//
 

amoralla

عضو جدید
for (i=0;i<10;i++) {
PORTA.0=1;
delay_ms(100);
PORTA.7=1;
delay_ms(100);
PORTA.1=1;
delay_ms(100);
PORTA.6=1;
delay_ms(100);
PORTA=0X00;
delay_ms(100);

};
 
آخرین ویرایش:

amoralla

عضو جدید
سلام توضیح

سلام توضیح

این برنامه فقط پینها رو یکی یکی روشن میکنه بعد با دستور
PORTA=0X00کل پین ها با هم خاموش میشود اگر خواستی پین ها رو یکی یکی روشن بعد خاموش کنی باید بعد از هر
delay_ms(100 دوباره هر پایه رو مساوی صفر کنی تا خاموش بشن میتونیDDR ِوwhileرو هم استفاده نکنی.این برنامه ده بار اجرا میشود وبعد از حلقه فور خارج میشود اگر میخوای برنامه دائما تکرار بشه حلقه فور را حذف کن بجاش یک حلقه(1) WHILEبگذار .اگر کمک خواستی پیام بگذارتو تایپیک
 
آخرین ویرایش:

amoralla

عضو جدید
تو این برنامه که دائما تا میکرو روشنه اجرا میشه پورت های1 و7و2و6پشت سر هم چشمک میزنند میتونی شرط حلقهWHILEرو طوری قرار بدی که تا یه کلیدی که به میکرو وصل شده رو زدی برنامه اجرا بشه
while (1) {
PORTA.0=1;
delay_ms(100);
PORTA.1=0;

PORTA.7=1;
delay_ms(100);
PORTA.7=0;

PORTA.2=1;
delay_ms(100);
PORTA.2=0;

PORTA.6=1;
delay_ms(100);
PORTA.6=0;

};
 

tabasoomtz

عضو جدید
عزیز من با port بلدم همچین کاری کنم من می خواlباfor همچین کاری رو بکنم
چطوری می شه با forاین کارو کرد؟؟؟؟؟؟؟//
 

amoralla

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

tabasoomtz

عضو جدید
ممنون از پاسختون
شما چند تاپروزه ای دارین با lcdکاراکتری که با کدویزارد نباشه تو خوده نرم افزار باشه؟؟
 

amoralla

عضو جدید
من خودم با کد ویزارد کار میکنم اما قبلا خودم دستی کد ها رو مینوشتم دستوراشو میتونی تو قسمت helpنرم افزار کد ویژن ببینی خیلی کامل تر از کتاب ها توضیح دادن .دستوراشون به طور کلی با هم فرقی نداره اما وقتی به صورت دستی میخوای lcdرو معرفی کنی مثل زیر میشه اما بایدکل پایه ها یlcdرا براش معرفی کنی و ادرس هر پورت را بلد باشی مثلا تو برنامه زیر پورت سی رو واسه lcdمعرفی کرده ادرسش هم0x15است.برنامه زیر برای معرفی کردن ال سی دی است که باید قبل از تابع mainبنویسیش
#asm
.equ __lcd_port=0x15
#endasm

#include <lcd.h>




[LCD] [AVR Port]
RS (pin4) ------ bit 0
RD (pin 5) ------ bit 1
EN (pin 6) ------ bit 2
DB4 (pin 11) --- bit 4
DB5 (pin 12) --- bit 5
DB6 (pin 13) --- bit 6
DB7 (pin 14) --- bit 7
 
بالا