欢迎来到天天文库
浏览记录
ID:59346319
大小:12.86 KB
页数:18页
时间:2020-10-31
《各种流水灯程序.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、各种流水灯程序Lesso2.1:第一个发光管以间隔200ms闪烁(这是最原始的程序没有用延迟子函数)。#include<reg52.h>sbitD1=P1^0;inta;voidmain(){while(1){D1=0;a=25000;while(--a);D1=1;a=25000;while(--a);}}Lesson2.2:8个发光管由上至下间隔1s流动,其中每个管亮500ms,灭500ms,亮时蜂鸣器响,灭时关闭蜂鸣器,一直重复下去。#include<reg52.h>#include<i
2、ntrins.h>#defineuintunsignedint#defineucharunsignedcharvoiddelay(uint);uchartemp;sbitbeep=P2^3;voidmain(){temp=0xfe;while(1){P1=temp;beep=0;delay(500);P1=0xff;beep=1;delay(500);temp=_crol_(temp,1);}}voiddelay(uintz){uintx,y;for(x=z;x>0;x--)for(y=110;y>0;y
3、--);}Lesson2.3:8个发光管来回流动,第个管亮100ms,流动时让蜂鸣器发出“滴滴”声。#include<reg52.h>#include<intrins.h>#defineuintunsignedint#defineucharunsignedcharvoiddelay(uint);uchartemp;inti,j;sbitbeep=P2^3;voidmain(){temp=0xfe;while(1){for(i=7;i>0;i--){beep=0;delay(100);beep=
4、1;delay(100);beep=0;delay(100);beep=1;P1=temp;delay(500);temp=_crol_(temp,1);}for(i=7;i>0;i--){beep=0;delay(100);beep=1;delay(100);beep=0;delay(100);beep=1;P1=temp;delay(500);temp=_cror_(temp,1);}}}voiddelay(uintz){uintx,y;for(x=z;x>0;x--)for(y=110;y>0;y-
5、-);}Lesson2.4:用8个发光管演示出8位二进制数累加过程。#include<reg52.h>#defineuintunsignedint#defineucharunsignedcharvoiddelay(uint);voidmain(){P1=0xfe;while(1){delay(500);P1--;}}voiddelay(uintz){uintx,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}Lesson2.5:8个发光管间隔200ms由上至下,再由下至上
6、,再重复一次,然后全部熄灭再以300ms间隔全部闪烁5次。重复此过程。#include<reg52.h>#include<intrins.h>#defineuintunsignedint#defineucharunsignedcharvoiddelay(uint);uchartemp;inti,j;sbitbeep=P2^3;voidmain(){while(1){temp=0xfe;for(i=7;i>0;i--){P1=temp;delay(200);temp=_crol_(temp,1)
7、;}for(i=8;i>0;i--){P1=temp;delay(200);temp=_cror_(temp,1);}for(i=0;i<5;i++){P1=0xff;delay(300);P1=0x00;delay(300);}P1=0xff;delay(300);}}voiddelay(uintz){uintx,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}Lesson2.6:间隔300ms第一次一个管亮流动一次,第二次两个管亮流动,依次到8个管亮,然后重复整个过程
8、。(注意此程序中移位的使用,体会按位左右移与循环左右移的区别!)#include<reg52.h>#include<intrins.h>#defineuintunsignedint#defineucharunsignedcharvoiddelay(uintz){uintx,y;f
此文档下载收益归作者所有