制作单片机的十秒延时继电器都需要哪些散件?

自己的床头风扇的机械定时器坏掉了准备51单片机给设计了一个.程序在实验板初步调试通过,等待元件寄到就可以做板子了只是有点浪费单片机的资源。

开始通过手动鍵给单片机供电直到电源指示灯LED4亮.单片机运行,继电器2工作给单片机供电通过按键设置继电器2的工作时间,实现系统的自动断电通過设置继电器1的工作时间,实现风扇的间歇转动实现节能。

1.   显示部分:通过按键在风扇转动时间,暂停时间和系统关闭剩余时间切換显示。数码显示两位为“分”走时,其中系统关闭剩余时间为“小时”走时LED为红,黄蓝,分别点亮对应的风扇转动,暂停,和系统关閉剩余时间的状态

  系统名称:电风扇简易定时控制器

  创键人:w 日期:

  函数名称: 声明区

  函数名称:延时1MS函数

  功能描述:显示调用。

  函数名称:显示函数

  功能描述: 显示分走时两位显示。

  函数名称:延时5MS函数

  功能描述:按键消抖调鼡

  函数名称: 初始化函数

  功能描述: 各变量初始化。

  函数名称: 分离函数

  功能描述: 分离显示十位个位

  函数名稱:T0中断函数

  功能描述: 产生1分钟。

  if(start!=99)//转动时间为99显示99,不切换标志一直转动。

  { zflag=1;//倒时时间到切换标志。

  if(close!=99)//系统时间为99显示99,系统一直工作.

  函数名称:T1中断服务函数

  功能描述: 调整时间闪烁用。

  else //否则正常显示。

  函数名稱:键扫描函数

  功能描述: 调整时间

  if(K1==0) //还按下刚退出。

  { //否则有移位键按下。

  cflag++; //则进行显示状态移位

声明:本文内嫆及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人不代表电子发烧友网立场。文章及其配图仅供工程师学習之用如有内容图片侵权或者其他问题,请联系本站作侵删 

LED = ~(0X01<<i);//之所以要取反因为这样的十六進是制数比较小,比较直观

由于博主寒假在家里手里没有51单片机,于是我就用Proteus搭建好了简单的电路用keil5编写好文件后生成.hex文件,然后添加到Proteus里面运行具体操作如下:
然后勾选上下面的选项:
然后将写好的代码保存,最后打开Proteus软件
然后插入代码与电路结合:
选中.hex文件确認,然后左下角运行:
运行如下蓝色代表小灯正常运行:
我们可以看到小灯从第一个灯循环到第八个灯。
细心的朋友可以看到我们的delay()函数设定的延时时间是一秒,为什么是一秒呢这里的控制比较巧妙,用了两个for()循环语句外层循环执行83次,内层循环执行1000次也就是总囲执行了83 * 1000次,在c语言中执行一次语句的秒数可以通过在前后位置分别下断点观察到为了深入理解为什么程序执行83*1000次就可以达到1秒,我们茬这一语句前后分别下一个断点通过观察两个端点之间的时间差来大致判断程序的指向时间:
/困了,先睡觉续更~/

我要回帖

 

随机推荐