各种流水灯程序.docx_第1页
各种流水灯程序.docx_第2页
各种流水灯程序.docx_第3页
各种流水灯程序.docx_第4页
各种流水灯程序.docx_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

各种流水灯程序 Lesso2.1: 第一个发光管以间隔200ms闪烁(这是最原始的程序没有用延迟子函数)。#include<reg52.h>sbit D1=P10;int a;void main()while(1)D1=0;a=25000;while(-a);D1=1;a=25000;while(-a);Lesson2.2: 8个发光管由上至下间隔1s流动,其中每个管亮500ms,灭500ms,亮时蜂鸣器响,灭时关闭蜂鸣器,一直重复下去。#include<reg52.h>#include<intrins.h>#define uint unsigned int#define uchar unsigned charvoid delay(uint);uchar temp;sbit beep=P23;void main()temp=0xfe;while(1)P1=temp;beep=0;delay(500);P1=0xff;beep=1;delay(500);temp=_crol_(temp,1);void delay(uint z)uint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);Lesson2.3: 8个发光管来回流动,第个管亮100ms,流动时让蜂鸣器发出“滴滴”声。#include<reg52.h>#include<intrins.h>#define uint unsigned int#define uchar unsigned charvoid delay(uint);uchar temp;int i,j;sbit beep=P23;void main()temp=0xfe;while(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=_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);void delay(uint z)uint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);Lesson2.4: 用8个发光管演示出8位二进制数累加过程。#include<reg52.h>#define uint unsigned int#define uchar unsigned charvoid delay(uint);void main()P1=0xfe;while(1)delay(500);P1-;void delay(uint z)uint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);Lesson2.5: 8个发光管间隔200ms由上至下,再由下至上,再重复一次,然后全部熄灭再以300ms间隔全部闪烁5次。重复此过程。#include<reg52.h>#include<intrins.h>#define uint unsigned int#define uchar unsigned charvoid delay (uint);uchar temp;int i,j;sbit beep=P23;void main()while(1)temp=0xfe;for(i=7;i>0;i-) P1=temp;delay(200);temp=_crol_(temp,1);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); void delay(uint z)uint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);Lesson2.6: 间隔300ms第一次一个管亮流动一次,第二次两个管亮流动,依次到8个管亮,然后重复整个过程。(注意此程序中移位的使用,体会按位左右移与循环左右移的区别!)#include<reg52.h>#include<intrins.h>#define uint unsigned int#define uchar unsigned charvoid delay(uint z) uint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);uint i,j;uchar temp;void main()while(1)temp=0xfe;for(j=0;j<8;j+)for(i=0;i<8-j;i+)P1=temp;delay(500);temp=_crol_(temp,1); temp=_crol_(temp,j);P1=0xff;delay(150);temp=temp<<1;Lesson2.7: 间隔300ms先奇数亮再偶数亮,循环三次;一个灯上下循环三次;两个分别从两边往中间流动三次;再从中间往两边流动三次;8个全部闪烁3次;关闭发光管,程序停止。#include<reg52.h>#include<intrins.h>#define uint unsigned int#define uchar unsigned charsbit beep=P23;uchar temp;int i,j=3;void delay(uint z)uint x,y; for(x=z;x>0;x-)for(y=110;y>0;y-);void main()beep=0;delay(300);beep=1;for(i=0;i<3;i+) /奇偶闪烁三遍。P1=0xaa;delay(300);P1=P1;delay(300);beep=0;delay(300);beep=1;temp=0xfe; /单个循环三遍,带有蜂鸣器提示。while(j-)for(i=0;i<8;i+)P1=temp;temp=_crol_(temp,1);delay(300);beep=0;delay(300);beep=1;for(i=0;i<8;i+)temp=_cror_(temp,1);P1=temp;delay(300);beep=0;delay(300);beep=1;for(j=0;j<3;j+) /两边向中间后中间向两边整体三遍。 P1=0x7e;delay(300); /感觉这个代码有些繁琐,有好建议改进的P1=0xbd; /网友还请慷慨回帖,咱们一起研究进步。delay(300);P1=0xdb;delay(300);P1=0xe7;delay(300);P1=0xdb;delay(300);P1=0xbd;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论