单片机 第七章作业讲解1.doc

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

第七章作业讲解 7-3 1)8255各口地址(有重叠) PA口 0XXX XXXX XXXX XX00 B PB口 0XXX XXXX XXXX XX01 B PC口 0XXX XXXX XXXX XX10 B 控制寄存器 0XXX XXXX XXXX XX11 B 若选X=1,则各端口地址对应为7FFCH、7FFDH、7FFEH、7FFFH 方式控制字为90H 程序 ORG 0000H LJMP MAIN ORG 0100H MAIN: MOV DPTR,#7FFFH MOV A,#90H MOV @DPTR,A LOOP: MOV DPTR,#7FFCH MOV A,@DPTR CPL A INC DPTR MOVX @DPTR,A SJMP LOOP END 7-5 8155各口地址(有重叠) P2 P0 RAM: 控制寄存器: 0XXX XXX0 0000 0000 B (7E00H) ………………………………. (7EXXH) 控制寄存器: 0XXX XXX0 1111 1111 B (7EFFH) IO口寄存器: 控制寄存器: 0XXX XXX1 XXXX X000 B (7F00) PA口: 0XXX XXX1 XXXX X001 B (7F01) PB口: 0XXX XXX1 XXXX X010 B (7F02) PC口: 0XXX XXX1 XXXX X011 B (7F03) TL寄存器: 0XXX XXX1 XXXX X100 B (7F04) TH寄存器: 0XXX XXX1 XXXX X101 B (7F05) 1) 命令字应该为0000 1110B=0EH(PA口为方式0输入,PB和PC均为方式0输出) 诊断程序编制方法:先对B口写XXH,检查A口读入是否为XXH,。正确则循环点亮C口发光管。 程序: ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV DPTR,#7F00H ;命令口 MOV A,#0EH MOVX @DPTR,A MOV DPTR,#7F02H ;写B口 MOV A.#XXH MOVX @DPTR,A MOV DPTR,#7F01H ;读A口 MOVX A,@DPTR CJNE A,#XXH,ERR MOV DPTR,#7F03H ;C口循环点亮LED灯 NOMAL: MOV R7,#06H MOV A,#01H LOOP: MOVX @DPTR,A ;LCALL DELAY RL A DJNZ R7,LOOP SJMP NOMAL ERR: MOV DPTR,#7F03H MOV A.#3FH MOVX @DPTR,A SJMP FINISH DELAY: MOV R7,#0FFH DJNZ R7,$ RET FINISH : END 2) RAM: 控制寄存器: 0XXX XXX0 0000 0000 B (7E00H) ………………………………. (7EXXH) 控制寄存器: 0XXX XXX0 1111 1111 B (7EFFH) 诊断程序编制方法:依次对256个字节循环检测(先对某RAM单元写入XXH,再读取该单元是否为XXH。正确则循环检测下一单元,否则记录该地址)。 程序: ORG 0000H SJMP MAIN ORG 0030H MAIN: MOV R7,#0FFH MOV R1,#30H ;30H单元开始存放错误单元地址 MOV P2,#7EH MOV R0,# 00H ;命令口 LOOP: MOV A.#XXH MOVX @R0,A MOVX A,@R0 CJNE A,#XXH,ERR DJNZ R7,LOOP SJMP FINISH ERR: MOV A,R0 MOV @R1,A INC R1 DJNZ R7,LOOP FINISH : END 3) 输入晶体振荡器频率2MHZ,对应周期为0.5us, 定时5ms,则须设置定时值为5000us/0.5us=2710H,即TL=10H,TH=27H(单次方波方式:D7D6=00)。 还需设置定时器的启动,即命令字(地址7F00)为D7D6=11. 程序: ORG 0000H SJMP MAIN ORG 0030H MAIN: MOV DPTR,#7F04H MOV A,#10H MOVX @DPTR,A ;TL INC DPTR MOV A,#27H MOVX @DPTR,A ;TH MOV DPTR,#7F00H MOV A,#0C0H MOVX @DPTR,A ;写命令口,启动定时器 SJMP $ END

文档评论(0)

资料 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档