2020年6月30日 星期二
108 stop 00 beepX3
#include <at89x52.h>
char seg7_table0[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
char scanline[]={0xfe,0xfd};
char bcd[]={0,0};
char bdata flag;
sbit up_flag=flag^0;
sbit down_flag=flag^1;
int count=0;
int j;
int time=20;
sbit btn1=P3^0;
sbit buzzer = P3^7;
void delay_1ms(int k)
{
int i,j;
for(i=0;i<k;i++)
for(j=0;j<114;j++)
;
}
void beep(int count,int TH,int TL)
{
int i;
for(i=0;i<count;i++)
{
buzzer=0;
delay_1ms(TL);
buzzer=1;
delay_1ms(TH);
}
}
main()
{
beep(100,1,1);delay_1ms(1000);
beep(100,1,1);delay_1ms(1000);
beep(100,1,1);delay_1ms(1000);
IE=0x8A;
TMOD=0x10;
TH0=(8192-5000)/32;
TL0=(8192-5000)%32;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
TR0=1;
TR1=0;
up_flag=1;
down_flag=0;
while(1)
{
if(btn1==0)
{
delay_1ms(20);while(btn1!=1);delay_1ms(20);
TR1=1;
up_flag=~up_flag;down_flag=~down_flag;
}
}
}
void T0_int(void) interrupt 1
{
TH0=(8192-5000)/32;
TL0=(8192-5000)%32;
P0=seg7_table0[bcd[j]];
P2=scanline[j];
j++;
if(j==2)
j=0;
}
void T1_int(void) interrupt 3
{
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
time--;
if(time==0)
{
time=20;
if(up_flag==1)
{
count++;
if(count>99)
count=0;
}
else if(down_flag==1)
{
count--;
if(count<0)
count=99;
}
bcd[0]=count%10;
bcd[1]=count/10;
}
}
char seg7_table0[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
char scanline[]={0xfe,0xfd};
char bcd[]={0,0};
char bdata flag;
sbit up_flag=flag^0;
sbit down_flag=flag^1;
int count=0;
int j;
int time=20;
sbit btn1=P3^0;
sbit buzzer = P3^7;
void delay_1ms(int k)
{
int i,j;
for(i=0;i<k;i++)
for(j=0;j<114;j++)
;
}
void beep(int count,int TH,int TL)
{
int i;
for(i=0;i<count;i++)
{
buzzer=0;
delay_1ms(TL);
buzzer=1;
delay_1ms(TH);
}
}
main()
{
beep(100,1,1);delay_1ms(1000);
beep(100,1,1);delay_1ms(1000);
beep(100,1,1);delay_1ms(1000);
IE=0x8A;
TMOD=0x10;
TH0=(8192-5000)/32;
TL0=(8192-5000)%32;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
TR0=1;
TR1=0;
up_flag=1;
down_flag=0;
while(1)
{
if(btn1==0)
{
delay_1ms(20);while(btn1!=1);delay_1ms(20);
TR1=1;
up_flag=~up_flag;down_flag=~down_flag;
}
}
}
void T0_int(void) interrupt 1
{
TH0=(8192-5000)/32;
TL0=(8192-5000)%32;
P0=seg7_table0[bcd[j]];
P2=scanline[j];
j++;
if(j==2)
j=0;
}
void T1_int(void) interrupt 3
{
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
time--;
if(time==0)
{
time=20;
if(up_flag==1)
{
count++;
if(count>99)
count=0;
}
else if(down_flag==1)
{
count--;
if(count<0)
count=99;
}
bcd[0]=count%10;
bcd[1]=count/10;
}
}
2020年6月29日 星期一
loop up_down
#include <at89x52.h>
char P0table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xff};
/* a b c d e f
1111 1110 1111 1111 0xfe 0xff a off 10 11 12 13 14 15 16
1111 1111 1111 1110 0xff 0xfe off a
1111 1111 1111 1101 0xff 0xfd off b
1111 1111 1111 1011 0xff 0xfb off c
1111 1111 1111 0111 0xff 0xf7 off d
1111 0111 1111 1111 0xf7 0xff d off
1110 1111 1111 1111 0xef 0xff e off
1101 1111 1111 1111 0xdf 0xff f 0ff
*/
char P2table[]={0xfe,0xfd,0xfb,0xf7};
char bdata flag;
sbit up_flag=flag^0;
sbit down_flag=flag^1;
sbit cck_flag=flag^2;
sbit anti_cck_flag=flag^3;
char bcd[]={4,0,7,0};
int count=0;
int cck_cnt;
int time=20;
int j;
sbit btn1=P3^0;
sbit btn2=P3^1;
void delay_1ms(int k)
{
int i,j;
for(i=0;i<k;i++)
for(j=0;j<114;j++)
;
}
main()
{
IE=0x8A;
TMOD=0x10;
TH0=(8192-5000)/32;
TL0=(8192-5000)%32;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
TR0=1;
TR1=1;
up_flag=1;down_flag=0;
cck_flag=1;anti_cck_flag=0;
while(1)
{
if(btn1==0)
{
up_flag=~up_flag;down_flag=~down_flag;delay_1ms(20);while(btn1!=1);delay_1ms(20);
}
if(btn2==0)
{
cck_flag=~cck_flag;anti_cck_flag=~anti_cck_flag;delay_1ms(20);while(btn2!=1);delay_1ms(20);
}
}
}
void t0_int0(void) interrupt 1
{
TH0=(8192-5000)/32;
TL0=(8192-5000)%32;
P0=P0table[bcd[j]];
P2=P2table[j];
j++;
if(j==4)
j=0;
}
void t1_int0(void) interrupt 3
{
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
time--;
if(time==0)
{
time=20;
if(up_flag==1)
{
count++;
if(count>99)//兩個獨立的系統,所以用if else if if else if
count=0;
}
else if(down_flag==1)
{
count--;
if(count<0)
count=99;
}
if(cck_flag==1)
{
cck_cnt++;
if(cck_cnt>7)
cck_cnt=0;
}
else if(anti_cck_flag==1)
{
cck_cnt--;
if(cck_cnt<0)
cck_cnt=7;
}
if(cck_cnt==0){ bcd[3]=10;bcd[2]=16;}
if(cck_cnt==1){ bcd[3]=16;bcd[2]=10;}
if(cck_cnt==2){ bcd[3]=16;bcd[2]=11;}
if(cck_cnt==3){ bcd[3]=16;bcd[2]=12;}
if(cck_cnt==4){ bcd[3]=16;bcd[2]=13;}
if(cck_cnt==5){ bcd[3]=13;bcd[2]=16;}
if(cck_cnt==6){ bcd[3]=14;bcd[2]=16;}
if(cck_cnt==7){ bcd[3]=15;bcd[2]=16;}
bcd[0]=count%10;
bcd[1]=count/10;
}
}
00~99 up down
#include <at89x52.h>
char P0table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
char P2table[]={0xfe,0xfd};
char bdata flag;
sbit up_flag=flag^0;
sbit down_flag=flag^1;
char bcd[]={0,0};
int count=0;
int time=20;
int j;
sbit btn1=P3^0;
void delay_1ms(int k)
{
int i,j;
for(i=0;i<k;i++)
for(j=0;j<114;j++)
;
}
main()
{
IE=0x8A;
TMOD=0x10;
TH0=(8192-5000)/32;
TL0=(8192-5000)%32;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
TR0=1;
TR1=1;
up_flag=1;
down_flag=0;
while(1)
{
if(btn1==0)
{
up_flag=~up_flag;down_flag=~down_flag;delay_1ms(20);while(btn1!=1);delay_1ms(20);
}
}
}
void t0_int0(void) interrupt 1
{
TH0=(8192-5000)/32;
TL0=(8192-5000)%32;
P0=P0table[bcd[j]];
P2=P2table[j];
j++;
if(j==2)
j=0;
}
void t1_int0(void) interrupt 3
{
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
time--;
if(time==0)
{
time=20;
if(up_flag==1)
{
count++;
if(count>99)
count=0;
}
else if(down_flag==1)
{
count--;
if(count<0)
count=99;
}
bcd[0]=count%10;
bcd[1]=count/10;
}
}
2020年6月28日 星期日
test 107
#include <at89x52.h>
char seg7[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
char left_move[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
char left_add[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};
char righ_add[]={0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};
char seg2020[]={0xb0,0xc0,0xb0,0xc0};
char seg0704[]={0xc0,0xf8,0xc0,0x92};
char buf[]={0xc0,0xc0,0xc0,0xc0};
char scanline=0x01;
sbit led0=P3^0;
sbit led1=P3^1;
sbit led2=P3^2;
sbit led3=P3^3;
sbit btn1=P3^4;
sbit btn2=P3^5;
int Mode=0;
int i,j,x=0;
void delay_1ms(int k)
{
int i,j;
for(i=0;i<k;i++)
for(j=0;j<114;j++)
;
}
void init()
{
int i;
for(i=0;i<2;i++)
{
P1=0X00;delay_1ms(1000);
P2=0X00;delay_1ms(1000);
led0=0;led1=0;led2=0;led3=0;P0=0x00;delay_1ms(1000);
P1=0XFF;delay_1ms(1000);
P2=0XFF;delay_1ms(1000);
led0=1;led1=1;led2=1;led3=1;P0=0xFF;delay_1ms(1000);
}
P2=seg7[0];
}
main()
{
init();
while(1)
{
while(btn1==0) //開關按下
{
delay_1ms(10);
if(btn1==1) //開關放開
{
delay_1ms(10);
Mode=Mode+1;
if(Mode>9)
Mode=0;
}
}
while(btn2==0)
{
delay_1ms(10);
if(btn2==1)
{
delay_1ms(10);
Mode=Mode-1;
if(Mode < 0)
Mode=9;
}
}
switch(Mode)
{
case 0:
P2=seg7[0];P1=0xff;P0=0xff;
break;
case 1:
P2=seg7[1];delay_1ms(20);
P1=0x00;delay_1ms(500);
P1=0xff;delay_1ms(500);
break;
case 2:
P2=seg7[2];
for(i=0;i<8;i++)
{
P1=~left_move[i];delay_1ms(500);
}
break;
case 3:
P2=seg7[3];
for(i=7;i>=0;i--)
{
P1=~left_move[i];delay_1ms(500);
}
break;
case 4:
P2=seg7[4];
for(i=0;i<8;i++)
{
P1=~left_add[i];delay_1ms(500);
}
break;
case 5:
P2=seg7[5];
for(i=0;i<8;i++)
{
P1=~righ_add[i];delay_1ms(500);
}
break;
case 6:
P2=seg7[6];
P3=~0x01 & 0x0f ;P0=buf[0];delay_1ms(4);
P3=~0x02 & 0x0f ;P0=buf[1];delay_1ms(4);
P3=~0x04 & 0x0f ;P0=buf[2];delay_1ms(4);
P3=~0x08 & 0x0f ;P0=buf[3];delay_1ms(4);
break;
case 7:
P2=seg7[7];P1=0xff;P0=0xff;
break;
case 8:
P2=seg7[8];P1=0xff;P0=0xff;
break;
case 9:
P2=seg7[9];P1=0xff;P0=0xff;
break;
}
}
}
char seg7[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
char left_move[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
char left_add[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};
char righ_add[]={0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};
char seg2020[]={0xb0,0xc0,0xb0,0xc0};
char seg0704[]={0xc0,0xf8,0xc0,0x92};
char buf[]={0xc0,0xc0,0xc0,0xc0};
char scanline=0x01;
sbit led0=P3^0;
sbit led1=P3^1;
sbit led2=P3^2;
sbit led3=P3^3;
sbit btn1=P3^4;
sbit btn2=P3^5;
int Mode=0;
int i,j,x=0;
void delay_1ms(int k)
{
int i,j;
for(i=0;i<k;i++)
for(j=0;j<114;j++)
;
}
void init()
{
int i;
for(i=0;i<2;i++)
{
P1=0X00;delay_1ms(1000);
P2=0X00;delay_1ms(1000);
led0=0;led1=0;led2=0;led3=0;P0=0x00;delay_1ms(1000);
P1=0XFF;delay_1ms(1000);
P2=0XFF;delay_1ms(1000);
led0=1;led1=1;led2=1;led3=1;P0=0xFF;delay_1ms(1000);
}
P2=seg7[0];
}
main()
{
init();
while(1)
{
while(btn1==0) //開關按下
{
delay_1ms(10);
if(btn1==1) //開關放開
{
delay_1ms(10);
Mode=Mode+1;
if(Mode>9)
Mode=0;
}
}
while(btn2==0)
{
delay_1ms(10);
if(btn2==1)
{
delay_1ms(10);
Mode=Mode-1;
if(Mode < 0)
Mode=9;
}
}
switch(Mode)
{
case 0:
P2=seg7[0];P1=0xff;P0=0xff;
break;
case 1:
P2=seg7[1];delay_1ms(20);
P1=0x00;delay_1ms(500);
P1=0xff;delay_1ms(500);
break;
case 2:
P2=seg7[2];
for(i=0;i<8;i++)
{
P1=~left_move[i];delay_1ms(500);
}
break;
case 3:
P2=seg7[3];
for(i=7;i>=0;i--)
{
P1=~left_move[i];delay_1ms(500);
}
break;
case 4:
P2=seg7[4];
for(i=0;i<8;i++)
{
P1=~left_add[i];delay_1ms(500);
}
break;
case 5:
P2=seg7[5];
for(i=0;i<8;i++)
{
P1=~righ_add[i];delay_1ms(500);
}
break;
case 6:
P2=seg7[6];
P3=~0x01 & 0x0f ;P0=buf[0];delay_1ms(4);
P3=~0x02 & 0x0f ;P0=buf[1];delay_1ms(4);
P3=~0x04 & 0x0f ;P0=buf[2];delay_1ms(4);
P3=~0x08 & 0x0f ;P0=buf[3];delay_1ms(4);
break;
case 7:
P2=seg7[7];P1=0xff;P0=0xff;
break;
case 8:
P2=seg7[8];P1=0xff;P0=0xff;
break;
case 9:
P2=seg7[9];P1=0xff;P0=0xff;
break;
}
}
}
心得
scanline是低四位元 &0x0f要保留低四位元, 最外圍100次才會出來(離開)
跑完才能按下一輪,其實用中斷,用bit即可名稱自已訂
跑完才能按下一輪,其實用中斷,用bit即可名稱自已訂
flag if x=1放什麼 x=2
if x=2放什麼x=1
不求什麼,努力的耕耘
2020年6月27日 星期六
107
#include <at89x52.h>
char seg7[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
char left_move[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
char left_add[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};
char righ_add[]={0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};
sbit led0=P3^0;
sbit led1=P3^1;
sbit led2=P3^2;
sbit led3=P3^3;
sbit btn1=P3^4;
sbit btn2=P3^5;
int k=0;
void delay_1ms(int k)
{
int i,j;
for(i=0;i<k;i++)
for(j=0;j<114;j++)
;
}
void init()
{
int i;
for(i=0;i<2;i++)
{
P1=0X00;delay_1ms(1000);
P2=0X00;delay_1ms(1000);
led0=0;led1=0;led2=0;led3=0;P0=0x00;delay_1ms(1000);
P1=0XFF;delay_1ms(1000);
P2=0XFF;delay_1ms(1000);
led0=1;led1=1;led2=1;led3=1;P0=0xFF;delay_1ms(1000);
}
P2=seg7[0];
}
main()
{
init();
while(1)
{
if(btn1==0)
{
delay_1ms(20);while(btn1!=1);delay_1ms(20);
k=k+1;
if(k>9)k=0;
}
if(btn2==0)
{
delay_1ms(20);while(btn2!=1);delay_1ms(20);
k=k-1;
if(k<0)k=9;
}
if(k==1)
{
P2=seg7[1];delay_1ms(20);
P1=0x00;delay_1ms(500);
P1=0xff;delay_1ms(500);
}
if(k==2)
{
int i;
P2=seg7[2];delay_1ms(20);
for(i=0;i<8;i++)
{
P1=~left_move[i];delay_1ms(500);
}
}
if(k==3)
{
int i;
P2=seg7[3];delay_1ms(20);
for(i=7;i>=0;i--)
{
P1=~left_move[i];delay_1ms(500);
}
}
if(k==4)
{
int i;
P2=seg7[4];delay_1ms(20);
for(i=0;i<8;i++)
{
P1=~left_add[i];delay_1ms(500);
}
}
if(k==5)
{
int i;
P2=seg7[5];delay_1ms(20);
for(i=0;i<8;i++)
{
P1=~righ_add[i];delay_1ms(500);
}
}
if(k==6)
{
// int i,j;
P2=seg7[6];delay_1ms(20);
// for(i=0;i<100;i++)
// {
// for(j=0;j<50;j++)
// {
// led0=0;led1=1;led2=1;led3=1;P0=seg7[9];delay_1ms(4);
// led0=1;led1=0;led2=1;led3=1;P0=seg7[1];delay_1ms(4);
// led0=1;led1=1;led2=0;led3=1;P0=seg7[0];delay_1ms(4);
// led0=1;led1=1;led2=1;led3=0;P0=seg7[2];delay_1ms(4);
// led0=1;
// led1=1;
// led2=1;
// led3=1;
// P0=0xFF;
// led0=0;led1=1;led2=1;led3=1;P0=seg7[4];delay_1ms(2);
// led0=1;led1=0;led2=1;led3=1;P0=seg7[0];delay_1ms(2);
// led0=1;led1=1;led2=0;led3=1;P0=seg7[7];delay_1ms(2);
// led0=1;led1=1;led2=1;led3=0;P0=seg7[0];delay_1ms(2);
//// }
// }
}
if(k==0)
{
P2=seg7[0];delay_1ms(20);P1=0xff;P0=0xff;
}
if(k==7)
{
P2=seg7[7];delay_1ms(20);P1=0xff;P0=0xff;
}
if(k==8)
{
P2=seg7[8];delay_1ms(20);P1=0xff;P0=0xff;
}
if(k==9)
{
P2=seg7[9];delay_1ms(20);P1=0xff;P0=0xff;
}
}
}
char seg7[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
char left_move[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
char left_add[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};
char righ_add[]={0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};
sbit led0=P3^0;
sbit led1=P3^1;
sbit led2=P3^2;
sbit led3=P3^3;
sbit btn1=P3^4;
sbit btn2=P3^5;
int k=0;
void delay_1ms(int k)
{
int i,j;
for(i=0;i<k;i++)
for(j=0;j<114;j++)
;
}
void init()
{
int i;
for(i=0;i<2;i++)
{
P1=0X00;delay_1ms(1000);
P2=0X00;delay_1ms(1000);
led0=0;led1=0;led2=0;led3=0;P0=0x00;delay_1ms(1000);
P1=0XFF;delay_1ms(1000);
P2=0XFF;delay_1ms(1000);
led0=1;led1=1;led2=1;led3=1;P0=0xFF;delay_1ms(1000);
}
P2=seg7[0];
}
main()
{
init();
while(1)
{
if(btn1==0)
{
delay_1ms(20);while(btn1!=1);delay_1ms(20);
k=k+1;
if(k>9)k=0;
}
if(btn2==0)
{
delay_1ms(20);while(btn2!=1);delay_1ms(20);
k=k-1;
if(k<0)k=9;
}
if(k==1)
{
P2=seg7[1];delay_1ms(20);
P1=0x00;delay_1ms(500);
P1=0xff;delay_1ms(500);
}
if(k==2)
{
int i;
P2=seg7[2];delay_1ms(20);
for(i=0;i<8;i++)
{
P1=~left_move[i];delay_1ms(500);
}
}
if(k==3)
{
int i;
P2=seg7[3];delay_1ms(20);
for(i=7;i>=0;i--)
{
P1=~left_move[i];delay_1ms(500);
}
}
if(k==4)
{
int i;
P2=seg7[4];delay_1ms(20);
for(i=0;i<8;i++)
{
P1=~left_add[i];delay_1ms(500);
}
}
if(k==5)
{
int i;
P2=seg7[5];delay_1ms(20);
for(i=0;i<8;i++)
{
P1=~righ_add[i];delay_1ms(500);
}
}
if(k==6)
{
// int i,j;
P2=seg7[6];delay_1ms(20);
// for(i=0;i<100;i++)
// {
// for(j=0;j<50;j++)
// {
// led0=0;led1=1;led2=1;led3=1;P0=seg7[9];delay_1ms(4);
// led0=1;led1=0;led2=1;led3=1;P0=seg7[1];delay_1ms(4);
// led0=1;led1=1;led2=0;led3=1;P0=seg7[0];delay_1ms(4);
// led0=1;led1=1;led2=1;led3=0;P0=seg7[2];delay_1ms(4);
// led0=1;
// led1=1;
// led2=1;
// led3=1;
// P0=0xFF;
// led0=0;led1=1;led2=1;led3=1;P0=seg7[4];delay_1ms(2);
// led0=1;led1=0;led2=1;led3=1;P0=seg7[0];delay_1ms(2);
// led0=1;led1=1;led2=0;led3=1;P0=seg7[7];delay_1ms(2);
// led0=1;led1=1;led2=1;led3=0;P0=seg7[0];delay_1ms(2);
//// }
// }
}
if(k==0)
{
P2=seg7[0];delay_1ms(20);P1=0xff;P0=0xff;
}
if(k==7)
{
P2=seg7[7];delay_1ms(20);P1=0xff;P0=0xff;
}
if(k==8)
{
P2=seg7[8];delay_1ms(20);P1=0xff;P0=0xff;
}
if(k==9)
{
P2=seg7[9];delay_1ms(20);P1=0xff;P0=0xff;
}
}
}
107
#include <at89x52.h>
char seg7[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
char left_move[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
char left_add[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};
char righ_add[]={0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};
sbit led0=P3^0;
sbit led1=P3^1;
sbit led2=P3^2;
sbit led3=P3^3;
sbit btn1=P3^4;
sbit btn2=P3^5;
int k=0;
void delay_1ms(int k)
{
int i,j;
for(i=0;i<k;i++)
for(j=0;j<114;j++)
;
}
void init()
{
int i;
for(i=0;i<2;i++)
{
P1=0X00;delay_1ms(1000);
P2=0X00;delay_1ms(1000);
led0=0;led1=0;led2=0;led3=0;P0=0x00;delay_1ms(1000);
P1=0XFF;delay_1ms(1000);
P2=0XFF;delay_1ms(1000);
led0=1;led1=1;led2=1;led3=1;P0=0xFF;delay_1ms(1000);
}
P2=seg7[0];
}
main()
{
init();
while(1)
{
if(btn1==0)
{
delay_1ms(20);while(btn1!=1);delay_1ms(20);
k=k+1;
if(k>9)k=0;
}
if(btn2==0)
{
delay_1ms(20);while(btn2!=1);delay_1ms(20);
k=k-1;
if(k<0)k=9;
}
if(k==1)
{
P2=seg7[1];delay_1ms(20);
P1=0x00;delay_1ms(500);
P1=0xff;delay_1ms(500);
}
if(k==2)
{
int i;
P2=seg7[2];delay_1ms(20);
for(i=0;i<8;i++)
{
P1=~left_move[i];delay_1ms(500);
}
}
if(k==3)
{
int i;
P2=seg7[3];delay_1ms(20);
for(i=7;i>=0;i--)
{
P1=~left_move[i];delay_1ms(500);
}
}
if(k==4)
{
int i;
P2=seg7[4];delay_1ms(20);
for(i=0;i<8;i++)
{
P1=~left_add[i];delay_1ms(500);
}
}
if(k==5)
{
int i;
P2=seg7[5];delay_1ms(20);
for(i=0;i<8;i++)
{
P1=~righ_add[i];delay_1ms(500);
}
}
}
}
char seg7[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
char left_move[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
char left_add[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};
char righ_add[]={0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};
sbit led0=P3^0;
sbit led1=P3^1;
sbit led2=P3^2;
sbit led3=P3^3;
sbit btn1=P3^4;
sbit btn2=P3^5;
int k=0;
void delay_1ms(int k)
{
int i,j;
for(i=0;i<k;i++)
for(j=0;j<114;j++)
;
}
void init()
{
int i;
for(i=0;i<2;i++)
{
P1=0X00;delay_1ms(1000);
P2=0X00;delay_1ms(1000);
led0=0;led1=0;led2=0;led3=0;P0=0x00;delay_1ms(1000);
P1=0XFF;delay_1ms(1000);
P2=0XFF;delay_1ms(1000);
led0=1;led1=1;led2=1;led3=1;P0=0xFF;delay_1ms(1000);
}
P2=seg7[0];
}
main()
{
init();
while(1)
{
if(btn1==0)
{
delay_1ms(20);while(btn1!=1);delay_1ms(20);
k=k+1;
if(k>9)k=0;
}
if(btn2==0)
{
delay_1ms(20);while(btn2!=1);delay_1ms(20);
k=k-1;
if(k<0)k=9;
}
if(k==1)
{
P2=seg7[1];delay_1ms(20);
P1=0x00;delay_1ms(500);
P1=0xff;delay_1ms(500);
}
if(k==2)
{
int i;
P2=seg7[2];delay_1ms(20);
for(i=0;i<8;i++)
{
P1=~left_move[i];delay_1ms(500);
}
}
if(k==3)
{
int i;
P2=seg7[3];delay_1ms(20);
for(i=7;i>=0;i--)
{
P1=~left_move[i];delay_1ms(500);
}
}
if(k==4)
{
int i;
P2=seg7[4];delay_1ms(20);
for(i=0;i<8;i++)
{
P1=~left_add[i];delay_1ms(500);
}
}
if(k==5)
{
int i;
P2=seg7[5];delay_1ms(20);
for(i=0;i<8;i++)
{
P1=~righ_add[i];delay_1ms(500);
}
}
}
}
test
#include <at89x52.h>
char seg7[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
sbit led0=P3^0;
sbit led1=P3^1;
sbit led2=P3^2;
sbit led3=P3^3;
sbit btn1=P3^4;
sbit btn2=P3^5;
int k=0;
void delay_1ms(int k)
{
int i,j;
for(i=0;i<k;i++)
for(j=0;j<114;j++)
;
}
void init()
{
int i;
for(i=0;i<2;i++)
{
P1=0X00;delay_1ms(1000);
P2=0X00;delay_1ms(1000);
led0=0;led1=0;led2=0;led3=0;P0=0x00;delay_1ms(1000);
P1=0XFF;delay_1ms(1000);
P2=0XFF;delay_1ms(1000);
led0=1;led1=1;led2=1;led3=1;P0=0xFF;delay_1ms(1000);
}
P2=seg7[0];
}
main()
{
init();
while(1)
{
if(btn1==0)
{
delay_1ms(20);while(btn1!=1);delay_1ms(20);
k=k+1;
if(k>9)k=0;
P2=seg7[k];delay_1ms(20);
}
if(btn2==0)
{
delay_1ms(20);while(btn2!=1);delay_1ms(20);
k=k-1;
if(k<0)k=9;
P2=seg7[k];delay_1ms(20);
}
}
}
char seg7[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
sbit led0=P3^0;
sbit led1=P3^1;
sbit led2=P3^2;
sbit led3=P3^3;
sbit btn1=P3^4;
sbit btn2=P3^5;
int k=0;
void delay_1ms(int k)
{
int i,j;
for(i=0;i<k;i++)
for(j=0;j<114;j++)
;
}
void init()
{
int i;
for(i=0;i<2;i++)
{
P1=0X00;delay_1ms(1000);
P2=0X00;delay_1ms(1000);
led0=0;led1=0;led2=0;led3=0;P0=0x00;delay_1ms(1000);
P1=0XFF;delay_1ms(1000);
P2=0XFF;delay_1ms(1000);
led0=1;led1=1;led2=1;led3=1;P0=0xFF;delay_1ms(1000);
}
P2=seg7[0];
}
main()
{
init();
while(1)
{
if(btn1==0)
{
delay_1ms(20);while(btn1!=1);delay_1ms(20);
k=k+1;
if(k>9)k=0;
P2=seg7[k];delay_1ms(20);
}
if(btn2==0)
{
delay_1ms(20);while(btn2!=1);delay_1ms(20);
k=k-1;
if(k<0)k=9;
P2=seg7[k];delay_1ms(20);
}
}
}
2020年6月26日 星期五
test
#include <at89x52.h>
char table[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
char table1[]={0x81,0x42,0x24,0x18,0x24,0x42};
sbit btn1=P2^0;
sbit btn2=P2^1;
sbit dip_sw1=P0^0;
int k=-1;
void delay_1ms(int k)
{
int i,j;
for(i=0;i<k;i++)
for(j=0;j<114;j++)
;
}
void ex0_int(void) interrupt 1
{
int i;
P1=0xFF;
for(i=0;i<10;i++)
{
P1=P1^0xFF;
delay_1ms(500);
}
}
main()
{
IE=0x81;
TCON=0x01;
while(1)
{
if(btn1==0)
{
delay_1ms(20);while(btn1!=1);delay_1ms(20);
k=k+1;
if(k>7)
k=0;
}
if(btn2==0)
{
delay_1ms(20);while(btn2!=1);delay_1ms(20);
k=k-1;
if(k<0)
k=7;
}
if(dip_sw1==0)
{
int i;
delay_1ms(20);while(dip_sw1==1);delay_1ms(20);
for(i=0;i<6;i++)
{
P1=~table1[i];delay_1ms(1000);
}
}
if(k==0){P1=~table[k];}
if(k==1){P1=~table[k];}
if(k==2){P1=~table[k];}
if(k==3){P1=~table[k];}
if(k==4){P1=~table[k];}
if(k==5){P1=~table[k];}
if(k==6){P1=~table[k];}
if(k==7){P1=~table[k];}
}
}
char table[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
char table1[]={0x81,0x42,0x24,0x18,0x24,0x42};
sbit btn1=P2^0;
sbit btn2=P2^1;
sbit dip_sw1=P0^0;
int k=-1;
void delay_1ms(int k)
{
int i,j;
for(i=0;i<k;i++)
for(j=0;j<114;j++)
;
}
void ex0_int(void) interrupt 1
{
int i;
P1=0xFF;
for(i=0;i<10;i++)
{
P1=P1^0xFF;
delay_1ms(500);
}
}
main()
{
IE=0x81;
TCON=0x01;
while(1)
{
if(btn1==0)
{
delay_1ms(20);while(btn1!=1);delay_1ms(20);
k=k+1;
if(k>7)
k=0;
}
if(btn2==0)
{
delay_1ms(20);while(btn2!=1);delay_1ms(20);
k=k-1;
if(k<0)
k=7;
}
if(dip_sw1==0)
{
int i;
delay_1ms(20);while(dip_sw1==1);delay_1ms(20);
for(i=0;i<6;i++)
{
P1=~table1[i];delay_1ms(1000);
}
}
if(k==0){P1=~table[k];}
if(k==1){P1=~table[k];}
if(k==2){P1=~table[k];}
if(k==3){P1=~table[k];}
if(k==4){P1=~table[k];}
if(k==5){P1=~table[k];}
if(k==6){P1=~table[k];}
if(k==7){P1=~table[k];}
}
}
心得
一、1hr 800元思考方向,訓練8051寫程式,出現題目腦袋如何想,動腦袋。
二、teamview line畫面OK
三、丟一個程式叫您寫,軟體,從最基本東西,看到題目去做判斷題目
四、考上的人:下午四、五點開始練到十點,含星期六也在練
每一個星期空一天來練習
1.俊谷高手:腳步練,題目、學科整套都有
2.timer是基本的
3.準備一台筆電,隨時隨地訓練
五、同步就JK 亂數654321下數
六、除60時鐘
七、到數計時7490反接
八、內湖只考Arduino提前一年準備,有時臨時改arm
二、teamview line畫面OK
三、丟一個程式叫您寫,軟體,從最基本東西,看到題目去做判斷題目
四、考上的人:下午四、五點開始練到十點,含星期六也在練
每一個星期空一天來練習
1.俊谷高手:腳步練,題目、學科整套都有
2.timer是基本的
3.準備一台筆電,隨時隨地訓練
五、同步就JK 亂數654321下數
六、除60時鐘
七、到數計時7490反接
八、內湖只考Arduino提前一年準備,有時臨時改arm
btn1 btn2 led左右移
#include <at89x52.h>
char table[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
sbit btn1=P2^0;
sbit btn2=P2^1;
int k=-1;
void delay_1ms(int k)
{
int i,j;
for(i=0;i<k;i++)
for(j=0;j<114;j++)
;
}
main()
{
while(1)
{
if(btn1==0)
{
delay_1ms(20);while(btn1!=1);delay_1ms(20);
k=k+1;
if(k>7)
k=0;
}
if(btn2==0)
{
delay_1ms(20);while(btn2!=1);delay_1ms(20);
k=k-1;
if(k<0)
k=7;
}
if(k==0){P1=~table[k];}
if(k==1){P1=~table[k];}
if(k==2){P1=~table[k];}
if(k==3){P1=~table[k];}
if(k==4){P1=~table[k];}
if(k==5){P1=~table[k];}
if(k==6){P1=~table[k];}
if(k==7){P1=~table[k];}
}
}
char table[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
sbit btn1=P2^0;
sbit btn2=P2^1;
int k=-1;
void delay_1ms(int k)
{
int i,j;
for(i=0;i<k;i++)
for(j=0;j<114;j++)
;
}
main()
{
while(1)
{
if(btn1==0)
{
delay_1ms(20);while(btn1!=1);delay_1ms(20);
k=k+1;
if(k>7)
k=0;
}
if(btn2==0)
{
delay_1ms(20);while(btn2!=1);delay_1ms(20);
k=k-1;
if(k<0)
k=7;
}
if(k==0){P1=~table[k];}
if(k==1){P1=~table[k];}
if(k==2){P1=~table[k];}
if(k==3){P1=~table[k];}
if(k==4){P1=~table[k];}
if(k==5){P1=~table[k];}
if(k==6){P1=~table[k];}
if(k==7){P1=~table[k];}
}
}
注意事項
1.8051線路設計,外接接上,硬體線路Hi Low,輸出7段、四段如何接,設定兩小時外接,基 本分數
2.線路接好,寫程式
結論:硬體線路簡單再使用,比較習慣用P1、P0、scan掃瞄埠、按鈕
3.反查用名字反查ip)
4.測試設定好,mail無法做寄信
5.練習數位邏輯24小時24模
2.線路接好,寫程式
結論:硬體線路簡單再使用,比較習慣用P1、P0、scan掃瞄埠、按鈕
3.反查用名字反查ip)
4.測試設定好,mail無法做寄信
5.練習數位邏輯24小時24模
2020年6月25日 星期四
4X4
#include <at89x52.h>
char table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
char bdata flag;
sbit up_flag=flag^0;
sbit down_flag=flag^1;
sbit stop_flag=flag^2;
int time=10;
int disp_add;
void delay_1ms(int k)
{
int i,j;
for(i=0;i<k;i++)
for(j=0;j<114;j++)
;
}
main()
{
IE=0x82;
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
while(1)
{
P2=0x7f;
if(P2_3==0) {flag=0;P0=table[1];disp_add=1;delay_1ms(20);while(P2_3!=1);delay_1ms(20);}
if(P2_2==0){flag=0;P0=table[4];disp_add=4;delay_1ms(20);while(P2_2!=1);delay_1ms(20);}
if(P2_1==0){flag=0;P0=table[7];disp_add=7;delay_1ms(20);while(P2_1!=1);delay_1ms(20);}
P2=0xbf;
if(P2_3==0){flag=0;P0=table[2];disp_add=2;delay_1ms(20);while(P2_3!=1);delay_1ms(20);}
if(P2_2==0){flag=0;P0=table[5];disp_add=5;delay_1ms(20);while(P2_2!=1);delay_1ms(20);}
if(P2_1==0){flag=0;P0=table[8];disp_add=8;delay_1ms(20);while(P2_1!=1);delay_1ms(20);}
if(P2_0==0){flag=0;P0=table[0];disp_add=0;delay_1ms(20);while(P2_0!=1);delay_1ms(20);}
P2=0xdf;
if(P2_3==0){flag=0;P0=table[3];disp_add=3;delay_1ms(20);while(P2_3!=1);delay_1ms(20);}
if(P2_2==0){flag=0;P0=table[6];disp_add=6;delay_1ms(20);while(P2_2!=1);delay_1ms(20);}
if(P2_1==0){flag=0;P0=table[9];disp_add=9;delay_1ms(20);while(P2_1!=1);delay_1ms(20);}
if(P2_0==0){flag=0;P0=table[0];disp_add=0;delay_1ms(20);while(P2_0!=1);delay_1ms(20);}
P2=0xef;
if(P2_3==0){flag=0;up_flag=1;delay_1ms(20);while(P2_3!=1);delay_1ms(20);}
if(P2_2==0){flag=0;down_flag=1;delay_1ms(20);while(P2_2!=1);delay_1ms(20);}
if(P2_1==0){flag=0;stop_flag=1;delay_1ms(20);while(P2_1!=1);delay_1ms(20);}
if(P2_0==0){flag=0;stop_flag=0;delay_1ms(20);while(P2_0!=1);delay_1ms(20);}
}
}
void t0_int(void) interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
time--;
if(time==0)
{
time=10;
if(stop_flag==1)
{
;
}
else if(up_flag==1)
{
disp_add++;
if(disp_add>9)disp_add=0;
}
else if(down_flag==1)
{
disp_add--;
if(disp_add<0)
disp_add=9;
}
P0=table[disp_add];delay_1ms(500);
}
}
char table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
char bdata flag;
sbit up_flag=flag^0;
sbit down_flag=flag^1;
sbit stop_flag=flag^2;
int time=10;
int disp_add;
void delay_1ms(int k)
{
int i,j;
for(i=0;i<k;i++)
for(j=0;j<114;j++)
;
}
main()
{
IE=0x82;
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
while(1)
{
P2=0x7f;
if(P2_3==0) {flag=0;P0=table[1];disp_add=1;delay_1ms(20);while(P2_3!=1);delay_1ms(20);}
if(P2_2==0){flag=0;P0=table[4];disp_add=4;delay_1ms(20);while(P2_2!=1);delay_1ms(20);}
if(P2_1==0){flag=0;P0=table[7];disp_add=7;delay_1ms(20);while(P2_1!=1);delay_1ms(20);}
P2=0xbf;
if(P2_3==0){flag=0;P0=table[2];disp_add=2;delay_1ms(20);while(P2_3!=1);delay_1ms(20);}
if(P2_2==0){flag=0;P0=table[5];disp_add=5;delay_1ms(20);while(P2_2!=1);delay_1ms(20);}
if(P2_1==0){flag=0;P0=table[8];disp_add=8;delay_1ms(20);while(P2_1!=1);delay_1ms(20);}
if(P2_0==0){flag=0;P0=table[0];disp_add=0;delay_1ms(20);while(P2_0!=1);delay_1ms(20);}
P2=0xdf;
if(P2_3==0){flag=0;P0=table[3];disp_add=3;delay_1ms(20);while(P2_3!=1);delay_1ms(20);}
if(P2_2==0){flag=0;P0=table[6];disp_add=6;delay_1ms(20);while(P2_2!=1);delay_1ms(20);}
if(P2_1==0){flag=0;P0=table[9];disp_add=9;delay_1ms(20);while(P2_1!=1);delay_1ms(20);}
if(P2_0==0){flag=0;P0=table[0];disp_add=0;delay_1ms(20);while(P2_0!=1);delay_1ms(20);}
P2=0xef;
if(P2_3==0){flag=0;up_flag=1;delay_1ms(20);while(P2_3!=1);delay_1ms(20);}
if(P2_2==0){flag=0;down_flag=1;delay_1ms(20);while(P2_2!=1);delay_1ms(20);}
if(P2_1==0){flag=0;stop_flag=1;delay_1ms(20);while(P2_1!=1);delay_1ms(20);}
if(P2_0==0){flag=0;stop_flag=0;delay_1ms(20);while(P2_0!=1);delay_1ms(20);}
}
}
void t0_int(void) interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
time--;
if(time==0)
{
time=10;
if(stop_flag==1)
{
;
}
else if(up_flag==1)
{
disp_add++;
if(disp_add>9)disp_add=0;
}
else if(down_flag==1)
{
disp_add--;
if(disp_add<0)
disp_add=9;
}
P0=table[disp_add];delay_1ms(500);
}
}
4x4
char ptn_table[]={0Xc0,0Xf9,0Xa4,0Xb0,0X99,0X92,0X82,0Xf8,0X80,0X90};
char time=10;
char disp_no;
char bdata flag;
sbit up_flag=flag^0;
sbit down_flag=flag^1;
sbit stop_flag=flag^2;
void delay_1ms(int k)
{
unsigned int i,j;
for (i=0;i<=k;i++)
for (j=0;j<=110;j++);
}
void T0_INT(void) interrupt 1
{
TL0=(65536-50000)%256;
TH0=(65536-50000)/256;
time--;
if(time==0)
{
time=10;
if(stop_flag){}
else if(up_flag)
{
disp_no++;
if(disp_no>9)
{
disp_no=0;
}
P0=ptn_table[disp_no];
delay_1ms(500);
}
else if(down_flag)
{
disp_no--;
if(disp_no<0)
{
disp_no=9;
}
P0=ptn_table[disp_no];
delay_1ms(500);
}
}
}
void main()
{
IE=0x82;
TMOD=0X01; //T0 MODE 1
TL0=(65536-50000)%256;
TH0=(65536-50000)/256;
TR0=1;
P0=0xff;
while(1)
{
P2=0x7f;
if(P2_3==0){flag=0;P0=0xf9;disp_no=0;delay_1ms(20);while(P2_3!=1);delay_1ms(20);}//1
if(P2_2==0){flag=0;P0=0x99;disp_no=4;delay_1ms(20);while(P2_2!=1);delay_1ms(20);}//4
if(P2_1==0){flag=0;P0=0xf8;disp_no=7;delay_1ms(20);while(P2_1!=1);delay_1ms(20);}//7
if(P2_0==0){flag=0;P0=0xb0;disp_no=14;delay_1ms(20);while(P2_0!=1);delay_1ms(20);}//14
P2=0xbf;
if(P2_3==0){flag=0;P0=0xa4;disp_no=2;delay_1ms(20);while(P2_3!=1);delay_1ms(20);}//2
if(P2_2==0){flag=0;P0=0X92;disp_no=5;delay_1ms(20);while(P2_2!=1);delay_1ms(20);}//5
if(P2_1==0){flag=0;P0=0x80;disp_no=8;delay_1ms(20);while(P2_1!=1);delay_1ms(20);}//8
if(P2_0==0){flag=0;P0=0xc0;disp_no=0;delay_1ms(20);while(P2_0!=1);delay_1ms(20);}//0
P2=0xdf;
if(P2_3==0){flag=0;P0=0xb0;disp_no=3;delay_1ms(20);while(P2_3!=1);delay_1ms(20);}//3
if(P2_2==0){flag=0;P0=0X82;disp_no=6;delay_1ms(20);while(P2_2!=1);delay_1ms(20);}//6
if(P2_1==0){flag=0;P0=0x90;disp_no=9;delay_1ms(20);while(P2_1!=1);delay_1ms(20);}//9
P2=0xef;
if(P2_3==0){flag=0;up_flag=1;delay_1ms(20);while(P2_3!=1);delay_1ms(20);}//a
if(P2_2==0){flag=0;down_flag=1;while(P2_2!=1);delay_1ms(20);}//b
if(P2_1==0){stop_flag=0;delay_1ms(20);while(P2_1!=1);delay_1ms(20);}//c
if(P2_0==0){stop_flag=1;delay_1ms(20);while(P2_0!=1);delay_1ms(20);}//d
}
}
4X4
#include <at89x52.h>
char ptn_table[]={0Xc0,0Xf9,0Xa4,0Xb0,0X99,0X92,0X82,0Xf8,0X80,0X90};
char time=10;
char disp_no;
char bdata flag;
sbit up_flag=flag^0;
sbit down_flag=flag^1;
sbit stop_flag=flag^2;
void delay_1ms(int k)
{
unsigned int i,j;
for (i=0;i<=k;i++)
for (j=0;j<=110;j++);
}
void keyup()
{
delay_1ms(300);
while((P2|0xf0)!=0xff);
delay_1ms(300);
}
void T0_INT(void) interrupt 1
{
TL0=(65536-50000)%256;
TH0=(65536-50000)/256;
time--;
if(time==0)
{
time=10;
if(stop_flag){}
else if(up_flag)
{
disp_no++;
if(disp_no>9)
{
disp_no=0;
}
P0=ptn_table[disp_no];
delay_1ms(500);
}
else if(down_flag)
{
disp_no--;
if(disp_no<0)
{
disp_no=9;
}
P0=ptn_table[disp_no];
delay_1ms(500);
}
}
}
void main()
{
IE=0x82;
TMOD=0X01; //T0 MODE 1
TL0=(65536-50000)%256;
TH0=(65536-50000)/256;
TR0=1;
P0=0xff;
while(1)
{
P2=0x7f;
if(P2_3==0){flag=0;P0=0xf9;disp_no=0;keyup();}//1
if(P2_2==0){flag=0;P0=0x99;disp_no=4;keyup();}//4
if(P2_1==0){flag=0;P0=0xf8;disp_no=7;keyup();}//7
if(P2_0==0){flag=0;P0=0xb0;disp_no=14;keyup();}//14
P2=0xbf;
if(P2_3==0){flag=0;P0=0xa4;disp_no=2;keyup();}//2
if(P2_2==0){flag=0;P0=0X92;disp_no=5;keyup();}//5
if(P2_1==0){flag=0;P0=0x80;disp_no=8;keyup();}//8
if(P2_0==0){flag=0;P0=0xc0;disp_no=0;keyup();}//0
P2=0xdf;
if(P2_3==0){flag=0;P0=0xb0;disp_no=3;keyup();}//3
if(P2_2==0){flag=0;P0=0X82;disp_no=6;keyup();}//6
if(P2_1==0){flag=0;P0=0x90;disp_no=9;keyup();}//9
P2=0xef;
if(P2_3==0){flag=0;up_flag=1;keyup();}//a
if(P2_2==0){flag=0;down_flag=1;keyup();}//b
if(P2_1==0){keyup();stop_flag=0;}//c繼續上數或下數
if(P2_0==0){keyup();stop_flag=1;}//d暫停
}
}
char ptn_table[]={0Xc0,0Xf9,0Xa4,0Xb0,0X99,0X92,0X82,0Xf8,0X80,0X90};
char time=10;
char disp_no;
char bdata flag;
sbit up_flag=flag^0;
sbit down_flag=flag^1;
sbit stop_flag=flag^2;
void delay_1ms(int k)
{
unsigned int i,j;
for (i=0;i<=k;i++)
for (j=0;j<=110;j++);
}
void keyup()
{
delay_1ms(300);
while((P2|0xf0)!=0xff);
delay_1ms(300);
}
void T0_INT(void) interrupt 1
{
TL0=(65536-50000)%256;
TH0=(65536-50000)/256;
time--;
if(time==0)
{
time=10;
if(stop_flag){}
else if(up_flag)
{
disp_no++;
if(disp_no>9)
{
disp_no=0;
}
P0=ptn_table[disp_no];
delay_1ms(500);
}
else if(down_flag)
{
disp_no--;
if(disp_no<0)
{
disp_no=9;
}
P0=ptn_table[disp_no];
delay_1ms(500);
}
}
}
void main()
{
IE=0x82;
TMOD=0X01; //T0 MODE 1
TL0=(65536-50000)%256;
TH0=(65536-50000)/256;
TR0=1;
P0=0xff;
while(1)
{
P2=0x7f;
if(P2_3==0){flag=0;P0=0xf9;disp_no=0;keyup();}//1
if(P2_2==0){flag=0;P0=0x99;disp_no=4;keyup();}//4
if(P2_1==0){flag=0;P0=0xf8;disp_no=7;keyup();}//7
if(P2_0==0){flag=0;P0=0xb0;disp_no=14;keyup();}//14
P2=0xbf;
if(P2_3==0){flag=0;P0=0xa4;disp_no=2;keyup();}//2
if(P2_2==0){flag=0;P0=0X92;disp_no=5;keyup();}//5
if(P2_1==0){flag=0;P0=0x80;disp_no=8;keyup();}//8
if(P2_0==0){flag=0;P0=0xc0;disp_no=0;keyup();}//0
P2=0xdf;
if(P2_3==0){flag=0;P0=0xb0;disp_no=3;keyup();}//3
if(P2_2==0){flag=0;P0=0X82;disp_no=6;keyup();}//6
if(P2_1==0){flag=0;P0=0x90;disp_no=9;keyup();}//9
P2=0xef;
if(P2_3==0){flag=0;up_flag=1;keyup();}//a
if(P2_2==0){flag=0;down_flag=1;keyup();}//b
if(P2_1==0){keyup();stop_flag=0;}//c繼續上數或下數
if(P2_0==0){keyup();stop_flag=1;}//d暫停
}
}
4X4
#include <reg51.h>
char table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0x80,0x90,0xa0,0x83,0xa7,0xa1,0x84,0x8e};
void main()
{
char scanline;
char displaydata=0xff;
char key;
int col;
P0=0xff;
while(1)
{
scanline=0x01;
for(col=0;col<4;col++)
{
P2=~scanline;
if((P2&0xf0)!=0xf0)
{
key=~(P2&0xf0)>>4;
switch(key)
{
case 0x01:displaydata=col*4+0;break;
case 0x02:displaydata=col*4+1;break;
case 0x04:displaydata=col*4+2;break;
case 0x08:displaydata=col*4+3;break;
}
}
if(displaydata!=0xff)
P0=table[displaydata];
scanline=scanline<<1;
}
}
}
char table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0x80,0x90,0xa0,0x83,0xa7,0xa1,0x84,0x8e};
void main()
{
char scanline;
char displaydata=0xff;
char key;
int col;
P0=0xff;
while(1)
{
scanline=0x01;
for(col=0;col<4;col++)
{
P2=~scanline;
if((P2&0xf0)!=0xf0)
{
key=~(P2&0xf0)>>4;
switch(key)
{
case 0x01:displaydata=col*4+0;break;
case 0x02:displaydata=col*4+1;break;
case 0x04:displaydata=col*4+2;break;
case 0x08:displaydata=col*4+3;break;
}
}
if(displaydata!=0xff)
P0=table[displaydata];
scanline=scanline<<1;
}
}
}
2020年6月22日 星期一
2020年6月21日 星期日
test
#include <at89x52.h>
char reset_P0table[]={0xFE, 0XFC, 0XF8, 0XF0, 0XE0, 0XC0, 0X00, 0xc0};
/* a ab abc abcd abcde abcdef
1111 1110 a
1111 1100 ab
1111 1000 abc
1111 0000 abcd
1110 0000 abcde
1100 0000 abcdef
0000 0000 abcdefg
1100 0000 abcdef
*/
int add=-1;
char x;
sbit sw1=P1^0;
sbit sw2=P1^1;
sbit output=P2^0;
bit change_flag=0;
bit sw1_flag;
bit sw2_flag;
bit breath_flag;
unsigned int breath_count;
unsigned int rpt_count;
char disp_seg7[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x89,0xc9,0xb6,0xFF};
/*-------------------------------*/
void delay_1ms(int k)
{
int i,j;
for(i=0;i<k;i++)
for(j=0;j<114;j++) ;
}
/*-------------------------------*/
void cck_run_7seg()//???a ab abc...
{
int i;
for(i=0;i<8;i++) { P0=reset_P0table[i]; delay_1ms(500); }
}
/*-------------------------------*/
void delay_2ms(int k)//?500hz
{
int i,j;
for(i=0;i<k;i++)
for(j=0;j<20;j++)
;
}
void delay_1000ms(int k)//?1khz
{
int i,j;
for(i=0;i<k;i++)
for(j=0;j<6;j++)
;
}
void delay_4ms(int k)//245~248hz?250hz
{
int i,j;
for(i=0;i<k;i++)
for(j=0;j<40;j++)
;
}
main()
{
cck_run_7seg();
while(1)
{
if(sw1==0)
{
sw1_flag=1;
delay_1ms(20);while(sw1!=1);delay_1ms(20);
add++;
if(add>10) add=0;
}
/*--------------------------------------------------*/
if(sw1_flag)
{
if(add==0){P0=disp_seg7[0]; x=0; output=0;delay_4ms(x); output=1;delay_4ms(10-x);}
else if(add==1){ x=1; P0=disp_seg7[1]; output=0;delay_4ms(x);output=1;delay_4ms(10-x);}
else if(add==2){ x=2; P0=disp_seg7[2]; output=0;delay_4ms(x);output=1;delay_4ms(10-x);}
else if(add==3){ x=3; P0=disp_seg7[3]; output=0;delay_4ms(x); output=1;delay_4ms(10-x);}
else if(add==4){ x=4; P0=disp_seg7[4]; output=0;delay_4ms(x); output=1;delay_4ms(10-x); }
else if(add==5){ x=5; P0=disp_seg7[5]; output=0;delay_4ms(x); output=1;delay_4ms(10-x); }
else if(add==6){ x=6; P0=disp_seg7[6]; output=0;delay_4ms(x); output=1;delay_4ms(10-x); }
else if(add==7){ x=7; P0=disp_seg7[7]; output=0;delay_4ms(x); output=1;delay_4ms(10-x);}
else if(add==8){ x=8; P0=disp_seg7[8]; output=0;delay_4ms(x); output=1;delay_4ms(10-x);}
else if(add==9){ x=9; P0=disp_seg7[9]; output=0;delay_4ms(x); output=1;delay_4ms(10-x);}
else if(add==10){x=10;P0=disp_seg7[10];output=0;delay_4ms(x); output=1;delay_4ms(10-x);}
}
char reset_P0table[]={0xFE, 0XFC, 0XF8, 0XF0, 0XE0, 0XC0, 0X00, 0xc0};
/* a ab abc abcd abcde abcdef
1111 1110 a
1111 1100 ab
1111 1000 abc
1111 0000 abcd
1110 0000 abcde
1100 0000 abcdef
0000 0000 abcdefg
1100 0000 abcdef
*/
int add=-1;
char x;
sbit sw1=P1^0;
sbit sw2=P1^1;
sbit output=P2^0;
bit change_flag=0;
bit sw1_flag;
bit sw2_flag;
bit breath_flag;
unsigned int breath_count;
unsigned int rpt_count;
char disp_seg7[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x89,0xc9,0xb6,0xFF};
/*-------------------------------*/
void delay_1ms(int k)
{
int i,j;
for(i=0;i<k;i++)
for(j=0;j<114;j++) ;
}
/*-------------------------------*/
void cck_run_7seg()//???a ab abc...
{
int i;
for(i=0;i<8;i++) { P0=reset_P0table[i]; delay_1ms(500); }
}
/*-------------------------------*/
void delay_2ms(int k)//?500hz
{
int i,j;
for(i=0;i<k;i++)
for(j=0;j<20;j++)
;
}
void delay_1000ms(int k)//?1khz
{
int i,j;
for(i=0;i<k;i++)
for(j=0;j<6;j++)
;
}
void delay_4ms(int k)//245~248hz?250hz
{
int i,j;
for(i=0;i<k;i++)
for(j=0;j<40;j++)
;
}
main()
{
cck_run_7seg();
while(1)
{
if(sw1==0)
{
sw1_flag=1;
delay_1ms(20);while(sw1!=1);delay_1ms(20);
add++;
if(add>10) add=0;
}
/*--------------------------------------------------*/
if(sw1_flag)
{
if(add==0){P0=disp_seg7[0]; x=0; output=0;delay_4ms(x); output=1;delay_4ms(10-x);}
else if(add==1){ x=1; P0=disp_seg7[1]; output=0;delay_4ms(x);output=1;delay_4ms(10-x);}
else if(add==2){ x=2; P0=disp_seg7[2]; output=0;delay_4ms(x);output=1;delay_4ms(10-x);}
else if(add==3){ x=3; P0=disp_seg7[3]; output=0;delay_4ms(x); output=1;delay_4ms(10-x);}
else if(add==4){ x=4; P0=disp_seg7[4]; output=0;delay_4ms(x); output=1;delay_4ms(10-x); }
else if(add==5){ x=5; P0=disp_seg7[5]; output=0;delay_4ms(x); output=1;delay_4ms(10-x); }
else if(add==6){ x=6; P0=disp_seg7[6]; output=0;delay_4ms(x); output=1;delay_4ms(10-x); }
else if(add==7){ x=7; P0=disp_seg7[7]; output=0;delay_4ms(x); output=1;delay_4ms(10-x);}
else if(add==8){ x=8; P0=disp_seg7[8]; output=0;delay_4ms(x); output=1;delay_4ms(10-x);}
else if(add==9){ x=9; P0=disp_seg7[9]; output=0;delay_4ms(x); output=1;delay_4ms(10-x);}
else if(add==10){x=10;P0=disp_seg7[10];output=0;delay_4ms(x); output=1;delay_4ms(10-x);}
}
2020年6月20日 星期六
108資訊科術科試題
一、網路管理設計(25%)
(一)(10分)使用工具壓製一條Cat5e 網路線採EIA568b方式壓製,需測試通過才給分。
不要先剪,先做一頭完成再比150多一點點(不要剛好剪150),看人的身高多少150公分正負7.5公分
(二) (90分)一部電腦,本機安裝windows server2012(usb安裝),Virtualbox上安裝Fedora core12(光碟安裝)
1. Windows
server2012
(1)建立使用者帳號(須具備administrator權限):admin密碼:A@108、user1密
碼:B@102
(2)IP:192.168.1.1
(3)電腦名稱改為Teacher0615
(4)DNS: ftp:192.168.x.x、mail:192.168.x.x
(5)DHCP: 教學大樓:192.168.x.x~192.168.x.x
行政大樓:192.168.x.x~192.168.x.x
實際應用gateway指定。
用Server綁兩個網段,
租期更換10天,一天是86400,十天乘於10,時間到再重新分配
禁用IP可以用192.168.2.201(排除IP範圍、禁用IP)
綁三張網卡,DHCP只能發那一段,有兩個網段,可用另一台NB測
反向區域:自動
ftp.teacher.edu.tw 192.168.1.2
mail.teacher.edu.tw
192.168.1.3
(7)網頁: <h3>
<font color=red> 工作崗位:xx 考試日期:xx 姓名:xx
2. Fedora core12
(1)建立使用者帳號(須具備root權限,root密碼同下述):admin
密碼:A@10803
(2)IP:192.168.x.x
(3)可連線到server2012
二、數位邏輯實習(25%)
請設計一「同步計數器00->10->01->11->00…」
1. 555輸出頻率0.5~2hz,可用LED觀看。
2. 同步計數器顯示00->10->01->11->00…可用LED觀看。
訂閱:
文章 (Atom)
algorithm
#include <iostream> #include <string.h> using namespace std; int main(int argc, char** argv) { for(int j=2;j<=100;j++)//j...
-
本文旨在補充《 超圖解Arduino互動設計入門 》第18章「RFID無線識別裝置與問答遊戲製作」單元,書本採用的RFID讀卡機模組是採用9600bps, TTL序列通訊介面,RFID的通訊頻率為125KHz。這種模組的接線和程式都很簡單,每當感測到RFID卡,讀卡機就把...
-
/* 多重按鈕開關 */ //==宣告區================================ #include // 定義8051暫存器之標頭檔,P2-17~19 #include "myio.h" // 自己寫的I/O程式庫 sbit PB...