به نام خدا : قفل رمز ۴ رقمی پیشرفته با AVR ؛ این پروژه نسخه اصلاح شده و یکم پیشرفته تر! پروژه زیر هستش : قفل رمز ۴ رقمی با میکروکنترلر avr
امکانات افزوده شده در قفل رمز دیجیتال :
1) تغییر رمز عبور توسط کاربر>>>پسورد پیشفرض 1234 هستش>>>که اگه رمز رو تغییر بدید
2) بررسی این که آیا پسورد وارد شده درست وارد شده یا نه>>>>که اگه درست وارد شده بود یهکاری رو انجام بده>>>که این بر عهده خودتونه که به میکرو چه دستوری بدید تا در صورت صحیح بودن پسورد وارد شده میکرو چه کار رو انجام بده
اینم از کد های پروژه قفل رمز که داخل کد ها توضیحات لازم رو دادم لذا از توضیح اضافه خودداری میکنم.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 |
#include <mega16.h> // تابع میکروکنترلر ای تی مگا 16 #include <delay.h> // تابع تاخیر زمانی #include <lcd.h> // تابع کتاب خانه ال سی دی #include <stdlib.h> // این کتاب خانه برا تبدیل انواع متغیر ها به هم دیگه هستش //سه خط زیر برا تعیین این هستش که ال سی دی به کدام پایه میکروکنترلر وصل بشه #asm .equ __lcd_port=0x1b #endasm int total_number=1 , a , b , c , d ;// متغییر های مربوط به تابع amaliat char password[4]; int y11,y12,y13,y14,y15;//پسورد های وارد شده توسط کاربر در اینا ذخیره میشن و ما میفهمیم که پسورد رو درست وارد کرده یا نه int my_password=1234;//تعیین پسورد اولیه پروژمون //############################################# int key(void)//تابعی که به کمکش میفهمیم که کاربر رو چه دکمه ای کلیک کرده است { while(1) { PORTB.0 = 1 ; PORTB.1 = 0 ; PORTB.2 = 0 ; PORTB.3 = 0 ; if(PINB.4 == 1){return 7 ; delay_ms(50);} if(PINB.5 == 1){return 8 ; delay_ms(50);} if(PINB.6 == 1){return 9 ; delay_ms(50);} //========================================== PORTB.0 = 0 ; PORTB.1 = 1 ; PORTB.2 = 0 ; PORTB.3 = 0 ; if(PINB.4 == 1){return 4 ;delay_ms(50);} if(PINB.5 == 1){return 5 ;delay_ms(50);} if(PINB.6 == 1){return 6 ;delay_ms(50);} //========================================== PORTB.0 = 0 ; PORTB.1 = 0 ; PORTB.2 = 1 ; PORTB.3 = 0 ; if(PINB.4 == 1){return 1 ;delay_ms(50);} if(PINB.5 == 1){return 2 ;delay_ms(50);} if(PINB.6 == 1){return 3 ;delay_ms(50);} //========================================== PORTB.0 = 0 ; PORTB.1 = 0 ; PORTB.2 = 0 ; PORTB.3 = 1 ; if(PINB.6 == 1){return 10; delay_ms(50);} if(PINB.5 == 1){return 0 ; delay_ms(50);} } } //############################################# //تابعی که رمز های دریافتی رو به صورت * نشون میده و به ما میگه که پسورد وارد شده صحیح هستش یا نه //که در این تابع ما میتونیم دستور مرد نظرمون رو در صورت وارد شدن صحیح پرود قرار بدیم و به میکرو //بگیم که اگه پسوردوارد شده درست بود فلان کار رو انجام بده و اگه غلت بود کار دیگه ای انجام بده void amaliat (int y) { if(total_number==1) //اگر این رقم ، رقم اول است { y11=y; total_number++; a = y ; lcd_clear(); lcd_puts("*"); } else if(total_number==2) //اگر این رقم ، رقم دوم است { y12=y; total_number++; b = y ; lcd_clear(); lcd_puts("**"); } else if(total_number==3) //اگ این رقم ، رقم سوم است { y13=y; total_number++; c = y ; lcd_clear(); lcd_puts("***"); } else if(total_number==4) //اگر این رقم ، رقم چهارم است { y14=y; total_number=1; d = y ; lcd_clear(); lcd_puts("****"); delay_ms(300); lcd_clear(); itoa( a , password ) ; lcd_puts(password); itoa( b , password ) ; lcd_puts(password); itoa( c , password ) ; lcd_puts(password); itoa( d , password ) ; lcd_puts(password); delay_ms(300); lcd_clear(); y15=y11*1000+y12*100+y13*10+y14; if(y15==my_password) { lcd_gotoxy(0,0); lcd_putsf("your pass is"); lcd_gotoxy(0,1); lcd_putsf(" correct"); delay_ms(300); lcd_clear(); } else { lcd_gotoxy(0,0); lcd_putsf("your pass is"); lcd_gotoxy(0,1); lcd_putsf(" incorrect"); delay_ms(300); lcd_clear(); } }; } //############################################# //اینم از تابع الی پروژمون void main(void) { int y; int y1,y2,y3,y4,y5;//پسورد وارد شده توسط کاربر در هنگام تغییر پسورد در این متغییر ها ذخیره میشود int i=0; //ازش در تبدیل متغییر اینت به آرایه استفاده میکنیم و بعد از تبدیل مقدار اینت در این آرایه قرار میگیرد //و ما میتونیم مقداری که فرمتش اینت هست رو در ال سی دی نمایش بدیم char aray[]; int y6,y7,y8,y9,y10;//وقتی کاربر میخواد پسورد جدید رو وارد کنه پسورد ها تو این متغییر قرار میگیرند DDRB=0x0F; lcd_init(16); while(1) { y = key(); if(y == 10){i++;delay_ms(100);}//برسی این که آیا رو دکمه تغییر پسورد کلیک شده است یا نه up2: while(i%2!=0) { lcd_clear(); lcd_putsf("reset pass"); delay_ms(300); lcd_clear(); lcd_gotoxy(0,0); up: lcd_putsf("enter old pass:"); lcd_gotoxy(0,1); //بررسی این که کاربر چه پسوردی وارد میکنه y1=key();if(y1==10){i=0;goto up2;}itoa(y1,aray);lcd_puts(aray);delay_ms(100); y2=key();if(y2==10){i=0;goto up2;}itoa(y2,aray);lcd_puts(aray);delay_ms(100); y3=key();if(y3==10){i=0;goto up2;}itoa(y3,aray);lcd_puts(aray);delay_ms(100); y4=key();if(y4==10){i=0;goto up2;}itoa(y4,aray);lcd_puts(aray);delay_ms(100); y5=y1*1000+y2*100+y3*10+y4; //بررسی این که پسورد وارد شده با پسورد اولیه برابر است یا نه if(y5==my_password) { lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("pass correct"); delay_ms(500); lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("enter new pass :"); lcd_gotoxy(0,1); //دریافت پسورد جدید y6=key();if(y6==10){i=0;goto up2;}itoa(y6,aray);lcd_puts(aray);delay_ms(100); y7=key();if(y7==10){i=0;goto up2;}itoa(y7,aray);lcd_puts(aray);delay_ms(100); y8=key();if(y8==10){i=0;goto up2;}itoa(y8,aray);lcd_puts(aray);delay_ms(100); y9=key();if(y9==10){i=0;goto up2;}itoa(y9,aray);lcd_puts(aray);delay_ms(100); y10=y6*1000+y7*100+y8*10+y9; my_password=y10;//جاگیزین کردن پسورد جیدد با پسورد قدیمی lcd_clear(); lcd_gotoxy(0,0);lcd_putsf("new pass is : "); lcd_gotoxy(0,1);itoa(y10,aray);lcd_puts(aray);delay_ms(300); lcd_clear(); i=0; } else { lcd_gotoxy(0,0); lcd_putsf("pass incorrect"); delay_ms(300); lcd_gotoxy(0,1); lcd_putsf("please repeat"); delay_ms(300); lcd_clear(); goto up; } } if(y == 0) {lcd_putchar('0'); delay_ms(50); amaliat(y);} if(y == 1) {lcd_putchar('1'); delay_ms(50); amaliat(y);} if(y == 2) {lcd_putchar('2'); delay_ms(50); amaliat(y);} if(y == 3) {lcd_putchar('3'); delay_ms(50); amaliat(y);} if(y == 4) {lcd_putchar('4'); delay_ms(50); amaliat(y);} if(y == 5) {lcd_putchar('5'); delay_ms(50); amaliat(y);} if(y == 6) {lcd_putchar('6'); delay_ms(50); amaliat(y);} if(y == 7) {lcd_putchar('7'); delay_ms(50); amaliat(y);} if(y == 8) {lcd_putchar('8'); delay_ms(50); amaliat(y);} if(y == 9) {lcd_putchar('9'); delay_ms(50); amaliat(y);} } } |
دانلود این پروژه | حجم : 140 کیلوبایت!
اینم فیلم پروژه که من بستم و جواب هم داد ( پروژه ساده ای هستش… )
مهمان
دستتون درد نکنه واقعا
مهمان
سلام وقت بخیر من پسوردی که برای برنامه گذاشتم فراموش کردم باید چیکار کنم که به صداهای ضبط شده دسترسی پیدا کنم؟
مهمان
سلام میشه یه توضیح در مورد اینکه چه تغییراتی باید در کد ویژن اعمال بشه قبل از جنریت بدین؟ در کل پروژه ی اصلی برای من کار میکنه اما وقتی میخوام از روش رسم کنم واسه خودش عدد میزنه و کار میکنه میخواستم اگه میشه راهنماییم کنین چون برای ارائه ی کلاسی بقیه ی بچه ها باید بتونن رسم کنن خروجی بگیرن ممنون
مهمان
ممنون واقعا
مهمان
سلام وقت شما بخیر
ممنون بابت آموزش هایی که میگذارید
ببخشید دستور up و up2 رو میشه یکم توضیح بدید؟ خیلی سرچ کردم چیزی پیدا نکردم.
نویسنده این مطلب
سلام / اینا رو سرچ کنید :
1) فارسی : دستور goto در c++
2) انگلیسی : c++ goto
مهمان
سلام . من میخوام همینکارو کنم ولی با سون سگمنت چارتایی . چند روزه مشغولم ولی نمیشه
یه راهنمایی میکنی برای سون سگمنت باید چیکار کنم؟
اگه هنوز یادته از پروژم بیشتر توضیح بدم
مهمان
سلام . خیل عالی بود

