




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上单片机实验报告实验名称 分支程序设计 指导教师 刘 冬 生 专业班级 学 号 联系方式 一 任务要求熟练掌握KeilC环境下汇编语言程序的调试方法,加深对汇编语言指令、机器码、寻址方式等基本内容的理解,掌握分支程序和简单程序的设计与调试方法,了解并行IO口的使用。1. 设有8bits符号数X存于外部RAM单元,按以下方式计算后的结果Y也存于外部RAM元,请按要求编写程序。2.利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P0、P1、P2端口输出(以压缩BCD码的形式)。P3.0为低电平时开始计时,为高电平时停止计时。提高部分(选做):a
2、. 实现4位十进制加、减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,高八位与低八位应分开存储224进制时钟本程序须可以构建两部分循环。首先构建一个三重循环实现“一秒延时”,循环体利用NOP指令(单字节指令,1s)经多次循环达到延时一秒的效果。再利用已经构建好的“一秒延时”部分,设计计时系统的三重循环,秒(0-59)、分(0-59)、时(0-23)。秒和分计60次,小时计24次,但,是从0开始计,所以在分、秒达到59,小时达到23时,下一次应该为零。程序运行时修改P3.0的值可以实现暂停和继续的功能三 资源分配1. 分段函数 根据题目的条件,首先,设该8位无符号数为30H,把片外地址4000H分配给它,把片外地址4001H和4002H分配给经分段
4、函数计算得到的结果Y。按位取反计算结果存于4001H单元,而除法计算结果的商与余数和乘方计算中结果的高、低八位分开存储于4001H-4002H单元。用寄存器A,B来存放在乘除运算中所得的中间结果。 2. 二十四进制时钟 工作寄存器R0、R1、R2分别用于秒、分、时循环次数的设定,R3、R4分别用于分与时的循环计数,R5-R7用于“一秒延时”中三重循环的循环次数设定。秒、分、时数值分别由P2、P1、P0端口输出。 四 流程图开始给定X,并把X的值赋到A中设置一个数据指针将X的值存在外部存储器中A20? N CY1? Y对X取反并赋给Y N YCY清零将A的值存到4001H A40?CY1? N
5、Y Y=X/2 Y NY=X2将A的值存到4001H将B的值存到4002H结束开始将P0,P1,P2,P3清零P3.0=0? N Y延时1S秒计数,R0加1并存入A中,转换成BCD码R0=60H?将A赋给P2 N YR0,P2置零分计数,R1加1,并存入A中,转换成BCD码R1=60H?将A赋给P1将R1,P1置零 Y N小时计数,R2加1并存入A,转换成BCD码R2=R4? 将A赋给P0将R2,P0置零 N Y五 源代码1. 分段函数 ORG 0000H LJMP MAIN ORG 0100HMAIN: MOV A, #29H ;将8位无符号数赋给A MOV DPTR, #4000H ;定义
6、数据指针 MOVX DPTR, A ;将X存于片外RAM CLR C ;将进位位清零KIND1:CJNE A, #14H, KIND2 ;将A与14H比较,若不等于14H,跳转至KIND2OUT1: CPL A ;对A中内容取反 MOV DPTR, #4001H ;定义数据指针 MOVX DPTR, A ;将计算结果存于片外地址4001H SJMP DONEKIND2:JNC KIND3 ;判断进位位CY是否为0,若为0,跳转至KIND3 SJMP OUT1 ;否则跳转至OUT1KIND3:CLR C ;将进位位清零 CJNE A,#28H, KIND4 ;将A中内容与28H比较,若不等于28
7、H,跳转至KIND4OUT2: MOV B,A ;将A中内容赋给B MUL AB ;计算X的平方,将结果高八位存于B,低八位存于A MOV DPTR, #4001H ;定义数据指针 MOVX DPTR,A ;将结果低八位存于片外地址4001H INC DPTR ;数据指针加一 MOV A,B ;将B中内容赋给A MOVX DPTR,A ;将结果高八位存于片外地址4002H SJMP DONEKIND4:JNC OUT2 ;判断进位位是否为0,若为0,跳转至OUT2 SJMP OUT3 ;否则跳转至OUT3OUT3: MOV B,#02H DIV AB ;计算X/2,将商存于A,余数存于B MO
8、V DPTR,#4001H ;定义数据指针 MOVX DPTR,A ;将商存于片外地址4001H INC DPTR ;数据指针加1 MOV A,B MOVX DPTR,A ;将余数存于片外地址4002H SJMP DONEDONE: SJMP $ END2. 24小时时钟 ORG 0000H LJMP MAIN ORG 0100HMAIN: MOV R0,#00HMOV P0,#00H ;时钟位清零 MOV P1,#00H ;分钟位清零 MOV P2,#00H ;秒钟位清零START: JB P3.0,START ;P3.0为低电平开始计数,高电平停止计数 MOV R2,P2 ;P2的值存入R
9、2 CJNE R2,#60H,DEL ;秒钟达到60继续,不足60跳转 MOV P2,#00H ;秒钟清零 MOV A,P1 ADD A,#01H ;分钟位加1 DA A ;分钟位改为BCD码 MOV P1,A MOV R1,P1 ;P1的值存入寄存器R1 CJNE R1,#60H,DEL;分钟达到60继续,不足60跳转 MOV P1,#00H;分钟清零 MOV A,R0 ADD A,#01H;时钟位加1 DA A;时钟位改为BCD码 MOV R0,A MOV P0,A CJNE R0,#24H,DEL;时钟达到24继续,不足24跳转 MOV P0,#00H ;时钟位清零 MOV R0,#00
10、HDEL: MOV R7,#24 ;延时程序LOOP1: MOV R6,#61LOOP2: MOV R5,#170LOOP3: NOP NOP DJNZ R5,LOOP3 DJNZ R6,LOOP2 DJNZ R7,LOOP1 MOV A,P2 ADD A,#01H;秒钟位加1 DA A MOV P2,A SJMP STARTEND 六. 程序测试方法与结果、软件性能分析 1.分段函数改变X的值,分别在不同的X值时运行程序,结果如下截图(1)X=29H (2)X=21H(3)X=0CH结果与预测相符合,程序正确。2.24小时时钟程序 暂停时思考题:1实现多分支结构程序的主要方法有哪些?举例说明
11、。答:1.是利用条件转移指令实现,如DJNZ,JNC等等 例如:例如,判断两个单字节无符号数的大小(分别存于片内 RAM 的 40H 和 41H 单元)并把大数存入 42H 单元。可以用判断 CY 的转移指令 JNC 来实现,程序如下:JUDGE:MOV A,40H CLR C SUBB A,41H JNC LP MOV 42H,41H RETLP: MOV 42H,40H RET2.利用分支表来实现,如分支地址表、转移指令表、地址偏移量表。例如:根据 R3 的值控制转向 8 个分支程序。采用分支地址表实现:MOV DPTR,#BRATAB ;取表首地址MOV A,R3ADD A,R3 ;AR32JNC NADDINC DPH ;R32 进位加到 DPHNADD:MOV A,R4 ;暂存 AMOVC A,A+DPTR ;取分支地址高 8 位XCH A,R4INC AMOVC A,A+DPTR ;取分支地址低 8 位MOV DPL,A ;分支地址低 8 位送 DPLMOV DPH,R4 ;分支地址高 8 位
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 万柏林区2025届数学五下期末统考试题含答案
- 2025沉浸式潮玩火锅店空间设计指南
- 陕西省西安市经开区2025届初三下学期9月初态测试英语试题含答案
- 上海市重点名校2025年高考模拟试卷含解析
- 江苏省盐城市、南京市2025年高三第三次适应性测试数学试题试卷含解析
- 数学课件制作教程
- 小摊贩经营技能提升培训课件
- 幼儿园自救自护安全教育
- 2025年中国清水离心泵市场调查研究报告
- 2025年中国无纺布彩盒市场调查研究报告
- 福建省龙岩市一级校2024-2025学年高二下学期4月期中联考 数学试题(含答案)
- 2025年街道全面加强乡村治理工作实施方案
- 明股实债协议合同
- 2025“十五五”金融规划研究白皮书
- 9.2法律保障生活(教案) -2024-2025学年统编版道德与法治七年级下册
- 2025年江西上饶铅山城投控股集团有限公司招聘笔试参考题库含答案解析
- 建筑工程结算审核现场踏勘
- 浙江省杭州市2024年中考英语真题(含答案)
- 大众速腾2009年型电路图
- 新能源电力设备项目立项报告(模板范本)
- 第六章 纳米复合材料
评论
0/150
提交评论