改进后的跑马灯程序

简介: 要求:在原来跑马灯的基础上,增加时间中断和外部中断来实现跑马灯的顺序。 #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;
            }
         }
    }
}
相关文章
|
2月前
|
前端开发 JavaScript 容器
霓虹灯数字时钟(可复制源代码)
本文展示了如何创建一个具有3D效果的霓虹灯数字时钟。通过HTML、CSS和JavaScript实现了一个动态更新时间的时钟,其中包含了字体定义、3D变换、过渡效果以及颜色动画等关键部分。最后提供了完整的代码供读者复制使用。
霓虹灯数字时钟(可复制源代码)
|
3月前
|
Windows
MASM32编程状态栏显示字符动画,按钮跑马灯
MASM32编程状态栏显示字符动画,按钮跑马灯
|
移动开发
【笔记】一行代码完成——h5页面上滑图片渐隐
一行代码完成——h5页面上滑图片渐隐
170 0
一篇文章帮助你理解跑马灯的滚动原理
一篇文章帮助你理解跑马灯的滚动原理
159 0
一篇文章帮助你理解跑马灯的滚动原理
|
物联网
点对点通信实现跑马灯
点对点通信实现跑马灯 内容简介 代码解析 全部代码
207 0
Qt 使用一张图片实现转圈的动画效果
这个是显示的效果,以前用的时候就是网上照一张Gif动画,完了加载进去。我们可以在Qt中使用Movie来操纵Gif动画。 这个试下方式就是通过painter绘制一个图片,通过按照一定的规律旋转图片实现的。
844 0
Qt 使用一张图片实现转圈的动画效果
|
C#
好玩的WPF第一弹:窗口抖动+边框阴影效果+倒计时显示文字
原文:好玩的WPF第一弹:窗口抖动+边框阴影效果+倒计时显示文字 版权声明:转载请联系本人,感谢配合!本站地址:http://blog.csdn.net/nomasp https://blog.
1045 0