|
السلام عليكم
أظن لكي تعمل سفن سكمنت يحتاج PNP الى جهد 0
enable يحتاج الى 5 فولت
سأعطيك الان الكود بمشيئه الله
تحياتي
|
السلام عليكم
الكود
كود:
#define Check_bit(var,pos) var&(1<<pos)
#define on 1
#define off 0
//***************************************************************//
sbit ST1 at RB0_bit; // for display
sbit DS1 at RB1_bit;
sbit SH1 at RB2_bit;
////////********************************************************************///
char num[]={1,2,3,4,5,6};// for data and clock,
const char segment[]={63,6,91,79,102,109,125,7,127,111}; //for CC
const char segbit[]={0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE};
char x ;
char colomn , enable=0 ,ggg=0 ,cont, dd=0 ;
void display_7seg();
//**********************************************************//
//Timer0
//Prescaler 1:8; TMR0 Preload = 6; Actual Interrupt Time : 2 ms
//Place/Copy this part in declaration section
void InitTimer0(){
OPTION_REG = 0x82;
TMR0 = 6;
INTCON = 0xA0;
}
//************************ read from computer ******************************//
void Interrupt()
{
if (TMR0IF_bit)
{
TMR0IF_bit = 0;
TMR0 = 6;
//Enter your code here
cont++;
}
}
//**********************************************************//
void main()
{
trisb=0;
portb=0;
CMCON=7;
InitTimer0();
Delay_ms(200);
while(1)
{
if(cont>=1) { cont=0;display_7seg();}// ??? ??? ????? ???? ?????? ?? 2 ??? ?????
}
}
//*****************************************************************//
void display_7seg()
{
char y;
GIE_bit=0;
for(x=0;x<8;x++){ds1=0;sh1=1;sh1=0;}// OFF all 7 seg
for(x=0;x<8;x++){ds1=1;sh1=1;sh1=0;}// OFF all 7 seg
ST1=1;st1=0;
for(x=0;x<8;x++) //
{
if(Check_bit(segbit[7-colomn],7-x))ds1=0;
else DS1=1;
SH1=0;SH1=1;
}
for(x=0;x<8;x++) //
{
if(Check_bit(segment[num[colomn]],7-x))DS1=0;
else DS1=1;
SH1=0;SH1=1;
}
ST1=1; ST1=0;
colomn++;
if(colomn==6)colomn=0;
GIE_bit=1;
}