多功能流水灯31567.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
多功能流水灯的设计 一.设计要求: (1)设计一个彩灯控制电路,使彩灯的流向可以变化。可以正向流水,也可以逆向流水。灯流动的方向可以手控也可以自控,自控往返变换时间为5s。 (2) 彩灯流速可以改变。 (3) 彩灯可以间歇,10s间歇一次,间歇时间为1s。 二.总体方案构思: 用C语言来为单片机编程,通过编程来控制单片机各引脚在不同时间输出的不同的电平,进而控制个发光二级管的亮灭,以及控制流水灯的流速和流动方向。 三.实验器材: AT89S52单片机,发光二极管,排阻,电阻,电容,晶振,排针,独立按键,导线,焊锡,实验板等。 四.程序如下: #includereg52.h #includeintrins.h //52系列头文件 #define uint unsigned int #define uchar unsigned char sbit jian1=P3^0; sbit jian2=P3^1; sbit jian3=P3^2; sbit jian4=P3^3; uchar aa,t,ting,sudu,fangx,key,key1,key2,key3,key4; void delay(uint); void init(); void keyscan() { while(key) { if(jian1==0) { delay(10); if(jian1==0) { key1=1; while(!jian1); key=0; } } if(jian2==0) { delay(10); if(jian2==0) { key2=1; while(!jian2); key=0; } } if(jian3==0) { delay(10); if(jian3==0) { key3=1; while(!jian3); key=0; } } if(jian4==0) { delay(10); if(jian4==0) { key4=1; while(!jian4); key=0; } } } if(key1==1) //按下按键1,实现左移的功能 { key1=0; key=1; fangx=1; } if(key2==1) //按下按键2,实现右移功能 { key2=0; key=1; fangx=2; } if(key3==1) //按下按键3,实现减速功能 { key3=0; key=1; sudu++; if(sudu=10) //定义当流速大于0.5S/个时,流速变为0.5S/个 sudu=10; } if(key4==1) //按下按键4,实现减速功能 { key4=0; key=1; sudu--; if(sudu=1) //定义当流速小于0.05S/个时,流速变为0.05S/个 sudu=1; } } void main() { init(); while(1) { keyscan(); } } void delay(uint z) { uint i,j; for(i=z;i0;i--) for(j=110;j0;j--); } void init() { t=0;ting=0;sudu=2;key=1;fangx=0;aa=0x01; TMOD=0x01; //设置定时器0为工作方式1 TH0=(65536-45872)/256; //装初值 TL0=(65536-45872)%256; EA=1; //开总中断 ET0=1; //开定时器0中断 TR0=1; //启动定时器0 } void time() interrupt 1 { TH0=(65536-45872)/256; //重装初值 TL0=(65536-45872)%256; t++;ting++; if(t

文档评论(0)

xingyuxiaxiang + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档