标题: STC51单片机流水灯+外部中断蜂鸣器,含代码、实物,原理图 [打印本页]

作者: GGGboy    时间: 2020-9-1 19:23
标题: STC51单片机流水灯+外部中断蜂鸣器,含代码、实物,原理图
闲暇之余做了一个简单的流水灯,设计思路先将LED灯从0-7逐个显示,然后再从7-0逐个显示。如果产生外部中断(即按钮按下),则8个LED灯全亮,之后又恢复流水灯状态。附带开发板的操作现象,开发板原理图。
  1. #include <reg52.h>
  2. #include <intrins.h>

  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. sbit K=P3^2;//启动按钮,外部中断
  6. uchar led;

  7. void delay(uint x)               
  8. {
  9.         while(x--);       
  10. }

  11. void XX()//中断设置
  12. {
  13.         EA=1;
  14.         EX0=1;
  15. }

  16. void DD()
  17. {
  18.         uint i=0;//定义i=0,以便下面的调用
  19.         led=0xfe;//1111 1110
  20.         delay(30000);
  21.         while(1)
  22.         {
  23.                 for(i=0;i<7;i++)
  24.                 {
  25.                         led=_crol_(led,1);//1111 1101   (A,B),A是左移的值,B是左移的位数
  26.                         P1=led;
  27.                         delay(30000);
  28.                 }
  29.                 for(i=0;i<7;i++)
  30.                 {
  31.                         led=_cror_(led,1);//0111 1111
  32.                         P1=led;
  33.                         delay(30000);
  34.                 }
  35.         }
  36. }

  37. void main()
  38. {
  39.         XX();
  40.         DD();
  41. }

  42. void XX1() interrupt 0
  43. {
  44.         delay(1000);//防抖
  45.         if(K==0)
  46.         {       
  47.                 P1 = 0X00;
  48.                 delay(30000);
  49.         }               
  50. }
复制代码

流水灯.7z

1.6 MB, 下载次数: 53, 下载积分: 黑币 -5


作者: GGGboy    时间: 2020-9-1 19:27
原理图

QX-mini51 (1).pdf

154.08 KB, 下载次数: 31, 下载积分: 黑币 -5


作者: 杜少卿    时间: 2020-12-3 21:09
nice ,可以尝试更改 使用定时器零来控制时间 ,效果会更好 !!!




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1