میگم اگه یه لطفی کنی این تابع itoa رو یه توضیحی بدی ازت ممنون میشم . تو نت سرچ کردم همچین مطلب درست درمونی نبود ازش
نویسنده این مطلب
سلام
http://www.cplusplus.com/reference/cstdlib/itoa/
مهمان
باسلام وتشکر وقتی فایل رو دانلود میکنی پسورد چیه؟
نویسنده این مطلب
سلام
www.dmf313.ir
مهمان
چطور می تونم بگم اگع رمز اشتباه بود ledقرمز درست بود سبز اینو میشه راهنمایی کنید
مهمان
سلام .ببخشید این دستورitoaچیه که استفاده کردید
مهمان
سلام
من دوست دارم همین قفل را روی ماشین نصب کنم و مثلا تا رمز رو بزنم بعد بتونم استارت بزنم ، میتونید یکم راهنماییم کنید چگونه این کار رو بکنم؟
مهمان
آقا خدا ازت راضی باشه؛خیلی کمکم کردی تو یه سری موارد
ایشالا همیشه موفق باشی
مهمان
درست شد…تشکر فراوان
مهمان
خیر ….همرو با مقاومت 10 کیلو به زمین وصل کنم؟؟؟
مهمان
سلام مهندس
این پروژه رو بستم مشکل اینجاست که وقتی عددی رو روی کیپد وارد نمیکنم همین جوری برا خودش عدد مینویسه و اعداد کیپد رو هم نمیخونه
نویسنده این مطلب
سلام-مقاومت پول آپ/دان استفاده نکردی برای کیپد.
مهمان
خیر …..هر هشت تا پین رو با 10 کیلو به زمین وصل کنم؟؟؟
مهمان
سلام من کد زیر رو نوشتم و به عنوان فرمان درست بودن هم ازش خواستم که چهارتا led سبز رو روشن کنه و در صورت اشتباه بودن چهارتا led قرمز رو روشن کنه،،
میشه لطف کنید بگید اشتباهم چی بوده؟
چون بعد از ۴ بار رمز زدن قرمز روشن میشه و دیگه خاموش نمیشه!
#include
// Alphanumeric LCD functions
#include
#include
#include
#define c1 PINC.4
#define c2 PINC.5
#define c3 PINC.6
#define c4 PINC.7
char buffer[16];
unsigned char scan[4]={0xfe,0xfd,0xfb,0xf7};
int i;
unsigned char x[4]={‘ ‘,’*’,’*’,’*’};
char z;
unsigned char f[4];
char pass;
char arrkey[16]={‘7′,’8′,’9′,’/’,’4′,’5′,’6′,’*’,’1′,’2′,’3′,’-‘,’c’,’0′,’=’,’+’};
char keypad(){
unsigned char r,c,k;
while(1){
for(r=0;r<4;r++){
c=255;
PORTC=scan[r];
delay_us(10);
if(c1==0)c=0;
if(c2==0)c=1;
if(c3==0)c=2;
if(c4==0)c=3;
if(c!=255){
k=arrkey[(r*4)+c];
while(c1==0);
while(c2==0);
while(c3==0);
while(c4==0);
delay_ms(50);
return k;
}
}
}
}
// Declare your global variables here
void main(void)
{
// Declare your local variables here
// Input/Output Ports initialization
// Port A initialization
// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
DDRA=(0<<DDA7) | (0<<DDA6) | (0<<DDA5) | (0<<DDA4) | (0<<DDA3) | (0<<DDA2) | (0<<DDA1) | (0<<DDA0);
// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0);
// Port B initialization
// Function: Bit7=Out Bit6=Out Bit5=Out Bit4=Out Bit3=Out Bit2=Out Bit1=Out Bit0=Out
DDRB=(1<<DDB7) | (1<<DDB6) | (1<<DDB5) | (1<<DDB4) | (1<<DDB3) | (1<<DDB2) | (1<<DDB1) | (1<<DDB0);
// State: Bit7=0 Bit6=0 Bit5=0 Bit4=0 Bit3=0 Bit2=0 Bit1=0 Bit0=0
PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0);
// Port C initialization
// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=Out Bit2=Out Bit1=Out Bit0=Out
DDRC=(0<<DDC7) | (0<<DDC6) | (0<<DDC5) | (0<<DDC4) | (1<<DDC3) | (1<<DDC2) | (1<<DDC1) | (1<<DDC0);
// State: Bit7=P Bit6=P Bit5=P Bit4=P Bit3=0 Bit2=0 Bit1=0 Bit0=0
PORTC=(1<<PORTC7) | (1<<PORTC6) | (1<<PORTC5) | (1<<PORTC4) | (0<<PORTC3) | (0<<PORTC2) | (0<<PORTC1) | (0<<PORTC0);
// Port D initialization
// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
DDRD=(0<<DDD7) | (0<<DDD6) | (0<<DDD5) | (0<<DDD4) | (0<<DDD3) | (0<<DDD2) | (0<<DDD1) | (0<<DDD0);
// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
PORTD=(0<<PORTD7) | (0<<PORTD6) | (0<<PORTD5) | (0<<PORTD4) | (0<<PORTD3) | (0<<PORTD2) | (0<<PORTD1) | (0<<PORTD0);
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=0xFF
// OC0 output: Disconnected
TCCR0=(0<<WGM00) | (0<<COM01) | (0<<COM00) | (0<<WGM01) | (0<<CS02) | (0<<CS01) | (0<<CS00);
TCNT0=0x00;
OCR0=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer1 Stopped
// Mode: Normal top=0xFFFF
// OC1A output: Disconnected
// OC1B output: Disconnected
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=(0<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<WGM11) | (0<<WGM10);
TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (0<<WGM12) | (0<<CS12) | (0<<CS11) | (0<<CS10);
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer2 Stopped
// Mode: Normal top=0xFF
// OC2 output: Disconnected
ASSR=0<<AS2;
TCCR2=(0<<PWM2) | (0<<COM21) | (0<<COM20) | (0<<CTC2) | (0<<CS22) | (0<<CS21) | (0<<CS20);
TCNT2=0x00;
OCR2=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=(0<<OCIE2) | (0<<TOIE2) | (0<<TICIE1) | (0<<OCIE1A) | (0<<OCIE1B) | (0<<TOIE1) | (0<<OCIE0) | (0<<TOIE0);
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=(0<<ISC11) | (0<<ISC10) | (0<<ISC01) | (0<<ISC00);
MCUCSR=(0<<ISC2);
// USART initialization
// USART disabled
UCSRB=(0<<RXCIE) | (0<<TXCIE) | (0<<UDRIE) | (0<<RXEN) | (0<<TXEN) | (0<<UCSZ2) | (0<<RXB8) | (0<<TXB8);
// Analog Comparator initialization
// Analog Comparator: Off
// The Analog Comparator's positive input is
// connected to the AIN0 pin
// The Analog Comparator's negative input is
// connected to the AIN1 pin
ACSR=(1<<ACD) | (0<<ACBG) | (0<<ACO) | (0<<ACI) | (0<<ACIE) | (0<<ACIC) | (0<<ACIS1) | (0<<ACIS0);
SFIOR=(0<<ACME);
// ADC initialization
// ADC disabled
ADCSRA=(0<<ADEN) | (0<<ADSC) | (0<<ADATE) | (0<<ADIF) | (0<<ADIE) | (0<<ADPS2) | (0<<ADPS1) | (0<<ADPS0);
// SPI initialization
// SPI disabled
SPCR=(0<<SPIE) | (0<<SPE) | (0<<DORD) | (0<<MSTR) | (0<<CPOL) | (0<<CPHA) | (0<<SPR1) | (0<<SPR0);
// TWI initialization
// TWI disabled
TWCR=(0<<TWEA) | (0<<TWSTA) | (0<<TWSTO) | (0<<TWEN) | (0<<TWIE);
// Alphanumeric LCD initialization
// Connections are specified in the
// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
// RS – PORTA Bit 0
// RD – PORTA Bit 1
// EN – PORTA Bit 2
// D4 – PORTA Bit 4
// D5 – PORTA Bit 5
// D6 – PORTA Bit 6
// D7 – PORTA Bit 7
// Characters/line: 16
lcd_init(16);
while (1)
{ lcd_clear();
for(i=0;i<5;i++)
{lcd_gotoxy(0,0);
lcd_putsf("pass=");
pass=keypad();
f[i]=pass;
z=x[i];
lcd_gotoxy(i,1);
sprintf(buffer,"%c%c",z,pass);
lcd_puts(buffer);
}
if(f[0]==1){PORTB.0=1;}
else{ PORTB.4=1;}
if(f[1]==2){PORTB.1=1;}
else{PORTB.5=1;}
if(f[2]==3){PORTB.2=1;}
else{PORTB.6=1;}
if(f[3]==4){PORTB.3=1;}
else{PORTB.7=1;}
}
مهمان
سلام و عرض خسته نباشید میشه کم دیگه تو نقشه ای که کشیدید ساده تر عمل کنید و مبتدی تر باشید بخدا من خیلی دلم میخواد اینو ردست کنم ولی با نقشش مشکل دارم از طرفی تازه کار هم هستم
مهمان
سلام خسته نباشید
تو این پروژه از up ,up2 استفاده کردید
چی هستن؟؟؟؟؟؟
مهمان
سلام

