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

下载本文档

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

文档简介

1、实验名称 分支程序设计实验指导教师 XXX专业班级光信XXXX班XX学号 UXXXXXXXXX联系方式 Tel :XXXXXXXXXE-Mail :XXXXXXXXXXXXX.2012-10-10【任务要求】熟练掌握KeilC环境下汇编语言程序的调试方法,加深对汇编语言指令、机器码、寻址方式等基本容的理解,掌握分支程序和简单程序的设计与调试方法,了解并行10 口的使用。1. 设有8bits无符号数X存于外部RAM单元,按以下方式计算后的结果Y也存于外部RAM单兀,请按要求编写程序。X2当X 40YX/2当 20 X 40X当X 202. 利用51系列单片机设计一个 24小时制电子时钟,电子时钟

2、的时、分、秒数值分别 通过PO、P1、P2端口输出(以压缩 BCD码的形式)。P3.0为低电平时开始计时,为高电平 时停止计时。【设计思路】1、分段函数根据变量X的值所处的区间进行相应的计算,可利用比较转移指令CJNE来判断X是否等于临界值(20,40 ),再根据执行CJNE指令后进位位 G的值来判断X与临界值的 的大小关系(G=0则X大于临界值,C=1则X小于临界值),如此,再进行相应计算。另外,除法计算可能产生余数,商和余数分开存储,乘方运算结果大于255,高八位与低八位分开存储。2、二十四小时制电子时钟此程序须构建两部分循环。首先构建一个三重循环实现“一秒延时”,循环体利用NOP 指令(

3、单字节指令,1卩s)调节延时时间。再利用“一秒延时”,构建计时系统的三重循环,秒(059)、分(059)、时(023)。此外,在计时至 23:59:59时,返 回至00:00:00 ,程序运行时修改 P3.0的值可以实现暂停和继续的功能 (利用JB指令 进行判断和跳转)。【流程图】1分段函数2、二十四小时制电子时钟N资源分配】1、 分段函数寄存器DPTR用作数据指针。变量 X的值存于片外 RAM的3000H单元,计算结果存于 片外RAM的3001H3002H单元,按位取反计算结果存于 3001H单元,而除法计算结果 的商与余数和乘方计算中结果的高、低八位分开存储于3001H3002H单元。2、

4、 二十四小时制电子时钟工作寄存器R0 R1、R2分别用于秒、分、时循环次数的设定,R3 R4分别用于分与时的循环计数,R5R7用于“一秒延时”中三重循环的循环次数设定。秒、分、时数 值分别由PO、P1、P2端口输出。源代码】1 、 分段函数ORG OOOOHLJMP 1OOOHORG 1OOOH;X 赋值MOV A,#3OHMOV DPTR,#3OOOHMOVX DPTR,A存 X 于片外 RAMCLR CJUDGE1: CJNE A,#14H,JUDGE2;X 工20,跳转至JUDGE2ACCOUNT1: CPL A;X < 20,计算Y,存于片外 RAMMOV DPTR,#3001H

5、MOVX DPTR,ASJMP DONEJUDGE2: JNC JUDGE3 ;C=0SJMP ACCOUNT1 ;C=1JUDGE3: CLR CCJNE A,#28H,JUDGE4 ;XACCOUNT2: MOV B,A ;XMUL ABMOV DPTR,#3001HMOVX DPTR,AMOV DPTR,#3002HMOV A,BMOVX DPTR,A ;SJMP DONEJUDGE4: JNC ACCOUNT2 ;C=0SJMP ACCOUNT3 ;C=1ACCOUNT3: MOV B,#02HDIV ABMOV DPTR,#3001HMOVX DPTR,AMOV DPTR,#3002

6、HMOV A,BMOVX DPTR,A ;SJMP DONEDONE: SJMP $,贝U X>20,跳转至 JUDGE3,贝U X<20,跳转至 ACC0UNT1丰40,跳转至JUDGE4>40,计算Y,存于片外 RAM高、高、低八位分开储存,X>40,跳转至 ACCOUNT2,20<X<40,跳转至 ACCOUNT3;20<X<40,计算 Y,存于片外 RAM商、余数分开储存低八位分开END2、二十四小时制电子时钟ORG 0000HLJMP 2000HORG 2000HMOV P0,#00HMOV P1,#00HMOV P2,#00HMOV

