关于单片机驱动数码管流水灯蜂鸣器的程序总程序.docx
- 文档编号:5078001
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:8
- 大小:15.25KB
关于单片机驱动数码管流水灯蜂鸣器的程序总程序.docx
《关于单片机驱动数码管流水灯蜂鸣器的程序总程序.docx》由会员分享,可在线阅读,更多相关《关于单片机驱动数码管流水灯蜂鸣器的程序总程序.docx(8页珍藏版)》请在冰豆网上搜索。
关于单片机驱动数码管流水灯蜂鸣器的程序总程序
//关于单片机驱动数码管、流水灯、蜂鸣器的程序
#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;}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关于 单片机 驱动 数码管 流水 蜂鸣器 程序