串行口编程实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
串行口编程实验
实验目的:1、理解51单片机串行口的工作原理及使用、编程方法;
2、学习利用串行口方式0扩展并行口的方法;
3、了解8255扩展并口的基本方法。
实验注意:1、仿真器设置,选好仿真头和汇编器;
2、不要带电接线或插拔器件。
实验内容:
1、编写一个单片机自己发送自己接受的程序,将TXD和RXD引脚短接,P1口接发光管,TXD每发送一次数据实现P1口高低四位状态的互换,初始状态自设。
ORG 0000H
MOV TMOD,#20H
MOV TH1,#0CCH
MOV TL1,#0CCH
SETB TR1
MOV SCON,#50H
ABC:CLR TI
MOV P1,#0FH
ACALL DAY
MOV A,#0FH
SWAP A
MOV SBUF,A
JNB RI,$
CLR RI
MOV A,SBUF
MOV P1,A
JNB TI,$
ACALL DAY
SJMP ABC
DAY:MOV R0,#0
DAL:MOV R1,#0
DJNZ R1,$
DJNZ R0,DAL
RET
END
2、双机通讯实验:选定两台机器配合,将甲机的TXD接乙机RXD 引脚,(乙机的TXD接甲机的RXD引脚,)采用方式1,将甲机(A)=0BH发给乙机,乙接收后将数据存于内部40H单元中。
ORG 0000H
MOV TMOD,#20H
MOV TH1,#0E6H
MOV TL1,#0E6H
SETB TR1
MOV SCON,#40H
LOOP:
MOV A,#0BH
MOV SBUF,A
JNB TI,$
CLR TI
SJMP LOOP
ORG 0000H
MOV TMOD,#20H
MOV TH1,#0E6H
MOV TL1,#0E6H
SETB TR1
MOV SCON,#50H
LOOP:JNB RI,$
CLR RI
MOV R0,#40H
MOV @R0,SBUF
SJMP LOOP
END
3、利用74LS164扩展一个8位并行输出口,将单片机内部(30H)=AAH数据从该口输出,用发光管显示各位状态。74LS164引脚如下图所示:
ORG 0000H
MOV SCON,#00H
MOV A,#0AAH
MOV SBUF,A
JNB TI,$
CLR TI
SJMP $
END
4、8255扩展并行口实验,按教材p173接法,读PB口状态,从PA 口输出。
ORG 0000H
MOV DPTR,#8003H
MOV A,#82H
MOVX @DPTR,A
LOOP:
MOV DPTR,#8001H
MOVX A,@DPTR
MOV DPTR,#8000H
MOVX @DPTR,A
SJMP LOOP