改进后的跑马灯程序

简介: 要求:在原来跑马灯的基础上,增加时间中断和外部中断来实现跑马灯的顺序。 #include #include sbit P32 = P3^2; unsigned char flag=0; //设置标志位(0/1)  1为左移 unsigned cha...

要求:在原来跑马灯的基础上,增加时间中断和外部中断来实现跑马灯的顺序。

#include<reg52.h>

#include <intrins.h>
sbit P32 = P3^2;
unsigned char flag=0; //设置标志位(0/1)  1为左移
unsigned char LED;
unsigned char count=0;


void delayms(unsigned char ms)
{
    unsigned char i;
    while(ms--)
    {
    for(i = 0; i < 120; i++);
    }
}


void timer0() interrupt 1
{
       TH0=(65535-50000)/256;
       TL0=(65535-50000)%256;
       
       count++;
       if(count==20)
       {
           count=0;
           flag=!flag;
        }
}


void waibu() interrupt 0
{
        flag=!flag;
}




void main()
{
    
        //时间中断打开
        TMOD=0x11;
        IE=0x83;   //EA=1; ET0=1;
        TR0=1;
         //外部中断打开
         //IE=0x81;
         //EA=1;
         //EX0=1;
         IT0=1;     //为1是边沿触发,为0是电平触发
         
         
        TH0=(65535-50000)/256;
        TL0=(65535-50000)%256;
        
    LED = 0x01;
        
    P1 = LED;
    while(1)
    {
            if(flag==1)
        {
           while(1){
           if(P1!=0x80)
            {
                 
                 LED=LED<<1;
                 P1 = LED;
                 delayms(250);
                 //n++;
                 
            }
            else if(P1==0x80)
            {
                 //n=0;
                 LED=0x01;
                 P1=LED; 
                 delayms(250);
            }
            if(flag==0)
               break;
            }
        
         
        }
        else
        {
        while(1)
        {
        if(P1!=0x01)
            {
                 
                 LED=LED>>1;
                 P1 = LED;
                 delayms(250);
                
                 
            }
            else if(P1==0x01)
            {
                
                 LED=0x80;
                 P1=LED; 
                 delayms(250);
            }
            if(flag==1)
               break;
            }
         }
    }
}
相关文章
|
30天前
|
前端开发
直接复制粘贴!纯CSS如何秒制作充电动画?立即试试!
直接复制粘贴!纯CSS如何秒制作充电动画?立即试试!
一个手机页面的导航代码,附效果图
一个手机页面的导航代码,附效果图
|
前端开发
巧用滤镜实现高级感拉满的文字快闪切换效果
巧用滤镜实现高级感拉满的文字快闪切换效果
235 0
巧用滤镜实现高级感拉满的文字快闪切换效果
一篇文章帮助你理解跑马灯的滚动原理
一篇文章帮助你理解跑马灯的滚动原理
152 0
一篇文章帮助你理解跑马灯的滚动原理
|
物联网
点对点通信实现跑马灯
点对点通信实现跑马灯 内容简介 代码解析 全部代码
187 0
Qt 使用一张图片实现转圈的动画效果
这个是显示的效果,以前用的时候就是网上照一张Gif动画,完了加载进去。我们可以在Qt中使用Movie来操纵Gif动画。 这个试下方式就是通过painter绘制一个图片,通过按照一定的规律旋转图片实现的。
816 0
Qt 使用一张图片实现转圈的动画效果
|
C# 内存技术
好玩的WPF第二弹:电子表字体显示时间+多彩呼吸灯特效按钮
原文:好玩的WPF第二弹:电子表字体显示时间+多彩呼吸灯特效按钮 版权声明:转载请联系本人,感谢配合!本站地址:http://blog.csdn.net/nomasp https://blog.csdn.net/NoMasp/article/details/46457923 我们先来看看Quartz MS字体动态显示系统时间的效果,难度相较于上一篇也要简单许多。
1947 0
|
C#
好玩的WPF第一弹:窗口抖动+边框阴影效果+倒计时显示文字
原文:好玩的WPF第一弹:窗口抖动+边框阴影效果+倒计时显示文字 版权声明:转载请联系本人,感谢配合!本站地址:http://blog.csdn.net/nomasp https://blog.
1026 0
|
算法 C# iOS开发
通通玩blend美工(6)下——仿iPhone滚动选择器的ListBox(交互逻辑)
原文:通通玩blend美工(6)下——仿iPhone滚动选择器的ListBox(交互逻辑)       上一篇我们已经把界面画出来了,这篇我们就来制作交互的逻辑吧。上一篇的电梯: http://www.
979 0