用51单片机设计8个灯的跑马灯程序拜托各位大神

用51单片机设计8个灯的跑马灯程序拜托各位大神,第1张

/ 程序名称: 八位LED双灯右移动流水灯显示 说明:使用本程序你必须把 SE3设置为2-3短接 SE4设置为1-2短接 / /头文件/ #include <reg52h> #include <intrinsh> #define uint unsigned int #define uchar unsigned char /端口定义/ #define led_port P0 /定义LED显示的数据脚/ /1MS为单位的延时程序/ void delay_1ms(uchar x) { uchar j; while(x--){ for(j=0;j<125;j++) {;} } } /主程序/ void main() { uchar led_sdata; /显示寄存器/ uchar i; while(1){ led_sdata=0xfe; /初始化显示寄存器为1号灯亮/ led_port = led_sdata; /将显示寄存器输出到LED端口/ delay_1ms(200); delay_1ms(200); /延时/ led_sdata=0xfc; /显示寄存器为12号灯亮/ for(i=0;i<8;i++){ led_port = led_sdata; /将显示寄存器输出到LED端口/ led_sdata = (led_sdata<<1)+1; /将显示寄存器数据左移1位,并将第一位置高,即熄灭/ delay_1ms(200); delay_1ms(200); /延时/ } led_sdata=0xff; /灯全灭/ led_port = led_sdata; /将显示寄存器输出到LED端口/ delay_1ms(200); delay_1ms(200); /延时/ } }

首先是包含你的所用单片机头文件。

如果是51单片机,io口是双向的可以直接 *** 作。

51单片机各个厂商不同io寄存器的 *** 作也是不一样的,需要看手册。

有些单片机是需要配置读写方向的,上拉,下拉,速度等等。

但是如果能把灯实现关灯,开灯,其他的都好办,都是逻辑问题,很快就能给你搞定。

查询方式:

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(时间此处可自行设置)

#include<reg51h> //51系列单片机定义文件

#define uchar unsigned char //定义无符号字符

#define uint unsigned int //定义无符号整数

void delay(uint); //声明延时函数

void main(void)

{

uint i;

uchar temp;

while(1)

{

temp=0x01;

for(i=0;i<8;i++) //8个流水灯逐个闪动

{

P1=~temp;

delay(100); //调用延时函数

temp<<=1;

}

}

void delay(uint t) //定义延时函数

{

register uint bt;

for(;t;t--)

for(bt=0;bt<255;bt++);

}

跑马灯程序最基本的,c语言还未入门啊!!!

for(m=0;m<5;m++)

{

P1=0x0;

delay(300);

P1=0xff;

delay(300);

}

是这里吧

以上就是关于用51单片机设计8个灯的跑马灯程序拜托各位大神全部的内容,包括:用51单片机设计8个灯的跑马灯程序拜托各位大神、单片机制作跑马灯三个间隔亮的C语言,请教各位大神、求个89c51单片机 汇编语言设计的LED跑马灯的程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/9690516.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存