单片机开发之基本并行I/O口
【摘要】 一、题目基本并行I/O口二、要求1、画出实验的流程图2、编写源程序并进行注释3、记录实验过程4、记录程序运行结果截图三、过程及结果记录按照思路搭建电路图1如下:编辑图1:实验电路图实现功能:要求当SW1按键被按下后,D1-D8轮流点亮,点亮时间为100ms,当按键停下后,停止轮换;再次按下后,继续轮换。实验过程:1. 用Proteus搭建实验电路图如上。2. 将实验代码写入文本文档,并保...
一、题目
基本并行I/O口
二、要求
1、画出实验的流程图
2、编写源程序并进行注释
3、记录实验过程
4、记录程序运行结果截图
三、过程及结果记录
按照思路搭建电路图1如下:
图1:实验电路图
实现功能:要求当SW1按键被按下后,D1-D8轮流点亮,点亮时间为100ms,当按键停下后,停止轮换;再次按下后,继续轮换。
实验过程:
1. 用Proteus搭建实验电路图如上。
2. 将实验代码写入文本文档,并保存成asm文件。
3. 右键单击芯片,选择添加源文件。
4. 将程序进行编译:单击上方工具栏的source,然后build all,将asm文件编译成hex文件
5. 将可执行文件hex写入芯片
6. 点击运行仿真,观察仿真结果,如图2~4所示。
图2:开关断开时,P2 口所有位设置为1,二极管熄灭
图3:按钮开关闭合时,缓冲单元的值循环左移1,二极管依次亮
图4:按钮开关闭合时,缓冲单元的值循环左移1,二极管依次亮
基本思路:
- 进行初始化工作,包括设置堆栈指针SP,将P2 口所有位设置为1,使P2口所接发光二极管全部熄灭。将显示缓冲单元(设为20H 单元)初始化为FEH。(即在缓冲区写入11111110)
- 从P1口读数据,查看P1.0 位,如果P1.0 位为0,则执行如下循环:将显示缓冲单元的值送给P2 口,调用100ms 延时程序,将显示缓冲单元的值循环左移1 位,再送回显示缓冲单元。如果P1.0 位不为0 则不执行上述循环。
- 重复上一步的操作
可画实验流程图如下:
图5:流程图
四、源程序
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)