www.fltk.net > 51单片机中如何用汇编语言编写流水灯

51单片机中如何用汇编语言编写流水灯

流水灯就是让一排LED灯,依次点亮或熄灭,以一定的时间间隔来实现这种效果,看起来像“流水”样.51单片机实现流水灯的控制十分容易,以下是源代码和仿真效果图.ORG 0000H LJMP MAIN ORG 0030H MAIN:MOV A,#0FEH LOOP:

假设你的51单片机的P0口接了LED 就假设8个吧 弄个循环 unsigned char i; unsigned char tmp; for(i=0;i<8;i++) { if(i==0)tmp=1; else tmp=tmp>>1; P0=tmp; } 就是tmp不断的右移,这里假设你的LED是共阴极的. 嘿嘿,自己慢慢看吧

ORG 0000H AJMP MAIN ORG 0100H MAIN: MOV DPTR,#TAB MOV R7,#4FH LOOP: MOVC A,@A+DPTR INC DPTR MOV P1,A ACALL DELAY CLR A DJNZ R7, LOOP AJMP MAIN ORG 0200H TAB: ;从左到右,再从右到左,一次

SGML:ANL P1,#00000000; CLR C ; MOVE A,#00000001 ; ;DYP1:MOVE P1,A ;DYS1:P7 #2 ;DYS2:P6 #250 ;DYS3:P5 #250 ;DYS4:DJNZ P5,DYS4 ; DJNZ P6,DYS3 ; DJNZ P7,DYS2 ; RL A ; SJMP DYP1 ;

ORG 0000H LJMP MAIN ORG 000BH T0MS EQU NOT 50000 ; 50 mS 晶振 12.000 MHz PJSBZ EQU 20H PJSBZY EQU 21HPST0: MOV TL0, #LOW T0MS ; T0 中断 MOV TH0, #HIGH T0MS SETB PJSBZ ; 50 mS 标志 DJNZ R6, PST02 MOV R6

ORG 0000H ;程序开始 SJMP START ;跳转到START ORG 0050H ;START从ROM的0050H开始存储 START: MOVE P1.0,#00000001B ;把二进制数00000001B送到P1口 LCALL DELAY ;调用延时子程序 MOVE P1.0,#00000010B ;把二进

ORG 0000H AJMP MAIN ORG 0030HMAIN: MOV SP #70H MOV PSW #00H LOOP: MOV A, #AAH MOV P1, A ACALL DEL AJMP LOOP DEL: MOV R7, #200DEL1: MOV R6, #20DEL2: MOV R5, #31DEL3: DJNZ R5, DEL3 DJNZ R6, DEL2

只能循环,不能灭.应该用CJNE控制它的次数

51单片机用汇编语言编写流水灯程序,就是控制多个LED ,使其在特定时间间隔内,只有一个LED 发光,其他熄灭,用这种方式顺序移动点亮LED的位置,就形成了流水灯的效果.以下是程序:;假设晶振12MHZ,P1控制8个LED低电平亮;启

嘿嘿 俺可以帮你噢1 给你一个算法: 可以利用定时计数器0 定时50毫秒 允许中断 再设置一个软件计数器(初始值为20) 每当定时器定时时间到即50毫秒 计入中断服务程序后 软件计数器减1 等于0时 表示1秒钟到( 要重新给软件计数器送初值) 同时根据用户标志FAL1=1 则 显示内容左移 同时显示 并将用户标志FAL1取反 否则 显示全灭 并将用户标志FAL1取反.具体指导,可以参见右上角的百度私信. 呵呵 满意就选满意回答

网站地图

All rights reserved Powered by www.fltk.net

copyright ©right 2010-2021。
www.fltk.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com