单片机C51的LED流水灯实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验3.1.2 数字量输出输出扩展——LED流水灯
一、实验目的
1、掌握单片机外设扩展的方法
2、使用单片机和8255实现LED流水灯的控制。
二、实验内容
使用汇编语言编程,功能为:通过KK1脉冲实现LED灯工作方式即时控制,完成LED 开关控制显示和LED左循环、右循环、间隔闪烁功能。
三、实验环境
PC机一台,Proteus仿真软件(或TD-PIT实验系统)一套
四、实验硬件电路图
说明:U2为单片机SST89E554RC,U1为8255A,通过8255A的PB输出使LED工作,BUTTON 为脉冲开关。
五、程序流程图
六、实验程序清单
ORG 0000H
AJMP 0100H
ORG 0100H
MAIN:MOV TMOD,#60H MOV TH1,#0FFH
MOV TL1,#0FFH
MOV DPTR,#7300H
MOV A,#80H
MOVX @DPTR,A
SETB TR1
MOV DPTR,#7100H
LEFT:MOV R0,#8
MOV A,#01H
AG1:MOVX @DPTR,A
CALL DELAY
RLC A
DJNZ R0,AG1
JBC TF1,RIGHT
AJMP LEFT
RIGHT:MOV R0,#8
MOV A,#80H
AG2: MOVX @DPTR,A
CALL DELAY
RRC A
DJNZ R0,AG2
JBC TF1,FLASH
AJMP RIGHT
FLASH:MOV R0,#8
AG3: MOV A,#55H
MOVX @DPTR,A
CALL DELAY
MOV A,#0AAH
MOVX @DPTR,A
CALL DELAY
DJNZ R0,AG3
JBC TF1,LEFT
AJMP FLASH
DELAY:MOV R1,#0FFH
DEL0:MOV R2,#0FFH
DEL: DJNZ R2,$
DJNZ R1,DEL0
RET
END
七、实验步骤
1、按实验电路图接线;
2、编写实验程序,编译连接无误后进入调试状态(可用PROTEUS也可以用硬件调试);
3、按动BUTTON(PROTEUS下)或KK1(实验箱),观察流水灯工作情况,验证程序功能。
4、退出调试,结束实验。
八、实验结果
流水灯开始工作方式为左循环,发一次脉冲转为右循环,再发一次为间隔闪烁,如此循环。