没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
























《微机实验》报告
1
实验名称 分支与循环程序设计 成 绩
指导教师 ******
专业班级 ****** 姓 名 白*** 学 号 *******
联系电话 ********
一、任务要求
1. 熟练掌握 Keil 环境下汇编语言程序的调试方法,加深对汇编语言指令、机器码、
寻址方式等基本内容的理解,掌握分支程序和简单程序的设计与调试方法,了解并
行 IO 口的使用。
2. 设有 8bits 符号数 X 存于外部 RAM 单元,按以下方式计算后的结果 Y 也存于外部
RAM 单元,请按要求编写完整程序。
3. 利用 51 系列单片机设计一个 24 小时制电子时钟,电子时钟的时、分、秒数值分别
通过 P0、P1、P2 端口输出(以压缩 BCD 码的形式)。P3.0 为低电平时开始计时,
为高电平时停止计时。设计 1s 延时子程序(延时误差小于 10us,晶振频率
12MHz)。
4. 1)实现 4 位十进制加、减 1 计数,千位、百位由 P1 口输出;十位、个位由 P2 口
输出。利用 P3.7 状态选择加、减计数方式。
2)利用 P3 口低四位状态控制开始和停止计数,控制方式自定。
二、设计思路

《微机实验》报告
2
1. 先在外部 RAM 取数,然后判断该符号数是否为负数,若为负数,则取相反数并存数;
若为正数,则接着判断该数是否大于等于 64,若满足,则求平方并存数,先存低
位,后存高位;若小于 64,则接着判断该数是否大于 10,若满足,则求该数的一
半并存数;若小于等于 10,则取相反数并存数。
2. 第一步先编可以延时 1S 的子程序 DELAY;接着判断 P3.O 是否满足开始计数条件,
若不满足,则重复判断;若满足,则对时分秒分别赋值,调用延时子程序,判断是
否满足计时条件,若不满足,则重复判断直至满足;若满足,则秒钟自加一,循环,
判断秒钟循环满 60 次后出循环,对分钟自加一,然后继续循环,最后判断分钟循
环满 60 次后出循环,对时钟自加一,然后判断时钟循环满 24 则回到初值,时分秒
重新赋值并重新开始循环。
3. 判断 P3.7,若为 1,则进行加一计数,若为 0,则跳转至另一程序进行减一计数;
加一计数中,先取低位 P1 送 A,自加一,送 P1,判断是否有溢出,若有,则取高
位 P2 送 A,自加一,送 P2,然后回判断循环;减一计数同理,即先取低位 P1 送
A,自减一,送 P1,判断是否有进位,若有,则取高位 P2 送 A,自减一,送 P2,
然后回判断继续循环。
三、资源分配
1.2000H 片外 RAM 存数
2001H 存结果低八位
2002H 存结果高八位
B 寄存器 暂存结果高八位
2.P3.0 存计时判断位
R0、R1、R2 存延时子程序中各重循环的循环次数
R3、R4、R5 存时分秒的循环次数
P0、P1、P2 存时分秒的输出值
3.P1、P2 分别存十进制计数的低两位、高两位
P3.7 存计数方式的控制位

《微机实验》报告
3
四、流程图
1、8 bit 符号数的判断与计算
开始
取数,放入A
A≥64 A>10
A²低字节存A
A²高字节存B
DPTR加1,存A,
DPTR再加1,存B
A=A/2 A取反
DPTR加1,存A
结束
A.77=0?
Y
N
Y
N

《微机实验》报告
4
2、时钟设计
开始
P3.0=0?
R3←24,P0←#00H
R4←60,P1←#00H
R5←60,P2←#00H
P3.0=0?
Y
N
P2加1,并调整为十进制
N
Y
R5=0?
P1加1,并调整为十进制
R4=0?
P0加1,并调整为十进制
R3=0?
DELAY 1S
Y
Y
N
N
Y
N
剩余15页未读,继续阅读
资源评论


GeniusID
- 粉丝: 2
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
