并行输入输出接口及其使用.ppt

  1. 1、本文档共49页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
并行输入输出接口及其使用

汇编语言程序 ORG 0000H ; 单片机复位从0000H地址开始执行程序 START: CLR P1.2 ; 将P1.2引脚设置为低电平,LED发光二极管亮 ACALL DELAY ; 调用子程序,延时200 ms SETB P1.2 ; 将P1.2引脚设置为高电平, ; LED发光二极管灭 ACALL DELAY ; 调用子程序,延时200 ms SJMP START ; 跳转循环执行 DELAY:MOV R6,#200 ; 200 ms 延时子程序 DL1: MOV R5, #250 DL2: NOP ; 1μs NOP ; 1μs DJNZ R5, DL2 ; 2μs 内循环延时大约4*250*1μs=1 ms DJNZ R6, DL1 ; 双重循环共延时大约200*1 ms=200 ms RET END 例2,如图所示,P1口输出接8个发光二极管(LED)L0~L7,限流电阻510Ω。低电平时发光二极管被点亮,高电平时LED熄灭。编程控制LED闪烁。 程序一:要求单灯左移,循环往复。 START: MOV A, #0FEH ; 将P1.0引脚设置为低电平,LED亮 LOOP: MOV P1, A RL A ; 循环左移 ACALL DELAY ; 调用子程序,延时200 ms SJMP LOOP ; 跳转循环执行 程序二:要求单灯左移,然后单灯右移,循环往复。 START: MOV A,#0FEH ; 将P1.0引脚设置为低电平,LED发光二极管亮 LOOP: MOV R2,#07 LOOPL: MOV P1, A RL A ACALL DELAY ; 调用子程序延时200 ms DJNZ R2, LOOPL MOV R2, #07 LOOPR: MOV P1, A RR A ACALL DELAY ; 调用子程序延时200 ms DJNZ R2, LOOPR SJMP LOOP ; 跳转循环执行 程序三:每次其中一个灯闪烁点亮10次后,转移到下一个灯闪烁10次,循环不止。 MOV A, #0FEH ; 初值 SHIFT: LCALL FLASH ; 调闪亮10次子程序 RR A ; 右移 SJMP SHIFT ; 循环 FLASH:MOV R2, #0AH ; 闪烁10次 FLASH1: MOV P1, A ; 点亮 LCALL DELAY ; 延时 MOV P1, #00 ; 熄灭 LCALL DELAY ; 延时 DJNZ R2, FLASH1 ; 循环 RET 例3,如图所示,P1.0接一个蜂鸣器,用软件延时方法,使P1.0端口输出1kHz和2kHz的变调音频,每隔1s交替变换一次。 DLV: MOV R2, #08H ; 1kHz持续时间 DLVl: MOV R3, #0FAH DLV2: CPL P1.0 LCALL D05MS ; 延时0.5ms子程序 DJNZ R3, DLV2 ; 持续1s DJNZ R2, DLVl MOV R2, #10H DLV3: MOV R3, #0FAH DLV4: CPL P1.0 ; 输出2kHz方波 LCALL D025MS ; 延时0.25ms子程序 DJNZ R3, DLV4 ; 持续1s DJNZ R2, DLV3 SJMP DLV ; 反复循环 例4 在图中, P1口接8个开关S0~S7,编程将开关的状态读入内部RAM 40H单元。 8051 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 +5V +5V 5.1K×8 EA S1~S8 程序如下: START: MOV P1, #0FFH ; P1口置1,以正确读到引脚的电平 LOOP: MOV A, P1 ; 读P1口引脚开关状态 MOV 40H, A ; 开关状态存入内部RAM 40H单元 SJMP LOOP ; 循环 图中的8个开关可以改为8个按键,但一般需要消抖程序。这些开关还可以是BCD拨码开关,4个开关表示一个十进制数,即通过拨动码盘接通或断开不同的开关,从而设置对应的十进制数。 例5,在下图中P1.4~P1.7接四个发光二极管LED,P1.0~P1.3接四个开关,编程将开关的状态反映到发光二极管上。 1 1 1 1 89C51 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 +5V +5V 1K×4 3

文档评论(0)

静待花开 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档