PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : شمارنده صفر تا 99 روي سون سگمنت



ferdos
04-08-2009, 21:31
--------------------------------------------------------------------------------

سلام وخسته نباشين خدمت اعضاي محترم انجمن - يك برنامه شمارنده ازصفر تا 99 به زبان سي مي خواستم البته روي سون سگمنت نمايش بده ....

1nafar
06-08-2009, 11:21
سلام
این شمارنده قرار پالس یا ... رو بشماره یا خودکاره ( هر چند ثانیه یه واحد بهش اضافه میشه ؟)

ferdos
06-08-2009, 20:25
سلام - نياز به دادن پالس از بيرون نيست - در واقع خود ميكرو هر يك ثانيه از صفر تا 99 يك واحد به اون اضافه بشه .

1nafar
07-08-2009, 08:58
سلام
من یه برنامه ساده نوشتم ،سگمنت یکان به پروت 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];
}

}

}
من برنامه رو داخل نوتپد نوشتم ، ممکنه مشکلاتی داشته باشه ، تستش کن تا مشکلات رو رفع کنیم .
میتونیم برنامه بالا رو از طریق رفرش هم بنویسیم .

ferdos
07-08-2009, 20:29
سلام – از راهنمايي شما سپاس – برنامه تقريبا كار مي كنه اما نمي دونم چرا وقتي در يكان صفر نمايش داده نمي شه ! يعني بهتر بگم اعداد 10 -20 -30- تا 90 نمايش داده نمي شن . البته من كدهاي a,b تا f رو پاك كردم چون من مي خوام اعداد دسيمال باشن .

1nafar
08-08-2009, 15:30
سلام
درست شد :

#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];
}

}

}
توی برنامه قبلی اول به a اضافه میشد و بعد به پورت انتقال داده میشد ، مثلا عدد صفر سریع به یک تبدیل میشد و.... الان درست شد .