推广 热搜:
 |  行业设备  |  机械制造  |  机器视觉  |  机械自动化  |  仪器仪表  |  工业机器人  |  编程开发  |  嵌入式  |  电子技术  |  工控自动化  |  电工电气 频道

用51单片机制作呼吸灯

   日期:2016-05-28     浏览:354    评论:0    
核心提示:/晶振11.0592//灯光在单片机控制之下完成由亮到暗的逐渐变化,感觉像是在呼吸//本例在51hei-5型开发板上实现了一个数码管和一个led灯一起实现呼吸效果//文件下载:http://ww
/晶振11.0592
//灯光在单片机控制之下完成由亮到暗的逐渐变化,感觉像是在呼吸
//本例在51hei-5型开发板上实现了一个数码管和一个led灯一起实现呼吸效果
//文件下载:http://www.51hei.com/f/fxd.rar
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit D1=P0^7;
uchar sr;
uchar jf;
uchar code table[]={
0,1,2,3,4,5,6,7,8,9,10,
11,12,13,14,15,16,17,18,
19,20,21,22,23,24,25,26,27,
28,29,30,31,32,33,34,35,36,
37,38,39,40,41,42,43,44,45,
46,47,48,49};
void light(uchar num);
void delay(uint z);
void main()
{
//设置计数器
//选取计数方式1
 TMOD = 0x11;
//给计数器写初值
 TH0 = 0;
 TL0 = 0;
////////////////////
//操作单片机
//开启CPU中断
 EA = 1;
///////////////////
//开启定时器T0位中断
 ET0 = 1;
//开启计数器
 TR0 = 1;
//操作二极管
P1=0;
 while(1)
 {
  if(sr<50)
   light(sr);
  else sr=0;
 }
}
//子函数
void light(uchar num)
{
 uchar tme;
 D1 = 0;
 tme = table[num];
 delay(tme);
 D1 = 1;
 delay(49-tme);
}
//中断函数
void time () interrupt 1
{
//自变量自加
 if (jf<2)
  {
   jf++;
   TH0 =0;
   TL0 = 0;
  }
 
 if (jf==2)
  {
//写初值
   jf=0;
   
   TH0 = 254;
   TL0 = 254;
   sr++;
  } 
}
void delay(uint z)
{
 uint x,y;
 for(x=10;x>0;x--)
  for(y=z;y>0;y--);
}
 
打赏
 
更多>同类 嵌入式
0相关评论

推荐图文
推荐 嵌入式
点击排行

网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报