花样流水灯设计.doc

花样流水灯设计.doc

ID:57653669

大小:531.50 KB

页数:7页

时间:2020-08-30

花样流水灯设计.doc_第1页
花样流水灯设计.doc_第2页
花样流水灯设计.doc_第3页
花样流水灯设计.doc_第4页
花样流水灯设计.doc_第5页
资源描述:

《花样流水灯设计.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、.......一、原理图设计的目的:利用AT89C51,通过控制按键来实现六种流水灯花样的转换,实现花样流水灯的设计,同时通过外部中断0,来控制流水灯的速度。二、各器件的功能作用:1、AT89C51AT89C51有40个引脚,每个引脚都有其功能。本次设计中,利用P0口当输出口,输出低电平来驱动发光二极管点亮。利用P1.0~P1.5六个引脚,通过按键接地,然后采用扫描的方式,判断哪个引脚所接按键按下,从而来控制六种流水灯的花样。利用P3.2引脚外接按键接地,通过控制按键来减慢流水灯的速度,利用P3.3引脚外

2、接按键接地,通过控制按键来提高流水灯的速度。利用P3.7输出低电平,导通三极管Q1,从而给八个发光二极管的阳极加高电平,一旦P0口输出低电平就可以驱动发光二极管。2、八个发光二极管:通过八个发光二极管来实现流水灯的变化,用低电平驱动发光二级管亮,同时,用高电平使其熄灭。3、按键.s..............通过P1.0-P1.5外接的按键来实现流水灯各种花样的变化,当按键按下时,驱动一种流水灯花样的闪烁。同时,利用按键来提供外部中断,当按下按键时,产生一个外部中断,向CPU申请中断,CPU响应其中断,因

3、此可以用按键来实现提高流水灯闪烁的速度。通过在RST口处加上一个按钮手动复位电路,利用复位按钮可以使运行中的流水灯复位到初始的状态。4、排阻因为P0口作为输出口时需要外接上拉电阻三、设计原理图:四、程序如下:#include//51系列单片机定义文件#defineucharunsignedchar//定义无符号字符#defineuintunsignedint//定义无符号整数.s..............voiddelay(uint);//声明延时函数voidmain(void){ui

4、nti;uchartemp;TCON=0x05;IE=0x85;PX1=1;PX0=0;while(1){temp=0x01;for(i=0;i<8;i++)//8个流水灯逐个闪动{P0=temp;delay(100);//调用延时函数temp<<=1;}temp=0x80;for(i=0;i<8;i++)//8个流水灯反向逐个闪动{P0=temp;delay(150);//调用延时函数temp>>=1;}temp=0xFE;for(i=0;i<8;i++)//8个流水灯依次全部点亮{P0=temp;de

5、lay(150);//调用延时函数temp<<=1;}temp=0x7F;for(i=0;i<8;i++)//8个流水灯依次反向全部点亮{P0=temp;delay(150);//调用延时函数temp>>=1;}temp=0x03;for(i=0;i<4;i++)//两个流水灯顺序点亮.s..............{P0=temp;delay(150);temp<<=2;}temp=0x30;for(i=0;i<3;i++)//两个流水灯反向点亮{P0=temp;delay(150);temp>>=2;

6、}temp=0x07;for(i=0;i<3;i++)//3个{P0=temp;delay(150);temp<<=3;}temp=0xe0;for(i=0;i<3;i++)//3流水灯反向点亮{P0=temp;delay(150);temp>>=3;}temp=0x0f;for(i=0;i<3;i++)//4ge{P0=temp;delay(150);temp<<=4;}temp=0xf0;for(i=0;i<3;i++)//4流水灯反向点亮{P0=temp;delay(150);temp>>=4;}}

7、.s..............}voidint0()interrupt0{uinti;uchartemp;while(1){temp=0x01;for(i=0;i<8;i++)//8个流水灯逐个闪动{P0=temp;delay(800);//调用延时函数temp<<=1;}temp=0x80;for(i=0;i<8;i++)//8个流水灯反向逐个闪动{P0=temp;delay(800);//调用延时函数temp>>=1;}temp=0xFE;for(i=0;i<8;i++)//8个流水灯依次全部点亮{

8、P0=temp;delay(800);//调用延时函数temp<<=1;}temp=0x7F;for(i=0;i<8;i++)//8个流水灯依次反向全部点亮{P0=temp;delay(800);//调用延时函数temp>>=1;}temp=0x03;for(i=0;i<4;i++)//两个流水灯顺序点亮{P0=temp;delay(800);temp<<=2;}.s..............temp=0x30;for(i=

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。