单片机chapter补充分析.pptVIP

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
典型电路应用分析之三 8255A用作发光二极管L0、L1、L2和开关K0、K1、K2的接口如图所示。要求: K0、K1、K2全部接通时,L0点亮; K0、K1、K2全部断开时,L1点亮; 其余状态,L2点亮。 程序: MOV DX, 控制口地址 ;8255A初始化 MOV AL, _____(1) OUT DX, AL MOV DX, PB口地址 ;检查开关状态 IN AL, DX AND AL, (2) ;屏蔽AL高5位 CMP AL, 00H ;是否全通 JZ RED CMP AL, (3) ;是否全断 JZ GREEN MOV AL, 03H ;置黄灯(L2)亮 JMP DISPLED RED:MOV AL, _(4) ;置红灯(L0)亮 JMP DISPLED GREEN:MOV AL, (5) ;置绿灯(L1)亮 DISPLED:MOV DX, PA口地址 ;点亮相应的LED OUT DX, AL 用8255A作为8031和微型打印机接口,工作于方式1。 设要打印的数据放在片内RAM 20H单元开始,共50个数 ORG 0000H LJMP MAIN ORG 0013H;外部中断1中断入口 LJMP INT1 ORG 0030H MAIN:MOV R0,#20H;指向打印数据首地址 MOV R2,#50;打印数据个数 MOV DPTR,#CONTROL;指向8255A控制口 MOV A,#84H ;工作方式控制字,B口方式1输出 MOVX @DPTR,A ;工作方式控制字输出到控制口 MOV A,#05H ;PC2(INTEB)=1允许B口中断 MOVX @DPTR,A ;位控制字输出到控制口 MOV DPTR,#PORTB;指向B口 MOV A,@R0 ;取出第一个打印数据 MOVX @DPTR,A;从B口输出第一个打印数据 INC R0 ;指向下一个数据 DEC R2 ;个数减1 CLR 00H ;00H位作为数据输出是否结束标志 SETB IT1;外部中断1为跳变触发方式 SETB EX1 SETB EA ;开中断 SJMP $ ORG 2000H;中断服务程序,从0013H转来 INT1:PUSH ACC ;保护现场 MOV DPTR,#PORTB;指向B口 MOV A,@R0 ;取出一个打印数据 MOVX @DPTR,A;从B口输出 INC R0 ;指向下一个数据 DJNZ R7,BACK;若数据未发送完则返回 CLR EX1 ;发送完毕,禁止外部中断1中断 SETB 00H ;置结束标志 BACK:POP ACC ;恢复现场 RETI ;中断返回 例:用8255A作为8031和微型打印机接口,数据传送采用查询方式。 设要打印的数据放在片内RAM 20H单元开始,共50个数,输出打印程序如下: PRINT:MOV DPTR,#CONTROL;指向8255A控制口 MOV A,#88H ;工作方式控制字送入A MOVX @DPTR,A ;输出到控制口 MOV R0,#20H;指向打印数据首地址 MOV R2,#50;打印数据个数 LP:MOV DPTR,#PORTC ;指向C口 LP1:MOVX A,@DPTR ;输入BUSY状态 JB ACC.7,LP1 ;若BUSY=1则等待 MOV DPTR,#PORTA;指向A口 MOV A,@R0 ;取出一个打印数据 MOVX @DPTR,A;从A口输出 MOV DPTR,#CONTROL ;指向控制口 MOV A,#00H MOVX @DPTR,A ;PC0输出“0” MOV A,#01H MOVX @DPTR,A ;PC0输出“1”,即从STB输入一个 ;负脉冲 INC R0 ;指向下一个数据 DJNZ R2,LP ;数据未打印完,继

文档评论(0)

四娘 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档