汇编语言与接口技术实践——秒表

1. 设计要求

基于 51 开发板,利用键盘作为按键输入,将数码管作为显示输出,实现电子秒表。

功能要求:

(1)计时精度达到百分之一秒;

(2)能按键记录下5次时间并通过按键回看

(3)设置时间,实现倒计时,时间到,数码管闪烁 10 次,并激发蜂鸣器,可通过按键解除。

2. 设计思路

实现过程:
代码实现了一个简单的单片机程序,其中包含了数字显示、按键检测、正/反倒计时、数据存储、按键判断、复位功能、显示控制和延时等基础功能。通过设置程序结构、定义变量和寄存器、使用标签以及相关指令,实现了LED灯阵列的数字显示、按键状态的检测、倒计时功能、数据存储、按键判断和跳转、系统复位、LED灯的显示控制以及延时等功能。整体而言,该代码是一个综合性的单片机程序,展现了在嵌入式系统中常见的基础操作和功能。

程序结构:

ORG 0000H: 设置程序的起始地址为0000H。

LJMP MAIN: 无条件跳转到MAIN标签,即程序的主入口。

ORG 0100H: 设置程序的代码段起始地址为0100H。

主要变量和寄存器说明:

R0, R1, R2, R3, R4, R5, R6, R7: 寄存器,用于临时存储数据。

A, B: 通用寄存器。

P0, P1, P2: 用于控制端口的寄存器。

SRC、DPTR: 数据指针寄存器。

数字显示:

使用SHOW和LLSHOW等标签,通过LED灯阵列实现数字的显示。

按键检测:

使用KEY2标签,通过检测键盘输入状态实现按键的检测,按键状态保存在A寄存器中。

倒计时功能:

使用COUNT和COUNT1等标签,实现了一个简单的倒计时功能。

使用LLLSHOW和LLLDARKSHOW标签,通过LED灯阵列实现了倒计时数字的显示和清除。

数据存储和保存:

使用SAVE和SAVE1等标签,实现了将数据存储到指定的内存位置。

数据存储的起始位置是由R1寄存器表示。

按键判断和跳转:

使用CHECK、CHECK1、WAIT等标签,根据按键的状态进行条件判断和跳转。

复位功能:

使用RESET标签,实现了系统的复位功能。

显示控制和延时:

使用SHOW、DARKSHOW、DELAY等标签,控制LED灯的显示和延时。

其他功能:

包括了一些与LED灯和按键相关的功能实现,如LED灯的控制、显示、清除等。

拓展功能——正计时和LED8x8点阵显示:

正计时:

基于倒计时的原理,拓展了一个功能上与之相反的正计时功能,从零开始计时,直到用户的设定值。

LED8x8点阵显示:

图 1  LED8x8点阵屏

使用LED8x8点阵屏显示个位数字和一些用户交互图形和动画(注意使用时需把黄色帽子扣在另外一边)

图 2 操作流程图

3. 实现效果

图 1开始界面

按下K4选择模式(正计时/倒计时)

图 2选择正计时模式

图 3选择倒计时模式

矩阵键盘选择起始值/终点值的十位和个位,并按下K2键确认

图 4选择十位

按下K1键开启程序

图 6倒计时

时间到按下K2解除蜂鸣器,并按下K3进行左查询或K4进行右查询时间记录

4. 总结

本程序结构清晰明了。起始地址被正确设置,通过跳转到主入口实现程序的顺利执行。采用ORG指令设置代码段起始地址,提高了程序的组织性。主要的寄存器和变量都经过详细说明,有助于他人理解和维护代码。

数字显示方面,通过LED灯阵列实现了显示功能,而按键检测则通过KEY2标签实现,按键状态存储在A寄存器中。倒计时功能的实现涉及COUNT和COUNT1标签,同时通过LLLSHOW和LLLDARKSHOW标签控制LED灯阵列进行数字的显示和清除。

数据的存储和保存方面,通过SAVE和SAVE1标签实现,存储的起始位置由R1寄存器表示。按键判断和跳转方面使用了CHECK、CHECK1、WAIT等标签,根据按键状态进行条件判断和跳转。复位功能通过RESET标签实现,确保系统可以在需要时进行重新初始化。

显示控制和延时通过SHOW、DARKSHOW、DELAY等标签实现,以控制LED灯的显示和延时。

此外,还包括一些与LED灯和按键相关的功能,如LED灯的控制、显示、清除等。拓展功能方面,实现了正计时功能,为用户提供了更多选择。此外,还涉及到LED8x8点阵显示,为课设增加了一些复杂性和趣味性。

在总体上,这个单片机课设考虑到了多个方面,包括基本功能、用户交互、数据存储和显示等,展现了一个完整而且有趣的设计。程序的模块化和注释使得代码易于理解和维护。在进一步的开发和测试中,我们也考虑到了一些边界条件和错误处理,以确保系统的稳定性和可靠性。

课程评价:
单片机课程为我们提供了深入了解嵌入式系统的机会,通过学习底层硬件、嵌入式编程和实际应用,培养了学生的系统设计和调试能力,同时强化了团队合作和问题解决的技能。这门课程对计算机工程专业学生具有重要意义。

