当前位置:网站首页>单片机开发之静态LED显示
单片机开发之静态LED显示
2022-07-30 10:37:00 【华为云】
一、题目
静态LED显示
二、要求
1、画出流程图
2、编写源程序并进行注释
3、记录实验过程
4、记录程序运行结果截图
三、过程及结果记录
按照思路搭建电路图1如下:
图1:实验电路图
7SEG2 为十位显示数码管,7SEG1 为个位显示数码管,KEY_LOAD:倒计时初值按钮,KEY_START:倒计时启动按钮
功能:KEY_LOAD按钮被按下时,加载倒计时初值(10S);当按下KEY_START按钮时,开始倒计时,每过1S,计数器减1,直到见到“00”为止。减到“00”时,使P3.0引脚上的LED按10Hz频率进行闪烁,直到再次按下KEY_LOAD按钮,才重新加载初值,并熄灭LED;再次按下KEY_START按钮又一次开始倒计时,如此反复
1. 使用Proteus搭建实验电路图如上,并将其保存为staticLED_self.DSN 文件。
2. 编写控制源程序,将其保存为staticLED_self.asm。
3. 程序编译:单击上方工具栏的source,然后build all,将asm文件编译成hex文件。将可执行文件hex写入芯片
4. 执行仿真过程观察秒表程序功能是否正确。实验结果如下图所示:
图2:装载初值并启动
图3:减到00,LED灯闪烁
四、流程
实验流程图如下所示:
图4:实验流程图
1.确定两个锁存器的地址是0FE00H和0FD00H并添加两个显示数码管。按照要求将P1.0作为start的输入,P1.1作为load的输入。
2.实验开始,判断P1.1口是否按下,则载入初值,并让两个数码管显示初值。
3.判断P1.0是否按下,若是按下就开始执行计数;若是没有按下,便返回初始状态,等待P1.1按下。
4.计数完成后,等待载入命令,若无,则停留的等待,若有,就开始下一轮循环。
5.显示数码管的控制命令可以先将其写好,存在内存中,然后使用相对寻址对这段连续地址进行数据访问,赋给锁存器。将数码管的控制信号写在内存中,并且按照1到9的顺序存放。用两个内存单元存放十位与个位的数字,该数字也就对应控制信号表格中的偏移量。即数字为n的时候,偏移n进行查表,将n代表的控制信号交给数码管。
6.开始先判断置数操作,调用初始化10的指令。将个位数字置0,十位数字置1,那么他在表格中的偏移分别是0和1,使用movc指令查表得到相应的控制信号,交给锁存器,也就是数码管。然后判断start信号,若有则开始执行计数,若没有则跳回开始,等待新的指令。当有start信号,则调用显示程序,进行数码显示。
7.调用调整程序计数。将个位的数,即30H内存单元中对应的数减1,然后和-1比较,要是不等于-1,那就说明原来个位还没有到0,不对十位操作。若是为-1,说明原来个位到了0,那便把十位减1,并将个位置9。再比较十位,若是为-1,说明原来是0,那么表明计数器到了00,计数结束。
8.执行完调整之后,先不改变显示,而是调用延时程序等待一段时间之后,在刷新数码管的显示。
五、源代码
边栏推荐
- JCL learning
- xshell使用技巧(赚分享平台怎么样)
- Flink_CDC construction and simple use
- MySQL之数据库维护
- unity3d C#语言基础(继承)
- 4、yolov5-6.0 ERROR: AttributeError: ‘Upsample‘ object has no attribute ‘recompute_scale_factor‘ 解决方案
- PyQt5 - Drawing different types of straight lines
- salesforce使用方法(salesforce authenticator下载)
- 梅科尔工作室-看鸿蒙设备开发实战笔记七——网络应用开发
- @RequestBody 和 @ResponseBody 详解
猜你喜欢

FPGA刷题——计数器(简易秒表、可置位计数器、加减计数器)

高手云集、丰富活动,斩获佳绩,超过2万名开发者参与的AI社团邀你加入!
![idea2021+Activiti [the most complete note one (basic use)]](/img/60/55cccf257523bed2c8829361cea97c.png)
idea2021+Activiti [the most complete note one (basic use)]

Domino Server SSL Certificate Installation Guide

鸿湖万联扬帆富设备开发板正式合入OpenHarmony主干

第1章 Kali与靶机系统

Flask's routing (app.route) detailed

PL5920 SOT-23-6 21V、2A、600KHz同步降压DC/DC转换器

WARN: Establishing SSL connection without server's identity verification is not recommended when connecting to mysql

MFCC to audio, the effect should not be too funny >V
随机推荐
paging
Some commands of kubernetes
oracle 导出dmp文件类型为“故障转储文件”
eric6教程(电脑的配置基本知识)
Selected System Design | Design of CAN Bus Controller Based on FPGA (with Code)
hcip06 ospf special area comprehensive experiment
PyQt5 - draw text on window
Pytorch中 nn.Transformer的使用详解与Transformer的黑盒讲解
现在报PMP还来得及参加9月的考试吗?分享敏捷全真模拟题
零代码开发入门:快速上手DIY函数公式的5个步骤
mysql与redis 区别
Meikle Studio-Look at Hongmeng Device Development Practical Notes 7-Network Application Development
分页 paging
关于verilog的时延研究
SST-Calib: A lidar-visual extrinsic parameter calibration method combining semantics and VO for spatiotemporal synchronization calibration (ITSC 2022)
Practical Walkthrough | Calculate Daily Average Date or Time Interval in MySQL
Still using Swagger?I recommend this interface management artifact with zero code intrusion
Js array operating mobile for encapsulation
PyQt5 - draw sine curve with pixels
[Qualcomm][Network] 网络拨号失败和netmgrd服务分析



