به نام خدا : این پروژه AVR به زبون C هستش و به وسیله کیپد میتونید عدد ، سنبل و حروف بزرگ انگلیسی رو نشون بدین؛ جا داره از داش محسن تشکر کنم که منو در این پروژه کمک کرد >>> دمش گرم خدایش >>> حالا بماند سر این پروژه من دهنم … شد.
کامل ترین پروژه تایپ SMS با کیپد به زبان C
شماتیک پروژه :
امکانات پروژه تایپ SMS با کیپد
اخطار : تو عکس سمت راست نوشته “رفتن به خط بعد”>>>ولی در عمل کارش اینه که یه کلمه رو پاک میکنه که این موضوع رو من تو پروتئوس درستش کردم ولی زورم اومد دوباره همه ی عکس ها رو پاک کنم و دوباره عکس بگیرم و…. ۱) تایپ حروف بزرگ انگلیسی ۲)توجه : تایپ حروف انگلیسی کوچک>>>این مورد رو من یادم رفت قرار بدم ولی گزاشتنش کاری نداره و خودتون هم میتونید انجامش بدینش. ۳) تایپ اعداد ۴) تایپ سنبول (نماد و نشانه) توجه : برای تغییر حالت از نوشتن حروف ، سنبول و اعداد باید اون نماد (فلشی که به صورت دایره هست) کلیک کنید. ۵) جابجایی بین خطوط (توسط نشانه های به سمت بالا و پاین) ۶) جابجایی بین ستون ها (توسط نشانه های به سمت چپ و راست) ۷) پاک کردن کل صفحه (توسط سطل آشغال) ۸) پاک کردن یه کاراکتر(توسط دکمه ای که روش به اشتباه نوشته شده : “رفتن به خط بعد”) ۹) کیپد اختصاصی و تغییر داده شده (ملاحظه میکنید کیپد رو) ۱۰) روشن و خاموش شدن مکان نما (در جایی که قرار است چیزی نمایش داده شود) |
توضیحات پروژه
این قسمت هم برا ریست کردن میکرو هستش که با فشرده شدن کلیدبه پایه Reset میکرو ولتاژ۰ ولت اعمال میشه و میکرو ریست میشه.برا مقاومت هم بهتره که ۱۰k قرار بدین. |
تو این عکس هم میتونید نمونه ای از امکانات روژه رو ببینیدکه درش اومدیم و حروف بزرگ انگلیسی و اعداد و سنبول ها رو نمایش دادیم. اون پایه های آزاد میکرو رو هم کاری بهاش نداشته باشید + اگه با lcd قبلا کار نکردید مطلب زیر رو بخونید.آموزش جامع کار با LCD کاراکتریاگه با کیپد قبلا کار نکردید یا بهاش مشکل دارید مطلب زیر رو بخونید: آموزش جامع کار با کیپد استفاده از این پروژه در پروژه های دیگر : مثلا چیزی که الان به فکر من میرسه میتونید این پروژه رو توسط ماژول hmt-hmr (و هر ماژولی که قبلا باهاش کار کردید.)>>> یه ارتباط بیسیم برقرار کنید >> که از راه دور شما رو کیپد یه چیزی بنویسید و تو lcd نمایش داده بشه. |
کد پروژه :
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 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 |
#include <mega16.h> #include <lcd.h> #include <delay.h> #asm .equ __lcd_port=0x1b #endasm int i1=0,i2=3,i3=6,i4=9,i5=12,i6=15,i7=18,i8=21,i9=24; //############################################# //به وسیله این تابع میفهمیم که رو //چه دکمه ای کلیک شده است int Key(void) { while(1) { PORTD.0 = 1 ; PORTD.1 = 0 ; PORTD.2 = 0 ; PORTD.3 = 0 ; if(PIND.4 == 1){i1++; if(i1==4) {i1=1;} return i1;} //1 if(PIND.5 == 1){i2++; if(i2==7) {i2=4;} return i2;} //2 if(PIND.6 == 1){i3++; if(i3==10){i3=7;} return i3;} //3 if(PIND.7 == 1){ return 34;} //clean_1_kakter //========================================== PORTD.0 = 0 ; PORTD.1 = 1 ; PORTD.2 = 0 ; PORTD.3 = 0 ; if(PIND.4 == 1){i4++; if(i4==13){i4=10;} return i4;} //4 if(PIND.5 == 1){i5++; if(i5==16){i5=13;} return i5;} //5 if(PIND.6 == 1){i6++; if(i6==19){i6=16;} return i6;} //6 if(PIND.7 == 1){ return 33;} //clean //========================================== PORTD.0 = 0 ; PORTD.1 = 0 ; PORTD.2 = 1 ; PORTD.3 = 0 ; if(PIND.4 == 1){i7++; if(i7==22){i7=19;} return i7;} //7 if(PIND.5 == 1){i8++; if(i8==25){i8=22;} return i8;} //8 if(PIND.6 == 1){i9++; if(i9==28){i9=25;} return i9;} //9 if(PIND.7 == 1){ return 32;} //change //========================================== PORTD.0 = 0 ; PORTD.1 = 0 ; PORTD.2 = 0 ; PORTD.3 = 1 ; if(PIND.4 == 1){ return 28;} //space if(PIND.5 == 1){ return 29;} //up if(PIND.6 == 1){ return 30;} //down if(PIND.7 == 1){ return 31;} //back return 0; } } //############################################# void Show_Char(int y) { if(y == 1) lcd_putchar('A'); if(y == 2) lcd_putchar('B'); if(y == 3) lcd_putchar('C'); if(y == 4) lcd_putchar('D'); if(y == 5) lcd_putchar('E'); if(y == 6) lcd_putchar('F'); if(y == 7) lcd_putchar('G'); if(y == 8) lcd_putchar('H'); if(y == 9) lcd_putchar('I'); if(y == 10) lcd_putchar('J'); if(y == 11) lcd_putchar('K'); if(y == 12) lcd_putchar('L'); if(y == 13) lcd_putchar('M'); if(y == 14) lcd_putchar('N'); if(y == 15) lcd_putchar('O'); if(y == 16) lcd_putchar('P'); if(y == 17) lcd_putchar('Q'); if(y == 18) lcd_putchar('R'); if(y == 19) lcd_putchar('S'); if(y == 20) lcd_putchar('T'); if(y == 21) lcd_putchar('U'); if(y == 22) lcd_putchar('X'); if(y == 23) lcd_putchar('W'); if(y == 24) lcd_putchar('Y'); if(y == 25) lcd_putchar('Z'); if(y == 26) lcd_putchar('.'); if(y == 27) lcd_putchar('?'); } //############################################# void Show_Symbole(int y) { if(y == 1) lcd_putchar('@'); if(y == 2) lcd_putchar('#'); if(y == 3) lcd_putchar('$'); if(y == 4) lcd_putchar(':'); if(y == 5) lcd_putchar('%'); if(y == 6) lcd_putchar('^'); if(y == 7) lcd_putchar('('); if(y == 8) lcd_putchar(')'); if(y == 9) lcd_putchar(','); if(y == 10) lcd_putchar('+'); if(y == 11) lcd_putchar('-'); if(y == 12) lcd_putchar('*'); if(y == 13) lcd_putchar('/'); if(y == 14) lcd_putchar('\\'); if(y == 15) lcd_putchar('|'); if(y == 16) lcd_putchar('\''); if(y == 17) lcd_putchar('"'); if(y == 18) lcd_putchar('`'); if(y == 19) lcd_putchar('<'); if(y == 20) lcd_putchar('>'); if(y == 21) lcd_putchar('~'); if(y == 22) lcd_putchar('{'); if(y == 23) lcd_putchar('}'); if(y == 24) lcd_putchar(';'); if(y == 25) lcd_putchar('!'); if(y == 26) lcd_putchar('?'); if(y == 27) lcd_putchar('0?'); } //############################################# void Show_Number(int y) { if(y == 1) lcd_putchar('1'); if(y == 2) lcd_putchar('1'); if(y == 3) lcd_putchar('1'); if(y == 4) lcd_putchar('2'); if(y == 5) lcd_putchar('2'); if(y == 6) lcd_putchar('2'); if(y == 7) lcd_putchar('3'); if(y == 8) lcd_putchar('3'); if(y == 9) lcd_putchar('3'); if(y == 10) lcd_putchar('4'); if(y == 11) lcd_putchar('4'); if(y == 12) lcd_putchar('4'); if(y == 13) lcd_putchar('5'); if(y == 14) lcd_putchar('5'); if(y == 15) lcd_putchar('5'); if(y == 16) lcd_putchar('6'); if(y == 17) lcd_putchar('6'); if(y == 18) lcd_putchar('6'); if(y == 19) lcd_putchar('7'); if(y == 20) lcd_putchar('7'); if(y == 21) lcd_putchar('7'); if(y == 22) lcd_putchar('8'); if(y == 23) lcd_putchar('8'); if(y == 24) lcd_putchar('8'); if(y == 25) lcd_putchar('9'); if(y == 26) lcd_putchar('0'); if(y == 27) lcd_putchar('.'); } //############################################# void main(void) { int y1=0,y2=0,i=0; int Char_Type=0; //0>char 1>number 2>symbole DDRD=0X0F; lcd_init(16); TCCR0=0x04; TCNT0=0x00; while(1) { y1=0; while(y1==0) { //فعال کردن چراغ چشمک زن _lcd_ready(); _lcd_write_data(0x0f); y1=Key(); } //space if(y1==28){_lcd_ready();_lcd_write_data(0x14);} //down if(y1==29) { lcd_gotoxy(8,1); } //up if(y1==30) { lcd_gotoxy(8,0); } //back if(y1==31){_lcd_ready();_lcd_write_data(0x10);} //change if(y1==32){Char_Type++;if(Char_Type==3)Char_Type=0;} //clear if(y1==33){lcd_clear();lcd_gotoxy(0,0);} //clean_1_kakter if(y1==34){lcd_putchar(' ');} if(y1<28) { if(Char_Type==0) { Show_Char(y1); delay_ms(50); //بررسی این که در مدت زمان مورد //نظر (بعد از فشرده شدن یه دکمه)آیا //دکمه ی جدیدی فشرده میشود یا نه TCNT0=0;y2=0,i=0; while(i!=5) // 200 (ms) { y2=Key(); // برسی این که کانتر به زمان مورد نظر رسیده است یا نه if(TCNT0>=124) { //هر ۱۵۵ تا کلاک یعنی ۲۰ میلی ثانیه i++; TCNT0 = 0; } if(y2!=0) { //حرکت مکان نما به چپ _lcd_ready(); _lcd_write_data(0x10); Show_Char(y2); delay_ms(50); i=0;//اگه ععدی وارد شد شمارش دوباره از صفر شروع شود } } delay_ms(50); } if(Char_Type==1) { Show_Number(y1); delay_ms(50); //بررسی این که در مدت زمان مورد //نظر (بعد از فشرده شدن یه دکمه)آیا //دکمه ی جدیدی فشرده میشود یا نه TCNT0=0;y2=0,i=0; while(i!=5) // 200 (ms) { y2=Key(); // برسی این که کانتر به زمان مورد نظر رسیده است یا نه if(TCNT0>=124) { //هر ۱۵۵ تا کلاک یعنی ۲۰ میلی ثانیه i++; TCNT0 = 0; } if(y2!=0) { //حرکت مکان نما به چپ _lcd_ready(); _lcd_write_data(0x10); Show_Number(y2); delay_ms(50); i=0;//اگه ععدی وارد شد شمارش دوباره از صفر شروع شود } } delay_ms(50); } if(Char_Type==2) { Show_Symbole(y1); delay_ms(50); //بررسی این که در مدت زمان مورد //نظر (بعد از فشرده شدن یه دکمه)آیا //دکمه ی جدیدی فشرده میشود یا نه TCNT0=0;y2=0,i=0; while(i!=5) // 200 (ms) { y2=Key(); // برسی این که کانتر به زمان مورد نظر رسیده است یا نه if(TCNT0>=124) { //هر ۱۵۵ تا کلاک یعنی ۲۰ میلی ثانیه i++; TCNT0 = 0; } if(y2!=0) { //حرکت مکان نما به چپ _lcd_ready(); _lcd_write_data(0x10); Show_Symbole(y2); delay_ms(50); i=0;//اگه ععدی وارد شد شمارش دوباره از صفر شروع شود } } delay_ms(50); } } delay_ms(100); } } |
توضیح کد های پروژه :
1) تابع Key : به وسیله این تابع ما میفهمیم که روی چه چیزی کلیک شده است.>>>>اگه توجه کنید آخرش نوشتم return 0 که اگه در یه لحظه چیزی دریافت نکرد مقدار ۰ رو ارسال میکنه(که این کار دلیل داره و منم حال گفتنش رو ندارم ^_^) لذا تو تابع mail برای این کخه ببینیم روی چه دکمه ای کلیک میشود یه کدی مثل کد زیر مینویسیم
1 2 3 4 |
while(y1==0) { y1=Key(); } |
توضیح : تا زمانی که مقدار دریافتی ۰ هستش حلقه ادامه پیدا میکند.
2) تابع Show_Char : کارش نمایش حروف انگلیسی هستش>>>>چیزی رو که بهش ارسال میشه رو نمایش میده.
3) Show_Symbole : کارش نمایش سنبول ها (نماد نشانه ) هستش>>>>چیزی رو که بهش ارسال میشه رو نمایش میده.
4) Show_Number : کارش نمایش اعداد هستش>>>>چیزی رو که بهش ارسال میشه رو نمایش میده.
5) main : اینم تابع اصلی پروژمون هستش.
دانلود این پروژه | حجم : ۲۴۰ کیلوبایت!
فیلم پروژه :
مهمان
سلام
آقا این برنامه ات خیلی گنگه
اگه امکان ش باشه یه کیپد سه در چهار بزار که 9 تا حرفش سه تایی باشن و سه دکمه پایین هم به سمت چپ و راست و یکی یکی پاک کنه تا اینو یاد گرفتیم بیام سراغ این
مهمان
سلام این پروژه کاملا غلط و اصلا درست کار نمیکنه
نویسنده این مطلب
سلام-فیلم ته مطلب فوتوشاپه
مهمان
یا کد اشتباه داده یا اونی که نشون میده برا این برنامه نیست
یه بار تست کنین میبینین که غلط
نویسنده این مطلب
والا من پروژه ها رو عملی تست میکنم و فیلمشون رو هم معمولا تو مطلب پیوست میکنم تا …
ولی خب شاید شما درست میفرمایید و …
منم حوصلم نمیکشه بشیم بررسی کنم ببینم مشکل از سمت شما هستش یا این که از سمت کد و …
ولی خب شما اگه بررسی کردید و مشکل رو پیدا کردید ( اگه از سمت کد پروژه بود ) بگید تا اصلاح کنم
مهمان
سلام
چرا برای _lcd_ready(); تو کد ویژن error میگیره؟؟
مهمان
سلام میشه یه توضیحی در مورد اینکه چراTCNT0 و TCCR0 رو چرا وچطوری پیدا کردین بدین
خیلی ممنون
نویسنده این مطلب
سلام – آموزش تایمر/کانتر رو مطالعه کن – بیت های این دو رجیستر رو حفظ نیستم.
مهمان
سلام مهندس
میگم این آخرای برنامه یه حلقهwhile(i!=5) نوشتی منظورت همون سیستم تیک (system tic)هست؟؟
همینکه یه اینتراپت کلی فعال می کنیم مثلا هر 1 میلی ثانی هیه بار وقفه بده ، منظورت همین بوده؟؟
مهمان
واقعا دستت درد نکنه
کارت درسته
فقط یه سوال
کجای برنامه تو اون تابع key اگه یه مدتی کلیدی رو فشار ندیم اون i1 یا… از مقدار اولیش شروع میکنه؟
نویسنده این مطلب
ببین کجا از تایمر استفاده کردم.
کد رو خیلی وقت پیش نوشتم – چیزی ازش خاطرم نی.
مهمان
سلام
میخواستم بپرسم قیمت و زمان پروژه زیر چقدر میشه. لطفا با sms و یا تماس اطلاع بدین —
یک کیبورد عادی کامپیوتر که با push button ساخته شده باشه با ۱۲ کاراکتر.
نویسنده این مطلب
سلام-پروژه انجام نمیدم.
مهمان
سلام
میخواستم که میشه این پروژه رو با sim 900 یا sim800 ارتقا بدید دهمین به جای lcdاز گرافیکی استفاده کنید.…?
نویسنده این مطلب
سلام-امکانش نیس برام.
مهمان
سلام مرسی از سایت خوبتون
سوالم اینه این keypad-sms رو پروتئوس ۸ نداره شما از کجا تو پروژتون اوردین
و فایل پروتیوس که از اینجا دان کردم ارور میده میگه ماژول prims.dll خطای دسترسی داره یه همچین چیزی. چجوریه قضیه??
اگه راهنمایییی کنیننن خیلی ممنون میشم
مهمان
سلام میخواستم بدونم به جای این توابع در اتمگا۳۲چه معادلی میتونم بذارم؟
lcd_ready()
;_lcd_write_data(0x10);
نویسنده این مطلب
سلام – یعنی چی؟ متوجه نشدم.
مهمان
سلام یک پروژه میخواستم تقریبا مثل همین اما یکم فرق داره میخواستم ببینم میتوننین اونو برام بنویسین یا کسایی رو بم معرفی کنیین ک بنوسین برنامشو
مهمان
لطفا پروژه های بیشتری بذارید
از ۱۰۰ تا کتاب اموزشی هم بهتر توضیح میدید
مهمان
مهندس از سایتت استفاده کردیم ، خدا خیرت بده بیش از پیش…
مهمان
تازه کاراکتر V رو ننوشتین توو بخش کارکترها 😉
میشه این پروژه رو طوری طراحی کنید که فقط بشه با کی پد 3*4 فقط حروف انگلیسی رو تایپ کنه، عدد و سیمبول لازم نیست.
خیییلیی ممنون
نویسنده این مطلب
وقتش رو ندارم که این پروژه رو تغییرات بدم.
مهمان
سلام، ممنون از مطالبتون
من این پروژه رو در پروتئوس ران میکنم ارور میده و کار نمیکنه. ویندوز 8 دارم و پروتئوس ورژن 8 دارم
ممنون میشم بررسی بفرمایید.
منم میخوام همچین کاری بکنم ولی با این تفاوت که با یک کیپد 4*3 میخوام این کار رو انجام بدم
مهمان
سلام. Y چیه؟ خروجی تابع key?کجا این شرطو گذاشتین من هرچی نگاه میکنم نمیفهمم
نویسنده این مطلب
سلام
y تو کدوم خط پروژه؟
مهمان
توی توابع show_char و show_symbol
مهمان
مثلا شرط گذاشتین( if (y == 2
کجا به y مقداردادین؟
نویسنده این مطلب
تو خظ 182 مقدار y تغییر میکنه در ضورت فشرده شدن دکمه – ببین آخرین جایی که دیگه از y استفاده نشده مقدارش رو 0 کن – بقیش رو خودت بگرد و مشکل رو پیدا کن – از من کاری بر نمیاد.
مهمان
تو خط 182 که y نیست y1 هست
نویسنده این مطلب
ببخشید همون y1
مهمان
مهندس یعنی من از خط 52 تا 160به جای y بنویسم y1?چون متغیر y هیچ جای این برنامه تعریف و مقدار دهی نشده.
مهمان
فهمیدم حله.مرسی مهندس
مهمان
دمت گرم خیلی باحالی من با پروژ] هات اختراعمو ساختم
نویسنده این مطلب
مهمان
سلام سوال رو یه جا نوشتم لینکش رو گم کردم !میخواستم بدونم برای منبع 5 ولت چیکار میکنی؟اون باتری که استفاده میکنی چند ولت هست.میخوام lcd رو روشن کنم ولی کاراکترهارو درست نمایش نمیده.فکرکنم منبع مشکل داشته باشه
نویسنده این مطلب
https://dmf313.ir/%D9%BE%D8%B1%D9%88%DA%98%D9%87-%D9%88-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%DA%A9%D8%A7%D8%B1-%D8%A8%D8%A7-%D9%85%D8%A7%DA%98%D9%88%D9%84-%D9%81%D8%A7%D8%B5%D9%84%D9%87-%D8%B3%D9%86%D8%AC-srf05/#comment-152623
مهمان
روی برد جواب نمی ده ! یعنی من مثلا اولین دکمه رو می زنم به جای اینکه a نشون بده همون اول c رو روی LCD نمایش می ده ؟بقیه دکمه ها همینطور .الان نمی دونم چی کار کنم !
نویسنده این مطلب
فرکانس رو با فیوز بیت ها روی 8 میگ تنظیم کردی؟
برای کیپد مقاومت پول آپ/دان گزاشتی؟
مهمان
سلام مرسی از پروژه کاربردیتون
مهمان
سلام.ممنون برای این مطلب.توی این برنامه وقتی کلید 1 رو دو بار فشار بدی و b روی ال سی دی نمایش داده بشه,دفعه بعد که کلید یک رو فشار بدی حروف از b شروع میشن.ولی ما میخوایم از a شروع بشه.برای بقیه کلیدها هم همینطور.برای حل این مشکل باید چیکار کرد؟
نویسنده این مطلب
سلام
این کد رو خیلی وقت پیش نوشتم و الان خاطرم نیست چیزی و باید بشینم کل پروژه رو از اول بررسی کنم که حسش نیست
مهمان
اگه اشتباه نکنم به خاطر عدد دهی به i هستش اگه عددهای i رو که توی تابع (int key (void تعریف شده رو تغییر بدی درست میشه یعنی اونجا ک return 1 هستش بشه 0 وهمینطور تو بقیه خطها
مهمان
اقا مهدی میشه یه راهنمایی بکنی که چطور کارکترهای نمایش داده شده روی lcd رو توی یه رشته ذخیره کنم
نویسنده این مطلب
یعنی میخوای اطلاعات نمایش داده شده توی lcd رو بخونی و تو یه آرایه یا رشته یا هرچیزی ذخیره کنی؟
درست متوجه شدم؟
یا این که هر چیزی که در lcd نمایش داده میشه، قبل از دادن به تابع lcd.puts بیایم و تو یه چیزی ذخیره کنیم
یا این که…؟؟؟
مهمان
اره اطلاعات واسم مهمه ،میخوام با استفاده از کیپد به میکرو دستور ارسال کنم
نویسنده این مطلب
char *str; str += (char)KypadData;
مهمان
مرسی از لطفت ، از یه راهه دیگه انجامش دادم تو پروتئوس هم جواب میده ولی تو عمل مشکل دارم،تو حالت پول اپ واسه خودش تایپ می کنه ولی وقتی پول دان میکنم lcd در حالت چشمک زنه و هیچ حرفی رو از کیپد نمیگیره
نویسنده این مطلب
اولا این که پول آپ باید بشه ۴ تا پایه کیپد و یا پول دان این بستگی به کد های برنامه داره که باید بررسیش کنی
در ضمن فرکانس مدارت رو هم رو ۸ میگ با فیوز بیت ها تنظیم کن تا این مورد اضیتت نکنه
و این که کل برنامه رو غیر فعال کن و بیا یه IF تعریف کن و بگو اگه این دکمه ها فشرده شد LED1 رو روشن کن و الی آخر تا این که بفهمی تابع Key درست کار میکنه یا نه
مهمان
من این قسمت رو اضافه کردم ولی وقتیکه مثلا حرف C رو تایپ میکنم حروف A وB هم وارد رشته میشن
if(y == 1) { lcd_putchar(‘A’); strcatf(str2,”A”);}
if(y == 2) { lcd_putchar(‘B’); strcatf(str2,”B”);}
if(y == 3) { lcd_putchar(‘C’); strcatf(str2,”C”);}
نویسنده این مطلب
با این تابع کار نکردم و اطلاعی دربارش ندارم
مهمان
سلام ، ای کاش نحوه سیو کردنش را هم در مطالبتون میگنجاندید، با تشکر از محبتتون
مهمان
سلام. چرا فایل پروتئوس واسه من برنامه رو اجرا نمیکنه وقتی run رو میزنم؟ باید چیکار کنم؟ مرسی
نویسنده این مطلب
باید از نسخه ۷٫۷ استفاده کنید…نشد جدید ترین نسخه.
نشد خودتون مدار رو طبق عکس مطلب و کد ها باید ببندید….من مدارش و فایل پروژه رو ندارم(هاردم پاک شده)
مهمان
خیلی خیلی ممنون بابت سایت خوبتون.انشالله توفیق روز افزون نصیبتون بشه
مهمان
دمت گرم
عالیه
مهمان
سلام خسته نباشید
مطالب شما خیلی مفیدن
تشکر فراوان
مهمان
از زحمات شما من بعنوان عضو کوچکی در جامعه مهندسین بیکار واقعا و با تمام وجود متشکرم.فقط خداوند می تونه اجر کارتون رو بهتون بده.امیدوارم همیشه سالم و شاد باشین
مهمان
نظر ندی یه وقت…گناه میشه
if(Char_Type==0)
{
Show_Char(y1);
delay_ms(50);
//بررسي اين که در مدت زمان مورد
//نظر (بعد از فشرده شدن يه دکمه)آيا
//دکمه ي جديدي فشرده ميشود يا نه
TCNT0=0;y2=0,i=0;
while(i!=5) // 200 (ms)
{
y2=Key();
// برسي اين که کانتر به زمان مورد نظر رسيده است يا نه
if(TCNT0>=124)
{
//هر 155 تا کلاک يعني 20 ميلي ثانيه
i++;
TCNT0 = 0;
}
if(y2!=0)
{
//حرکت مکان نما به چپ
_lcd_ready();
_lcd_write_data(0x10);
Show_Char(y2);
delay_ms(50);
i=0;//اگه ععدي وارد شد شمارش دوباره از صفر شروع شود
}
}
سلام قسمت تایمر شو نمیفهمم این اعداد بر په اساسی انتخاب شدن ؟؟درک نمیکنم .لطف کنید یکم توضیح بیشتر بدین.
نویسنده این مطلب
سلام
مطلب مربوط به تایمر رو نگاه کنید….
https://dmf313.ir/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%AC%D8%A7%D9%85%D8%B9-%D9%85%DB%8C%DA%A9%D8%B1%D9%88%DA%A9%D9%86%D8%AA%D8%B1%D9%84%D8%B1-avr-%D8%AC%D9%84%D8%B3%D9%879/
مهمان
ممنون با گذاشتن مقاومت درست شد.
نویسنده این مطلب
مهمان
نظرام ثبت نمیشه. امکانش هست راهنمایی کنید من فردا باید این مدارو پیاده کنم. کیپد مقاومت نداره.
نویسنده این مطلب
یه عکس از کیپدتون بفرستید برام….
تا جایی که من یادمه کیپد باس مقاومت براش ببندی…
یه مطلب هم شاید امشب برا کیپد بزارم بدون کیپد
مهمان
میشه راهنمایی کنید مشکل از کجاست من فردا میخوام این مدار رو پیاده کنم. کیپد مقاومت نداره
مهمان
نه عین مدار رو بستم. یه سوال دیگه اینکه اگر من مدار رو روی برد بخوام ببندم به این مشکل برمیخورم دوباره؟ یا مربوط به پروتئوس؟
مهمان
نه عین همون مدار رو دوباره بستم فقط تنظیمات مربوط به Atmega در مدار شما متفاوت است و برنامه proteus اون تنظیمات رو برای مدار من نمیاره.
مهمان
تنظیمات خاصی برای ATMEGA در نظر گرفتین درسته؟ می دونم مربوط به فرکانس اما نمی دونم چطوری درستش کنم.
نویسنده این مطلب
سلام
مطلب مربوط به فیوز بیت رو بخونید..
تو سایت هستش
مقاومت برا کیپد گذاشتین؟
مهمان
salam man vaghti madar ro 2bare bastam doros kar nemikone masalan ba click rooye A sari karakter avaz mishe be B va be C va 2bare A….. emkanesh has rahmanyi konid? mamoon misham
مهمان
میکرو مورد استفاده هم atmega32 باشه لطفا
نویسنده این مطلب
مهمان
سلام . چقدر خوبه این . من کلی بهش نیاز دارم…. ولی خب میشه ی سری تغییرات بهش بدین
. خودتون گفتین تو سه سوت انجامش میدین

من میخوام که عدد 1 چیزی رو نشون نده . عدد 2 a,b,c و عدد 3 d,e,f , ….. به سنبل ها هم نیازی ندارم ، حروف کوچیک وبزرگ هم اهمیتی نداره ، فقط نشون بده کافیه :))))) ^_^ ممنووووونم
اخه من هیچی بلد نیستم
نویسنده این مطلب
سلام
شرمنده اخلاق ورزشیتون
مهمان
سلام
خیلی از مطلبتون استفاده بردم ولی چند سوال داشتم:
1. چه جور به کیپد حروف فارسی هم بدیم یعنی بخاییم با کیپد هم انگلیسی تایپ کنیم و هم فارسی و هم عدد؟
2.روی نمایشگر گرافیکی اون رو چه جور باید نمایش داد؟
3. اون خط #asm که گفتی برای زبان اسمبلی هست دقیقا برای چی نوشته میشه؟
نویسنده این مطلب
سلام
یه مطلب درباره فارسی نویسی در lcd کاراکتری گزاشتم تو سایت
ولی کلا زیاد روش حساب نکن و برو سمت lcd گرافیکی و فارسی نوشتن توش….مطلبش هم تو سایت هست
===
تو نمایشگر گرافیکی خودش تابع برا نمایش متن داره….فارسی رو هم پشتیبانی میکنه
===
تعین این که lcd به چه پورتی وصل هستش خطوط ۱۳-۱۸
مهمان
سلام
من موندم این کدها رو چجوری به کامپیوتر انتقال بدم به هم نریزه !
مهمان
haji in barnamat moshkl dare y niga besh bendaz
qati mikone
dar zemn mrc site khubi dari
نویسنده این مطلب
سلام
ممنون میشم بگد دقیقا مشکلش کجاس
مهمان
مرسی عالی بود
مهمان
ببخشید لینک خرابه
نویسنده این مطلب
شرمنده
لینک درست شد
مهمان
دستت درد نکنه خیلی لازم داشتم
نویسنده این مطلب
خواهش
نویسنده این مطلب
داش >> چرا اومدی سراغ این پروژه>>>> avr مگه تازه داری یاد نمیگیری؟؟>>>>> اینا رو نخون که گیج میشی>>>> (چیزی نداره ها ولی…)>>>> برو از صفحات آخر سایت شروع کن دو نه دونه پروژه ها رو نگاه کن و کداش رو تحلیل کن و اگه سوالی بود همونجا مطرح کن…..
تابع برا تمیزی کار هستش بیشتر >>> البته بعضی وقت ها هم مجبوریم>>>> مثلا یه کد 10 خطی هستش و باید تو 100 جای پروژه قرارش بدی>>>>میای یه تابع تعریف میکنی و این 10 خط رو توش قرار میدی>>> و تو اون 100 جا فرا خونیش میکنی…>>>به این صورت>>>>>نام تابع(); >>>>> حالا کاری که گفتم انجام بده خودت کمک کم میفهمی….
خودم هم اوایل سر این تابع….
مهمان
داداش مهدی چرا باید تابع واسش تعریف کنیم دلیل استفاده از تابع چیه؟؟
نویسنده این مطلب
اینم لینک سایتی که گفتم>>پیداش کردم
>>>
>>>>>شبیه همینه ولی یکمکی فرق داره
http://www.picpars.com/order/project/3/%D9%BE%D8%B1%D9%88%DA%98%D9%87-%D8%AA%D8%A7%DB%8C%D9%BE-%D8%AD%D8%B1%D9%88%D9%81-%D9%88-%D8%A7%D8%B9%D8%AF%D8%A7%D8%AF-%D8%A8%D8%A7-%DA%A9%DB%8C%D8%A8%D9%88%D8%B1%D8%AF-3%C3%974-%D8%A8%D9%87-%D8%B2%D8%A8%D8%A7%D9%86-%D8%B3%DB%8C