- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)