汇编语言实现LED流水灯设计单片机应用技术课件.pptx
汇编语言实现LED流水灯设计
主讲人:陈志红
《单片机应用技术》
一.设计任务
LED流水灯:用单片机的P0口控制8只LED灯,
实现LED灯从左到右循环闪烁
二任务分析
硬件
软件
1.硬件电路
2.软件程序
3.下载调试
单片机最小应用系统
+
LED驱动电路
三硬件电路
8
位
发
光
二
极
管
下
载
电
路
接
口
P0
ISP
电源
硬件结构图
AT89S51
单片机最小系统
三硬件电路
单片机的I/O端口
单片机共计32个I/O端口
当端口写1时,输出高电平,约为5V;
当端口写0时,输出低电平,约为0V;
51单片机
P0
P2
P1
P3
三硬件电路
典型的发光二极管控制电路
写入“1”
写入“0”
三硬件电路
四软件设计
根据任务要求,通过对硬件电路的分析理解,我们可以控制P0口的
8个引脚,使第1脚输出低电平(0V),延时一段时间(人眼的视觉暂留
时间约为0.05~0.2S。)后再恢复输出高电平.
然后使第2脚输出低电平,依次到第8个引脚。然后从第1引脚循环,
实现流水灯显示。
四软件设计
P0-0=0
延时
P0-7=0
延时
左移:MOVA,#0FEH
RLA
延时子程序
DELAY:MOVR7,#0FFH
DE2:MOVR6,#0FFH
DE3:DJNZR6,DE3
DJNZR7,DE2
RET
四软件设计
RG0000H ;复位后PC值为0000,程序从此处开始执行
LJMPMAIN;将程序运行指向流水灯程序
MAIN:MOVA,#0FEH;累加器A赋值FEH,即最低位为0,可点亮对应LED
LOOP:MOVP0,A ;将累加器值送P0端口
ACALLDELAY ;LED点亮后,为了便于观察,延时一段时间
RLA ;对累加器的内容循环左移
AJMPLOOP ;跳转到LOOP继续执行程序
四软件设计
ORG0100H ;延时子程序存放地址为0100H
DELAY:MOVR7,#0FFH ;对延时参数R7赋值
DE2:MOVR6,#0FFH ;对延时参数R6赋值
DE3:DJNZR6,DE3 ;R6自减一,不为0循环减一
DJNZR7,DE2 ;R6自减一,不为0跳转到DE3位置循环
RET ;子程序返回
END ;程序结束
感谢聆听!
主讲人:陈志红
《单片机应用技术》