السلام عليكم
تفضل هذا مشروع لاشارتين
الكود
http://arabsh.com/files/0c33414d67fb...light-rar.html
او
https://www.mediafire.com/?cz4da2vz2kbtwxy
كود:
sbit sh_cp at RA0_bit;
sbit ds at RA1_bit;
sbit st_cp at RA2_bit;
sbit reset at RA3_bit;
sbit en1_red at RA5_bit;
sbit en2_red at RA4_bit;
sbit en1_green at RA7_bit;
sbit en2_green at RA6_bit;
# define on 1
# define off 0
# define segment portb
#define Check_bit(var,pos) var&(1<<pos)
char seg[]={63,6,91,79,102,109,125,7,127,111};
char data1[2];
short x=0;
void segment1(char data_7seg, char seven_seg);
void HC595();
void main()
{
trisa=0;
trisb=0;
porta=0;
reset=1;
segment=0;// off 7 seg
cmcon=7;
while(1)
{
data1[0]=0x61; data1[1]=2;
HC595(); //led_red1=off;led_yellow1=off;led_green1=on;
//led_red2=oN;led_yellow2=off;led_green2=oFF;
for(x=15;x>0;x--)segment1(x,0);// 15 sec
data1[0]=0x91; data1[1]=2;
HC595(); //led_red1=off;led_yellow1=on;led_green1=off;
//led_red2=oN;led_yellow2=off;led_green2=OFF;
for(x=3;x>0;x--) segment1(0,0);// 2 sec
data1[0]=0x8C; data1[1]=1;
HC595(); //led_red1=ON;led_yellow1=oFF;led_green1=off;
//led_red2=off;led_yellow2=oN;led_green2=oFF;
for(x=15;x>0;x--)segment1(x,1);// 15sec
data1[0]=0x8A; data1[1]=2;
HC595(); //led_red1=ON;led_yellow1=OFF;led_green1=off;
//led_red2=off;led_yellow2=off;led_green2=ON;
for(x=2;x>0;x--) segment1(0,1);// 2 sec
}
}
void segment1 (char data_7seg, char seven_seg)
{
char y=0;
for(y=0;y<100;y++)// time = 10x0.1 * time= 1* time " sec"
{
/*if(seven_seg ==0){en1_green=1;en2_green=0;en1_red=0;en2_red=0;}
else if(seven_seg ==1) {en1_red=1;en2_red=0;en1_green=0;en2_green=0;}*/
en1_green=1;en2_green=0;
segment=seg[data_7seg/10];
delay_ms(5);
segment=0;// off 7 seg
/*if(seven_seg ==0){en1_green=0;en2_green=1;en1_red=0;en2_red=0;}
else if(seven_seg ==1) {en1_red=0;en2_red=1;en1_green=0;en2_green=0;}*/
en1_green=0;en2_green=1;
segment=seg[data_7seg%10];
delay_ms(5);
segment=0;// off 7 seg
}
}
//*************************************************************************//
void HC595()
{
short jj=0 , kk=0;
reset=0; delay_us(1);reset=1;
for(kk=1;kk>=0 && kk !=255;kk--)
{
for(jj=7;jj>=0 ;jj--)
{
if((Check_bit(data1[kk],jj))!=0)ds=1;
else if((Check_bit(data1[kk],jj))==0) ds=0;
sh_cp=1;
delay_us(10);
sh_cp=0;
}
}
st_cp=1;
delay_us(10);
st_cp=0;
}