1、关于单片机驱动数码管流水灯蜂鸣器的程序总程序/关于单片机驱动数码管、流水灯、蜂鸣器的程序#includeunsigned char table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;sbit clk=P20;sbit AB=P21;sbit SG=P25;sbit SS=P24;sbit SB=P23;sbit SQ=P22;sbit L1=P27;/延时调用函数void Delay()unsigned char i,j,k;for(i=5;i0;i-)for(j=10;j0;j-)for(k=50;k0;k-);/显示一个数字vo
2、id SentDate(char num)unsigned char c;for(c=0;c1;clk=1;/延时10次void ten()int a;for(a=0;a10;a+)Delay();/流水灯控制void LED()int i,j,a,b;a=0x01;b=0x80;P1=a;ten();for(i=0;i8;i+)a=a1;P1=a;ten();P1=b;ten();for(j=0;j1;P1=b;ten();/四个相邻数码管动态显示不同值void main()unsigned char i,j,a,b,c;while(1)for(b=0;b10;b+)/显示千位数for(c=
3、0;c10;c+)/显示百位数for(i=0;i10;i+)/显示十位数L1=0;/逢十报警一次ten();L1=1;for(j=0;j10;j+)/显示个位数LED();for(a=0;a10;a+)/循环十次SentDate(tableb);SQ=0,SB=1,SS=1,SG=1;Delay();SentDate(tablec);SQ=1,SB=0,SS=1,SG=1;Delay();SentDate(tablei);SQ=1,SB=1,SS=0,SG=1;Delay();SentDate(tablej);SQ=1,SB=1,SS=1,SG=0;Delay();/移位控制#includes
4、bit clk=P20;sbit AB=P21;sbit S1=P25;sbit S2=P24;sbit S3=P23;sbit S4=P22;unsigned char table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;void delay02()unsigned char i,j,k;for(i=10;i0;i-)for(j=10;j0;j-)for(k=20;k0;k-);void sent(char num)unsigned char c;for(c=0;c1;clk=1;void display(char a,char b
5、,char m,char n) unsigned char l;for(l=0;l40;l+)sent(tablea);S4=1;S1=0;delay02();sent(tableb);S1=1;S2=0;delay02();sent(tablen);S2=1;S3=0;delay02();sent(tablem);S3=1;S4=0;delay02();void main()while(1)char m=0,n=1,k,a=3,b=2;for(k=0;k30;k+)display(a,b,m,n);a+;b+;m+;n+;if(a=10)a=0;else if(b=10)b=0;else i
6、f(m=10)m=0;else if(n=10)n=0;/*LED走一轮,数码管走一次,蜂鸣器报警一次*/#includeunsigned chartable=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;sbit clk=P20;sbit AB=P21;sbit SG=P25;sbit SS=P24;sbit SB=P23;sbit SQ=P22;sbit L1=P27;void delay(void)int e;for(e=100;e0;e-);/延时10次void ten()int a;for(a=0;a10;a+)delay();/
7、*发送一个数字*/sentdate(m)int b,num;num=tablem;for(b=0;b1;clk=1;/*计数*/void JS(void)int a,c,d,f,g;for(g=0;g10;g+)sentdate(g);SQ=0,SB=1,SS=1,SG=1;for(f=0;f10;f+)sentdate(f);SQ=1,SB=0,SS=1,SG=1;for(d=0;d10;d+)sentdate(d);SQ=1,SB=1,SS=0,SG=1;for(c=0;c10;c+)int m,n;n=0x80;/10000for(m=0;m1;/01000for(a=20;a0;a-)
8、sentdate(c);SG=0;delay();SG=1;sentdate(d);SS=0;delay();SS=1;sentdate(f);SB=0;delay();SB=1;sentdate(g);SQ=0;delay();SQ=1;L1=0;ten();L1=1;void main(void)JS();/*LED走一轮,数码管计数,蜂鸣器逢十报警一次*/#includeunsigned chartable=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;sbit clk=P20;sbit AB=P21;sbit SG=P25;sbit
9、 SS=P24;sbit SB=P23;sbit SQ=P22;sbit L1=P27;/延时函数void delay(void)int e;for(e=100;e0;e-);/延时10次void ten()int a;for(a=0;a10;a+)delay();/*发送一个数字*/sentdate(m)int b,num;num=tablem;for(b=0;b1;clk=1;/*计数*/void main(void)int c,d,f,g;for(g=0;g10;g+)/千位sentdate(g);SQ=0,SB=1,SS=1,SG=1;for(f=0;f10;f+)/百位sentdat
10、e(f);SQ=1,SB=0,SS=1,SG=1;for(d=0;d10;d+)/十位sentdate(d);SQ=1,SB=1,SS=0,SG=1;for(c=0;c10;c+)/个位int m,k,n;/流水灯控制m=0x01;P1=m;ten();for(k=0;k8;k+)m=m1;P1=m;ten();for(n=0;n60;n+)/数码管显示sentdate(c);SG=0;delay();SG=1;sentdate(d);SS=0;delay();SS=1;sentdate(f);SB=0;delay();SB=1;sentdate(g);SQ=0;delay();SQ=1;L1=0;/记十次报警一次ten();ten();L1=1;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1