分支程序设计实验_第1页
分支程序设计实验_第2页
分支程序设计实验_第3页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《单片机实验》报告实验名称 分支程序设计实验指导教师 刘冬生专业班级 电子1103班姓名 XXXXXX学号 XXXXXXXXXXX联系方式 XXXXXXXXXXX一、任务要求熟练掌握KeilC环境下汇编语言程序的调试方法,加深对汇编语言指令、机器码、寻址方式等基本内容的理解,掌握分支程序和简单程序的设计与调试方法,了解并行IO口的使用8bitsXRAMY也存于外部RAM单元,请按要求编写程序。X2 当X40YX/2 20X40X 当X20X利用5124通过P0P1P2端口输出(以压缩BCD码的形式P3.0为低电平时开始计时,为高电平时停止计时。提高部分(选做:4位十进制加、减1计数,千位、百位由P1口输出;十位、个位由P2利用P3.7状态选择加、减计数方式。利用P3思考题:实现多分支结构程序的主要方法有哪些?举例说明。11计数器的区别是什么?怎样用十进制加法指令实现减1计数?二、设计思路分段函数设计第一个任务相当于一个分段函数程序,根据变量XCJNEX20、40CJNECYX与临界值的的大小关系,易知CY=0X大于临界值,CY=1则X小于临界值;如此,再进行相应的计算。另外若乘方运算结果大于255,高八位与低八位应分开存储;本次除法采用右移一位来处理,未考虑余数。24小时制时钟程序首先构建一个三重循环实现“一秒延时NOP指令(1µ)秒0-5、分0-5、时0-2。需要注意的是,在小时、分、秒达到59时,下一次应该为零。程序运行时修改P3.0的值可以实现暂停和继续的功能。三、资源分配分段函数82000H2001H2002H分配给经分段函数计算得到的结果Y。按位取反计算结果存于2001H2001H-2002H单元,除法运算结果放在2001H中。寄存器A,B存放在乘除运算中所得的中间结果。二十四小时制时钟工作寄存器R0R1R2R5-R7循环中的循环次数设定。秒、分、时数值分别由P2P1P0端口输出。四、流程图分段函数开始开始C置零取出外部数据否取反并存储结果是否大于20是是否小于40否平方并存储结果是2并存储结果结束二十四小时制时钟开始开始置0;计数R0、R1、R2置1等待P3.0=1?是 否延时1秒,P2←R2,R2加1,并转化为十进制否R6=60H?是R2R11,并转化为十进制否R1=60H?是R2R11,P2P10,P0←R0,R01十进制否是R0=24H?五、源代码(含文件头说明、资源使用说明、语句行注释)1.分段函数clrcmovdptr,#2000hmovxa,@dptr;;清零取外部数据// mova,#1hcjnea,#14h,cmp20;与20比较大小qufan: cpla;incdptrmovx@dptr,asjmpjieshucmp20: jcqufancjnea,#28h,cmp40;与40比较大小sq: movr7,a;平方movb,r7mulabincdptrmovx@dptr,amova,bincdptrmovx@dptr,asjmpjieshucmp40:jncsqchu2:rra; 2(右移一位)incdptrmovx@dptr,asjmpjieshujieshu:nopend2.二十四小时制时钟start:movr0,#01hmovmov

;寄存器初始化movp0,#00h;端口初始化movp1,#00hmovp2,#00hmova,#0//setbp3.0;设置、判断p3.0clrp3.0jbp3.0 ,$onesec:movr7,#10;1秒延时del1:movr6,#200nopdel2:movr5,#248del3:djnzr5,del3djnzr6,del2djnzr7,del1movp2mova,r2adda,#01hdaamovr2,acjner2,#60h,oneseconemin: movr2,#01hmovp2,#00h

;把秒数送入p2;r260,跳转;r2,p2初始化,开始分钟计数movp1,r1mova,r1adda,#01hdaamovr1,acjner1,#60h,onesec ;r160,跳转hour:movr2,#01h ;r2,p2,r1,p1初始化,开始小时计数movp2,#00hmovr1,#01hmovp1,#00hmovp0,r0mova,r0adda,#01hdaamovr0,acjnesjmpr0,#24hstart,onesec;判断r0是否计到24,跳转end六、程序测试方法与结果、软件性能分析X=01HX=1EHX=31H功能分析:该程序可正常执行要求的3项功能二十四小时制时钟功能分析:该程序运行后可按正确的二十四小时制时钟进行计时,程序功能完整可靠。【思考题】●实现多分支结构程序的主要方法有哪些?举例说明。答:一是利用条件转移指令实现,如DJNZ,JNC等等,二是利用分支表来实现,如分支地址表、转移指令表、地址偏移量表。●在编程上,十进制加1计数器与十六进制加1计数器的区别是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论