当前位置:网站首页>单片机开发之静态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.执行完调整之后,先不改变显示,而是调用延时程序等待一段时间之后,在刷新数码管的显示。
五、源代码
边栏推荐
- 【HarmonyOS】【ARK UI】HarmonyOS ets语言怎么实现双击返回键退出
- Drools 规则引擎一文读懂
- 京东校招笔试题+知识点总结
- SST-Calib: A lidar-visual extrinsic parameter calibration method combining semantics and VO for spatiotemporal synchronization calibration (ITSC 2022)
- Still using Swagger?I recommend this interface management artifact with zero code intrusion
- 【云原生】-Docker安装部署分布式数据库 OceanBase
- Scrapy crawler website image crawling
- Drag and drop events, dataTransfer, getBoundingClientRect
- jmeter接口压力测试-(二)
- 高手云集、丰富活动,斩获佳绩,超过2万名开发者参与的AI社团邀你加入!
猜你喜欢

Quick Start Tutorial for flyway

Nacos configuration in the project of battle

数据库性能系列之索引(上)

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

Telerik2022 R2,有效的自动化测试

async.js入门

4. yolov5-6.0 ERROR: AttributeError: 'Upsample' object has no attribute 'recompute_scale_factor' solution

208. 实现 Trie (前缀树)

ospf2 two-point two-way republish (question 2)

PyQt5 - draw sine curve with pixels
随机推荐
电压跟随器不要随便加
spark udf accepts and handles null values.
Re21: Read the paper MSJudge Legal Judgment Prediction with Multi-Stage Case Representation Learning in the Real
ESP32CAM 1838接收红外遥控器信号
PyQt5 - Drawing different types of straight lines
【AGC】增长服务2-应用内消息示例
Nacos configuration in the project of battle
Easy gene: human tRNA gene loci showed age-related high DNA methylation | research articles
分页 paging
三个点语法和DOM观察者
360发布面向未来的EDR,全方位守护政企用户终端安全
Flask's routing (app.route) detailed
VLAN实验
神经网络学习笔记4——自动编码器(含稀疏,堆叠)(更新中)
R语言怎么绘图(一个r语言完整的命令有什么)
优酷VIP会员周卡只需7.5元,看《沉香如屑》用优酷视频
安全提示:Qt中的FreeType
Verilog之数码管译码
Alibaba Cloud OSS Object Storage
活动速递| Apache Doris 性能优化实战系列直播课程初公开,诚邀您来参加!



