作业5:案例挑战
文章目录
- 1、密码锁设计 P110,
- 2、基于PWM的可调光台灯设计 P131,
- 3、动态密码获取系统设计 P210,
- 效果
- (1) 密码模式说明
- (2) 测试密码输入
- (3) 测试修改密码
- (4) 测试修改密码模式
- 4、数码管时钟系统设计 P228,
- 7.5.2 数码管时钟系统设计(上图需要实现的效果)
- (1) 功能需求
- (2) 数码管
- (3) LED(LED0 ~ LED7)
- (4) 蜂鸣器
- (5) 拨码开关
- (6) 按键(键1、键2)
- 最终效果
- 5、波形发送器制作 P244,
- 6、数字电压表设计 P259,
- 7、十字路口交通厅信号系统设计 P290,
- 8、家居太阳能热水器系统设计 P296。
1、密码锁设计 P110,
新建Proteus图,命名为ProteusChallenge01
新建Keil项目,命名为KeilChallenge01
2、基于PWM的可调光台灯设计 P131,
新建Protues图,命名为ProteusChallenge02
新建Keil项目,命名为KeilChallenge02
添加电压表和3个电源端口
放置3个电源端口
完整效果图
3、动态密码获取系统设计 P210,
新建Proteus图,命名为ProteusChallenge03
新建Keil项目,命名为KeilChallenge03
效果
如果两者一致,则验证通过,用户获得相应的访问权限或完成相关操作;
如果不一致,则验证失败,系统可根据设定进行相应的提示或采取其他安全措施。
下面以基于时间同步的动态密码获取系统为例来说明程序的编写。图7.33所示为一种简易的单片机动密码获取系统电路图。
(1) 密码模式说明
- 时 分模式
- 月 日模式
- 日 分模式
- 月 时模式
(2) 测试密码输入
上电默认为时分模式,默认密码1111,此时只有数字键、撤销键和确认键可用,4位密码输入完成后,按下确认键。
(3) 测试修改密码
- 按下修改密码按键
- 输入原密码
- 输入新密码
- 确认
(4) 测试修改密码模式
- 按下修改密码模式按键
- 输入密码
- 设置模式(此时只有1234号键可以用)
- 确认
当电路正常运行时,D1闪烁。DS1302用于存储实时时间,作为动态密码的参考,单片机会周期性地读取DS1302的时间,再通过LCD屏显示出来。报警系统通过NPN三极管控制蜂鸣器接到单片机的P1.7引脚上,当引脚为高电平时开启蜂鸣器,为低电平时关闭蜂鸣器。用户界面为按键矩阵,用于密码输入、密码修改和密码模式的修改,以数字作为密码组成部分。继电器电路控制门的开关,当D2灯亮时表示开锁,D2灯灭时表示关锁。
在输入密码模式下,默认原始密码为1111,动态密码为原始密码+动态显示的时和分,当密码输入正确时开门;修改密码需要先输入正确密码,再设定新的原始密码;密码模式主要分为4种:时和分、时和日、日和分、月和时,分别对应1、2、3、4,按下修改密码模式按键后,输入正确密码后按下密码模式相对应的数字即可修改,单片机复位后默认密码模式为时和分。修改密码模式一:按下修改随机密码的模式,如输入1,表示时分模式,则动态密码为原密码位数加上时间的时和分数值,例如,当前时间为20:16,原始密码为1111,则在20:16这个时间内输入动态密码为3127,则可以解锁,输入其他密码则解锁失败。图7.33所示为动态密码获取系统原理仿真电路图。
页码:211
4、数码管时钟系统设计 P228,
新建Proteus图,命名为ProteusChallenge04
新建Keil项目,命名为KeilChallenge04
7.5.2 数码管时钟系统设计(上图需要实现的效果)
利用74HC595串行数据控制数码管,减少I/O口使用,实现以下功能:数码管显示时和分,拨码开关按下可进入时间设置,8个LED每秒闪烁一次,整点时蜂鸣器响。
(1) 功能需求
- 数字报时时钟具有整点报时、半点提醒、对时功能。
- 报时时钟外设:2个LED数码管,8个LED,1个蜂鸣器,2个按钮,1个拨码开关。
(2) 数码管
- 2个数码管用于显示当前时或分,数值用10进制表示。
- 时的范围为
00~11,分的范围为00~59。 - 时钟正常工作状态下,数码管常亮。
- 时钟设置状态下,数码管闪烁显示,每秒亮灭一次(亮0.5 s,灭0.5 s)。
(3) LED(LED0 ~ LED7)
- 时钟正常工作时,8个LED每秒亮灭一次(亮0.5 s,灭0.5 s)。
- 半点报时:8个LED全灭→LED4、LED3亮→LED4、LED3灭,LED5、LED2亮→LED5、LED2灭,LED2、LED1亮→LED2、LED1灭,LED1、LED0亮→8个LED全灭,循环重复执行3次。
- 时钟设置状态:设定小时数值时8个LED全灭;设定分钟数值时8个LED全亮。
(4) 蜂鸣器
- 到达整点时蜂鸣器启动报时。
- 发声形式为“滴—滴”声响,发声次数等于当前小时数,
00时统一响12次。
(5) 拨码开关
- 作用:进入/退出时间设置状态。
- 默认接高电平,时钟处于正常工作模式。
- 拨至低电平,进入时间设置模式,可修改时分数值。
- 拨回高电平,退出设置模式,恢复正常走时,禁止修改时间。
(6) 按键(键1、键2)
- 进入设置状态后,默认闪烁显示分钟,8个LED全亮。
- 设置模式:
- 键1:时分切换(LED全亮=调分钟;LED全灭=调小时)
- 键2:时间数值加1,每按一次数值+1
- 正常工作模式:
- 默认显示分钟
- 按一次键1切换显示小时
- 3秒内再次按键1切回分钟
- 3秒无操作自动切回显示分钟
最终效果
5、波形发送器制作 P244,
6、数字电压表设计 P259,
新建Proteus图,命名为ProteusChallenge06
新建Keil项目,命名为KeilChallenge06
7、十字路口交通厅信号系统设计 P290,
8、家居太阳能热水器系统设计 P296。
新建Proteus图,命名为ProteusChallenge08
新建Keil项目,命名为KeilChallenge08