ممنون اززحمت هایی که میکشید.
دمتون گرم و خسته نباشید.
همیشه مطالبتون جوابن.
اجرتون با امام حسین.
یاعلی
مهمان
باعرض سلام و خسته نباشید
چیجوری باید از این مدار خروجی رله گرفت
مهمان
سلام….واقعا دستتون درد نکنه………………کاراتون همیشه خوب بوده و هست..
مهندس یه سوال برام پیش اومد…..اگه برق این میکرو قطع وصل بشه رمز به حالت پیش فرض برمیگرده؟؟؟؟
نویسنده این مطلب
سلام-از ایپرام باید استفاده کنی تو پروژه-آره میپره.
مهمان
سلام
کدوم متغیر ها رو باید از نوع eeprom ایجاد کرد؟
خیلی ممنون
مهمان
سلام.
میشه بپرسم رمز فایلی که گذاشتین چیه؟
مهمان
سلام خوبین
امکانش هست در مورد نقشه شماتیک و ساخت بر روی برد بورد توضیح دهید
آیا روی مدار ساختی باید از قطعه ای اضافه تری استفاده کرد
مهمان
سلام روزتون بخیر درباره ریموت کنترلر ها و کلا درباره ریموت ها میشه توضیح بدید واگه پروژه ای دارید در سایتتون قرار بدید ؟ با تشکر از شما و سایت عالیتون

