--------------------------------------------------------------------------------
سلام وخسته نباشين خدمت اعضاي محترم انجمن - يك برنامه شمارنده ازصفر تا 99 به زبان سي مي خواستم البته روي سون سگمنت نمايش بده ....
--------------------------------------------------------------------------------
سلام وخسته نباشين خدمت اعضاي محترم انجمن - يك برنامه شمارنده ازصفر تا 99 به زبان سي مي خواستم البته روي سون سگمنت نمايش بده ....
سلام
این شمارنده قرار پالس یا ... رو بشماره یا خودکاره ( هر چند ثانیه یه واحد بهش اضافه میشه ؟)
سلام - نياز به دادن پالس از بيرون نيست - در واقع خود ميكرو هر يك ثانيه از صفر تا 99 يك واحد به اون اضافه بشه .
سلام
من یه برنامه ساده نوشتم ،سگمنت یکان به پروت d و سگمنت 10گان به پروت c متصل میشه :
من برنامه رو داخل نوتپد نوشتم ، ممکنه مشکلاتی داشته باشه ، تستش کن تا مشکلات رو رفع کنیم .کد:#include <stdio.h> #include <mega16.h> #include <delay.h> #define xtal 4000000 char digits[16]={0x3F,0x06,0x5B,0x4F,0x66,0x6D, 0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71}; unsigned char a; unsigned char b; void main(void) { DDRD = 0xFF; PORTD = digits[0]; DDRC = 0xFF; PORTC = digits[0]; while(1) { a++; PORTD = digits[a] delay_ms(1000); if(a>9) { a=0; b++; PORTc = digits[b]; } } }
میتونیم برنامه بالا رو از طریق رفرش هم بنویسیم .
سلام – از راهنمايي شما سپاس – برنامه تقريبا كار مي كنه اما نمي دونم چرا وقتي در يكان صفر نمايش داده نمي شه ! يعني بهتر بگم اعداد 10 -20 -30- تا 90 نمايش داده نمي شن . البته من كدهاي a,b تا f رو پاك كردم چون من مي خوام اعداد دسيمال باشن .
سلام
درست شد :
توی برنامه قبلی اول به a اضافه میشد و بعد به پورت انتقال داده میشد ، مثلا عدد صفر سریع به یک تبدیل میشد و.... الان درست شد .کد:#include <stdio.h> #include <mega16.h> #include <delay.h> #define xtal 4000000 char digits[16]={0x3F,0x06,0x5B,0x4F,0x66,0x6D, 0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71}; unsigned char a; unsigned char b; void main(void) { DDRD = 0xFF; PORTD = digits[0]; DDRC = 0xFF; PORTC = digits[0]; while(1) { PORTD = digits[a] a++; delay_ms(1000); if(a>9) { a=0; b++; PORTc = digits[b]; } } }