大学生毕业设计led流水灯单片机的设(编辑修改稿)内容摘要:

平,使 LED1 熄 灭 CLR。 输 出低 电 平,使 LED2 点亮 ACALL DELAY。 调 用延 时 子程序 SETB。 输 出高 电 平,使 LED2 熄 灭 5 CLR。 输 出低 电 平,使 LED3 点亮 ACALL DELAY。 调 用延 时 子程序 SETB。 输 出高 电 平,使 LED3 熄 灭 CLR。 输 出低 电 平,使 LED4 点亮 ACALL DELAY。 调 用延 时 子程序 SETB。 输 出高 电 平,使 LED4 熄 灭 CLR。 输 出低 电 平,使 LED5 点亮 ACALL DELAY。 调 用延 时 子程序 SETB。 输 出高 电 平,使 LED5 熄 灭 CLR。 输 出低 电 平,使 LED6 点亮 ACALL DELAY。 调 用延 时 子程序 SETB。 输 出高 电 平,使 LED6 熄 灭 CLR。 输 出低 电 平,使 LED7 点亮 ACALL DELAY。 调 用延 时 子程序 SETB。 输 出高 电 平,使 LED7 熄 灭 CLR。 输 出低 电 平,使 LED8 点亮 ACALL DELAY。 调 用延 时 子程序 SETB。 输 出高 电 平,使 LED8 熄 灭 ACALL DELAY。 调 用延 时 子程序 AJMP START。 8 个 LED流了一遍后返回到 标 号 START 处 再循 环 DELAY:。 延 时 子程序 MOV R0, 255。 延 时 一段 时间 D1: MOV R1, 255 DJNZ R1, $ DJNZ R0, D1 RET。 子程序返回 END。 程序 结 束 6 循 环 移位法 在上个程序中我 们 是逐个控制 P1 端口的 每 个位来 实现 的,因此程序 显 得有点 复杂 ,下面我 们 利用循 环 移位指令,采用循 环 程序 结 构进 行 编 程。 我 们 在程序一 开 始就 给 P1 口送一个数, 这 个数本身就 让 先低,其他位 为 高,然后延 时 一段 时间 ,再 让这 个数据向高位移动 ,然后再 输 出至 P1 口, 这样 就 实现 “流水 ”效果啦。 由于 8051 系列单 片机的指令中只有 对 累加器 ACC 中数据左移或右移的指令,因此实际编 程中我 们应 把需移 动 的数据先放到 ACC 中, 让 其移 动 ,然后将 ACC移 动 后的数据再 转 送到 P1口, 这样 同 样 可以 实现 “流水 ”效果。 具体 编 程如下 所示,程序 结 构确 实简单 了很多。 ORG 0000H。 单 片机上 电 后从 0000H 地址 执 行 AJMP START。 跳 转 到主程序存放地址 处 ORG 0030H。 设 置主程序 开 始地址 START: MOV SP, 60H。 设 置堆 栈 起始地址 为 60H MOV A, 0FEH。 ACC 中先装入 LED1 亮的数据 (二 进 制的1111。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。