资讯详情

P1口外接8只LED发光二极管模拟彩灯-单片机原理与应用-电子发烧友网站

3.1.1 硬件电路

硬件电路如图3所示.1所示。AT89S51是MCS-一种51系列单片机使用40英尺DIP封装, 1~8脚4并行输入/输出端口(P0口、P1口、P2口、P三口之一,称为三口P-1-口,8条口线P1。0~P1。这8个引脚最多可以带20个mA灌装电流负载可直接驱动发光二极管D0~D7为8只LED,各经300Ω电阻限流后连接 5V电源与P1端口之间。图为单片机提供工作时钟。9脚所接RC电路构成单片机上电复位电路,单片机只后才能开始执行程序。

8ec5d7a43a0de77025c48f1b911e20b9.png

图3.1 AT89S51单片机P1口外接8只LED发光二极管

工作原理

当P1。0~P1。7中的一个端口是低电平时,相应的发光二极管是亮的,是高电平时灭的。我们只需要控制P1口你的电平状态可以控制8个LED的亮与灭。例如使(P1)=01010101B=55H, D7、D5、D3、D14只LED亮,D6、D4、D2、D04只LED灭绝,从效果上看,亮与灭是相隔的;相反,使(P1)=10101010B=AAH,则另外4只LED明亮的,如果反复从一定的时间间隔开始P1口轮流输出55H和AAH,则P1口上8只LED会呈现流水彩灯的效果。

3.1.2 控制程序

实现上述8只LED发光二极管控制程序非常简单,可以用不同的指令编程。以下是几种模式的彩灯控制程序。

1. 将立即数送P1口的程序

ORG 0000H ; 从程序存储器中定义程序H单元开始存放

LOOP: MOV P1,#55H ; 立即数55H送P1口,4只LED亮

SJMP LOOP ; 原地踏步

END ; 程序结束

第一条指示程序在程序存储中的存储位置,第二条指示将立即计算55H传送到P1口,对应的LED灯亮,第三条指令是无条件转移指令,即单片机执行上一条指令后,将反复指示该指令,直到电源关闭,第四条是程序结束指令(本程序演示效果见随书CD)。

2. 由累加器A控制P1口的程序

ORG 0000H

LOOP: MOV A,#0AAH ;将立即数AAH送累加器A

MOV P1, A ;累加器A中的数字发送P1端口

SJMP LOOP ;转移到LOOP

END

3. 流水彩灯程序

最简单的流水彩灯程序也很简单,程序流程图如图3所示.程序如下。

图3.2 流水式彩灯程序流程图最简单

ORG 0000H

LOOP: MOV P1,#55H ;将立即数55H送P1端口

LCALL TIME ;延迟子程序TIME

MOV P1,#0AAH ;将立即数AAH送P1端口

LCALL TIME ;延迟子程序TIME

SJMP LOOP ;转移到LOOP

TIME: MOV R6,#200 ;延时子程序TIME

TIME1:MOV R7,#200

TIME2:NOP

NOP

NOP

DJNZ R7,TIME2

DJNZ R6,TIME1

RET

END

4. 开幕式和闭幕式彩灯程序

ORG 0000H

LJMP MAIN ;跳转到主程序

ORG 0030H

MAIN: MOV R0,#8 ;R0送循环次数8

MOV DPTR,#TAB ;赋值数据指针

LOOP: MOV A,#00H ;

MOVC A,@ A DPTR

MOV P1,A

LCALL TIME

INC DPL

DJNZ R0,LOOP

SJMP MAIN

TIME: MOV R6,#200

TIME1: MOV R7,#200

TIME2: NOP

NOP

NOP

DJNZ R7,TIME2

DJNZ R6,TIME1

RET

TAB: DB 81H,0C3H,0E7H,0FFH,18H,3CH,7EH,0FFH

END

3.1.3 编辑、编译和下载源程序

打开“伟福”模拟仿真软件进行程序的编辑、编译。

打开“ISP下载软件,下载目标文件ISP-在实验开发板上AT89S51单片机芯片,观察程序运行结果。

标签: 546led二极管

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台