CLRC;C=0 MOVR2,#08H;设置左移次数 LOOP:RLCA;左移1位 MOVP2,A;输出到P2 CALLDELAY;延时 DJNZR2,LOOP;左移7次 MOVR2,#07H;LOOP1:RRCA;右移1位 MOVP2,A;输出到P2 CALLDELAY;DJNZR2,LOOP1;右移7次 JMPMAIN
//第三个灯亮 delay();P3=0xf7;//第四个灯亮 delay();P3=0xef;//第五个灯亮 delay();P3=0xdf;//第六个灯亮 delay();P3=0xbf;//第七个灯亮 delay();P3=0x7f;//第八个灯亮 delay();} }
void delay(unsigned int cnt){ while(--cnt);} main(){ P1=0xfe; //给初始化值 换算成二进制是1111 1110 while(1){ delay(30000);//延时程序 P1<<=1; //左移一位 该语句等效于 P1=P1<<1 P1|=0
sbit LED1 = P0^1;sbit LED2 = P0^2;sbit LED3 = P0^3;sbit LED4 = P0^4;sbit LED5 = P0^5;sbit LED6 = P0^6;sbit LED7 = P0^7;unsigned char Maikuan=0;static unsigned char ledon[8] = {0x
这个程序的关键点是要在显示子程序执行的过程中,多对按键进行检测。检测到有按键按下时,即退出子程序,返回到主函数的按键检测,对num 加一。include
//P1外接8 LED 低电平发光.// 列程序 PROTEUS 仿真 功 include
单片机的跑马灯C程序如何编写八个LED灯依次点亮而且速度渐变的代码
unsigned char a,b;void delay(void){ unsigned char m,n,s;for(m=20;m>0;m--)for(n=20;n>0;n--)for(s=248;s>0;s--);} void main(void){ while(1){ temp=0xfe;P1=temp;delay();for(i=1;i<
include "reg51.h"void delay1s();void display(unsigned char x);unsigned char disp[10]={6,5,1,3,0,5,1,5,3,0};void main(){ unsigned char i,k;while(1){ for(i=0;i<10;i++){ display(disp
用 C51 给你写一个吧:假设开关接到P3.0,8个 LED灯 接到P1.0~P1.7,低电平 点亮。ms延时 子程序 书上都有例子,我就不再写出来了。include
1、main函数里面没有死循环,程序会跑飞(不确定状态,可能会呈现出复位状态,循环执行main函数,在LED=0x99;加个几秒钟的延时可以看到显示4)2、mian函数增加循环函数,在你的程序里可以把跑马灯当作初始化(只执行一次),
用单片机实现跑马灯程序,怎样实现?
设LED驱动端口为 P1,输出高电平为LED亮,则建立一个数组,如下图;数组赋值:char LEDA[23]={0x18,0x3c,};输出:for(i=0;i<23;i++){ P1=LEDA[i]; delay(); }
MOV P1,A SJMP MAIN ;转到程序开始处,等待开始键的按下 YS: MOV R7,#150 ;延时子程序 YL: MOV R6,#200 YY: NOP DJNZ R6,YY DJNZ R7,YL RET END 硬件接口电路如下:哈哈
|P1口接8个发光二极管共阳 include
delay:mov r3,#20 ;延时子程序 d1: mov r4,#200 d2: mov r5,#248 djnz r5,djnz r4,d2 ret end C语言的://例程:LED流水灯 include
做单一灯的左移右移,八个发光二极管L0-L7分别接在单片机的P0.0-P0.7接口上,输出“0”时,发光二极管亮,开始时P0.0→P0.1→P0.2→P0.3→┅→P0.7→P0.6→┅→P0.0亮,重复循环。/ ORG 0000H LJMP
求个51单片机 汇编语言设计的LED跑马灯的程序
使用8255A扩展并行 l/O 口,可以实现16个发光二极管的跑马灯程序,具体操作如下:设置8255A芯片的I/O口为输出模式。2. 定义一个变量,用于存储当前亮灯的位置。3. 在程序中通过循环控制每个发光二极管的亮灭,从而实现跑马
跑马灯程序用汇编是很好实现的,只要用好循环移位指令就可以,以下是程序。\x0d\x0aORG 0000H\x0d\x0aLJMP MAIN\x0d\x0aORG 0030H\x0d\x0aMAIN:\x0d\x0a MOV A,#0FEH\x0d\x0a\x0d\x0aLOOP:
答疑解难 跑马灯程序 ORG 0000H LJMP MAIN ORG 0100H MAIN: JB P0.7,MAIN ;等待开始键按下 LCALL YS ;按键延时 JB P0.7,MAIN MOV A,#7FH ;是开始键按下 则跑马灯开始
cmp bl,07fh ;判定该轮扫描是否结束 jnz again A: mov al,7 free: mov cx,10 mov dx,200h add al,bh cmp al,1 ;判断按键并指向所实现的花色程序 jnz next2 jmp liu1
详情请查看视频回答
ORG 0000H ;程序从000H地址开始运行 AJMP MAIN ;跳转到 MAIN程序 ORG 030H ;MAIN程序从030H开始运行 MAIN:MOV P2,#0FEH ACALL DEL ;调用延时子程序 MOV P2,#0FCH ACALL DEL ;调用延时子程序 MOV P2,#0
AJMP START START:SETB C ;跑马灯 ,一直循环255次MOV R0,#0FFH MOV A,#0 JX1:RLC A MOV P1,A LCALL DELAY500MS DJNE R0,JX1 SETB C MOV R0,#8 MOV A,#0 JX:RLC A ;P1.0>>>P1.7依次亮1S MOV
请写出实现跑马灯功能的程序。
我就解释下间隔一秒的那个,时间常数。看你用的定时器方式。一般用方式1。若频率是24mhz,机器周期为0.5us。所以计数次数为1s/0.5us=200000次超过了范围。所以用循环。可以50000循环4次或其他次数。算出技术初值。
这个流水灯是很普通的一种花样,假设LED接P1口,程序如下:ORG 0000H LJMP MAIN 0RG 000BH LJMP T0ISR ORG 0030H MAIN:MOV TMOD,#01H MOV TH0,#HIGH(65536-50000) ;50毫秒定时 MOV TL0,#LOW(65536-50000)SET
这就是典型的流水灯,又叫跑马灯。这种流水灯的仿真图和程序,在百度知道这里可以搜索到无数个答案,找一个合适的下载复制下来就行了。自己动手,一会就搞定了。比你这样守株待兔省事省时,往往是没有结果的。
ORG 0000H ;程序从000H地址开始运行 AJMP MAIN ;跳转到 MAIN程序 ORG 030H ;MAIN程序从030H开始运行 MAIN:MOV P2,#0FEH ACALL DEL ;调用延时子程序 MOV P2,#0FCH ACALL DEL ;调用延时子程序 MOV P2,#0
第8根亮,时间间隔为1s ,全亮后,显示10s ,再反过来从8→7→„„→1按1s 间隔顺序熄灭,全灭后停亮2s ;再从第8根开始亮,顺序点亮7→6→„„→1,时间间隔1s ,显示5s ,再从1→2
TH0=0x3c; //初使化 TL0=0x0b0;TR0=1; //启动0计时器 ET0=1; //开启0计时器 led=0xff;while(1){ led=1;} void t0 intrrupt 1 { for(i=0;i<8;i++)led=led>>1;delay(30000);} void
其中DELAY 是一个延时1S子程序(不要改变A的值),具体要根据单片机的时钟计算延时时间,可以采用循环嵌套的方式,很容易就可以实现。
跑马灯电路设计,led由上至下依次点亮,间隔一秒,再跳回最下边,不断循环显示。
ORG 0000H LJMP MAIN ORG 000BH LJMP T0ISR ORG 0030H MAIN: MOV TMOD,#01H MOV TH0,#HIGH(65536-50000) MOV TL0,#LOW(65536-50000) SETB TR0 SETB ET0 SETB EA MOV A,#0FEH SJMP $ T0ISR: CLR TR0 MOV TH0,#HIGH(65536-50000) MOV TL0,#LOW(65536-50000) SETB TR0 MOV P0,A RL A RETI END主函数对了,宏定义要定义每个LED的开关函数才行
查询方式: ORG 0000H AJMP MAIN MAIN: MOV P1,#01H MOV R0,#8 MOV A,P1 XU: RL A MOV P1,A ACALL DELAY DJNZ R0,XU AJMP MAIN DELAY: MOV R0,#0FFH ONE:MOV R1,#0FFH TWO:MOV R2,#02H THE:DJNZ R2,THE DJNZ R1,TWO DJNZ R0,ONE(将近1S) RET END 中断方式: org 0000h ;程序从0000开始运行 jmp init;跳到主程序 init: mov ie,#10000001b ;中断使能 mov ip,#00000001b ;中断优先 mov tcon,#0000000b ;中断为电平触发 main: ;主程序循环点亮 mov p1,#00h ;全亮 lcall delay ;延时一段时间 mov a,#0feh ;每次只亮一个灯。 loop: mov p1,a ;输出到p1 lcall delay ; 延时 rl a ;循环左移。 ajmp loop ; 跳转main继续循环 delay: mov r5,#20 ;延时子程序1闪烁灯调用 d1:mov r6,#20 d2: mov r7,#250 djnz r7,$ djnz r6,d2 djnz r5,d1(时间此处可自行设置)
关于五一单片机,16位LED灯跑马灯汇编语言程序可以和你共同分享