华中科技大学单片机实验二报告

华中科技大学单片机实验二报告

ID:25764246

大小:221.62 KB

页数:11页

时间:2018-11-22

华中科技大学单片机实验二报告_第1页
华中科技大学单片机实验二报告_第2页
华中科技大学单片机实验二报告_第3页
华中科技大学单片机实验二报告_第4页
华中科技大学单片机实验二报告_第5页
资源描述:

《华中科技大学单片机实验二报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、《单片机实验》报告实验名称分支程序设计指导教师刘冬生专业班级学号联系方式..一.任务要求熟练掌握KeilC环境下汇编语言程序的调试方法,加深对汇编语言指令、机器码、寻址方式等基本内容的理解,掌握分支程序和简单程序的设计与调试方法,了解并行IO口的使用。1.设有8bits符号数X存于外部RAM单元,按以下方式计算后的结果Y也存于外部RAM元,请按要求编写程序。2.利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P0、P1、P2端口输出(以压缩BCD码的形式)。P3.0为低电平时开始计时,为高电平时停止计时。提高部分(选做):a.实现4位十进制

2、加、减1计数,千位、百位由P1口输出;十位、个位由P2口输出。利用P3.7状态选择加、减计数方式。b.利用P3口低四位状态控制开始和停止计数,控制方式自定。二.设计思路1.分段函数设计对于第一个任务,根据变量X的值的不同进行相应的计算。所以我们首先要判断X的值属于那个范围。我们可利用比较转移指令CJNE来判断X是否等于临界值20,40,若不等,再根据执行CJNE指令后的进位位CY的值来判断X与临界值的的大小关系,如:CY=0则X大于临界值,CY=1则X小于临界值;然后根据X的值所在的区间进行相应的计算。应该注意的是,除法计算中可能产生余数,商和余数应该分开存储,若乘方运

3、算结果大于255,高八位与低八位应分开存储2.24进制时钟本程序须可以构建两部分循环。首先构建一个三重循环实现“一秒延时”,循环体利用NOP指令(单字节指令,1µs)经多次循环达到延时一秒的效果。再利用已经构建好的“一秒延时”部分,设计计时系统的三重循环,秒(0-59)、分(0-59)、时(0-23)。秒和分计60次,小时计24次,但,是从0开始计,所以在分、秒达到59,小时达到23时,下一次应该为零。程序运行时修改P3.0的值可以实现暂停和继续的功能..一.资源分配1.分段函数根据题目的条件,首先,设该8位无符号数为30H,把片外地址4000H分配给它,把片外地址40

4、01H和4002H分配给经分段函数计算得到的结果Y。按位取反计算结果存于4001H单元,而除法计算结果的商与余数和乘方计算中结果的高、低八位分开存储于4001H-4002H单元。用寄存器A,B来存放在乘除运算中所得的中间结果。2.二十四进制时钟工作寄存器R0、R1、R2分别用于秒、分、时循环次数的设定,R3、R4分别用于分与时的循环计数,R5-R7用于“一秒延时”中三重循环的循环次数设定。秒、分、时数值分别由P2、P1、P0端口输出。二.流程图开始给定X,并把X的值赋到A中设置一个数据指针将X的值存在外部存储器中A≠20?NCY≠1?Y..对X取反并赋给YNYCY清零将

5、A的值存到4001HA≠40?CY≠1?NYY=X/2YNY=X2将A的值存到4001H将B的值存到4002H结束开始将P0,P1,P2,P3清零P3.0=0?NY延时1S秒计数,R0加1并存入A中,转换成BCD码..R0=60H?将A赋给P2NYR0,P2置零分计数,R1加1,并存入A中,转换成BCD码R1=60H?将A赋给P1将R1,P1置零YN小时计数,R2加1并存入A,转换成BCD码R2=R4??将A赋给P0将R2,P0置零NY一.源代码1.分段函数ORG0000HLJMPMAINORG0100HMAIN:MOVA,#29H;将8位无符号数赋给AMOVDPTR,

6、#4000H;定义数据指针MOVX@DPTR,A;将X存于片外RAMCLRC;将进位位清零KIND1:CJNEA,#14H,KIND2;将A与14H比较,若不等于14H,跳转至KIND2OUT1:CPLA;对A中内容取反..MOVDPTR,#4001H;定义数据指针MOVX@DPTR,A;将计算结果存于片外地址4001HSJMPDONEKIND2:JNCKIND3;判断进位位CY是否为0,若为0,跳转至KIND3SJMPOUT1;否则跳转至OUT1KIND3:CLRC;将进位位清零CJNEA,#28H,KIND4;将A中内容与28H比较,若不等于28H,跳转至KIND4

7、OUT2:MOVB,A;将A中内容赋给BMULAB;计算X的平方,将结果高八位存于B,低八位存于AMOVDPTR,#4001H;定义数据指针MOVX@DPTR,A;将结果低八位存于片外地址4001HINCDPTR;数据指针加一MOVA,B;将B中内容赋给AMOVX@DPTR,A;将结果高八位存于片外地址4002HSJMPDONEKIND4:JNCOUT2;判断进位位是否为0,若为0,跳转至OUT2SJMPOUT3;否则跳转至OUT3OUT3:MOVB,#02HDIVAB;计算X/2,将商存于A,余数存于BMOVDPTR,#4001H;定义

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。