内容正文:
子任务2-2-1 按键控制花式多样的霓虹灯
一.任务目标
1)掌握单片机与按键接口的设计;
2)掌握按键控制程序的设计方法;
3)巩固对单片机四个I/O口的使用技能;
二.任务要求
任务描述:利用8个发光二极管模拟霓虹灯的显示,一个按键控制8个发光二极管实现不同显示方式。
三. 相关知识
1)电路设计
根据任务要求,采用51单片机的P2口控制8个发光二极管,P0口的P0.0管脚控制按键,硬件电路如图2-2-1所示。
图2-2- 1 按键控制霓虹灯电路
2)源程序设计
四、任务分析
1)按键的工作原理
(1)按键的分类
按键按照结构原理可分为两类:
①触点式开关按键,如机械式开关、导电橡胶式开关等;
②无触点开关按键,如电气式按键,磁感应按键等。
按键按照接口原理可分为:
①编码键盘
②非编码键盘
(2)键输入原理
在单片机应用系统中,除了复位按键有专门的复位电路及专一的复位功能外,其它按键都是以开关状态来设置控制功能或输入数据。当所设置的功能键或数字键按下时,计算机应用系统应完成该按键所设定的功能,信息输入是与软件结构密切相关的过程。
(3)按键结构与特点
微机键盘通常使用机械触点式按键开关,其主要功能是把机械上的通断转换成为电气上的逻辑关系。也就是说,它能提供标准的TTL逻辑电平,以便与通用数字系统的逻辑电平相容。
(按键抖动图)
8
(4)编制键盘程序
一个完善的键盘控制程序应具备以下功能:
① 检测有无按键按下,并采取硬件或软件措施,消除键盘按键机械触点抖动的影响。
② 有可靠的逻辑处理办法。每次只处理一个按键,其间对任何按键的操作对系统不产生影响,且无论一次按键时间有多长,系统仅执行一次按键功能程序。
③ 准确输出按键值(或键号),以满足跳转指令要求
(1)表达式语句与条件语句
① 表达式语句与复合语句
a. 表达式语句
b. 空语句
c. 复合语句
② 条件语句
a. 格式1
if(条件表达式)语句
若条件表达式的结果为真(非0值),就执行后面的语句;若条件表达式的结果为假(0值),就不执行后面的语句。这里的语句也可以是复合语句。
b. 格式2
if(条件表达式)语句1
else 语句2
c. 格式3
③ 开关语句
(2)循环语句与循环结构
① while语句与do-while语句
② for语句
③ if语句与goto语句结合
④ break语句
⑤ continue语句的格式
六、任务总结
思考题
子任务2-2-2 数据转化为BCD码并显示
一.任务目标
二.任务要求
任务描述:从P1口输入一个数(0~255),将该数对应的百、十、个位的数码在单个数码管上轮流显示出来。
三. 相关知识
1)单片机如何求出一个数各位的BCD码
例如现有一数为178,要求出它各位的BCD码,我们来看看怎样做:
(1)将178除以100求百位的BCD码,我们学过除法运算,此时商为1,余数为78,此时的商就是百位的BCD码。
(2)将上次的余数78再来除以10,商为7,余数为8,商7就是十位的BCD码,余数8为个位的BCD码。
这样1, 7, 8这三个BCD码就得到了。
2)单片机怎样用数码管显示各位BCD码
这个内容要用到我们在前面讲的数码管显示字形码,要显示什么数字,就把对应的字形码送到相应的IO口,显示出来。
四、任务分析
1)硬件电路
图2-2- 3 单管显示硬件电路图
2)软件分析
五.任务实施
(1)在Proteus中按照图2-2-3搭接好电路;
(2)在keil软件中编辑程序,进行编译,得到HEX格式文件;
(3)将所得的HEX格式文件在Proteus中加载到单片机芯片中;
(4)在Proteus中仿真,拨动开关,选择输入的数据,看数码管所显示的结果与我们预想的是否一样;
(5)Proteus中结果正常后,用实际硬件搭接电路,通过编程器将HEX格式文件下载到AT89C51中,通电看实际效果。
六、任务总结
思考题
����
�����
�������
��
��
$$