微处理器原理与应用实验(51单片机部分)——实验3.1 基本并行I / O口实验
实验具体内容
在 Proteus 环境下搭建如下图所示的电路图:
实验功能为:
当按键 SW1 按下之后,D1-D8 轮流点亮,点亮时间为 100ms,当按键停下后,停止轮换,
再次按下后继续轮换。
编程思路
①进行初始化工作,包括设置堆栈指针 SP,将 P2 口所有位设置为 1,使 P2 口所接发光二极管全部熄灭。将显示缓冲单元(设为 20H 单元)初始化为 FEH。
② 从 P1 口读数据,查看 P1.0 位,如果 P1.0 位为 0,则执行如下循环:将显示缓冲元的值送给 P2 口,调用 100ms 延时程序,将显示缓冲单元的值循环左移 1 位,再送回显缓冲单元。如果 P1.0 位不为 0 则不执行上述循环。
③重复上面的操作②
流程图
实验过程
① 根据上述实验内容,在 Proteus 环境下建立上电路图所示原理图,并将其保存为 basicIO_self.DSN 文件。
② 根据编程思路和流程图编写控制源程序,将其保存为 basicIO_self.asm。
③ 将源程序添加到 U1 中,并构造(build)该程序。
④ 执行仿真过程观察 D1-D8 的指示,查看程序功能是否正确。
⑤ 修改延时程序延时参数,重新执行③和④。
实验截图:
按键持续按下时,8个LED灯轮流亮,持续100ms
实验源程序
1 | ORG 0000H |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 wen's Blog!