1、开关灯 开关风扇 电子琴 开关灯 通过你观察,请你说一说这些作品都用到了哪些电子元件? 开关风扇 电子琴 通过你观察,他们共同使用了哪种输入设备? 可编程按钮 智能大脑:走进单片机世界(智能大脑:走进单片机世界(micro:bitmicro:bit) 版本:顺教版八年级信息技术上册版本:顺教版八年级信息技术上册 开关灯 开关风扇 电子琴 如果按下按钮A,LED灯亮 如果按下按钮B,LED灯灭 如果按下按钮A,风扇转 如果按下按钮B,风扇停 如果按下按钮1,播放中C音 如果按下按钮2,播放中D音 如果按下按钮3,播放中E音 开关风扇 开始 按下按钮A? 结束 风扇转 NONO yesyes 按下
2、按钮B? yesyes 风扇停 NONO 电子琴 按下按钮1? 按下按钮2? 按下按钮3? 开始 结束 播放中音C NONO yesyes yesyes 播放中音D NONO 播放中音E NONO yesyes NONO 开关灯 开始 按下按钮A? 结束 LED灯亮 NONO yesyes 按下按钮B? yesyes LED灯灭 NONO 功能功能 关系运算符关系运算符 说明说明 a小于b a ba b 检测a是否小于b a小于等于b a ba b 检测a是否小于b或者等于b a大于b a ba b 检测a是否大于b a大于等于b a ba b 检测a是否大于b或者等于b a等于b a ba
3、b 检测a是否等于b a不等于b a ba b 检测a和b是否不相等 功能功能 关系运算符关系运算符 说明说明 与 a ba b 逻辑与。当a和b都为True时才结果为Ture 或 a ba b 逻辑或。当a和b都一个为True时结果为Ture 非 a a 逻辑非。如果a为Ture,not a 就是False;如果a 为False,not a 就是Ture; = != not and or 关 系 表 达 式 逻 辑 表 达 式 If: If: else: If0 : If: 第一环节 初试按钮编程 第一环节:试一试 一、填空题: 拓展仸务 做得快的同学试试:按下A键,显示字母A;按下B 键,
4、显示字母B。 按A键灯亮 按B键灯灭 按A键显示”A” 按B键显示”B” 第一环节:试一试 二、谁最快: 睡眠时间对按键次数有何影响? 修改“睡眠时间500毫秒” 修改“睡眠时间1500毫秒” 基础小结 积木 代码 说明 button_a.is_pressed() 是一个逻辑值,表示按键(A)是否正 被按下,如果是,其值为True,如果 不是,其值为False button_a.was_pressed() 是一个逻辑值,表示按键(A)是否被 按下过,如果是,其值为True,如果 不是,其值为False 是一个数值,表示按键(A)被连续按 下的次数 button_a.get_presses()
5、第二环节 体验探索 第二环节:体验探索 计数器 阅读课本P20将micro:bit变成计数器,按A键 数字增大,按B键数字减小。 去掉“睡眠200毫秒”,有什么现象?(1,2组) 你能观察到并能解释吗? 减少睡眠时间为100毫秒,有什么现象?(3,4组) 增加睡眠时间为1000毫秒,有什么现象?(5组) 把“正被按下” 些替换成“已被按下”,效果如何? 去掉“睡眠200毫秒”,有什么现象?(1,2组) 减少睡眠时间为100毫秒,有什么现象?(3,4组) 增加睡眠时间为1500毫秒,有什么现象?(5组) 现象背后的原因 拓展小结 1、有的时候只按了一次,为什么会显示按了多次呢? 这是因为程序运行
6、到了 sleep 命令处,这时候的 button_a.is_pressed() 是检测不到按键 的,只有 button_a.was_pressed() 才能检测到。 这是因为程序的循环运行太快,在我们按键的过程中程序循环了多次,解决的办法 是增加 sleep 命令的睡眠时间。 2、有的时候按了一次或多次,为什么会显示没有按键呢? 第三环节 拓展提升 第三环节:拓展提升 运行老师下发的程序并观察效果 基础仸务 阅读课本P22编写程序,用按钮控制呼吸灯 能解释每段程序的功能。 拓展仸务 用一个按钮控制灯平移(当灯在第五颗灯亮后,按下按钮A,灯又回到了第一颗) 提示:如果x = != not and or 4 4 是一个数值,表示按键A在一定时间内连续按下的次数 3 3 1、逻辑值:表示按键A是否正在被按下,在睡眠时间内不起作用 2、逻辑值:表示按键A是否被按下过,在睡眠时间内起作用