8个灯的led跑马灯要控制灯同时从中间向两边跑的代码是什么?

8个灯的led跑马灯要控制灯同时从中间向两边跑的代码是什么?,第1张

跑马灯说白了就是让灯按照一定顺序亮起来,你可以采用最笨的方法,从中间往两边跑,假设0代表低点平,1代表高电平,那么就得出以下几个状态,\x0d\0b11111111\x0d\0b11100111\x0d\0b11011011\x0d\0b10111101\x0d\0b01111110\x0d\看0是不是从中间往两边跑\x0d\当然你也可以用算法实现,你可以将这个八位的数据看做两个4位的,然后将高四位左移,低四位右移\x0d\写个大概程序为:\x0d\unsigned char a ,b,c,,i;\x0d\for(i=0;i>i))&0x0f;//将1右移i位后取反与a相与,得出结果为低四位\x0d\c=a

ORG 0000H ;开机上电主程序入口

AJMP START ;系统一进来就转到主程序

ORG 0030H ;主程序地址

START: MOV A, #0FFH ;主程序开始,A中初始化成全1

CLR C ;c清零

MOV R2, #08H ;R2左转循环计数器

LOOP: RLC A <<C+A+C<<带进位循环左移,A中的内容在8此循环中从0位到7位依次变0

MOV P2, A ;送到P2,使P2从0位到7位依次点亮LED

CALL DELAY ;单片机运行很快,为了能看到灯的变化,必须延迟,把速度降下来

DJNZ R2, LOOP ;R2每次减1后判断是否=0,8次后=0程序才会下行,否则会跳回LOOP

MOV R2,#07H ;R2右转循环计数器

LOOP1: RRC A >>C+A+C>>带进位循环右移,A中的内容在8此循环中从7位到0位依次变0

MOV P2, A ;送到P2,使P2从7位到0位依次点亮LED

CALL DELAY ;和上个循环一样,延时

DJNZ R2, LOOP1 ;R2每次减1后判断是否=0,7次后=0程序才会下行,否则会跳回LOOP1

JMP START ;跳回程序起始位置重复下一个循环

DELAY: MOV R3, #20;延时子程序,这个应该不用解释了吧

D1: MOV R4, #200

D2: MOV R5, #248

DJNZ R5, $

DJNZ R4, D2

RET

END

我觉得这种网页最简单吧,都是美工的活儿,一般情况下是DIV+CSS做出前台布局,然后用Javascript写出一些漂亮的效果,比如飘花什么的,还有些文字跑马灯效果使用Javascript配合<marque>标记来做,(忘记了是不是这样写,好久没做了),很多效果可以去网上搜源代码的,比如换个玫瑰形状的鼠标,在鼠标后面跟随两个带着翅膀的小猪,当然方面最好用gif格式,比较漂亮华丽,当然,最重要的是你的想法~找个成熟点的程序猿GG两天左右差不多就给你做完了~加油哦~!

今天要实现的一个效果是在Android中实现一个跑马灯的效果:

在新建一个Android product之后,在布局文件main中替换掉原来的TextView

代码如下:

<TextView

android:layout_width="60dp"

android:layout_height="wrap_content"

android:textColor="@android:color/black"

android:ellipsize="marquee"

android:focusable="true"

android:focusableInTouchMode="true"

android:marqueeRepeatLimit="marquee_forever"

android:scrollHorizontally="true"

android:text="这是跑马灯的效果这是跑马灯的效果">

</TextView>

其他部分代码不用改动,在模拟器上应该可以看到滚动的显示"这是跑马灯的效果这是跑马灯的效果"。

其中有几个问题是我自己碰到的,列举如下:

1宽度android:layout_width不可以设置为wrap_content(自适应内容)

2android:text最好是比较长的字符串,最少要长过自己设置的width大小(我这里是60dp)

3颜色最好别设置为@android:color/white,否则你什么都看不到,因为背景颜色也是white

4在xml中,TextView 的属性

android:ellipsize = "end"   省略号在结尾

android:ellipsize = "start" 省略号在开头

android:ellipsize = "middle" 省略号在中间

android:ellipsize = "marquee" 跑马灯

5android:scrollHorizontally="true"相信大家英文水平还不错的话都明白这句的意思是水平滚动

6android:marqueeRepeatLimit="marquee_forever" 看英文同样可以明白,是无限次循环,学习android,英文基础还是必须的。

7最后还有两句代码没有解释:

android:focusable="true" //让TextView获得焦点

android:focusableInTouchMode="true" //针对触摸屏获得当前焦点

事实上这两句代码我也了解不是特别多,在网上查了下这两个属性,目前理解为:

android:focusable="true"相当于当前Activity打开的时候,让当前控件TextView获得焦点,才可以实现滚动功能

android:focusableInTouchMode="true"和上述属性应该是类似的,但限制应该是指的触摸屏上的意思

对于这两个属性,希望有高人指点下。

使用两个jQuery插件可以满足你的要求。第一个,跑马灯插件jqueryliMarquee,第二个看图浮层的插件pirobox。

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 

<meta name="viewport" content="width=device-width, initial-scale=10">

<title>jQuery跑马灯插件</title>

<link rel="stylesheet" type="text/css" href="css/defaultcss">

<link rel="stylesheet" href="css/liMarqueecss">

<style type="text/css">

str_wrap{

padding-left: 3em;

padding-right: 3em;

background: #fefefe;

height: 10em;

line-height: 2em;

font-size: 12em;

}

str4 str_item {

font-size:0;

line-height:0

}

str4 img { opacity:08;width:640px;height:450px;border:0;}

