分支程序设计实验-单片机第二次试验.doc
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
单片机技术实验设计报告 一、任务要求 本实验的任务是设计一个基于 51 系列单片机的电子时钟系统,能够显示时、分、秒的数值,并具有计数功能。同时,系统还需要具有控制功能,可以控制时钟的开始和停止。 二、设计思路 1、将 8bits 符号数从外部 RAM 单元取出至 A 中,符号位为 1 的时候为负数,进行取反运算;当符号位为 0 的时候为正数,因此将 A 与 20 进行比较,当 A≤20 时跳至取反运算那一步;当 A>20 时将 A 与 40 进行比较,如果当 A≥40 时则对其进行平方运算那一步,当 A<40 时则进行除法运算那一步。 2、清零 R0~R2 和 P0~P2,开始先判断控制位 P3.0 是不是 0,当 P3.0=1 时原地踏步重复判断,当 P3.0=0 时开始运行程序。计时开始,进行秒钟 R0 计数,每次计数完成用 BCD 码子程序转换,然后判断计数后 R0 值是否到 60,若 R0 的值不足 60,就直接输出给 P2,若 R0 的值为 60,就把 R0 和 P2 进行清零后,开始分钟计数部分。 三、资源分配 1. 分支程序:数据指针 DPTR 对片外 RAM 进行读写操作 * 2000H:存放 8bits 符号数 X * 2010H:存放结果 Y(取反后的数,或者平方后的高 8 位,或者除法后的商) * 2011H:存放结果 Y(平方后的低 8 位,或者除法后的余数) 2. 时钟程序: * R0、R1、R2:分别进行秒钟,分钟,时钟的计数 * P2、P1、P0:分别输出秒钟,分钟,时钟 * P3.0:是否计数的控制位 * R3、R4、R5:为 1s 延时程序指定循环次数 * B:BCD 码转换子程序的操作数 四、流程图 1. 分支程序流程图: * 取出符号数 X * 判断符号位 * 取反运算 * 平方运算 * 除法运算 * 存放结果 Y 2. 时钟程序的流程图: * 判断控制位 P3.0 * 计时开始 * 秒钟 R0 计数 * 分钟 R1 计数 * 时钟 R2 计数 * BCD 码转换 * 输出时、分、秒的数值 五、源代码 1. 分支程序代码: * ORG 0000H * SJMP START * START: MOV DPTR, #2000H * MOV A, #31 * MOVX @DPTR, A * MOV B, 0 * MOVX A, @DPTR * JNB ACC.7, COMP1 * ... 2. 时钟程序代码: * ... * CJNE A, #20, COMP2 * JC LP3 * ... * MUL AB * ... 六、结论 本实验设计了一个基于 51 系列单片机的电子时钟系统,能够显示时、分、秒的数值,并具有计数功能。系统还具有控制功能,可以控制时钟的开始和停止。通过本实验,我们掌握了单片机的编程和设计技术,并且对单片机的应用有了更深入的了解。
- 粉丝: 29
- 资源: 5万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- java-leetcode题解之Number of Big Islands.java
- java-leetcode题解之Number of Atoms.java
- java-leetcode题解之Number Complement.java
- HasChat-mysql安装配置教程
- csa_hls-注意力机制
- java-leetcode题解Non-negative Integers without Consecutive Ones
- pytorch安装-pytorch安装
- java-leetcode题解之Next Permutation.java
- FJSP_algorithm-模拟退火算法
- java-leetcode题解之Network Delay Time.java