当前位置:网站首页>单片机开发之静态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.执行完调整之后,先不改变显示,而是调用延时程序等待一段时间之后,在刷新数码管的显示。
五、源代码
边栏推荐
- Oracle中SQL语言和分页rownum分析
- 360 released a future-oriented EDR to protect the security of government and enterprise user terminals in an all-round way
- Paper reading: SegFormer: Simple and Efficient Design for Semantic Segmentation with Transformers
- Flask's routing (app.route) detailed
- SST-Calib: A lidar-visual extrinsic parameter calibration method combining semantics and VO for spatiotemporal synchronization calibration (ITSC 2022)
- (BUG record) No module named PIL
- oracle export dmp file type as "crash dump file"
- Neural Network Study Notes 4 - Autoencoder (including sparse, stacked) (updated)
- xshell使用技巧(赚分享平台怎么样)
- OC - Manual Reference Counting Memory Management
猜你喜欢
MFCC to audio, the effect should not be too funny >V
Neural Ordinary Differential Equations
现在报PMP还来得及参加9月的考试吗?分享敏捷全真模拟题
【HMS core】【FAQ】HMS Toolkit典型问题合集1
Classes and Objects - 6 Default Member Functions
神经网络学习笔记4——自动编码器(含稀疏,堆叠)(更新中)
Re15: Read the paper LEVEN: A Large-Scale Chinese Legal Event Detection Dataset
PyQt5 - draw sine curve with pixels
【AGC】增长服务2-应用内消息示例
电压跟随器不要随便加
随机推荐
salesforce使用方法(salesforce authenticator下载)
【HMS core】【FAQ】HMS Toolkit Typical Questions Collection 1
log4js入门
图像去噪——Neighbor2Neighbor: Self-Supervised Denoising from Single Noisy Images
AB测试 总结归纳
OC - Manual Reference Counting Memory Management
oracle export dmp file type as "crash dump file"
[100 Solidity Skills] 1. Contract reentrancy attack
PyQt5 - Drawing different types of straight lines
【云原生】-Docker安装部署分布式数据库 OceanBase
Linux内核设计与实现(十)| 页高速缓存和页回写
正则表达式快速入门笔记
第1章 Kali与靶机系统
spark udf 接受并处理 null值.
xshell使用技巧(赚分享平台怎么样)
MFCC转音频,效果不要太逗>V<!
还在用Swagger?我推荐这款零代码侵入的接口管理神器
基于.NetCore开发博客项目 StarBlog - (16) 一些新功能 (监控/统计/配置/初始化)
360 released a future-oriented EDR to protect the security of government and enterprise user terminals in an all-round way
4. yolov5-6.0 ERROR: AttributeError: 'Upsample' object has no attribute 'recompute_scale_factor' solution