单片机原理与接口技术要点详解.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
引脚逻辑图 8051单片机为40条引脚双列直插式封装 引脚可分为三个部分 2.4 并行I/O端口 2.4.2 P1口内部结构 P1口内部结构如下图所示 输出部分有内部上拉电阻R*约为20K。 其他部分与P0端口使用相类似(读引脚时先写入1)。 2.4.3 P2口内部结构 2.4.4 P3口内部结构 说明: 1、做普通端口使用时,第二功能应为“1”。 练习:写出完成下列功能的程序段 例:试编程计算5678H-1234H的值,结果保存在R6、R5中。 解:减数和被减数都是16位二进制数,计算时要先进行低8位的减法,然后再进行高8位的减法,在进行低8位减法时,不需要考虑借位,所以要在减法指令之前将借位标志清0。程序如下: MOV A, #78H ;被减数低8位送累加器 CLR C ;清进位标志位Cy SUBB A, #34H ;减去减数 MOV R5, A ;保存低8位 MOV A, #56H ;被减数高8位送累加器 SUBB A, #12H ;减去减数 MOV R6, A ;保存高8位 【问】写出完成下列功能的指令段。 1.对累加器A中的1、3、5位清0,其余位不变 ANL A, 2.对累加器A中的2、4、6位置1,其余位不变 ORL A, 3.对累加器A中的0、1位取反,其余位不变 XRL A, 【例】 利用DJNZ指令和NOP指令编写一循环程序,实现延时1ms(晶振频率为12MHz)。 解:程序如下: DELAY: MOV R1,#0AH ;1μs LOOP: MOV R2,#30H ;1μs DJNZ R2,$ ;2×48μs DJNZ R1,LOOP ;1μs× (1+2×48+2)×10 NOP ;1μs NOP ;1μs NOP ;1μs NOP ;1μs NOP ;1μs RET ;2μs 总的延时时间为:1+(1+2×48+2)×10+7=998μs,若再加上调用本子程序的调用指令所用的时间2μs共1000μs,即1ms。 MAIN: ┇ ;MAIN为主程序或调用程序标号 ┇ LCALL SUB ;调用子程序SUB ┇ ┇ SUB:PUSH PSW ;现场保护 PUSH ACC 子程序处理程序段 POP ACC ;现场恢复 POP PSW RET ;最后一条指令必须为RET 例: 外部负脉冲引起中断请求,选计数方式,时间常数为FFH。 ORG 0H AJMP START ORG 001BH AJMP PRIC ORG 100H START: SETB TR1 SETB ET1 ;开T1中断 SETB EA WAIT2: JNB P3.3,WAIT2 ;等待正脉冲到来 WAIT3: JB P3.3,WAIT3 ;等待正脉冲结束 CLR TR1 ;关闭T1 MOV IE,#00H ;关闭中断 MOV R2,TL1 ;读出T1 MOV R3,TH1 LCALL PPS ;计算脉宽 HERE: SJMP HERE ;其他任务 PRIC: INC R4 ;记录溢出次数 RETI PPS: … ;计算脉宽子程序 D7~D0: 8位数据输入线 Q7~Q0: 8位数据输出线。 G:数据输入锁存选通信号 OE: 数据输出允许信号 8.1.3 LED显示器的显示方式 2.动态显示方式 【例】 用74LS244作为扩展输入,74LS273作为扩展输出。 7.4.1 简单的I/O口扩展 LOOP: MOV DPTR, #0FEFFH MOVX A, @DPTR MOVX @DPTR, A

文档评论(0)

挺进公司 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档