به نام خدا : پروژه avr تابلو تعویض بازیکن با سون سگمنت : اصلا حال توضیح ندارم….نحوه کار پروژه معلومه….یکم تو پروتئوس با پروژه ور برید نحوه کارش دستون میاد.
کد پروژه :
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 |
#include <mega16.h> #include <delay.h> //تابع مربوط به تاخیر زمانی #include <stdlib.h> //تابع مربوط به تبدیل انواع متغییر به همدیگه #asm .equ __lcd_port=0x1B ;PORTA #endasm #include <lcd.h> void main(void) { int PlayerIN=50,PlayerOUT=50;//شماره بازیکن وارد و خارج شونده int TedadTavizTeam1=0,TedadTavizTeam2=0;//تعداد تعویض های هر تیم تو این متغییر ها ذخیره میشه char str[10]; unsigned char anode_seg[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};//اعداد 0 تا 9 که قرار تو سون سگمنت نمایش داده بشن int a,b,c,d; //PORTA >>> LCD 4*20 DDRB=0X00; DDRC=0XFF; DDRD=0XFF; lcd_init(20);//عدد داخل پرانتز تعداد ستون های ال سی دی هستش while(1) { //اگه تعداد تعویض ها از حد میجاز بیشتر شه برنامه به اینجا پرش میکنه UP: lcd_clear(); lcd_gotoxy(1,0);lcd_puts("Select Your Team :"); lcd_gotoxy(0,1);lcd_puts("Team 1 OR Team 2"); //مربوط به انتخاب تیم هستش while(1) { if(PINB.0) { TedadTavizTeam1++; lcd_clear(); lcd_gotoxy(2,0);lcd_puts("You Select Team1"); //نمایش تعداد تعویض ها و بررسی تعداد اونا if(TedadTavizTeam1<=3){lcd_gotoxy(0,1);lcd_puts("Tedad Taviz Team1= ");itoa(TedadTavizTeam1-1,str);lcd_puts(str);} else if(TedadTavizTeam1>3) { lcd_gotoxy(2,1);lcd_putsf("Tedad Taviz Team1"); lcd_gotoxy(6,2);lcd_putsf("is Full"); delay_ms(3000); goto UP; } delay_ms(1000); goto SelectNumber; } else if(PINB.1) { TedadTavizTeam2++; lcd_clear(); lcd_gotoxy(2,0);lcd_putsf("You Select Team2"); //نمایش تعداد تعویض ها و بررسی تعداد اونا if(TedadTavizTeam2<=3){lcd_gotoxy(0,1);lcd_puts("Tedad Taviz Team2= ");itoa(TedadTavizTeam2-1,str);lcd_puts(str);} else if(TedadTavizTeam2>3) { lcd_gotoxy(2,1);lcd_putsf("Tedad Taviz Team2"); lcd_gotoxy(6,2);lcd_putsf("is Full"); delay_ms(3000); goto UP; } delay_ms(1000); goto SelectNumber; } } SelectNumber: delay_ms(3000); lcd_clear(); //مربوط به انتخاب بازیکن وارد شونده هستش lcd_gotoxy(0,0);lcd_putsf("Number PlayerIN is"); while(PINB.2==0) { if(PINB.0) {PlayerIN++; if(PlayerIN>99)PlayerIN=1; delay_ms(300);} else if(PINB.1){PlayerIN--; if(PlayerIN<1)PlayerIN=99; delay_ms(300);} itoa(PlayerIN,str); lcd_gotoxy(8,1);lcd_puts(str);lcd_putsf(" "); } delay_ms(500); //مربوط به انتخاب بازیکن خارج شونده هستش lcd_gotoxy(0,2);lcd_putsf("Number PlayerOUT is"); while(PINB.2==0) { if(PINB.0) {PlayerOUT++; if(PlayerOUT>99)PlayerOUT=1; delay_ms(300);} else if(PINB.1){PlayerOUT--; if(PlayerOUT<1)PlayerOUT=99; delay_ms(300);} itoa(PlayerOUT,str); lcd_gotoxy(8,3);lcd_puts(str);lcd_putsf(" "); } delay_ms(500); a=PlayerIN/10; b=PlayerIN%10; c=PlayerOUT/10; d=PlayerOUT%10; //نمایش در سون سگمنت while(PINB.2==0) { //نمایش بازیکن ورودی PORTD.0=1; PORTC=anode_seg[a]; delay_ms(1); PORTD.0=0; PORTD.1=1; PORTC=anode_seg[b]; delay_ms(1); PORTD.1=0; //روشن کردن یکی از 8 خونه سون سگمنت برای //اون 2 تا سون سگمنت وسطی //توچه=سون سگمنت ما 6 تایی هستش اگه توجه کرده باشید //توجه2=هر یه دونه سون سگمنت از 8 تا ال ای دی درست شده است PORTD.2=1; PORTC=0x3F; delay_ms(1); PORTD.2=0; PORTD.3=1; PORTC=0x3F; delay_ms(1); PORTD.3=0; //نمایش بازیکن خروجی PORTD.4=1; PORTC=anode_seg[c]; delay_ms(1); PORTD.4=0; PORTD.5=1; PORTC=anode_seg[d]; delay_ms(1); PORTD.5=0; } } } |
مهمان
پسورد فایل رو میشه بدین؟
مهمان
سلام
شما تو تلگرام دیگه کانال ندارید؟
نویسنده این مطلب
سلام-حذف کردم گروه رو ولی یکی از بچه ها میگه حذف نشده – نمیدونم والا – من دیگه نه اکانت دارم تو تلگرام و نه گروهی و نه کانالی
مهمان
سلام مهدی یه سوال
تو میکرو ها {مگا 16 . 8 }به کدوم پایه ها باید مثبت و منفی وصل کرد تا میکرومون به کار بیوفته؟؟
نویسنده این مطلب
خب اینا رو باید تو صفحات اولیه دیتاشیت میکرو مطالعه کنی
مثلا برا مگا 16 و 32 باید پایه شماره 10 رو VCC و پایه 11 میکرو رو GND بدی – اگه صفحات اولیه دیتاشیت هر میکرویی رو ببینی یه شماتیکی از پایه های میکرو به همراه اسم پایه ها گزاشته که اگه برا میکرو مگا 16و32 این شماتیک رو نگاه کنی کنار پایه های 10 و 11 نوشته VCC و GND
مهمان
سلام
داش مهدی میشه ادرس ایمیلتو داشته باشم؟
نویسنده این مطلب
سلام
ایمیلم تو سایت هستش
مهمان
میخوام اینو راه بندازم :
http://eshop.eca.ir/lcd/2012-oled-128×64-096-inch-full-color.html
نویسنده این مطلب
اینم تو نت گشتی؟
کتاب خونش رو پیدا نکردی؟
مهمان
DS1306 با کدویژن
نویسنده این مطلب
این که کتابخونش تو خود کد ویژن فک کنم باشه ….
مهمان
آقا یه کتابخونه میخوام برام مینویسی ؟
هزینشم تقدیمت میکنم
نویسنده این مطلب
برا چه قطعه ای؟