单片机流水灯程序代码汇编程序(单片机流水灯程序代码汇编程序是

http://www.itjxue.com  2023-03-16 01:10  来源:未知  点击次数: 

8路流水灯汇编语言程序的写法

汇编语言程序如下:

;假设1:D1~D8八个彩灯接在P1口,输出低电平发光

;假设2:系统晶振为12MHz

;假设3:N = 5

;程序如下:

ORG 0000H

MOV R3, #5? ? ? ? ? ?;N=5

LOOP0:

MOV A,? ?#0FFH? ? ?

MOV P1, #0FFH? ? ? ? ;开始时全灭

;-------------------------------逐个点亮

MOV R2, #8

LOOP1: CLR C

RLC A

MOV P1, A

CALL DL500MS

DJNZ R2, LOOP1

;-------------------------------逐个熄灭

MOV R2, #8

LOOP2: SETB C

RLC A

MOV P1, A

CALL DL500MS

DJNZ R2, LOOP2

;-------------------------------全亮、全灭交替

MOV R2, #4

LOOP3: MOV P1, #0? ? ? ? ? ?;全亮

CALL DL500MS

CALL DL500MS? ? ? ? ? ?;共1s

MOV P1, #255? ? ? ? ?;全灭

CALL DL500MS? ? ? ? ? ?;0.5s

DJNZ R2, LOOP3

;-------------------------------

DJNZ R3, LOOP0

MOV P1, #01001001B? ?;5、显示为0100 1001

CALL DL500MS

CALL DL500MS? ? ? ? ? ?;共1s

SJMP 0000H? ? ? ? ? ? ?;重新开始N遍

;-------------------------------延时子程序

DL500MS:

MOV R5, #9? ? ? ;1T

DL1:? ?MOV R6, #128? ? ;1T

DL2:? ?MOV R7, #215? ? ;1T

NOP? ? ? ? ? ? ? ;1T

DL3:? ?DJNZ R7, DL3? ? ?;2T? ?2 * 215 = 430 T

DJNZ R6, DL2? ? ?;2T? ?[1+1+430+2] * 128 = 55552 T

DJNZ R5, DL1? ? ?;2T? ?[1+55552+2] * 9 = 499995 T

RET? ? ? ? ? ? ? ;2T? ?1 + 499995 + 2 = 499998 T

;-------------------------------------

END

扩展资料:

实现8路流水灯的原理:

下图为主控芯片和流水灯模块的原理图。

流水灯模块接在单片机的P1口,由原理图可以知道,在P1口给一个低电平即可点亮LED灯。相反,如果要LED灯熄灭,就要把P1口的电平变为高电平即可。

要实现流水灯功能,只要将LED1~LED8依次点亮、熄灭,依始类推,8只LED变会一亮一暗的做流水灯了。

实现8个LED流水灯程序用中文表示为:

P1.0低、延时、P1.0高、P1.1低、延时、P1.1高、P1.2低、延时、P1.2高、P1.3低、延时、P1.3高。

P1.4低、延时、P1.4高、P1.5低、延时、P1.5高、P1.6低、延时、P1.6高、P1.7低、延时、P1.7高、返回到开始、程序结束。? ?

单片机流水灯汇编程序

KEYFX EQU P1.0 ;方向控制键

KEYKM EQU P1.1 ;速度控制键

FX BIT 00H ;方向标志

SPEED BIT 01H ;速度标志

ORG 0000H

LJMP MAIN

ORG 000BH

LJMP T0ISR

ORG 0030H

MAIN:

MOV TMOD,#01H

MOV TH0,#HIGH(65536-50000) ;50毫秒中断一次

MOV TL0,#LOW(65536-50000)

SETB TR0

SETB ET0

SETB EA

MOV R2,#2

MOV A,#0FEH ;灯初始化

CLR FX

CLR SPEED

MOV SPEED,#2

LOOP:

JB KEYFX,LOOP1 ;方向键按下否

JNB KEYFX,$

CPL FX

SJMP LOOP

LOOP1:

JB KEYKM,LOOP ;速度键按下否

JNB KEYKM,$

CPL SPEED

SJMP LOOP

T0ISR:

CLR TR0

MOV TH0,#HIGH(65536-50000)

MOV TL0,#LOW(65536-50000)

SETB TR0

JB FX,T001

RL A ;左循环

SJMP T002

T001:

RR A ;右循环

T002:

DJNZ R2,T0E

JB SPEED,T003

MOV R2,#2 ;快速

SJMP T0E

T003:

MOV R2,#10 ;慢速

T0E:

RETI

END

51单片机八个灯的流水灯代码

51单片机八个灯的流水灯代码:

1、用精确定时的方法,设置流水灯运行时的时间间隔,延时时间为500MS。

2、#include "reg51.h"首先写出单片机的头函数。

3、#include "intrins.h"输入位移函数。

4、unsigned int count=0,led;定义函数。

5、输入主函数,定义单片机的端口,写入延时函数。

编辑推荐

对于刚接触单片机的学习者,似乎都很迷茫,C语言、汇编语言、电路、开发板,不知道从哪儿开始学起。其实在学习单片机原理与应用系统开发时,只有在学习一些理论知识的基础上,多阅读单片机应用系统开发案例,注重单片机应用系统开发实践训练,才能透彻地理解和掌握单片机结构与原理,才能更快更好地掌握单片机应用知识和单片机应用系统开发技能。

(责任编辑:IT教学网)

更多

推荐管理维护文章