1、 计算机科学学院 单片机单片机课程设计报告课程设计报告 课课 程程 单片机课程设计单片机课程设计 设计设计题目题目 开关控制的流水开关控制的流水节日彩灯节日彩灯灯控制器灯控制器 年级专业年级专业 学学 号号 学生姓名学生姓名 指导教师指导教师 2013 年年 12 月月 17 日日 1 设计题目设计题目: 开关控制的流水开关控制的流水节日彩节日彩灯控制器灯控制器 一、一、 要求要求 至少显示四种方式 二、二、 分析分析 用开关来控制流水灯使其显示四种方式, 首先通过编写一个程序输入单片 机,在单片机箱上通过开关来控制。用两个开关可以显示四种工作方式, 更具试验箱的结构,选择六个 led 灯利用
2、高低电平来控制灯亮或灭,连接 电路根据不同的开关指示,显示不同的流动方式。 三、三、 设计设计 1、硬件设计、硬件设计(包括设计包括设计方案及方案及说明、完整的硬件连接图等说明、完整的硬件连接图等) 在实验箱上有 8 个发光二级管,分别与 p1 口相连,但是由于开关与 p1 口的 前两个口相连,故只能用六个发光二级管来显示。而另外两个则与开关相连,又 来控制电路。只有这样才可以完全显示。 硬件连接图如下硬件连接图如下: 2、软件编程(包括流程图、完整的汇编源程序及其注释)、软件编程(包括流程图、完整的汇编源程序及其注释) 2 流程图: 否 是 否 否 是 是 完整的汇编源程完整的汇编源程序如下
3、:序如下: KEY1 BIT P1.0 定义定义 p1.0 为开关为开关 1 KEY2 BIT P1.1 定义定义 p1.1 为开关为开关 2 ORG 0000H LJMP M1 ORG 0030H SETB KEY1 SETB KEY2 M1: MOV C,KEY1 主程序主程序 JNC M2 若开关若开关 1 是是 1 则转向则转向 M2 是是 1 否则顺序执行否则顺序执行 MOV C,KEY2 JNC A2 若开关若开关 2 是是 1 则转向则转向 A2 否则顺序执行否则顺序执行 A1 :MOV R0,#6 循环次数为循环次数为 6 次次 MOV A ,#0FBH 送初值送初值 LOP1
4、 :MOV P1,A ACALL DELAY 调用延时调用延时 RL A 左移一位左移一位 DJNZ R0,LOP1 若若 R0 不为不为 0 继续循环继续循环 开始 开关 K1 为 0? 开关 k2为0? 开关k2为0? 顺序执行 顺序执行 转向 A2 执行 转向 A4 执行 返回 3 SETB P1.0 定义开关为高电平定义开关为高电平 SETB P1.1 JMP M1 转向主程序转向主程序 A2 :MOV R0,#6 循环次数为循环次数为 6 次次 MOV A,#07FH 送初值送初值 LOP2 :MOV P1,A ACALL DELAY 调用延时调用延时 RR A 右移一位右移一位 D
5、JNZ R0,LOP2 若若 R0 不为不为 0 继续循环继续循环 SETB P1.0 SETB P1.1 定义开关为高电平定义开关为高电平 JMP M1 M2: MOV C,KEY2 JNC A4 若开关若开关 2 是是 1 则转向则转向 A4 否则顺序执行否则顺序执行 A3 :MOV R0,#4 循环次数为循环次数为 4 次次 MOV A,#0EFH LOP3 :MOV P1,A 送初值送初值 ACALL DELAY 调用延时调用延时 RL A 左移一位左移一位 DJNZ R0,LOP3 若若 R0 不为不为 0 继续循环继续循环 MOV R0,#2 循环次数为循环次数为 2 次次 MOV A,#0FBH LOOP1:MOV P1,A 送初值送初值 ACALL DELAY 调用延时调用延时 RL A 左移一位左移一位 DJNZ R0,LOOP1 若若 R0 不为不为 0 继续循环继续循环 SETB P1.0 SETB P1.1 定义开关为高电平定义开关为高电平 JMP M1 转向主程序转向主程序 A4 :MOV R0,#4 MOV A,#0DFH LOP4 :MOV P1,A ACALL DELAY 调用调用延时延时