案例02:摩斯密码
Contents
4. 案例02:摩斯密码#
4.1. 目的#
使用basic:bit套件完成莫尔斯密码编码。
4.2. 使用材料#
1 x basic kit 基础套件
4.3. 背景知识#
莫尔斯电码#
摩尔斯电码(又译为摩斯密码,Morse code)是一种时通时断的信号代码,通过不同的排列顺序来表达不同的英文字母、数字和标点符号。摩尔斯电码是一种早期的数字化通信形式,但是它不同于现代只使用零和一两种状态的二进制代码,它的代码包括五种: 点、划、点和划之间的停顿、每个词之间中等的停顿以及句子之间长的停顿。
莫尔斯电码表#
4.4. 硬件连接图#
如图所示,将按键模块连接到basic:bit主板的P1口。
4.5. 软件#
按钮模块以模拟值读取I/O口返回值,值如下。
A按钮<10
B按钮10-80
C按钮80-130
D按钮130-160
E按钮160-600
4.6. 编程#
步骤 1#
当开机时显示一个图标,设置变量
item
作为要发送的数据变量,变量flag
作为字符串长度控制变量。并且设置无线发送组为50。
步骤 2#
判断flag变量(字符串长度)是否等于4,(本案例只取莫斯密码的英文,故长度最多4位),如果等于4,显示字符A,提示用户。
步骤 3#
以模拟值读取P1口,判断按下了哪个键,返回值80-130之间为C按钮按下,当C按钮按下时,将字符串长度变量加1,播放一个音调持续八分之一,点阵显示屏显示一个点,代表莫尔斯电码中的点,延时消抖,向字符串末尾写入一个字符“0”。
当按钮D按下时,与C按钮同理,区别是显示一个横,代表莫尔斯电码中的横,向字符串末尾写入“1”
步骤 4#
当按下A按钮时,显示字符串,发送字符串,同时清空变量
item
和flag
,初始化程序。
程序#
请参考程序连接:https://makecode.microbit.org/_3JrVPeeDVY2r
你也可以通过以下网页直接下载程序。
---4.7. 结论#
按下按钮C,意为莫尔斯电码中的点,按下按钮D,意为莫尔斯电码中的横,按下C或者D总次数等于4时,显示字符A,需要按下A按钮,显示和发送当前字符串,并且初始化变量重置程序。
4.8. 思考#
延时消抖的作用和意义是什么?