 |
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2009
الدولة: العراق/ كوردستان
المشاركات: 2,916
|
|
نشاط [ سعيد قادر ]
قوة السمعة:152
|
|
11-08-2018, 06:52 PM
المشاركة 4
|
|
شكرا لك استاذ ماجد
هو لغة مايكرو سى
بعد التدقيق وجد الكود لايوجد به مشكلة المشكلة كان فى عدم استخدامى للترانزستورات على الاطراف D1 D2 D3 D4
الكود بدون الترانزستورات فقط للمحاكات
كود:
#define sw1 porta.b7
#define sw2 porta.b6
#define is ==
#define dl delay_ms(50)
unsigned int x=0;
unsigned char y=0;
bit flag1;
bit flag2;
const char seg_data[]={63,6,91,79,102,109,125,7,127,111};
void InitTimer0(){
OPTION_REG = 0x82;
TMR0 = 5;
INTCON = 0xA0;
}
void Interrupt(){
if (TMR0IF_bit){
TMR0IF_bit = 0;
TMR0 = 5;
y++;
if(y is 0) portb=0;
if(y is 1) {porta=0B11111110;portb=seg_data[x/1000]; }
if(y is 2) portb=0;
if(y is 3) {porta=0B11111101;portb=seg_data[x%1000/100];}
if(y is 4) portb=0;
if(y is 5) {porta=0B11111011;portb=seg_data[x%100/10]; }
if(y is 6) portb=0;
if(y is 7) {porta=0B11110111;portb=seg_data[x%10]; }
if(y is 8) y=0;
}
}
void _init()
{
cmcon=7;
porta=0;
portb=0;
trisb=0;
trisa=0b11000000;
}
void main()
{
_init();
InitTimer0();
while (1)
{
if(sw1 is 0 && x!=1001 && flag1 is 0)
{
dl;
x++;
flag1=1;
}
if(sw1 is 1)flag1=0;
if(sw2 is 0 && x!=0 && flag2 is 0)
{
dl;
x--;
flag2=1;
}
if(sw2 is 1)flag2=0;
}
}
[IMG]  [/IMG]
|