str4 img:hover { opacity:1}

str4str_wrapstr_active {

background:#fff;

}

str2 img { opacity:08;width:640px;height:450px;border:0;}

</style>

<script src="js/jquery183minjs" type="text/javascript"></script>

<link href="css/stylecss" class="piro_style" media="screen" title="white" rel="stylesheet" type="text/css" />

<script type="text/javascript" src="js/piroboxjs"></script>

<script type="text/javascript">

$(document)ready(function() {

$()piroBox({

my_speed: 400, 

bg_alpha: 01, 

slideShow : true, 

slideSpeed : 4, 

close_all : 'piro_close,piro_overlay'

});

});

</script>

<style type="text/css">

body{margin:0 0;}

div{float:left;}

#maindiv{width:1920px;height:1080px;background-color:#ccc;}

a{text-decoration:none;}

img{border:0;}

#zhudiv{width:1920px;height:900px;background-color:#002fa7;}

</style>

</head>

<body>

<div id="maindiv">

<div id="zhudiv">

<div class="str4 str_wrap">

<a class="pirobox_gall" href="img/1jpg"><img src="img/1jpg"></a>

<a class="pirobox_gall" href="img/2jpg"><img src="img/2jpg"></a>

<a class="pirobox_gall" href="img/3jpg"><img src="img/3jpg"></a>

<a class="pirobox_gall" href="img/4jpg"><img src="img/4jpg"></a>

<a class="pirobox_gall" href="img/5jpg"><img src="img/5jpg"></a>

<a class="pirobox_gall" href="img/6jpg"><img src="img/6jpg"></a>

<a class="pirobox_gall" href="img/7jpg"><img src="img/7jpg"></a>

</div>

<div class="str2 str_wrap">

<a class="pirobox_gall" href="img/11jpg"><img src="img/11jpg"></a>

<a class="pirobox_gall" href="img/22jpg"><img src="img/22jpg"></a>

<a class="pirobox_gall" href="img/33jpg"><img src="img/33jpg"></a>

<a class="pirobox_gall" href="img/44jpg"><img src="img/44jpg"></a>

<a class="pirobox_gall" href="img/55jpg"><img src="img/55jpg"></a>

<a class="pirobox_gall" href="img/66jpg"><img src="img/66jpg"></a>

<a class="pirobox_gall" href="img/77jpg"><img src="img/77jpg"></a>

</div>

</div>

</div>

<script src="js/jqueryliMarqueejs"></script>

<script>

$(window)load(function(){

var stringEl = $('str4')liMarquee();

stringEltrigger('mouseenter');

stringEldata({scrollamount:150});

stringEltrigger('mouseleave');

});

$('str2')liMarquee({

direction: 'right'

});

</script>

</body>

</html>

这个完全是我本人自己真实项目当中的代码  

http://1xifan00520applinzicom/weixin/indexhtml

其实不用js 用css3就能完成

代码如下

标签:{

background: -webkit-gradient(linear,left top,right top,color-stop(0, #3CAF5A),color-stop(03, #3CAF5A),color-stop(05, white),color-stop(07, #3CAF5A),color-stop(1, #3CAF5A));

background-clip: text; //文字背景区域

-webkit-background-clip: text;

-webkit-text-fill-color: transparent;

text-fill-color: transparent;

-webkit-animation: slidetounlock 2s linear infinite; //动画执行的参数 第一是 动画执行的名字   第二是所需时间  第三是执行动画的快慢infinite是均速 第四个参数是循环

animation: slidetounlock 2s linear infinite;

}  

为了兼容建议把写全 百分比是指动画执行到多少以后执行里面的动画

@keyframes slidetounlock{

0% {

background-position: -2rem 0;

}

80% {

background-position: 1rem 0;

}

100% {

background-position: 2rem 0;

}

}

@-webkit-keyframes slidetounlock{

0% {

background-position: -2rem 0;

}

80% {

background-position: 1rem 0;

}

100% {

background-position: 2rem 0;

}

}

@-moz-keyframes slidetounlock{

0% {

background-position: -11rem 0;

}

80% {

background-position: 1rem 0;

}

100% {

background-position: 11rem 0;

}

}

@-ms-keyframes slidetounlock{

0% {

background-position: -11rem 0;

}

80% {

background-position: 1rem 0;

}

100% {

background-position: 11rem 0;

}

}

@-o-keyframes slidetounlock{

0% {

background-position: -11rem 0;

}

80% {

background-position: 1rem 0;

}

100% {

background-position: 11rem 0;

}

}

之后你只需要设置文字所在容器的宽度就行,用px可以代替rem;可根据自己的需求来修改

最后效果就是

白色会一直从左到右 有点像早期苹果滑动解锁的那种动画,这个可以根据实际需求来修改

//P1外接8

LED

低电平发光

//

列程序

PROTEUS

仿真

#include<reg52h>

//-----------------------------

void

delay_ms(unsigned

int

s)

{

unsigned

int

x;

for(s;

s

>

0;

s--)

{

x

=

98;

while(x--);

}

}

//-----------------------------

void

main()

{

char

i,

j;

while(1)

{

for(j

=

0;

j

<

8;

j++)

{

P1

=

255;

//全灭,

P1外接LED,

低电平发光

delay_ms(500);

//稍等片刻

for(i

=

0;

i

<

8;

i++)

{

P1

<<=

1;

delay_ms(900

-

100

j);

//延

渐短

}

}

}

}

//-----------------------------

欢迎分享,转载请注明来源:表白网

原文地址:https://h5.hunlipic.com/biaobai/2922692.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存