- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机实验报告—分支程序设计实验
《微机实验》报告
实验名称:分支程序设计实验
指导教师:
专业班级:
姓名:
学号:
联系方式:
任务要求
实验目的:
熟练掌握KeilC环境下汇编语言程序的调试方法,加深对汇编语言指令、机器码、寻址方式等基本内容的理解,掌握分支程序和简单程序的设计与调试方法,了解并行IO口的使用。
实验内容:
1. 设有8bits符号数X存于外部RAM单元,按以下方式计算后的结果Y也存于外部RAM单元,请按要求编写程序。
2. 利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P0、P1、P2端口输出(以压缩BCD码的形式)。P3.0为低电平时开始计时,为高电平时停止计时。
提高部分(选做):
a. 实现4位十进制加、减1计数,千位、百位由P1口输出;十位、个位由P2口输出。利用P3.7状态选择加、减计数方式。
b. 利用P3口低四位状态控制开始和停止计数,控制方式自定。
设计思路
1.分支计算
数据X存于片外0010H,首先用CJNE语句与7FH比较(会给C赋值,X7FH时,C=0;反之C=1),等于时取平方;若不等,用JNC语句,C=0(X7FH)时取反;否则与28H比较(同上),大于等于28H时取平方;小于28H时,再与14H比较,大于14H时除二,否则取反。地址存于片外0040H和0041H,低位存于0040H,高位存于0041H。
2. 电子时钟
电子时钟的时、分、秒数值分别通过P0、P1、P2端口输出(以压缩BCD码的形式)。P3.0=0时开始计时。秒满60进位,为了60秒时直接显示1分钟0秒,需先将A赋给P2,再加一,再与60H比较,看是否进位。同理,分满60进位。时满24重新开始,由于P0端口的位置错误,A与P0相互赋值时,需加中间变量RO。
3.双向计数
P3的底四位全为1时开始计数;用P3.7状态控制加、减计数方式;千位、百位由P1口输出,十位、个位由P2口输出(以压缩BCD码的形式)。P3.7为1时加计数,需先将进位C清零,用ADD语句给P2加一,并用DA语句进行十进制修正;再用ADDC语句给P1加一再十进制修正。P3.7为0时减计数,需先判断P2是否为00H, 不是00H则P2减一,是00H则给P2赋99H;同理,再判断P1是否为00H,不是00H则P1减一,是00H则给P1赋99H。
延时可以用上面程序的延时1s子程序。
三、资源分配
1.分支计算
初始数据X存于片外0010H;
取反和除二操作,结果都存于片外0040H中;
平方操作低位存于0040H中,高位存于0041H中。
2. 电子时钟
P3.7为0时开始计数,为1时停止;
P2显示秒,P1显示分,P0显示时;
R3、R4、R5用于进行延时的装载循环次数。
3.双向计数
P3的底四位全为1时开始计数;
用P3.7状态控制加、减计数方式;
P1口显示千位、百,P2口显示十位、个位。
四、流程图
图1为分支计算程序流程图
图2为电子时钟程序流程图
图3为双向计数程序流程图
五、源代码 (含文件头说明、资源使用说明、语句行注释)
1. 分支计算
/*
File name: 分支计算
Description: 8bits符号数X存于片外0010H,当X=40时,取平方,高位存于0040H,
低位存于片外0041H中;当20X40时,除二,结果存于片外0040H中;
当X=20时,对X取反,结果存于片外0040H中。
Date: 2012.10.10
Designed by: gxy
Source used: 0010H:片外RAM存储的数X
0040H:除二和取反结果、平方结果的平方的低八位
0041H:平方结果的高八位
*/
ORG 0000H
LJMP MAIN
ORG 0010H
MAIN: MOV DPTR,#0010H ;x存于片外0010H中
MOVX A,@DPTR
CLR C
CJNE A,#7FH,TO1 ;与7FH比较,判断正负
SJMP PLACE1
TO1: JNC PLACE3
CJNE A,#28H,TO2 ;与28H比较
SJMP PLACE
文档评论(0)