51汇编--数码管时钟

实现一个24小时制的电子钟程序,在实验箱的6个数码管上显示时分秒(用定时器0中断更新计时时间,时间值以压缩BCD码形式保存在内部RAM的30H31H和32H单元)。
PC机可通过串行口发送要设置的时间给单片机(发送的时间格式为压缩BCD码),单片机接收到设置时间后从该时间继续计时(此为串口调时功能)。

代码

;数码管接到CS0,位选地址8001,段选地址8002
;R7:数码管位,R6:T0中断次数,R5R4:演示程序,R3:2位BCD转十进制暂存,R0:指针ORG 0000HLJMP MAINORG 000BH; T0_INTLJMP T0_INTORG 0023H;串口中断LJMP S_INTORG 0050H
MAIN:;初始化定时器MOV TMOD, #21HMOV TL0, #40536 MOD 256  ;T0定时50msMOV TH0, #40536 / 256MOV TL1, #232;设置波特率为2400MOV TH1, #232SETB EASETB ET0SETB ESSETB TR0SETB TR1MOV PCON, #80H;波特率倍增MOV SCON, #50HMOV R7, #01H;用于循环左移,选择某个数码管,从秒的个位开始MOV R6,#40;T0每中断20次,更新一次数码管时间MOV R0,#32H;指针 SJMP $T0_INT:MOV TL0, #40536 MOD 256  ;T0重装初值MOV TH0, #40536 / 256DJNZ R6,T0LOOP;没到1s,只刷新显示MOV R6,#40;重装计数值
T0LOOP1:MOV A,@R0LCALL TBCD2DCJNE R0,#30H,T0L1CJNE A,#23,JIASJMP T0L2T0L1:	CJNE A,#59,JIA
T0L2:    MOV @R0, #00H;59+1=0DEC R0;如果溢出,则判断前一个数CJNE R0,#2FH, T0LOOP1JIA:INC A;如果没溢出,就+1;然后再恢复成BCD码LCALL D2TBCDMOV @R0, AMOV R0, #32H;恢复R0的数值,准备刷新数码管
T0LOOP:MOV A,@R0LCALL SHOWMOV A,@R0SWAP ALCALL SHOWDEC R0CJNE R0, #2FH,T0LOOP;刷新显示MOV R7, #01HMOV R0,#32HRETIS_INT:;串口中断服务程序JNB RI,$CLR RIMOV A, SBUFLCALL TBCD2DPUSH ACCCLR CCJNE R0,#30H,s1SUBB A,#24SJMP s2
s1: SUBB A,#60
s2:	POP ACCJC storeCLR A
store:LCALL D2TBCDMOV @R0,ADEC R0CJNE R0, #2FH,S_INTMOV R0,#32HRETISHOW:;把A的底4位当作BCD码,送入数码管显示,每调用一次,位选左移一次PUSH ACCMOV A,R7MOV DPTR,#8001HMOVX @DPTR,ARL AMOV R7,APOP ACCANL A,#0FHMOV DPTR,#TABMOVC A,@A+DPTR;获取字形码MOV DPTR,#8002HMOVX @DPTR,A;写入字形码LCALL DELAYCLR AMOVX @DPTR,A;写入字形码RETTBCD2D:;把A的内容当作两位BCD数据,转换成对应十进制数,并放回APUSH ACC;保护ACC,等下还要用ANL A,#0FH;MOV R3, APOP ACCSWAP AANL A, #0FHMOV B, #10MUL ABADD A,R3;高4位*10+低4位RETD2TBCD:;把A的内容当作十进制数,转换成对应两位BCD数据,并放回AMOV B, #10DIV AB;十位在A,个位在BSWAP AORL A, B;数据合并RETDELAY:;10ms则X=23,Y=204MOV R5,#20
D1:	MOV R4,#20DJNZ R4,$DJNZ R5,D1RET	
;	   0   1    2   3   4   5   6   7   8   9
TAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHEND    

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

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

相关文章

java 重写接口的default方法

在Java 8中,接口可以包含默认方法(default methods),这些方法可以有默认实现。如果一个类实现了包含默认方法的接口,并且没有提供这个方法的实现,则会使用接口中的默认实现。 如果需要重写接口中的默认方法…

【MySQL精通之路】SQL优化(1)-查询优化(11)-多范围查询优化

主博客: 【MySQL精通之路】SQL优化(1)-查询优化-CSDN博客 上一篇: 【MySQL精通之路】SQL优化(1)-查询优化(10)-外部联接简化-CSDN博客 下一篇: 当基表很大且未存储在存储引擎的缓存中时,使用辅助索引上的范围扫描读取行可能会…

uniappx 获取设备唯一标识(OAID、AAID、AndroidID、IMEI等) Ba-IdCode-U

简介(下载地址) Ba-IdCode-U 是一款可以获取国内各大手机厂商 OAID(开放匿名设备标识)及海外手机平台 AAID(安卓广告标识)的uniapp插件。另外也支持获取 IMEI/MEID、AndroidID、WidevineID、PseudoID、GUI…

Spring Cloud Alibaba-06-Sleuth链路追踪

Lison <dreamlison163.com>, v1.0.0, 2024.4.03 Spring Cloud Alibaba-06-Sleuth链路追踪 文章目录 Spring Cloud Alibaba-06-Sleuth链路追踪为什么使用链路追踪常见链路追踪解决方案Sleuth概述概述Sleuth术语 Sleuth Zipkin 原理Sleuth原理简述Zipkin 原理简述 Sleut…

Python库之`lxml`的高级用法深度解析

