采取行动之前先做出决定。 先说方法:
有这样的困惑吗? 各种例程都很容易看出,CV后项目也能跑起来,但我还是不知道如何开始设计。 这其实是一个问题。 你必须有产品思维这个虚拟的东西来指导实际操作。 什么是产品思维? 其实,这件事并不陌生。 我在大学做课程设计和毕业设计时就有过这样的经历。 只需执行以下步骤:
1.提案报告
这实际上对应的是工作中的产品需求分析报告。
2.设计任务书
这实际上与工作中的产品开发使命宣言相对应。
3.设计纸
这实际上对应了产品在工作时的产品设计方案。
4. 物理设计
这实际上对应的是工作中产品的样品设计,包括PCB和程序。
5. 辩护报告
这实际上对应了产品在工作中的小批量试产报告,分析了各种设计和生产问题。
实际操作细节:
项目名称:基于单片机的LED灯控制设计
项目要求:
1. 按住按钮2秒,LED进入自动闪烁模式;
2. 再次按住2秒可解除自动闪烁模式,然后每按一次按钮灯会亮两秒。
这是一个超级简单的微控制器项目设计,旨在说明方法示例:
需求分析:
根据项目需求分析:
首先分析一下硬件的主要要求:
1. 需要微控制器、按钮和 LED 灯。
2、需要设计单片机的操作系统
3、需要设计单片机外围按键电路
4、需要设计一个单片机可控的LED灯控制电路。
软件主要需求分析:
1、实现单片机系统的按钮按下和释放功能;
2、软件识别按键2s长按功能;
3、实现自动模式与手动模式的切换功能;
4、实现LED灯的点亮和熄灭控制功能;
5、要求单片机系统正常运行。
看到这里,你应该明白需求分析部分需要做什么:就是根据功能需求对项目的每个设计细节进行功能分析。 了解完成这个项目需要什么。 接下来就是对需求设计的原则进行分解,即对设计任务进行分析。
设计任务:
根据需求分析划分设计任务。 首先你要明确一点,这个阶段是让你查资料,了解要达到前面的要求需要做什么,比如器件选型、工作原理的分析和设计等,然后通过分析,你可以弄清楚需要做什么。 设计任务:
硬件设计任务:
1、硬件选型:
单片机:选择2个以上IO的单片机,选择时要考虑电源、价格、功能等特点。
例如,在本系统的实际设计中,使用8引脚51核的单片机就足够了。 价格仅1-2元左右,并且内置晶振。 只要有电源,就可以组成一个最小的单片机系统。 但出于通用性和供货采购的考虑,也可以使用非常常见的89C51系列,并且最低系统价格不到5元。
LED:普通的小电流发光二极管就足够了。 主要考虑的是微控制器引脚的驱动能力。
按钮:如果不能选择普通自锁开关。
2、单片机系统设计:51单片机最小系统:复位、振荡、电源三要素按照典型电路进行设计。
3、单片机外围按键电路设计:电阻+按键即可实现。 电阻器用于限制电流。
4、单片机外围LED灯电路设计; 电阻+LED即可实现。 电阻器用于限制电流。
软件设计的设计原则:
1、单片机主系统运行程序设计;
四个要素:主文件、头文件、初始化和主循环。 具体如何搭建项目,网上有很多教程,大家可以自己上手。
2、单片机主按键识别程序设计;
原理:MCU IO电平输入检测。
根据硬件电路,按下按钮时,端口的输入电平状态会翻转。 但该按钮是机械按钮,按下过程中会出现机械抖动。 因此必须进行抗抖动设计。
3、单片机主按钮LED控制程序设计;
原理:单片机IO电平输出控制。 根据硬件电路,端口电平状态发生翻转。
4、单片机两秒定时程序设计;
原理:定时2S。 使用方法有很多种:设计精度要求不高,可以采用软延迟。 设计对精确行数要求较高,可以使用定时器。
设计:
1示意图
最小系统:
图片来自网络,因侵权已删除。
LED电路:
图片来自网络,因侵权已删除。
按键识别:
图片来自网络,因侵权已删除。
2 个项目
软延迟:
void Delay_ms(unsigned int Cnt)
{
unsigned int timercnt;
while(cnt--)
{
timercnt=1000;
while(timercnt--);
}
}
LED控制:
void TurnOnLed(void)
{
LED =0;
}
void TurnOffLed(void)
{
LED =1;
}
按键检测:
if(!key)
{
Delay_ms(10);//消抖动
if(!key)
{
GetKeyFlg=1;
}
else
{
GetKeyFlg=1;
}
}
问题总结:
最小微控制器系统的设计;
按键电路设计;
LED电路设计;
至此,该项目的设计已基本完成。 本文通过这个简单的例子来讲解各个环节的工作任务,以改变下一步产品设计实施中的基本概念。 仅供参考。
原理图和程序请从公众号EETalks下载。 欢迎关注和评论。