使用查找表的延时流水灯8085程序。
我们将在这里学习如何使用8085实现带延时的流水灯。
问题陈述
编写8085程序,使用从内存地址8100H开始存储的字查找表实现带适当延时的流水灯显示。
讨论
模式存储在8100H地址及以后的位置。我们使用8255端口IC在LED显示器上显示内容。显示完成后,它调用延迟函数等待一段时间,然后从内存调用下一个字节进行显示。因此,显示模式如下所示:

程序
| 地址 | 十六进制代码 | 标签 | 助记符 | 注释 |
|---|---|---|---|---|
| 8000 | 31, 00, 82 | START | LXI SP, 8200 H | 初始化堆栈指针 |
| 8003 | 0E, 15 | | MVI C, 14 H | 初始化计数器 |
| 8005 | 21, 00, 81 | | LXI H, 8100 H | 指向模式输入缓冲区 |
| 8008 | 3E, 99 | | MVI A, CW | 将控制字加载到累加器 |
| 800A | D3, 43 | | OUT 43 H | 将控制字输出到控制寄存器 |
| 800C | 7E | AGAIN | MOV A, M | 读取模式字节 |
| 800D | D3, 41 | | OUT 41 H | 输出到B端口 |
| 800F | CD, 20, 80 | | CALL DELAY | 调用延迟子程序 |
| 8012 | 2C | | INR L | 指向下一个位置 |
| 8013 | 0D | | DCR C | 递减计数器 |
| 8014 | C2, 0C, 80 | | JNZ AGAIN | 如果未耗尽,则再次执行 |
| 8017 | 76 | | HLT | 停止 |
| 8020 | C5 | DELAY | PUSH B | 保存B。此延迟子程序使用2个单寄存器A和D以及1个寄存器对BC |
| 8021 | F5 | | PUSH PSW | 保存PSW |
| 8022 | 16, 0F | | MVI D, 0F H | 加载外循环计数器 |
| 8024 | 01, 00, 10 | ST | LXI B, 1000 H | 加载内循环计数器 |
| 8027 | 0B | L | DCX B | 递减内循环计数器 |
| 8028 | 79 | | MOV A, C | 如果未耗尽,则再次执行内循环 |
| 8029 | B0 | | ORA B | |
| 802A | C2, 27, 80 | | JNZ L | |
| 802D | 15 | | DCR D | 递减外循环计数器 |
| 802E | C2, 24, 80 | | JNZ ST | 如果未耗尽,则再次执行外循环 |
| 8031 | F1 | | POP PSW | 恢复PSW |
| 8032 | C1 | | POP B | 恢复B |
| 8033 | C9 | | RET | 返回到调用程序 |
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP