用单片机做电子表。p0.1-p0.1有两个设置按键,分别为,p0.0为功能切换键,按一下为设置小时,按两下为设置分钟,按三下为设置秒,按四下确认。在小时/分钟/秒状态时,闪烁时间为半秒,不走时,在确认后,表走时。p0.1为加,在小时/分钟/秒时,每按一下,数字加一,在确认状态下,无效。屏用六段数码管。p2接数码管,p0.2-7接数码管的段选。要求有流程图,架构图,状态图,程序
时间: 2023-09-29 07:08:00 浏览: 63
单片机最小系统设计电子时钟_秒表_按键计数的单片机设计.doc
很高兴为您解答这个问题。
首先,我们来看一下流程图:
```
开始
初始化
while (1) {
if (p0.0按下) {
切换功能状态
按下次数清零
}
if (p0.1按下) {
if (当前为确认状态) {
确认时间
设置为非确认状态
} else {
按下次数加一
if (按下次数 >= 4) {
设置为确认状态
按下次数清零
}
}
}
if (当前为确认状态 && p0.1按下) {
按下次数清零
}
更新显示
}
```
接下来是架构图:
```
+---------------------+
| |
| 6段数码管 |
| |
+------+-------+------+
| |
+----------------+ +------------------+
| |
| |
| |
| |
| |
+-------------+-------------+ +-----------------+ |
| | | | |
| 单片机 | | 功能按键、加按键 | |
| | | | |
| | | | |
+-------------+-------------+ +-----------------+ |
| |
| |
| |
| |
| |
| |
+-------------+----------------------------------------------+
| |
| 电子表程序 |
| |
+-------------------------------------------------------------+
```
状态图如下:
```
+---------------------------------+ 按下p0.0 +-------------------------------------+
| |------------>| |
| 显示时间 | | 切换功能状态 |
| | | |
+---------------------------------+ +-----------------------------------------+
| 按下p0.1 |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| 确认时间 |<-------------| 设置确认状态 |
| |
| |
| |
| |
+---------------------------------+ +-----------------------------------------+
```
最后,是程序代码:
阅读全文