汇编语言参考程序:
org 0000h 开始
ajmp loop
org 0080h 到0030h处避开00-30的敏感地址
loop:
mov p1,#0ffh 关闭所有灯
clr p1.0 点亮灯p1.0
lcall delay 延时一段时间?
clr p1.1 点亮灯p1.1
lcall delay
clr p1.2 点亮灯p1.2
lcall delay
clr p1.3 点亮灯p1.3
lcall delay
clr p1.4 点亮灯p1.4
lcall delay
clr p1.5 点亮灯p1.5
lcall delay
clr p1.6 点亮灯p1.6
lcall delay
clr p1.7 点亮灯p1.7
lcall delay
AJMP LOOP 到最开始loop处重新运行
delay: mov r5,#20 延时。
d1: mov r6,#40
d2: mov r7,#248
djnz r7,$
djnz r6,d2
djnz r5,d1
ret
end
c语言参考程序:
#include<reg51.h>//头文件
#define uchar unsigned char //宏定义,为方便编程
#define uint unsigned int
#define LED P1 //宏定义,将P1口定义为LED
uchar led_value[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0x00}//定义一数组,内存放跑马灯数据
uchar *p=led_value//定义指针,指向跑马灯数组首地址
void delay() //延迟函数,与跑马灯跳动频率有关
{
uchar ii,jj
for(ii=0ii<200ii++)
for(jj=0jj<200jj++)
}
void run_led() //跑马灯运行函数
{
while(*p!=0x00)
{
LED=*p//将数组中数据取出赋给P1口
p++//预取下一数据
delay()//延迟
}
p=led_value
}
char code SST516[3] _at_ 0x003b//仿真器保留
main() //主函数
{
while(1)
run_led()//上电即运行跑马灯程序
}
哈哈 !!!哈哈哈!!!!打字 打得手都是痛的 …………希望对你有所帮助……
跑马灯效果,如果静态测试的时候没有问题,改成动态读取后,就出问题了,你可以这样来测试,把从数据库里读取的语句删除,只保留一条,自己复制粘贴到代码位,然后用for next之类的来循环,看还会不会有问题。
一般这种跑马灯效果,就是通过计算图片的宽度,和图片所在的容器的宽度,用js控制容器的margin来实现的,所以静态改成动态后,一般都是里面的图片的尺寸出了问题,检查下CSS样式代码,把里面所有的图片,尺寸设置成一样的。
另外还有一种可能就是动态读取出来的图片“数量”不够。
呃, 这都是我以前做web时,在用跑马灯效果时遇到过的情况,希望能帮助到你!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)