1、 1 单片机课程设计报告 题 目: 流水灯 学生姓名: 学 号: 系部名称: 班 级:机电一体化 Z11-1 指导教师: 2 目录目录 摘要 . 3 一、 课程设计题目 . 4 二、 设计任务及要求 . 4 三、 实验方案 4 四、 流程图 4 五、 硬件电路 6 六、 软件设计 6 1 主体程序 6 2 键扫描子程序 . 6 3 闪烁控制程序 . 6 4 延时子程序. 6 5 源程序设计. 7 七、 功能调试 12 八、 设计总结 12 九、 参考文献 13 3 【摘要】【摘要】单片机课程设计主要是为了让我们增进对单片机芯片 电路的感性认识,加深对理论方面的理解。了解软硬件的有关知 识,并掌
2、握软件设计过程、方法及实现,为以后设计和实现应用 系统打下良好基础。另外,通过简单课题的设计练习,使我们了 解必须提交的各项工程文件,达到巩固、充实和综合运用所学知 识解决实际问题的目的。 4 一、课程设计题目:流水灯 二、设计任务及要求: 任务: 完成对接在 P1,P3 口的发光二极管闪亮控制程序的设计 1用程序延时方法让 P1 的一个 LED 小灯每隔 1S 交替闪亮 2用程序延时方法让 P1 的 8 个 LED 小灯循环(每个亮 50MS)闪亮 3用程序延时方法让 P1 的 8 个 LED 小灯追逐闪亮(50MS 间隔变化) 4用程序延时方法让 P1、P3 的 16 个 LED 小灯循环
3、(每个亮 50MS)闪亮 要求: 1. 根据硬件电路原理,画出接线 2. 设计出相应的软件程序 三、实验方案: 方案: 单片机采用 40 脚的 89C52 标准双列直插系列,有 4 个标准输入/输出端口共 32 位控制 端口。本次设计采用并行口低电平(吸电流)直接驱动 LED 发光管发光形式,选择了 P1 和 P3 口的 16 个端口进行模拟 LED 小灯控制,如要多些小灯单元可再将 P2 口、P0 口及 其他空余端口用 LED 小灯驱动控制。 因系统功能要求能控制灯亮的方式, 在 P0.0P0.3 端口接了 4 个按键小开关,每个小开关可控制一种亮灯方式。在端口较紧张的情况下, LED 小灯
4、驱动也可用串入/并出移位寄存器(如 74HC595), 单片机用并行移位方式进行驱 动。控制按键也可以用一个,用循环控制实现灯亮功能的转换。 四、流程图: 5 开始 初始化 调用扫键子程序 (KEYWORK) 20H.0=1? 20H.1=1? 20H.2=1? 20H.4=1? 转入功能程序 0 (FUN0) 转入功能程序 1 (FUN1) 转入功能程序 2 (FUN2) 转入功能程序 3 (FUN3) 6 五、硬件电路图: 下图为彩灯控制器的 Proteus 硬件仿真电路图。单片机采用 89C52 系列,P1 和 P3 口作 LED 发光管模拟流水灯输出控制端口, P0.0-P0.3 端口
5、接 4 个按钮小开关, 用作闪烁方式控 制开关。 LED 发光管设计电流约为 30mA, 限流电阻 100, 单片机使用 12MHz 晶振仿真调试。 六、软件设计: 1 主体程序: 通过扫描 P0.0P0.3 端口,判断是否有按键按下,有键按下时在内存单元 20H 低四位 的对应位置 1 标志,主程序通过查询标志确定应执行的闪烁方式。当 20H.0 为 1 时,发光管 D1 交替闪亮;当 20H.1 为 1 时,发光管 D1-D8 循环闪亮; 当 20H.2 为 1 时,发光管间 D1-D8 追逐闪亮;当 20H.3 为 1 时,发光管 D1-D16 循环闪亮。主程序对 20H 的低四位进行位
6、值判 定后,转入相应的闪烁控制程序。 2 键扫描子程序: 因按键较少,采用直接端口扫描键开关,用软件延时消抖确认后对 20H 内存单元相应的 位置 1 并把其余位清零。 3 闪烁控制程序: 闪烁控制程序用来控制 P1 和 P3 口的发光管发光变化方式。 4 延时子程序: 7 延时子程序有 10ms、50ms 和 1s 等,用作键扫描消抖及 LED 发光管闪亮延时。 5 源程序设计: ;*; ; 课程设计一程序:彩灯控制器 ; ;用四个按键控制 16 个 LED 小灯的工作状态,可使; ;LED 小灯实现交替闪亮、循环闪亮、追逐闪亮功能 ; ; 12MHZ 晶振 ; ;*; LAMPOUT0 EQU P1 小灯输出口 LAMPOUT1 EQU P3 小灯输出口 KEYSW0 EQU P0.0