1、 课课 程程 设设 计计 课程名称:单片机应用技术课程设计课程名称:单片机应用技术课程设计 题目题目名称名称:独立式按键移动点亮:独立式按键移动点亮 独立式按键控制灯的移动点亮 一、一、 总体方案总体方案 1 1、要求、要求:用 8051 单片机,采用一个独立式按键 KEO,控制四个发光二极 管 L1、L2、L3、L4,单片机晶振采用 12MHz 2 2、方法:、方法:当第一次按下 KEO 时,点亮 L1;当第二次按下 KEO 时,点亮 L2; 当第三次按下 KEO 时,点亮 L3;当第四次按下 KEO 时,点亮 L4;再按下开关 KEO 时,又轮到 L1 在闪烁,如此轮流下去 3 3、设计思
2、维:、设计思维:针对“独立式按键控制灯的移动点亮”课程设计问题,根 据题目要求, 设计出单键控制多灯的移动点亮就可, 并不需要太复杂的工艺过程。 我们可以选择 8051 系列的单片机,4 个发光二极管、一个独立式按键、导 线若干,外加电源就可实现设计要求。 利用 8051 内部查询方式来读单片机是否有键按下并不影响其他的工作进 程。用查询方式来计数按键按下的次数实现控制灯的移动点亮。本设计是以开关 状态来设置输入数据的,当所设置的功能键按下时,单片机完成该键所设定的功 能。由于机械式按键在按下或释放时,存在机械弹性作用的影响,通常伴随有一 定时间的触点抖动,然后其触点才稳定下来。在触点抖动期间
3、检测按键的“通” 与“断”状态,可能导致判断出错,即“按键一次”的按下或释放被错误地认为 是多次操作,这种情况是不允许出现的。为了克服按键触点机械抖动所导致的检 测误判,必须采取去抖措施。因为只有一个键,我们考虑用硬件去抖就可以了。 硬件去抖可在键的输入端加 RS 触发器或单稳态触发器构成去抖动电路。利用 当触发器翻转时,触点抖动对其不会产生任何影响,从而消除抖动的影响 二、硬件设施二、硬件设施 线路分析:原理图如下所示. 独立式按键控制灯的移动点亮所用核心是 8051 系列单片机,内部带有 4KB 的 ROM,现有 128B 的片内 RAM,已大大满足要 求。独立式按键控制灯没有大量的运算和
4、暂存数据,所以无需外扩程序存储器, 也不必外扩片外的数据存储器; 两位 LEO 显示的段码由 P1 口输出, P1 口线与 LED 之间接有 200限流电阻,LED 为共阳极数码管,显示方式为动态显示,P3 口线 接去抖电路;一个按键采用独立式键盘,按键接在 INT0 端;晶振电路接在 X1, X2 端;复位电路接在 RESET 端;去抖措施,直接采取硬件去抖即可,直接把 R S 触发器接于按键的输出端即可,利用触发器的反转构成去抖电路,当 触发器反转时,触点抖动对其不会产生任何影响,从而消除抖动的影响。 独立式按键控制灯的移动点亮硬件原理图接线图 三、软件设计三、软件设计 1 1、流程框图、
5、流程框图 +5V L1 L2 L3 L4 +5V P1.1 P1.2 P1.3 EA P1.0 P3.5 P3.0 +5V & & +5V 接地 A B X1 X2 RESET 接地 接地 独立式按键控制灯的程序流程图 N N N 开始 对 P1 口送 1,计数器清 0 调用按键查询子程序 有键按下吗? 计数器 R0 自动加 1 R0=1? R0=2? R0=3? R0=4? 点亮 P1.0 点亮 P1.1 点亮 P1.2 点亮 P1.3 对 R0 清 0 Y N Y N Y Y Y 2 2、程序编制程序编制 ORG 0000H ; MOV P1,#0FFH ;初始状态,二极管全不亮 MOV
6、R0,#0 ;R0 记按键次数,初始为 0 值 KK: ACALL K1 ;调用按键查询子程序,判断是否有键按下 JZ K2 ;有键按下,转移 AJMP KK ;无键按下,继续查询是否有键按下 K2: MOV P1,#0FFH INC R0 ;有键按下,计数加 1 CJNE R0,#1,L2 ;若是第一次按下按键,点亮灯 L1 CLR P1.0 SJMP KK ;再去查询是否有键按下 L2: CJNE R0,#2,L3 ;若是第二次按下按键,点亮灯 L2 CLR P1.1 SJMP KK L3: CJNE R0,#3,L4 ;若是第三次按下按键,点亮灯 L3 CLR P1.2 SJMP KK L4: CJNE R0,#4,KK ;若是第四次按下按键,点亮灯 L4 CLR P1.3 MOV R0,#0 SJMP KK ;按键查询子程序 ;功能:查询有无键按下 ;出口参数:累加器 A,无键按下 A 不为 0,当有键按下是 A 为 0 K1: MOV A,#00H ; MOV A,P3 ANL A,0DF