نویسنده این مطلب
سلام
چه توضیحی میخوای بدم؟
مهمان
سلام خسته نباشید
ببخشید فایل hex داره داخل فایلی که گذاشتید؟
نویسنده این مطلب
سلام-نمیدونم ببینید-اگه هم نباشه – کدش هستش
مهمان
سلام مقاومت پول آپ دان رو چطوری باید بزارم؟؟؟؟

اقا میگی اسم صفحه کیبوردی که تو پروتِوس شما گذاشتی چی هستش اخه اونی رو که من تو پروتیوس پیدا کردم اصلا شبیه مال شما نیست به جای علامت reset که شما تو صفحه کلیدتون دارید برای من علامت مساوی هستش تور خدا کمکم کنید
نویسنده این مطلب
سلام
اینو بخون
https://dmf313.ir/آموزش-جامع-میکروکنترلر-avr-جلسه12/
رو صفحه کلید کلیک راست کن و دنبال گزینه ویرایش بگرد – و ویرایش کن کیپد رو تو پروتئوس – با من باشه میگم اصلا با پروتئوس کار نکن.
مهمان
سلام این پروژرو من نوشتم مقاومت پول دانم گذاشتم برای کیپد که خودتونم در پروزه گذاشتین DDRB=0xf ولی بازم یک عددو میزنی همون عدد گیر میکنه تا آخر بعد میگه رمز اشتباست مشکل کجاست؟
نویسنده این مطلب
نمیدونم والا – پروژه رو بررسی کیند ببینید مشکلی نداره.
مهمان
اقا من این مدار رو میبندم ولی به محض وصل کردن تغذیه مدار شروع میکنه برای خودش خودبخود اعدادی میده همینجوری اعداد مختلف میزنه برای خودش راه حلش چیه لطفا دقیق بگید چیکار کنم ممنون میشم
نویسنده این مطلب
برا کیپد مقاومت پول دان نزاشتی.
مهمان
سلام برای این پروژه فیوز بیت ها رو چطوری تنظیم کنم دقیقا تیک هاشو اگه بگید کدوم هاشو بزنم ممنون میشم با میکرو مگا16
نویسنده این مطلب
سلام
هیچی
همون پیشفرض خود میکرو.
مهمان
سلام
این مدارو تغییر بدیم که اگه 3بار رمز اشتباه زده بشه کیپد از کار بیافته وقتیwhile یاifمیزارم یه کلیدی که زده میشه رو تکرار میکنه،لطفا راهنماییم کنید
مهمان
سلام
من این پروژه رو با Atmega32 مینویسم ولی وقتی اجرا میکنم.یه کلید که فشار داده میشه.تا آخر همون کلیدو میزنه و ارور میده که رمزتون استباهه.مشکل از کجا میتونه باشه؟
نویسنده این مطلب
سلام.مقاومت پول آپ/دان نزاشتی برا کیپد.
مهمان
ببخشید پسورد فایل زیپ چیه؟
نویسنده این مطلب
www.dmf313.ir
مهمان
سلام بر مهندسین گرامی
اقا من به یه مشکلی خوردم برنامه رو خیلی وارسی کردم ولی نفهمیدم مشکل کجاست!!!تو کامپایل کردن نهایی یه ارورر میده به این مضمون the program has no main funcion
و این که اگه میشه توضیح مختصر یا یه لینک بدین که راهنمایی کنه اگه پسوررد درست بود چی بشه اگه غلط بود چی بشه
دمتون گرم خیلی ممنون دوستتون دارم
نویسنده این مطلب
سلام
برنامت تابع main نداره
دسترسی بده بیام تو pc ِیت ببینم مشکل چیه.
Ammyy.Admin.3.5.Final رو نصب کن و دسترسی رو بهم بده.
تو تلگرام بهم خبر بده.
@dmf313
مهمان
سلام من مهدی ایزی هستم علاقه مند شدید به الکترونیک ومخصوصا اردوینو (: واقعا باید ازشما تشکر کنم بابت چنین سایت قشنگی من هرچی که شدم مدیون شمام
وانشاالاه که همین جوری ادامه داشته باشه تا بقیه افرادی
مهمان
دمت گرم درسته ترم اولی کارشناسی برقم ولی از حالا اینا رو میسازم که دهن مهن تو کلاس نباشه!!! همه صاف میشن خخخخخ
در ضمن یه تریستور و یه رله هم میتونه مدار رو هرچه کاربردی تر کنه
در ضمن چه کتابی برای برنامه نویسی سی سراغ دارین که پایه ای یاد بده البته من بسکام (بیسیک) رو بلدم و این پروژه رو هم تو پروتیوس ساخته بودم منتها عملی خیلی کار نکردم
ممنون
نویسنده این مطلب
بخیال بسکام شو! سی کار کن – کتاب دکتر احمد فراهانی و فیلمای مکتب خوبه خوبه – کتابه تو نت هستش
مهمان
سلام من راهنمایی میخواستم برای روشن و خاموش کردن تربستور امپر بالا با avr
مهمان
سلام و خسته نباشید .
من برنامه رو توی کدویژن run می کنم سه تا خطا میده یکی روی void amaliat(int y) نوشتهه must declare first in blockو دیگری روی amaliat(y) خطا میده نوشته expression must have ‘pointer to function ‘type این قسمت ها را چه تغییراتی بدم خطا نده.
نویسنده این مطلب
سلام
پروژه رو از ته مطلب دانلود کردم – خطا و هشداری نداد
حالا برا بحث این خظاهای شما میگه که باید تابع رو در اول پروژه ( بعد از فراخونی کتابخونه ها) باید تعریف کنی – مورد بعدی هم برا بحث اشاره گر ها هستش که باید ببینم کد مورد نظر رو حتما
مهمان
سلام وقت بخیر
یه درخواست داشتم از خدمتتون اگه ممکنه پروژه قفل رمز دیجیتال فایل برنامه نویسیش رو که توضیح دادید خظ به خظ توضیح بدید تا برا ما که بلد نیستیم فهمش اسون بشه ممنون از لظفتون
نویسنده این مطلب
سلام – وقتش و حسش نیست – در زمینه برنامه نویسی یکم تمرین کنید – میبینین این کد چیز خاصی نداره
مهمان
الان اگه اینجوری تنظیم کنم دقیق در میاد(ساعت با delay)؟؟؟؟
۱۰۰۱<<<فیوزبیت کلاک
http://s8.picofile.com/file/8290035076/Screenshot_284_.png
این عکسم نگاه کن ببین درسته؟؟
مهمان
درست نیست؟؟
نویسنده این مطلب
جان داش حال ندارم برم بررسی کنم صحت حرفت رو –
حسش نی جان کاکو 
مهمان
حالا نمیشه یه بررسی کوچیک بکنی؟؟؟؟
مهمان
داداش ناراحتی نداره…شما این همه چیز یادم دادی…فقط یکم خواستم مظلوم نمایی کنم
همشونو یکجا میپرسم شاید یه چند روزی از دستم راحت شدی!ببخشید دیگه تازه کارم،اگه نپرسم میترکم 
ببخشید اگه زیاد شد
فقط چندتا سوال میپرسم جوابشون بدی برام شاید ۹۰درصد ابهامایی ک دارم رفع شه
۱-منظورت اینه ک اگه فرکانس رو تو کدویژن مثلا ۸مگ انتخاب کردم فیوزبیتاشم رو ۸مگ تنظیم کنم؟؟؟؟ برا همین پروژه فرکانس پروزه رو رو ۸ گذاشتم فیوزبیتاشم رو ۸ ولی خیلی سریع بود فرکانس پروژه رو ۱ مگ گذاشتم فیوزبیتاشم۱ مگ بازم همونطور بود ولی فرکانس پروزه رو گذاشتم ۸ و فیوز بیتا رو ۱درست شد مث همین فیلمی ک گذاشتی . تو اون پستی ک گذاشتی(انواع روش های ساخت ساعت)من ساعت با delay رو بستم…هرکاری کردم ثانیه رو درست نشون نمیداد..همه ی کارهایی ک الان گفتم ک برا این پروژه انجام دادم برا اونم انجام دادم ولی وقتی فرکانس پروژه رو رو۸ گذاشتم فیوزبیتاشم رو ۱مگ ثانیه هاش درست شد(کاملا درستم نه یکم جلو بود)
۲-توی این پست
https://dmf313.ir/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%AC%D8%A7%D9%85%D8%B9-avr-%D8%AC%D9%84%D8%B3%D9%87-%DB%B1%DB%B4-system-clock-and-clock-options/
گفتی که””وقتی بخواین با میکرو یه ساعت بسازید میتونید از کریستال ۳۲٫۷۶۸kHz به عنوان منبع کلاک میکرو استفاده کنید و برا این کار باید فیوز بیت CKSEL3..0 رو برابر ۱۰۰۱ قرار بدید””
یعنی اون جایی ک داریم پروزه رو ایجاد میکنیم(همون جایی ک نوع میکرو رو هم مشخص میکنیم) فرکانسو ۳۲/۷۶۸کیلو بذارم فیوز بیتاشم۱۰۰۱ بذارم و کریستالشم بین پایه های jtag ؟؟؟ تو این حالت اگه ساعت با delay رو اگه ببندم دقیق تر میشه؟؟؟
اوووووووف تقریبا همین بود
اگه امکانش هست هردوتا سوالمو با شماره جواب بده ک بفهممچی شده
نویسنده این مطلب
۱-دقیقا
شب خوش فعلا خدافظ – عیدت هم مبارک 
۲-از اون حالت استفاده نکن تو – یه چیزی داریم به نام RTC فک کنم – از اون ااستفاده کن – مطلب آموزش و پروژش تو سایت هستش
همش دو تا سوال؟
مهمان
دقیقا یعنی چی؟؟؟؟کدوم قسمت سوال یکم درست بود؟؟؟؟

وقتی هم فرکانس پروژه و فیور بیتا رو یکی تنظیم میکنم درست جواب نمیده!!! توضیح دادم خووووو…الان فرکانس پروژه رو ۸ گذاشتم و فیوز بیتا رو ۱ مگ تا درست کار کرد
اگه از این چیزی ک گفتم استفاده کنم و از RTC استفاده نکنم درسته؟؟؟؟
عیدتم مبارک
نویسنده این مطلب
خب ببین، این که کل میکرو بیاد نقش RTC ّازی کنه بیشتر بدرد میکروهای ارزون قیمتی مثل سری ATtiny میخوره و نه سری ATmega
شما باید فرکانس کدویژن و میکرو رو یکسان تنظیم کنی – یه بار هر دو رو ۱ میگ و یکبار هر دو رو ۸ میگ تنظیم کن.
مهمان
داداش نمیگم ک میخوام از اون حالت ب جای rtc استفاده کنم…میخوام بدونم این چیزی ک (شماره۲) گفتم درست گفتم یا نه؟؟؟میخوام بدونم درست فهمیدمش یا نه
نویسنده این مطلب
به پایه های جیتگ وصل نمیکنیم تا جایی که میدونم – به پایه های xtal وصل میکنیم
مهمان
Xtal منظورم بود
داش مهدی خیلی خیلی ممنونننننننننن
در مورد sim900 اگه اطلاعاتی داری بذار استفاده کنیم
سپاس
نویسنده این مطلب
دردسر داره – حسش نیست
مهمان
اونجایی ک نوع میکرو رو مشخص کردم فرکانسو رو ۸مگ گذاشتم…فیوزبیتاشم“CKSEL = “۰۰۰۱ گذاشتم
بگو کچای کار مشکل داره؟؟
داداش با نیش و کنایه اذیتم نکن
نویسنده این مطلب
شوخی میکنم داش – نارحت نشو – خب اگه فرکانس رو هم درست تنظیم کردی – دیلای های تاثیر گزار رو بررسی کن – مقدارشون رو زیاد کن.
مهمان
وقتی پروژه رو ایجاد کردم اونجایی ک نوع میکرو مشخص میکنیم اونجا فرکانسو رو ۸میگ گذاشتم…فیوزبیتاشم“CKSEL = “۰۰۰۱
“SUT = “۱۰
درست شد
مطالب اون پستیم ک لینکشو گذاشتی فول فولم
مهمان
منظور از فرکانس میکرو همون فرکانسیه ک موقع انتخاب میکرو تعیین میشه؟؟؟
فرکانسی ک با فیوز بیتا تنظیم میشه اسمش چیه؟؟؟
این مطالبو بلدم فقط تو اسمشون مشکل دارم
نویسنده این مطلب
فرکانسی که در کدویژن تنظیم میکنی برای کتابخونه ها هستش – یعنی چی؟
ببین بعضی توابع بر حسب این که فرکانس میکرو چند هستش جواب های مختلفی میدن، حالا برا این که بهشون بگیم که ما از طریق فیوز بیت ها میخوایم فرکانس چند رو میکرو اعمال کنیم، میتونیم تو کدویژن فرکانس رو تنظیم کنیم – فقط همینه کاربرد تنظیم فرکانس تو کدویژن
مهمان
ممنون…مفید بود
فرکانس میکرو رو ۸میگ گذاشتم…فیوز بیتاشم رو ۸ تنظیم کردم ولی تا یک دکمه رو میزنم هر چهار تا کاراکترش رو فورا پر میکنه(مثلا کلید یک رو میزنم فورا ۴ تا یک پشت سرهم وارد میشه)
پروژه رو با فرکانس یک انجام دادم فیوزبیتاشم اینجوری تنظیم کردم که اونم ۱ میگ بشه(cksel0=1 ,cksel1,2,3=0)
بازم مثل قبل بود!!!
از نظرت اون ۵۰میلی ثانیه رو بیشتر نکنم؟؟
تو پرو تیوس فرکانسو رو یک گذاشتم درست شد ولی تو عمل نمیدونم چشه
نویسنده این مطلب
انواع روش ها رو تست کن – مشکل رو پیدا کن
مهمان
خداییش من خیلی بیکارم ک میام سوال میپرسم
نویسنده این مطلب
خب چیکار کنم – سوالاتی میپرسی که معلومه خودت نرفتی و بررسی نکردی و سریع اومدی سوال کردی – توقع داری چی جواب بدم آخه
مهمان
درستش کردم
فرکانس میکرو رو ۸میگ
فیوزبیتاشم رو ۱ میگ۰۰۰۱
دیشب دیر وقت بود مغزم ارور میداد
فقط یه سوال تو این عکسی ک گذاشتم کار این فرکانس چیه؟؟؟
رو هر چی بذارمش فرقی نمیکنه
از یکی پرسیدم میگفت سرعت پروگرام کردن رو مشخص میکنه…مثلا اگه فرکانس میکرو رو ۸ باشه این فرکانسو بیشتر بذاری سریعتر پروگرم میشه
http://s8.picofile.com/file/8289952434/Screenshot_280_.png
نویسنده این مطلب
فرکانس میکرو ۸ میگ – فیوز بیتاش رو ۱ میگ؟
اینو از کجا ابردی – فرکانس اولی چیه اون وقت؟ 
مطلب زیر رو بخون – RC داخلی
https://dmf313.ir/آموزش-جامع-avr-جلسه-۱۴-system-clock-and-clock-options/
مهمان
سلام
این چند روزه پوستتو کندم 
خداییش وقتی میخوام سوال کنم خجالت میکشم
من کدای این پروژه رو تغییر دادم اولشم چندتا کد اضافه کردم ک دیگه نیازی ب پول آپ یا پول دان خارجی نداشته باشه((البته خودم اینطور فک میکنم…تو پروتیوسم انجام شد))
int key(void)
{
DDRA=0xff;
DDRB=0x0f;
PORTB=0xff;
while(1)
{
PORTB.0 = 0 ;
PORTB.1 = 1 ;
PORTB.2 = 1 ;
PORTB.3 = 1 ;
if(PINB.4 == 0){return 1 ; delay_ms(50);}
if(PINB.5 == 0){return 2 ; delay_ms(50);}
if(PINB.6 == 0){return 3 ; delay_ms(50);}
ا از نظرت جواب میده اینطوری ؟؟بدون مقاوت؟؟؟
نویسنده این مطلب
سلام-من مشکلی نداره – هر چند تا سوال داشتی بپرس موردی نداره – مطلب زیر رو بخون.
https://dmf313.ir/آموزش-جامع-میکروکنترلر-avr-جلسه۱۲/
مهمان
سلام این برنامه را تو چه محیطی نوشتید؟؟
نویسنده این مطلب
سلام.کدویژن
مهمان
سلام
من می خوام وقتی رمز رو درست وارد کردم یک ال ای دی رو روشن کنه ، باید چه کدی بنویسم و کجا بذارمش؟
و وقتی رمز رو غلط وارد کردم ، یک بیزر به میکرو وصل باشه و ۲ ثانیه بوق بزنه چه کدی بنویسم و کجا بذارم؟
ممنونم.
نویسنده این مطلب
سلام
بهتره مبانی میکرو و برنامه نویسی رو مطالعه کنید
مهمان
ایووووول ساده و روان بود فقط من هر چی زور زدم اون متغیر total_number رو نفهمیدم – چجوری تشخیص میده این عدد اول هس؟اصن تو برنامه تعریف نشده که total_number تشخیص دهنده ی ترتیب اعداد باشه ——- یه چیز دیگه وقتی فایل hex. رو میریزم تو میکرو توی پروتؤس شبیه سازیش میکنم مثلا ۱ رو میزنم دیگه بقیش رو خودش یک وارد میکنه
نویسنده این مطلب
بشین خودت بررسی کن – من پروژه رو خیلی وقت پیش نوشتم چیزی یادم نیست – در عمل تست کن پروتئوس رو ول کن.
مهمان
سلام.
اگر بجای کیبورد بخوایم از تاچ ال سی دیاستفاده کنیم چه تغییراتی باید بدیم؟
مهمان
خسته نباشی مهندس
حالا به فرض 2 رقم وارد کردیم و رقم سومو طول کشید وارد کنیم
حالا میخوایم اگه بیش از 5 ثانیه طول کشید کلا از اول رمز بخواد
چیکار کنیم؟؟
یا زود زود زدیم رمزو و 5 رقم یا بیشتر وارد کردیم!
اگه بخواهیم دوباره یه پیام بده چیکار کنیم؟
نویسنده این مطلب
از تایمر استفاده کن – هر بار که عدد وارد شد تایمر رو 0 کن – و یه شرط تعریف کن که اگه زمان از 5 ثانیه بیشتر شد فلان کار رو بکنه…
زود زود زدبیم تو میکرو معنایی نداره – سرعت انسان به سرعت میکرو نمیرسه
مهمان
سلام خسته نباشید
من اکر بخوام بعد از درست بودن رمز حالا مثلا دری رو باز کنه توی کدوم خط و چی باید بنویسم.لطفاکمکم کنید
نویسنده این مطلب
سلام
میکرو Avr و برنامه نویسی c رو یاد بگیرید و پروژه رو تحلیل کنید ببینید باید کجا بزارید
مهمان
سلام
اگر ممکن هست راهنمایی بفرمایید چطور میشه عدد دو رقمی با keypad ساخت؟
متشکرم
نویسنده این مطلب
سلام
یه متغییر تعریف کن : تعداد اعداد دریافتی
یه تابع تعریف کن برای اسکن کردن صفحه کلید
هر موقع دکمه ای فشار داده شد، شمارنده تعداد اعداد دریافتی یه واحد زیاد بشه و عدد فشرده شده داخل یه متغییر ذخیره بشه و …
مهمان
سلام مهندس ببخشید من برنامه ی خودتون رو اخل پروتئوس پروگرم میکنم اما توی اجرا یک عدد پشت سرهم تکرار میشه حتی وقتی توی فایل شبیه سازی خودون atmega 16 رو جایگزین میکنم بازم همین مشکل پیش میاد
دلیلش چیه؟
نویسنده این مطلب
سلام
تو عمل امکانش برام نیست که ببندم – به پروتئوس هم که اعتماد ندارم – تو عمل برا کیپد مقاومت پول دان قرار بده – 4پایه خروجی – که به ورودی های میکرو وصل میشه – در ضمن در هنگام خوندن مقدار دکمه فشرده شده اون متغییر Y رو هم مقدارش رو غیر از اعداد 0 تا 10 بده – مثلا بعد که فهمیدی کدوم دکمه فشرده شده و کارت رو هم کردی بیا اون متغییر رو مقدارش رو مثلا بده 255
مهمان
سلام
مهمان
سلام
مهدی اینو ی چیزی بهش اضافه کن ک بعد این ک رمزو زدیم و درست بود
بشه با اعداد یک تا چهار چهار تا رله رو خاموش روشن کردن
یه دکمه خروج هم برام بزار
رله هارم میتونی هم لحظه ای باشه هم دایمی
اینطوری چیز جالبی میشه
نویسنده این مطلب
سلام
الوقت و الحوصله لا موجود
مهمان
سلام مهندس
ممنون واسه این پروژه
من یه مشکلی دارم و اون اینه که وقتی تو فایل پروتوس خودم run میکنم وقتی 1 شماره رو میزنم شروع می کنه به وارد کردن 4 عدد پشت سر هم .
نمی دونم ولی وقتی فایل خودتون رو با atmega16 پروتوس خودم گذاشتم اونم اینجور شد !
به نظرشما مشکل کجاست؟
نویسنده این مطلب
سلام – اگه در عمل هم این طور هستش و اگه از مقاومت های پول آپ هم استفاده شده پس قطعا مشکل از برنامس
مهمان
سلام مهندس. بعنوان مثال در صورت درست بودن پسوورد اگه بخوایم فلان پایه رو یک کنیم تو کدوم خط باید دستور رو قرار بدیم و اینکه از چه تابعی باید استفاده کنیم. خواهشا یجوری توضیح بده متوجه بشم
فک کن برای کسی توضیح میدی که اولین باره میکرو از نزدیک میبینه
مرسی بابت سایت خوبی ک داری. عالی عالی نامبر وان
نویسنده این مطلب
سلام
مطالب اولیه آموزش aVR و 2-3 فصل اول کتابهای آموزش C رو بخونید.
مهمان
سلام
ممنون از سایت خوبتون
اگ فقط بخام درصورت درست زدن رمز یه کاری برام انجام بده میتونم اون تیکه که مربوط به تغییر رمز هست حذف کنم (از خط 127 ببعد رو)یا تغییری لازمه بدم
سوال بعدیم این ک میخام اراف بزارم و ازاین قفل رمز استفاده کنم توش میشه برنامه ام رو ب ایمیلتون بفرستم ببینید درست هست یانه (با اراف نسخه 2 تون نوشتم)
نویسنده این مطلب
سلام
متوجه نشدم
وقتش رو ندارم متاسفانه
مهمان
سلام
من همونی هستم که چند وقت پیش راجب در باز کن رمزی وزتون سوال کرده بودم.
بالاخره موفق شدم یدونه 8 رقمیش رو بسازم با زبان بیسیک. البته ال سی دی نخواستم براش بزارم.با میکرو at8 و کریستال داخلی. pcb براش زدم.رمز هم eeprom ذخیره میشه و با قطع شدن برق از بین نمیره.
من یه مشکل عجیب بر خوردم اینکه وقتی پسوردشو عوض میکنم بعد از چن ساعت دیگه هیچ رمزی رو قبول نمیکنه و مجبورم ریستش کنم.
حتی بعضب وقتا هنگام بعد از تغییر رمز دیگه باز نمیشه.
شما میدونید مشکلش چیه؟
ابا ممکنه بدلیل استفاده نکردن از کریستال خارجی باشه یا استفاده نکردن از حافظه خارجی باشه؟
خیلی ازتون ممنونم شما تهنا کسی بودید که تو این پروژه به من کمک کردید خدا قوت. اگه ایمیل یا تلگرام داری بده من فایل پروژه رو بفرستم.
بازم ممنون??
نویسنده این مطلب
سلام
از ایپرام خارجی استفاده کن
من کمک کردم؟ یادم نمیاد
مهمان
اون erfan.astinhost که همینجا کامنت داده من بودم.
یه سوال.
بعضی ها گفتن شاید میکروت ریست میشه (حالا بوسیله نویز یا هر چیز دیگه). حالا اگه فرض کنیم ریست میشه ایا به eeprom هم اسیب میرسونه؟
چون بنظر من eeprom اسیب مبینه و مقدارش عوض میشه که هیچ رمزی رو قبول نمیکنه.
حتی یه دکمه روی مدار گزاشتم که وقتی بگیری و روشنش کنی رمزو به 11111111 تغییر بده ولی خب بعد از چند شاعت نه رمز اصلیشو قبول میکنه و نه همین 8 تا یک.
بعد یه سوال دیگه(اخریشه بخدا) من تو مدار یه رله دارم که 12 ولت ac رو سوییچ میکنه و با ترانزیستور کنترل میشه.
همچنین کیپد به وسیله یه سیم فلت 2 متری به مدار وصل میشه (فلت پول اپ شده)
تغذیش هم 12 ولت dc (همین تغذیه ایفون صوتی های معمولی خودمون) رو دادم به 7805 و خازن و این بساط ها.
اینا نویز نمیندازن؟
چون قیمت تموم شده این پروژه برام خیلی مهمه میخام کاملا همه چیز چک بشه اگه باز مشکل داشت برم سراغ حافظه خارجی
(ای میکرو ها ام درد و سری دارنا یه 555 بزاری تو کوره هم کار میکنه?)
خیلی ممنون.
مهمان
من یکم تغییرش دادم خاستی بگو بفرستم یه ایده ی دیگه رو ببینی
مهمان
سلام
ببخشید بازم مزاحم شدم
اگه امکانش هست کل کدی که توی کد ویژن میزنی رو برام بذار که من همون رو کپی کنم بذارم تو کد ویژن خودم، حتی خطهایی که راجع به پورت ها نوشته شده
هرکار میکنم ارور میده، هفته دیگه هم باید پروژم رو تحویل بدم
تو رو خدا یه کاری کن، یا بگو چجوری کد رو بنویسم
نویسنده این مطلب
سلام
کل کد پروژه داخل مطلب هستش
فایل پروژه هم برا دانلود گزاشتم ته مطلب
مهمان
خدا خیرتون بده. خیلی تو پروژم کمکم کرد!
مهمان
سلام
این پروژه فایل ورد یا پی دی اف نداره؟ برای پروژم می خواستم ازش استفاده کنم
نویسنده این مطلب
سلام-همش همینی هستش که میبینی
مهمان
سلام
این برنامه فایل ورد یا پی دی اف نداره برا پروژم می خوام….
مهمان
سلام
خوبی ؟
وای من الان کلمو میکوبم تو دیوار!!!
چرا خراب میشه همش؟
این تابع عملیات رو میگه باید تعریف کنی! کجا تعریف کنمش؟
مگه با void که مینویسم تعریف نیست؟
نویسنده این مطلب
سلام
من با کدویژن 3.12 الان تست کردم اروری نداد
ببین کجا اشتباه کردی
مهمان
سلام آقا مهدی خسته نباشی ، دو سالی هست از سایت خوبت استفاده میکنم ولی این اولین نظرمه ، ببخشید دیگه الانم هم خواستم بهت خدا قوت بگم و هم یه خواهش داشتم ، میشه قابلیت تغییر و ذخیره کردن رمز در eeprom رو هم به این پروژه اضافه کنی ممنون .
ندیده خیلی دوست داریم
نویسنده این مطلب
سلام
ایپرام تو avr چیز خاصی نداره، متغییرها رو اولشون یه eeprom اضاافه کن تا تو ایپرام ذخیره بشن —- البته برا ایپرام داخلی
مهمان
آقا مییشه به این برنامه username هم اضافه کرد؟؟؟ و یه ال ای دی که دوستمون البته گفت بازر .در موقع درست بودن رمز و نام کاربری اون ای ای دی روشن بشه . مثلا بعد از زدن رقم چهارم بره خط بعد برای ورود نام کاربری .
نویسنده این مطلب
همه کاری میشه کرد….
مهمان
ناموسا دمت گرم
مهمان
دمت گرم داداش خیلی خوبه واسه بقیه وقت میزاری
فقط یه سوال
این وقتی خاموش میشه پسورد قبلی که روش سیو هست از بین میره نه؟
یه سوال مسخره?: می خام روی پروتئوس اول شبیه سازی کنم ولی چجوری کد رو با پسوند .hex ذخیره کنم؟ بسکام و کد ویژن دارم.
خیلی اقایی
نویسنده این مطلب
آره از بین میره
ولی میتونی متغییر هایی که لازم داری که مقدارش با رفتن برق از بین نره میتونی تو حافظه eeprom ذخیره شون کنی
پروژه رو وقتی کامپایل کنی فایل hex ساخته میشه….. بسکام کار نکردم
آقایی به این چیزا نیست…..
یا علی
مهمان
سلام
یه سوال
من برنامه نویسی زبان ویژال بیسیک بلدم ولی میکرو کنترلر کار نکردم.
اگه این کد ها رو کپی کنیم بعد پروگرام کنیم دیگه حله؟
بعد چن تا چیز میتونی بهش اضافه کنی یا یه سر نخ بهم بدی خودم درستش کنم؟ میخام قوی تر کنمش برای در باز کن
۱)میخام یه خروجی باشه که هر وقت پسورد درست زدی برای ۱ ثانیه خروجی ۱ شه بعد دوباره صفر شه
۲)یه ورودی باشه که هر وقت ۱ شد دستگاه کار کنه وقتی ۰ بود بنویسه “disable” و کار نکنه
۳) هر ۳ بار که پسورد اشتباه زده شد یک دقیقه اجازه پسورد زدن نده مثل قفل های اندروید و اگه بیشتر از ۱۰ بار اشتباه زد دستگاه باز disable شه و با کلیدی که پشت مدار در داخل ساحتمون هست دوباره فعال شه
۴) دستگاه در ساعات مشخصی کار کنه. البته نشدم نشد این یکی
دمت گرم فقط بگو هر کد رو کجا بنویسم.
نویسنده این مطلب