关于单片机驱动数码管流水灯蜂鸣器的程序总程序.docx

上传人:b****6 文档编号:5078001 上传时间:2022-12-13 格式:DOCX 页数:8 大小:15.25KB
下载 相关 举报
关于单片机驱动数码管流水灯蜂鸣器的程序总程序.docx_第1页
第1页 / 共8页
关于单片机驱动数码管流水灯蜂鸣器的程序总程序.docx_第2页
第2页 / 共8页
关于单片机驱动数码管流水灯蜂鸣器的程序总程序.docx_第3页
第3页 / 共8页
关于单片机驱动数码管流水灯蜂鸣器的程序总程序.docx_第4页
第4页 / 共8页
关于单片机驱动数码管流水灯蜂鸣器的程序总程序.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

关于单片机驱动数码管流水灯蜂鸣器的程序总程序.docx

《关于单片机驱动数码管流水灯蜂鸣器的程序总程序.docx》由会员分享,可在线阅读,更多相关《关于单片机驱动数码管流水灯蜂鸣器的程序总程序.docx(8页珍藏版)》请在冰豆网上搜索。

关于单片机驱动数码管流水灯蜂鸣器的程序总程序.docx

关于单片机驱动数码管流水灯蜂鸣器的程序总程序

//关于单片机驱动数码管、流水灯、蜂鸣器的程序

#include

52."H>

unsignedchartable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

sbitclk=P2^0;

sbitAB=P2^1;

sbitSG=P2^5;

sbitSS=P2^4;

sbitSB=P2^3;

sbitSQ=P2^2;

sbitL1=P2^7;

//延时调用函数

voidDelay(){unsignedchari,j,k;

for(i=5;i>0;i--)

for(j=10;j>0;j--)

for(k=50;k>0;k--);}//显示一个数字

voidSentDate(charnum){unsignedcharc;

for(c=0;c<8;c++){clk=0;

AB=num&0x01;

num=num>>1;

clk=1;}}

//延时10次

voidten()

{inta;

for(a=0;a<10;a++)

Delay();}//流水灯控制

voidLED(){inti,j,a,b;

a=0x01;

b=0x80;

P1=~a;

ten();

for(i=0;i<8;i++){a=a<<1;

P1=~a;

ten();}P1=~b;

ten();

for(j=0;j<8;j++){b=b>>1;

P1=~b;

ten();}}

//四个相邻数码管动态显示不同值

voidmain(){unsignedchari,j,a,b,c;

while

(1){for(b=0;b<10;b++)//显示千位数

for(c=0;c<10;c++)//显示百位数

for(i=0;i<10;i++)//显示十位数{L1=0;//逢十报警一次ten();

L1=1;

for(j=0;j<10;j++)//显示个位数{LED();

for(a=0;a<10;a++)//循环十次{SentDate(table[b]);

SQ=0,SB=1,SS=1,SG=1;

Delay();

SentDate(table[c]);

SQ=1,SB=0,SS=1,SG=1;

Delay();

SentDate(table[i]);

SQ=1,SB=1,SS=0,SG=1;

Delay();

SentDate(table[j]);

SQ=1,SB=1,SS=1,SG=0;

Delay();}}}}}//移位控制

#include

52."H>

sbitclk=P2^0;

sbitAB=P2^1;

sbitS1=P2^5;

sbitS2=P2^4;

sbitS3=P2^3;

sbitS4=P2^2;

unsignedchartable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

voiddelay02(){unsignedchari,j,k;

for(i=10;i>0;i--)

for(j=10;j>0;j--)

for(k=20;k>0;k--);}voidsent(charnum)

{unsignedcharc;

for(c=0;c<8;c++)

{clk=0;

AB=num&0x01;

num=num>>1;

clk=1;}}

voiddisplay(chara,charb,charm,charn)

{unsignedcharl;

for(l=0;l<40;l++){sent(table[a]);

S4=1;S1=0;

delay02();

sent(table[b]);

S1=1;S2=0;

delay02();

sent(table[n]);

S2=1;S3=0;

delay02();

sent(table[m]);

S3=1;S4=0;

delay02();}}

voidmain(){while

(1)

{charm=0,n=1,k,a=3,b=2;

for(k=0;k<30;k++){display(a,b,m,n);

a++;b++;

m++;n++;

if(a==10)a=0;

elseif(b==10)b=0;

elseif(m==10)m=0;

elseif(n==10)n=0;}}}/*LED走一轮,数码管走一次,蜂鸣器报警一次*/

#include

51."H>

unsignedchartable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

sbitclk=P2^0;

sbitAB=P2^1;

sbitSG=P2^5;

sbitSS=P2^4;

sbitSB=P2^3;

sbitSQ=P2^2;

sbitL1=P2^7;

voiddelay(void){inte;

for(e=100;e>0;e--);}//延时10次

voidten()

{inta;

for(a=0;a<10;a++)

delay();}/*发送一个数字*/

sentdate(m){intb,num;

num=table[m];

for(b=0;b<8;b++){clk=0;

AB=num&0x01;

num=num>>1;

clk=1;}}

/*计数*/

voidJS(void){inta,c,d,f,g;

for(g=0;g<10;g++){sentdate(g);

SQ=0,SB=1,SS=1,SG=1;

for(f=0;f<10;f++){sentdate(f);

SQ=1,SB=0,SS=1,SG=1;

for(d=0;d<10;d++){sentdate(d);

SQ=1,SB=1,SS=0,SG=1;

for(c=0;c<10;c++){intm,n;

n=0x80;//10000

for(m=0;m<8;m++){P1=0x00;//0000

ten();

P1=P1|n;//11000

n=n>>1;//01000

for(a=20;a>0;a--){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;}}}}

}voidmain(void){JS();}/*LED走一轮,数码管计数,蜂鸣器逢十报警一次*/

#include

51."H>

unsignedchartable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

sbitclk=P2^0;

sbitAB=P2^1;

sbitSG=P2^5;

sbitSS=P2^4;

sbitSB=P2^3;

sbitSQ=P2^2;

sbitL1=P2^7;

//延时函数

voiddelay(void){inte;

for(e=100;e>0;e--);}//延时10次

voidten(){inta;

for(a=0;a<10;a++)

delay();}/*发送一个数字*/

sentdate(m){intb,num;

num=table[m];

for(b=0;b<8;b++){clk=0;

AB=num&0x01;

num=num>>1;

clk=1;}}

/*计数*/

voidmain(void){intc,d,f,g;

for(g=0;g<10;g++)//千位{sentdate(g);

SQ=0,SB=1,SS=1,SG=1;

for(f=0;f<10;f++)//百位{sentdate(f);

SQ=1,SB=0,SS=1,SG=1;

for(d=0;d<10;d++)//十位{sentdate(d);

SQ=1,SB=1,SS=0,SG=1;

for(c=0;c<10;c++)//个位{intm,k,n;//流水灯控制

m=0x01;

P1=~m;

ten();

for(k=0;k<8;k++){m=m<<1;

P1=~m;

ten();

for(n=0;n<60;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