Python库之lxml的高级用法深度解析 简介 lxml是一个功能强大的第三方库&#xff0c;它提供了对XML和HTML文档的高效处理能力。除了基本的解析和创建功能外&#xff0c;lxml还包含了一些高级用法&#xff0c;这些用法可以帮助开发者在处理复杂文档时更加得心应手。 高级解析技…

代码随想录——路径总和(Leetcode113)需要回顾

题目链接 递归 本题递归需要遍历整棵树&#xff0c;所以递归没有返回值 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* T…

苹果M4性能分析:进步神速?还有多少空间?

2024年初&#xff0c;苹果推出了M4处理器&#xff0c;令人意外的是&#xff0c;它的发布距离M3发布仅仅过去了半年时间。更让人惊讶的是&#xff0c;M4首次亮相于iPad Pro。这一新处理器不仅仅是M3的简单升级版本&#xff0c;而是一次全面的架构优化。本文将详细分析M4处理器的…

Vue基础(1)数据绑定

一. 文本插值 普通文本可以使用双大括号 {{ }} &#xff0c;要想插入 HTML&#xff0c;需要使用 v-html 指令。 <template><h1>Message: {{ state.msg }}</h1><p>{{ state.count 1 }}</p><p>{{ state.rawHtml }}</p><p v-html…

【教学类-58-02】黑白三角拼图02(3*3宫格)262144种

背景需求&#xff1a; 已知黑白三角拼图2*2&#xff08;4个拼图&#xff09;一共有256种排列方法 【教学类-58-01】黑白三角拼图01&#xff08;2*2宫格&#xff09;256种-CSDN博客文章浏览阅读142次&#xff0c;点赞5次&#xff0c;收藏12次。【教学类-58-01】黑白三角拼图01…

深度学习之基于Matlab卷积神经网络(CNN)手写数字识别

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与意义 手写数字识别是计算机视觉领域的一个重要问题&#xff0c;也是深度学习应用的一个典型场景。卷…

什么是固态继电器?

固态继电器是不需要使用任何机械部件的开关继电器。这通常使它们具有比普通机电继电器寿命更长的优势&#xff0c;然而&#xff0c;尽管固态继电器速度快且耐用&#xff0c;但仍具有某些设计规定。 固态继电器风靡全球&#xff0c;彻底改变了从农业自动化到航空航天等各个行业…

中国数学会发布数学期刊分级目录

T1,T2,T3均是中国数学会的期刊分类 下载地址&#xff1a; 中国数学会发布数学期刊分级目录-太原理工大学数学学院 (tyut.edu.cn)

银行总部文件自动下发,如何保证不影响专线网络使用?

银行在我国金融体系中占据重要地位&#xff0c;是我国市场经济的重要组成部分。我国商业银行随着自身不断发展&#xff0c;规模日益扩大&#xff0c;形成了“总行-分行-支行-营业网点”的典型层级管理模式。在日常中&#xff0c;银行总部存在文件下发的场景&#xff1a; 银行总…

1.4 接入网和物理媒体

接入网络和物理媒体 Q: 怎样将端系统和边缘路由器连接&#xff1f; 住宅接入网络 单位接入网络 &#xff08;学校、公司&#xff09; 无线接入网络 注意&#xff1a; 接入网络的带宽 (bits persecond) &#xff1f; 共享/专用&#xff1f; 接入网: 这是指将端系统物理连接到其…

数学基础 -- 条件概率、后验概率与联合概率

条件概率与后验概率 技术背景 条件概率和后验概率是概率论中的两个重要概念&#xff0c;在机器学习和贝叶斯推理中尤为关键。理解这两个概念对于处理不确定性和进行推理具有重要意义。本文将通过直观的例子和数学解释来详细介绍条件概率与后验概率。 条件概率 条件概率是指…

Linux rzsz安装(在线安装、离线安装),用于上传下载文件

在线安装&#xff1a; yum -y install lrzsz 离线安装&#xff1a; 1.下载安装包地址&#xff1a;http://freshmeat.sourceforge.net/projects/lrzsz/ 2.通过同一网络内可以上传文件的机器&#xff08;B机&#xff1a;10.210.168.18&#xff09;先将lrzsz-0.12.20.tar.gz上传至…

盘点Java中的排序操作方案

盘点Java中的排序操作方案 Comparable 接口-自然排序 类implements Comparable接口 类重写 public int compareTo(Object obj)方法 如果返回值为正数&#xff0c;则表示当前对象(调用该方法的对象)比 obj 对象“大”&#xff1b;反之“小”&#xff1b;如果为零的话&#x…

多家知名媒体到访“光子1号金融算力中心“ 交流AI与算力未来观

5月23日&#xff0c;企商在线 “光子1号金融算力中心媒体参观日”活动成功举办&#xff0c;十多家主流媒体、IT行业媒体及自媒体代表走进光子1号金融算力中心&#xff0c;深入了解企商业务发展、战略规划及“光子1号金融算力中心”等企商打造的新型数字基础设施&#xff0c;共同…

Python条件分支与循环

大家好&#xff0c;当涉及到编写高效和灵活的程序时&#xff0c;条件分支和循环是 Python 中至关重要的概念。它们允许我们根据不同的条件执行不同的代码块&#xff0c;或者重复执行一组语句。条件分支和循环是测试开发工程师在日常工作中经常使用的工具&#xff0c;无论是编写…

光耦合器的特性和应用概述

光耦合器又称光电耦合器&#xff0c;是现代电子学中必不可少的元件&#xff0c;确保隔离电路之间安全有效的信号传输。本文探讨了光耦合器的特性及其多样化应用&#xff0c;强调了它们在各种电子系统中的关键作用。 什么是光耦合器&#xff1f; 光耦合器是一种设计用于利用光传…