单片机实验报告_21.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机实验报告 实验二 并行口输入输出实验——循环彩灯控制 任务一 实现的功能: P1 口接 8 个开关,P0 口接 8 个灯,每个开关对应一个灯,实时读取开关状态,开关闭合时,灯亮。开关断开时,灯灭。 硬件原理图: 流程图: 开始 开始 将P1口设置成输入状态 设置开关状态,将开关状态传输给P1口 将P1口的状态传输给P0口输出到LED灯 程序: ORG 0000H //程序入口 AJMP MAIN //跳转到主程序 ORG 0040H //主程序初始地址 MAIN: MOV P1,#0FFH //将P1口设置成输入状态 MOV P0,P1 //将P1口输入的状态传输给P0口输出 AJMP MAIN //返回主程序,循环执行主程序,保证实时 END //结束 任务二 1.实现的功能: 用 5 个开关 K0-K4,控制 P2 口所接 8 个灯的循环,各开关的功能要求如下: (1)K1,K2 分别选择灯的四种闪动方式; (2)K3 用于控制灯的循环方式(顺时针或逆时针); (3)K4 用于选择灯的两种循环速度 (4)K0 用于引发外部中断,在外部中断子程序中,读取通过 K1-K4 所设定的循环彩灯的工作方式,并按所设定的工作方式控制彩灯运行。 2.硬件原理图: 3.流程图: 开始 开始 4.程序: ORG 0000H LJMP MAIN ORG 0003H //外部中断0入口 LJMP PINT0 ORG 0100H MAIN: MOV SP,#40H //设置栈底 SETB EA //打开中断允许位 SETB EX0 //打开外部中断0允许位 SETB IT0 // MOV P1,#0FFH //将P1口设置成输入状态 JB P1.0,M //判断P1.0(K1)和P1.1(K2)状态选择闪动方式 JB P1.1,M2 // M1: MOV P2,#01H //闪动方式1,1个灯循环移动 AJMP NEXT1 // M2: MOV P2,#03H //闪动方式2,2个灯循环移动 AJMP NEXT1 // M: JB P1.1,M4 // M3: MOV P2,#07H //闪动方式3,3个灯循环移动 AJMP NEXT1 // M4: MOV P2,#0FH //闪动方式4,4个灯循环移动 NEXT1: MOV C,P1.2 // MOV PSW.2,C //将P1.2(K3)的状态送给PSW.2 MOV C,P1.3 // MOV PSW.6,C //将P1.3(K4)的状态送给PSW.6 NEXT2: JB PSW.2,R //判断PSW.2(K3)状态选择循环方向 L: MOV A,P2 // RL A // MOV P2,A // AJMP NEXT3 // R: MOV A,P2 // RR A // MOV P2,A // NEXT3: JB PSW.6,S2 //判断开关PSW.6(K4)状态选择闪动速度 LCALL DELAY // S2: LCALL DELAY // SJMP NEXT2 //循环执行闪动程序 ORG 0200H //中断程序 PINT0: JB P1.0,MO //判断P1.0(K1)和P1.1(K2)状态选择闪动方式 JB P1.1,MO2 // MO1: MOV P2,#01H //闪动方式1,1个灯循环移动 AJMP NEXT4 // MO2: MOV P2,#03H //闪动方式2,2个灯循环移动 AJMP NEXT4 // MO: JB P1.1,MO4 // MO3: MOV P2,#07H //闪动方式3,3个灯循环移动 AJMP NEXT4 // MO4: MOV P2,#0FH //闪动方式4,4个灯循环移动 NEXT4: MOV C,P1.2 // MOV PSW.2,C //将P1.2(K3)的状态送给PSW.2 MOV C,P1.3 // MOV PSW.6,C //将P1.3(K4)的状态送给PSW.6 RETI //返回主程序 DELAY: MOV R5,#05H //延时程序,延时0.5s LOOP1: MOV R6,#64H LOOP2: MOV R7,#0FFH LOOP3: NOP NOP DJNZ R7

文档评论(0)

姚启明 + 关注
实名认证
文档贡献者

80后

1亿VIP精品文档

相关文档