qq_59858469 2021-07-11 23:44 采纳率: 0%
浏览 60

求一个节日彩灯控制器的系统工作原理

描述一下节日彩灯控制器的系统工作原理,要写报告
#include "intrins.h"
sbit K1 = P1^0;
sbit K2 = P1^1;
sbit K3 = P1^2;
sbit K4 = P1^3;
sbit K5 = P1^4;
sbit K6 = P1^5;
void Delay100ms()
{
unsigned char i, j, k;

nop();
nop();
i = 5;
j = 52;
k = 195;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void DelayK(unsigned char t)
{
while(t--);
}
unsigned char i;

void Key()
{
if(K1==0)
{
DelayK(100);
if(K1==0)
{
P0 = 0xf9;
for(i = 0;i < 8;i++)
{
P2=(0x1<<i);
Delay100ms();
}
while(K1==0);
P0 = 0;
for(i = 0;i < 8;i++)
{
P2=(0x1>>i);
Delay100ms();
}
}
}
if(K2==0)
{
DelayK(100);
if(K2==0)
{
P0 = 0xa4;
for(i = 0;i < 7;i++)
{
P2=(0x1<<i);
Delay100ms();
}
while(K2==0);
P0 = 0;
for(i = 0;i < 7;i++)
{
P2=(0x1>>i);
Delay100ms();
}
}
}
if(K3==0)
{
DelayK(100);
if(K3==0)
{
P0 = 0xb0;
for(i = 0;i < 6;i++)
{
P2=(0x1<<i);
Delay100ms();
}
while(K3==0);
P0 = 0;
for(i = 0;i < 6;i++)
{
P2=(0x1>>i);
Delay100ms();
}
}
}
if(K4==0)
{
DelayK(100);
if(K4==0)
{
P0 = 0x99;
for(i = 0;i < 8;i++)
{
P2=(0x2<<i);
Delay100ms();
}
while(K4==0);
P0 = 0;
for(i = 0;i <5;i++)
{
P2=(0x1>>i);
Delay100ms();
}
}
}
if(K5==0)
{
DelayK(100);
if(K5==0)
{
P2 = 0;
}
}

if(K6==0)
{
DelayK(100);
if(K6==0)
{
P2 = 0xff;
}
}
}
void main()
{
while(1)
{
Key();
}
}
img

  • 写回答

1条回答 默认 最新

  • 丘比特惩罚陆 全栈领域新星创作者 2023-04-13 08:45
    关注

    这不给我点个关注???
    通过P1口读取控制器的按键输入,然后控制P0口的LED显示灯和P2口的控制灯的亮灭。

    当按下K1时,P0口的LED显示为0xf9,表示将控制灯从右到左依次点亮,并且每个灯点亮的时间为100ms。

    当按下K2时,P0口的LED显示为0xa4,表示将控制灯从左到右依次点亮,并且每个灯点亮的时间为100ms。

    当按下K3时,P0口的LED显示为0xb0,表示将控制灯从中间往两侧依次点亮,并且每个灯点亮的时间为100ms。

    当按下K4时,P0口的LED显示为0x99,表示将控制灯从左上到右下斜线方向依次点亮,并且每个灯点亮的时间为100ms。

    当按下K5时,P2口的控制灯全灭,即所有的LED都熄灭。

    当按下K6时,P2口的控制灯全亮,即所有的LED都点亮。

    在控制LED灯点亮的过程中,Delay100ms()函数用于延迟100ms时间,DelayK()函数用于延迟t个时间单位。通过循环控制每个LED灯的点亮和熄灭,达到控制彩灯的效果。

    评论

报告相同问题?

问题事件

  • 创建了问题 7月11日

悬赏问题

  • ¥15 streamingtool
  • ¥15 MATLAB图像问题
  • ¥20 树莓派5做人脸情感识别与反馈系统
  • ¥15 selenium 控制 chrome-for-testing 在 Linux 环境下报错 SessionNotCreatedException
  • ¥15 使用pyodbc操作SQL数据库
  • ¥15 MATLAB实现下列
  • ¥30 mininet可视化打不开.mn文件
  • ¥50 C# 全屏打开Edge浏览器
  • ¥80 WEBPACK性能优化
  • ¥30 python拟合回归分析