ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:706.61KB ,
资源ID:22003921      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/22003921.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机实验报告分支程序设计实验Word文档下载推荐.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机实验报告分支程序设计实验Word文档下载推荐.docx

1、小于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码的形

2、式)。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子程序。三、资源分配初始数据X存于片外0010H;取反和除二操作,结果都存于片外0040H中;平方操作低位存于0040H中,高位存于0041H中。2. 电子时钟 P3.7为0时开始计数,为1时停止;P2显示秒,P1显示分,P0显示时;R3、R4、R5用于进行

3、延时的装载循环次数。3.双向计数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.10Designed by: gxySource used: 0010H:片外

4、RAM存储的数X 0040H:除二和取反结果、平方结果的平方的低八位 0041H:平方结果的高八位*/ ORG 0000H LJMP MAIN ORG 0010HMAIN: MOV DPTR,#0010H ;x存于片外0010H中 MOVX A,DPTR CLR C CJNE A,#7FH,TO1 ;与7FH比较,判断正负 SJMP PLACE1TO1: JNC PLACE3 CJNE A,#28H,TO2 ;与28H比较TO2: JNC PLACE1 CJNE A,#14H,TO3 ;与14H比较 SJMP PLACE3TO3: JNC PLACE2 SJMP PLACE3PLACE1: M

5、OV B,A ;当x大于等于40时,取平方 MUL AB SJMP SAVEPLACE2: CLR C RRC A ;当x大于20小于40时,通过右移实现X除以2 PLACE3: CPL A ;当x小于等于20时,取反 SAVE: MOV DPTR ,#0040H MOVX DPTR,A ;低位存入片外0040H MOV A ,B INC DPTR MOVX DPTR,A ;高位存入片外0041HHERE: SJMP HERE ;踏步END 电子时钟 24小时电子时钟的时、分、秒数值分别通过P0、P1、P2端口输出(以压缩BCD码的形式)。 P3.0为低电平时开始计时,为高电平时停止计时。 P

6、2显示秒,P1显示分,P0显示时 P3.7为0时开始计数,为1时停止 R3、R4、R5:进行延时装载循环次数 ORG 0000H LJMP STARTSTART: MOV SP,#40H MOV P0,#00H MOV P1,#00H MOV P2,#00H MOV R0,#00H MOV R1,#00H MOV R2,#00HWAIT: JB P3.0,WAIT ;P3.0为0时开始,为1时停止SEC: MOV A,R2 ;秒 MOV P2,A ;将A值赋给P2端口 ADD A,#01H DA A MOV R2,A ACALL DLY ;跳转到1s延时子程序 CJNE A,#60H,WAIT

7、 ;满60秒进位1分钟MIN: MOV R2,#00H ;分 MOV A,R1 ADD A,#01H MOV P1,A ;将A值赋给P1端口 MOV R1,A满60分钟进位1小时HOUR: MOV P2,#00H ;时 MOV P1,#00H MOV A,R0 MOV P0,A ;将A值赋给P0端口 MOV R0,A CJNE A,#24H,WAIT ;判断是否满24小时 SJMP START ;满24小时,重新开始计时 DLY: MOV R4,#46 ;延时1s,误差1usL3: MOV R5,#152L1: MOV R3,#70L2: DJNZ R3,L2 DJNZ R5,L1 DJNZ

8、R4,L3 RET END 3. 双向计数 /* 双向计数 4位十进制加、减1计数,千位、百位由P1口输出;P3.7为1时加计数,为0时减计数。P3的底四位全为1时开始计数。 P3.7为1时加计数,为0时减计数 P3的底四位全为1时开始计数 P1口输出千位、百位 P2口输出十位、个位由 */ LJMP MAIN MOV P3,#00H MOV P2,#00H MOV P1,#00H ACALL DLY ;延时1s MOV A,P3 ANL A,#0FH CJNE A,#0FH,WAIT ;P3低四位全为1则开始计数 JB P3.7,INCREACE ; P3.7为1进行加计数 LJMP DEC

9、REACE ; P3.7为0进行减计数INCREACE: CLR C MOV A,P2 ADD A,#01H DA A ;P2十进制修正修正 MOV P2,A MOV A,P1 ADDC A,#00H ;P1加上P2的进位P1十进制修正修正 MOV P1,A AJMP WAITDECREACE: MOV A,P2 CJNE A,#0,DECREACE_1 ;P2不为0时,P2减1 MOV P2,#99H ;P2为0时,向百位借位,减一为99H MOV A,P1 CJNE A,#0,DECREACE_2 ;由于借位,P1不为0时,P1减一 MOV P1,#99H ;P1为0时,减一为99H AJ

10、MP WAIT DECREACE_1: ;十位个位减一 ADD A,#99H DA A MOV P2,ADECREACE_2:千位百位减一 ADD A,#99H DA A MOV P1 ,A MOV R6,#70 DJNZ R6,L2 END六、程序测试方法与结果、软件性能分析 1. 分支计算程序运行测试:如图所示,在片外0010H中给X赋值7FH,运行结果在片外0040H和0041中显示,为013F7FH取平方为3F01H,所以X执行取平方操作,正确。在Register中A和B都为3FH,因为执行代码 MOV B,A MUL AB DPTR 最后地址为0041H与存储地址相符分支功能测试:X

11、为7FH时,取平方,预期结果3F01X为07H时,取反, 预期结果FBX为15H时,除二, 预期结果0AX为27H时,除二,预期结果13X为28H时,取平方,预期结果0640X为14H时,取反, 预期结果EBX为F9H时,取反, 预期结果06X存于片外0010H中,取反和除二操作,结果都存于片外0040H中,平方操作低位存于0040H中,高位存于0041H中。所得结果均符合分支计算的预期结果,而且在7FH、28H、14H这三个转折点计算结果也正确。Program Size: data=8.0 xdata=0 code=48所以本程序性能良好,运行正常。总体运行测试:端口显示的是6分21秒,实际

12、精确运行时间为381.00312500s,相差0.003125s1s延迟子程序测试: 断点设置如下 两断点间运行时间为0.99999900s,说明1s延迟子程序误差为1us。60秒时直接显示1分钟0秒测试: 由图可知,由00:00:59直接变为00:01:00,符合要求。时钟误差测试:如上图,运行一分钟,误差为0.0005s如上图,运行一小时,误差为0.029422s如上图,运行24小时,误差为0.705901s data=8.0 xdata=0 code=81程序稍加改进,还可以添加计天,甚至计月的功能加法测试:P3.7=1如上图所示,从4799到4800,两端口间进位正常如上图所示,从9999到0000再到0001,加法进位正常减法测试:P3.7=0如上图,从0000到9999,减一借位正常如上图,从9600到9599,减一,两端口间借位正常 data=8.0 xdata=0 code=86七、思考题1实现多分支结构程序的主要方法有哪些?举例说明。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1