5. 代码

      ORG 0000H

  LJMP MAIN

  ORG 001BH  //=======中断服务程序=======

  MOV TL0,#0B0H

  MOV TH0,#3CH

  CPL P1.0

  DJNZ R5,RETURN

  CJNE R4,#10H,DONE

  MOV R4,#0CH

  DONE:

  INC R4

  MOV R5,#0AH

  RETURN:

  RETI

  ORG 0100H  //=============主程序==============

  SRC DATA 60H     ;定义SRC数据指针存放R0值

  CLR F0

MAIN:

      ACALL NULL

      MOV R0,#20H   //R0作为显示数据操作指针

  MOV R1,#20H   //目前的数据指针   

  LCALL INTERRUPT

  MOV R4,#0DH

  AJMP MODELCHECK

NULL: //清空上一次操作残留的数据

      MOV R0,#2DH

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/493468.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

音视频技术-电脑连接调音台时交流声的产生与消除

当电脑(笔记本/台式机)声卡通过音频线与调音台(或扩音机)连接时,能听到“交流声”。有时很轻微,有时很明显,甚至干扰正常的演讲或发言。 很多时候,我们在台上演讲时,都会…

模拟、排序(归并排序)算法

模拟、排序算法 一、模拟例题1、错误票据题目信息思路题解 2、回文日期题目信息思路方法一:暴力做法方法二:优化解法 题解方法一:暴力求解方法二:优化解法 二、排序例题1、归并排序题目信息思路题解 一、模拟 例题 1、错误票据 …

springboot222学生网上选课系统的设计与实现

学生网上选课系统的设计与实现 摘 要 如今社会上各行各业,都喜欢用自己行业的专属软件工作,互联网发展到这个时候,人们已经发现离不开了互联网。新技术的产生,往往能解决一些老技术的弊端问题。因为传统学生选课信息管理难度大&…

MDC500-16-ASEMI工业电机专用MDC500-16

编辑:ll MDC500-16-ASEMI工业电机专用MDC500-16 型号:MDC500-16 品牌:ASEMI 正向电流(Id):500A 反向耐压(VRRM):1600V 正向浪涌电流:600A 正向电压&a…

MATLAB Function转C代码实战

文章目录 前言1. 准备工作2. 使用MATLAB Coder2.1 确定输入输出的类型2.2 MATLAB Coder过程 3. 代码调整和优化4. 编译和测试5. 性能分析和优化结语 前言 在科学与工程领域,MATLAB(Matrix Laboratory)是一种广泛使用的高级技术计算软件&…

【C之·预处理器】

系列文章目录 文章目录 前言一、预处理指令1. #line的用法1.1 概述 2. #error2.1 概述 二、示例1. #line2. #error 总结 前言 C 预处理器不是编译器的组成部分,但是它是编译过程中一个单独的步骤。简言之,C 预处理器只不过是一个文本替换工具而已&#x…

从0到1入门C++编程——08 函数模板和类模板

文章目录 函数模板1.函数模板基本语法2.函数模板使用的注意事项3.函数模板案例——数组排序4.普通函数和函数模板的区别5.普通函数和函数模板的调用规则6.模板的局限性 类模板1.类模板2.类模板和函数模板的区别3.类模板中成员函数创建时机4.类模板对象做函数参数5.类模板与继承…

飞机订票系统

飞机订票系统 获取源码——》公主号:计算机专业毕设大全

Sora背后团队大揭秘!天才00后?

现在世界上最受关注的技术团队是哪一支? Sora 团队,已经来到聚光灯中心。 不仅项目负责人评论区被挤爆,成了𝕏最火“景点” 。 当 OpenAI 出手发布 Sora 之后,给人一种降维打击的感觉 —— 效果和之前的技术相比高出…

「哈哥赠书活动 - 48期」-『商业分析思维与实践:用数据分析解决商业问题宣传文案』

⭐️ 赠书 - 《商业分析思维与实践》 ⭐️ 内容简介 本书以业务为导向,详细地讲解了如何通过大数据分析来解决商业问题。其目的在于运用大数据分析思维,帮助读者把学术知识应用于真实的业务场景,解决实际的业务问题。本书基于业务问题&#x…

应急响应实战笔记03权限维持篇(3)

0x00 前言 攻击者在获取服务器权限后,会通过一些技巧来隐藏自己的踪迹和后门文件,本文介绍Linux下的几种隐藏技术。 0x01 隐藏文件 Linux 下创建一个隐藏文件:touch .test.txt touch 命令可以创建一个文件,文件名前面加一个 点…

MYSQL--(1.存储引擎 *2.事务*)

一 存储引擎: 1.介绍 1>在数据库管理系统当中通过使用数据引擎来实现数据的增删改,查询 2>不同的存储引擎提供的有不同的存储机制,索引技巧等功能 MYSQL的核心,就是存储引擎 3>同样的,用户也可以根据自己的需要进行选择,更改自己需要…