|
闲暇之余做了一个简单的流水灯,设计思路先将LED灯从0-7逐个显示,然后再从7-0逐个显示。如果产生外部中断(即按钮按下),则8个LED灯全亮,之后又恢复流水灯状态。附带开发板的操作现象,开发板原理图。- #include <reg52.h>
- #include <intrins.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit K=P3^2;//启动按钮,外部中断
- uchar led;
- void delay(uint x)
- {
- while(x--);
- }
- void XX()//中断设置
- {
- EA=1;
- EX0=1;
- }
- void DD()
- {
- uint i=0;//定义i=0,以便下面的调用
- led=0xfe;//1111 1110
- delay(30000);
- while(1)
- {
- for(i=0;i<7;i++)
- {
- led=_crol_(led,1);//1111 1101 (A,B),A是左移的值,B是左移的位数
- P1=led;
- delay(30000);
- }
- for(i=0;i<7;i++)
- {
- led=_cror_(led,1);//0111 1111
- P1=led;
- delay(30000);
- }
- }
- }
- void main()
- {
- XX();
- DD();
- }
- void XX1() interrupt 0
- {
- delay(1000);//防抖
- if(K==0)
- {
- P1 = 0X00;
- delay(30000);
- }
- }
复制代码 |
-
-
流水灯.7z
1.6 MB, 下载次数: 53, 下载积分: 黑币 -5
评分
-
查看全部评分
|