历史上的今天
今天是:2025年08月12日(星期二)
2021年08月12日 | 51单片机心形灯实现按键控制流水编程
2021-08-12 来源:eefocus
实现按键K1实现从左向右流水,按键K2实现从右往左流水,按键K3实现暂停流水,按键K4实现继续流水
注意:本代码存在小小BUG即按键K1以后可以按键K3和K4控制流水,不能按K2中断K1流水操作来实现K2从右向左流水。按键K2对于K1也同理!



心形灯原理图

编译软件:Keil uVision5
(如有需要可点此链接下载:https://download.csdn.net/download/qq_36931762/11343174)
单片机程序下载软件:STC-ISP
(如有需要可点此链接下载:https://download.csdn.net/download/qq_36931762/11343157)
程序代码:
灯状态处于0亮1灭
#include "reg52.h"
sbit k1 = P3^2;
sbit k2 = P3^3;
sbit k3 = P3^4;
sbit k4 = P3^5;
unsigned char code table[]={0xfe, 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7f};
unsigned char code table1[]={0x7f, 0xbf, 0xdf, 0xef, 0xf7, 0xfb, 0xfd, 0xfe};
void Delay(unsigned int xms){
unsigned int i, j;
for(i=xms;i>0;i--){
for(j=110;j>0;j--);
}
}
unsigned int flag=0;
void checkflag(){
if(k3==0){
flag=1;
}
while(flag==1){
if(k4==0){
flag=0;
}
}
}
void main(){
unsigned char i;
while(1){
if(k1==0){
P3=0;
Delay(1000);
checkflag();
P3=0xff;
checkflag();
for(i=0;i<8;i++){
P0 = table[i];
Delay(1000);
checkflag();
}
P0=0xff;
checkflag();
for(i=0;i<8;i++){
P2 = table1[i];
Delay(1000);
checkflag();
}
P2=0xff;
checkflag();
}
if(k2==0){
for(i=0;i<8;i++){
P2 = table[i];
Delay(1000);
checkflag();
}
P2=0xff;
checkflag();
for(i=0;i<8;i++){
P0 = table1[i];
Delay(1000);
checkflag();
}
P0=0xff;
checkflag();
P3=0;
Delay(1000);
checkflag();
P3=0xff;
checkflag();
}
if(k4==0){
P3=0;
Delay(1000);
checkflag();
P3=0xff;
checkflag();
for(i=0;i<8;i++){
P0 = table[i];
Delay(1000);
checkflag();
}
P0=0xff;
checkflag();
for(i=0;i<8;i++){
P2 = table1[i];
Delay(1000);
checkflag();
}
P2=0xff;
checkflag();
}
}
}
史海拾趣
|
TM32 中断与嵌套NVIC 快速入门。 我也是靠看这本书才弄懂的: Cortex-M3 权威指南 Joseph Yiu 著 宋岩 译 其实很简单。 //CM3 有 最多240个中断(通常外部中断写作IRQs),就是 软件上说的 IRQ CHANAELx(中断通道号x) 每个中断有自己的可编 ...… 查看全部问答> |
|
http://www.96qd.com/driver/softdown.asp?softid=166173 请哪位好心人帮我下载这个驱动程序,之后压缩打包后发我一下, 万分谢谢! 我的email: hkds2008@163.com 在线等!… 查看全部问答> |
|
【我给xilinx资源中心做贡献】Xilinx Spartan-3E开发板相关资源 概述 Spartan-3E初学者电路板向工业上基于Spartan-3E电路设计平台提供了最受欢迎最超值的产品。板载的50万门Spartan 3E FPGA可以构建32位RISC处理器和DDR接口。开发板上拥有的Xilinx Platform Flash、USB和JTAG并 ...… 查看全部问答> |
|
最近在弄气敏型烟雾监测装置,手里面有一个传感器元件,性能测试不错,但是不知道是哪个厂家的产品,只能从产品上面看到企业logo。 急求各位大侠,哪个知道是哪个公司的产品吗?… 查看全部问答> |
|
一、上电复位 POR 和 上电清除 PUC 二、低功耗控制 但系统时钟发生器基本功能建立之后,CPU内的状态寄存器SR中的SCG1、SCG2、OscOff、CpuOff是低功耗的重要控制位; 系统工作模式一共有6种,1种活动模式和5种低功耗模式; 可以通过设置控制位使 ...… 查看全部问答> |
|
430的IO都是数字量类型的管脚,如果电流经模数转换后的数字量可不可以1个输出接一个IO口呢,在程序里循环扫描这几个IO口,来获得这个数字量,不知道这个想法是否可行,不行的话,麻烦讲解一下 … 查看全部问答> |
|
本帖最后由 游乐场 于 2014-7-16 21:51 编辑 普通的白炽灯要有500流明的光通量大概需要60W,而500流明的LED大概在5W到20W左右,每一盏LED都比白炽灯更加节能。现在用WEBENCH设计一款500流明光通量的LED。第一步 在LED设计框选择输入设 ...… 查看全部问答> |