7、R0,#3BHMOV R1,#3BHMOV R2,#18HMOV R3,#00HMOV R4,#00HCLR CCLR AMOV P3.0,CVOL: JB P3.0,PAUSEVOL1: MOV R5,#0AHVOL2: MOV R6,#64HVOL3: MOV R7,#0FAHDELAY: NOPNOPDJNZ R7,DELAY; 输出端口初始化计时循环次数赋值分循环”计数时循环”计数暂停功能跳转入口“一秒延时”循环次数赋值“一秒延时”DJNZ R6,VOL3“分”数加 1保存“分”的循环次数; 通过 P1 输出“分”数保存“时”的循环次数; 通过 P2 输出“时”数DJNZ R5,VOL

8、2; “一秒延时”结束INC A; “秒”数加 1DA AMOV P0,A; 通过 P0 输出“秒”数DJNZ R0,VOL; “秒循环” 60 次MOV R0,#3BH; “秒循环”循环次数复位CLR AINC R3MOV A,R3DA AMOV R3,AMOV P1,#0FFHMOV P1,R3MOV P0,#00HCLR ADJNZ R1,VOLMOV R1,#3BHMOV R3,#00HCLR AINC R4MOV A,R4DA AMOV R4,AMOV P2,#0FFHMOV P2,R4MOV P0,#00HMOV P1,#00HCLR ADJNZ R2,VOLMOV R4,#00H

9、MOV P2,#00H时钟计时满二十四小时,跳转至初始时刻暂停功能模块SJMP VOLPAUSE: JB P3.0,PAUSESJMP VOLEND【程序测试方法与结果、软件性能分析】1、分段函数截图:X=16:览址:|X0X3(X»?占X:0x0D3OOO10EF0000OO00OGOO00000000OO0000ooan00oo00DO0001X:0x00301DOoo0000OOOQ00DO00OD0000oc0030OD00COODDODODO03Xi 0x00302EDOoo0300oo00oc3000oo0000ocoaDODDODco00DCDO0003X: 0x003

10、04 5DOoo0000oo0000 000OD00cooc00DOOD00cooo00DO0003X:0jcQ03OSCDOooQO00oo0000 000OD0000ocoaDOOD03cooo00DOoo03X: 0x003073DOoo0D00oo00oc30000300cooc)a00ooODcooa000000ccXzOxOOSOeA30oo 000oo0000DO000300cooc0030ODCOco0 0000 000ODX:0xQD3OAlDOoo00OQoo00OG30aoDO00000C4000OD0300ooGODOoa03X=32:Xi 0x03002010OD00

11、030000000000000000DO0000CO00C000co00coX: 0x3033170000OD00000000000000000000000000CO00C0ooco0000XiOX309D2E00000003030000000000000000000000CO00C000C0oacoX: Q2D030451OD0003OD0300000000000000ooQO00QOco00co00co00coX!OxDOSSC03OD0303030000000000000000000000co00co00co00coXr0x30357303OD05E030000000000oc00000

12、00000co00co00co00CflX:OxD033&A03OD00OD0300oo000000000000000-000co00co00C000coX: 0x303m03OD03OD0300000000000000000000DOco00co00cococoX=48:堆址|X:OXMOO同AXlOjcOQSSOO:3D0009000000000000000000oc00OD00co00co00co00CflX; 0x303317:0303030303000000000000000D000000co00co00co00coX:OxD0352E:0303030D0300000000D

13、O000000DO0000co00co00co00coX:0x303045;03000000030000000000000000000000co00coooco0000X: 0x303350!03OD203030000000000000000000000co00co00co00coX: OjtD03573:ODOD0D03030000000000000000000000co00C000co00co0300QD00030000000000000000000000co00co00co00coX:OxD03Al:03OD030D030000000000000000000000co00co00co00co2、二十四小时制电子时钟截图: 计时状态暂停状态功能分析:该程序运行后可按正确的二十四小时制时钟进行计时,并通过手动修改P3.0的值来控制暂停与否。程序功能完整可靠。【思考题】实现多分支结构程序的主要方法有哪些?举例

温馨提示

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

评论

0/150

提交评论