به نام خدا : تو این مطلب دو تا پروژه lpc1768 با سون سگمنت میخوام بزارم، تو یکی از پروژه ها اعداد 0 تا 9 تو 7s نمایش داده میشه و تو پروژه دیگه، اعداد داخل 7s با دکمه(بایتن، کلید، یا هر چی اسمشو میزارید) >>> پروژه ساده روشن کردن سون سگمنت با lpc1768
ترتیب پایه های سونت سگمنت تک رقمی
ترتیب پایه ها به صورت شکل زیر هستش، چون در پروژه نیازتون میشد قرار دادم.
پروژه شمارنده 0 تا 9 سون سگمنت با lpc1768
شماتیک پروژه
کد پروژه
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 |
#include <lpc17xx.h> void delay(unsigned int ms); // 0Xgfedcba // 0 : a=1, b=1, c=1, d=1, e=1, f=1, g=0 ---> 0b0111111 = 0x3F // 1 : a=0, b=1, c=1, d=0, e=0, f=0, g=0 ---> 0b0000110 = 0x06 // 2 : a=1, b=1, c=0, d=1, e=1, f=0, g=1 ---> 0b1011011 = 0x5B // 3 : a=1, b=1, c=1, d=1, e=0, f=0, g=1 ---> 0b1001111 = 0x4F // 4 : a=0, b=1, c=1, d=0, e=0, f=1, g=1 ---> 0b1100110 = 0x66 // 5 : a=1, b=0, c=1, d=1, e=0, f=1, g=1 ---> 0b1101101 = 0x6D // 6 : a=1, b=0, c=1, d=1, e=1, f=1, g=1 ---> 0b1111101 = 0x7D // 7 : a=1, b=1, c=1, d=0, e=0, f=0, g=0 ---> 0b0000111 = 0x07 // 8 : a=1, b=1, c=1, d=1, e=1, f=1, g=1 ---> 0b1111111 = 0x7F // 9 : a=1, b=1, c=1, d=1, e=0, f=1, g=1 ---> 0b1101111 = 0x6F //char Number7S[10] = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F}; // ---> // 0B0g000fed000c00ba //int Number7S[10] = { 0b0000011100010011, 0b0000000000010010, 0b0100011100000011, 0b0100000100010011, 0b0100010000010010, //0b0100010100010001, 0b0100011100010001, 0b0000000000010011, 0b0100011100010011, 0b0100010100010011}; // ---> //int Number7S[10] = { 0x713, 0x12, 0x4703, 0x4113, 0x4412, 0x4511, 0x4711, 0x13, 0x4713, 0x4513 }; // Catode int Number7S[10] = { 0x4000, 0x4701, 0x410, 0x600, 0x301, 0x202, 0x2, 0x4700, 0x0, 0x200 }; // Anode #define a 0 // P1_0 #define b 1 // P1_1 #define c 4 // P1_4 #define d 8 // P1_8 #define e 9 // P1_9 #define f 10 // P1_10 #define g 14 // P1_14 int main() { LPC_PINCON -> PINSEL2 = 0x00000000; LPC_GPIO1 -> FIODIR = (1<<a) | (1<<b) | (1<<c) | (1<<d) | (1<<e) | (1<<f) | (1<<g); while(1) { for(int i=0; i<=9; i++) { LPC_GPIO1->FIOSET = Number7S[i]; delay(1000); LPC_GPIO1->FIOCLR = Number7S[i]; } } } void delay(unsigned int ms) { for( unsigned int i=0; i<ms; i++ ) for( unsigned int j=0; j<20000; j++ ); } |
فیلم پروژه
پروژه lpc1768 کنترل سون سگمنت با دکمه
شماتیک پروژه
کد پروژه
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 |
#include <lpc17xx.h> void delay(unsigned int ms); int Number7S[10] = { 0x4000, 0x4701, 0x410, 0x600, 0x301, 0x202, 0x2, 0x4700, 0x0, 0x200 }; // Anode int Number = 0; #define a 0 // P1_0 #define b 1 // P1_1 #define c 4 // P1_4 #define d 8 // P1_8 #define e 9 // P1_9 #define f 10 // P1_10 #define g 14 // P1_14 #define Button1 0 // P0.0 #define Button2 1 // P0.1 int main() { // 7S LPC_PINCON -> PINSEL2 = 0x00000000; LPC_GPIO1 -> FIODIR = (1<<a) | (1<<b) | (1<<c) | (1<<d) | (1<<e) | (1<<f) | (1<<g); // Button Up/Down LPC_PINCON -> PINSEL0 = 0x00000000; LPC_GPIO0 -> FIODIR = 0x0000; LPC_GPIO1->FIOSET = Number7S[ Number ]; while(1) { if( LPC_GPIO0 -> FIOPIN & 0x00000001 ) { // Up Number++; if(Number>9) { Number = 9; } else { LPC_GPIO1->FIOCLR = Number7S[ Number-1 ]; LPC_GPIO1->FIOSET = Number7S[ Number ]; } delay(200); } else if( LPC_GPIO0 -> FIOPIN & 0x00000002 ) { // Down Number--; if(Number<0) { Number = 0; } else { LPC_GPIO1->FIOCLR = Number7S[ Number+1 ]; LPC_GPIO1->FIOSET = Number7S[ Number ]; } delay(200); } } } void delay(unsigned int ms) { for( unsigned int i=0; i<ms; i++ ) for( unsigned int j=0; j<20000; j++ ); } |
فیلم پروژه
هزینه این دو تا پروژه آرم ، فاتحه برا شادی روح شهدا، و با توجه به این که داریم به محرم نزدیک میشیم دوس داشتید میتونید کتاب “احکام عزاداری” رو بخونید همش 100 صفحه هستش، به صورت پرسش و پاسخ هستش؛ بیش از این مزاحم نمیشم تا مطلب بعد یا علی.
مهمان
سلام ممنون بابت مطالب خوبتون
خواستم بدونم اون اعدادی که داخل آرایه number7s[10 نوشتید دقیقا چی هستن ؟؟
چرا از خود char که اون بالا نوشتید استفاده نکردید؟؟
مهمان
سلام ای تیکه از برنامه رو یخورده توضیح میدید.
else {
LPC_GPIO1->FIOCLR = Number7S[ Number-1 ];
LPC_GPIO1->FIOSET = Number7S[ Number ];
}
این else رو برا چی گذاشتی.؟
کلید زده شه میادیکی زیاد یا کم میکنه بعد چک میکنه که از بازه 0و9 خارج نشه بعد باید قبلی رو پاک کنه بعدی رو نشون بده پس else چی کار میکنه. نباشه چی میشه؟
مهمان
راستی من با usb پروگرامش کردم تا الانم مشکلی پیش نیومده خدا رو شکر ، داداش این j_link گرون درمیاد

استفاده از بوت لودر آماده خود میکرو هم یه راه حل برای همین کم کردن هزینه ها بوده
نویسنده این مطلب
والا برا من بوتلودر برا تمام پروژه ها جواب نداد
مهمان
سلام
اینکه led های ۷seg رو ب صورت ۰B0g000fed000c00ba کدگزاری کردین ، چرا اینجوری نوشتین؟ یه چیز تعریف شده س یا چی؟
نویسنده این مطلب
سلام
این برا توضیحاته – خودم هم یادم نمیاد داستانش چیه – باید بشینم بررسی کنم که حسش نی
مهمان
سلام ببخشید من یک هدر برد lpc1768 ازeca گرفتم یادم نبود jlinkسفارش بدم
میخواستم بدونم برای پروگرام کردن این هدر برد از طریق usb چه راه هایی هست خود دفتر چه راهنماش نوشته با نرم افزار h-covertedفایل هگزو تبدیل به باینری کنید بعد بزارید داخل میکرو ولی من نرم افزارhcoveted را گیر نیوردم تونتم سرچ کردم چیزی پیدا نکردم چه کار کنم؟ چه راه هایی هست؟
نویسنده این مطلب
سلام
حتما j-link رو بخر – بدون jlink به مشکل میخوری – اون پروگرامر usb یش هم بدرد عمش میخوره – مشکل داره.
مهمان
سلام
خسته نباشی برادر
چطور این lpc1768 رو تو پروتئوس شبیه سازی کردین ؟
هر چی گشتم کتابخونش نبود
نویسنده این مطلب
سلام
شبیه سازی نکردم
اون هم میبینی یه قطعه همین طوری خودم ساختم تا شماتیک رو ببینید به چه صورته.
قابلیت اجرا نیست تو پروتئوس