改进后的跑马灯程序

简介: 要求:在原来跑马灯的基础上,增加时间中断和外部中断来实现跑马灯的顺序。 #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;
            }
         }
    }
}
相关文章
一个手机页面的导航代码,附效果图
一个手机页面的导航代码,附效果图
|
JavaScript 前端开发
最简单的利用原生js模拟电视机屏保效果
最简单的利用原生js模拟电视机屏保效果 小的时候记得家里刚用彩色电视机时,看电视还要用天线,当天线信号不好时,电视屏幕就会进入到屏保状态,有一串文字在屏幕内“撞来撞去”。下面我们来讲一下如何实现下图这个效果: 在这里插入图片描述 HTML代码: 调速:&lt;input type=&quot;number&quot; name=&quot;&quot; id=&quot;num&quot;&gt; &lt;div id=&quot;box&quot;&gt;&lt;/div&gt; 1 2 CSS代码: * { margin: 0; padding: 0; } #box { width:
最简单的利用原生js模拟电视机屏保效果
|
物联网 API 定位技术
3_6_按键与跑马灯实验|学习笔记
快速学习3_6_按键与跑马灯实验。
263 0
3_6_按键与跑马灯实验|学习笔记
|
物联网
点对点通信实现跑马灯
点对点通信实现跑马灯 内容简介 代码解析 全部代码
162 0
中断方式实现跑马灯
中断方式实现跑马灯 宏定义 初始化 延迟 跑马灯 中断 主函数
385 0
|
前端开发
巧用滤镜实现高级感拉满的文字快闪切换效果
巧用滤镜实现高级感拉满的文字快闪切换效果
197 0
巧用滤镜实现高级感拉满的文字快闪切换效果
一篇文章帮助你理解跑马灯的滚动原理
一篇文章帮助你理解跑马灯的滚动原理
126 0
一篇文章帮助你理解跑马灯的滚动原理
|
C# 内存技术
好玩的WPF第二弹:电子表字体显示时间+多彩呼吸灯特效按钮
原文:好玩的WPF第二弹:电子表字体显示时间+多彩呼吸灯特效按钮 版权声明:转载请联系本人,感谢配合!本站地址:http://blog.csdn.net/nomasp https://blog.csdn.net/NoMasp/article/details/46457923 我们先来看看Quartz MS字体动态显示系统时间的效果,难度相较于上一篇也要简单许多。
1835 0
|
C#
好玩的WPF第一弹:窗口抖动+边框阴影效果+倒计时显示文字
原文:好玩的WPF第一弹:窗口抖动+边框阴影效果+倒计时显示文字 版权声明:转载请联系本人,感谢配合!本站地址:http://blog.csdn.net/nomasp https://blog.
987 0
小程序 - swiper除了左右切换还有上下滚动超出屏幕的内容
本来呢,我是有专门整理小程序恶心bug的文章的,每次只要添加汇总就好, 但是呢,鉴于这个问题的恶心程度,所以我把他单独拿出来说了。 ——————————————--------------------------------------------------产品经理都说恶心的需求---------...
2326 0