改进后的跑马灯程序

简介:

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

#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;
            }
         }
    }

}




















本文转自蓬莱仙羽51CTO博客,原文链接:http://blog.51cto.com/dingxiaowei/1366581,如需转载请自行联系原作者






相关文章
|
10月前
|
C#
极度偷懒 - 实现算命程序中tabcontrol的“美化”
极度偷懒 - 实现算命程序中tabcontrol的“美化”
46 0
LabVIEW显示控件中内容过长设置自动滚动条
本篇博文分享程序设计时一个细节小技巧,在LabVIEW显示控件中内容过长设置自动滚动条。
|
物联网 API 定位技术
3_6_按键与跑马灯实验|学习笔记
快速学习3_6_按键与跑马灯实验。
263 0
3_6_按键与跑马灯实验|学习笔记
|
物联网
点对点通信实现跑马灯
点对点通信实现跑马灯 内容简介 代码解析 全部代码
162 0
一篇文章帮助你理解跑马灯的滚动原理
一篇文章帮助你理解跑马灯的滚动原理
128 0
一篇文章帮助你理解跑马灯的滚动原理
小程序 - swiper除了左右切换还有上下滚动超出屏幕的内容
本来呢,我是有专门整理小程序恶心bug的文章的,每次只要添加汇总就好, 但是呢,鉴于这个问题的恶心程度,所以我把他单独拿出来说了。 ——————————————--------------------------------------------------产品经理都说恶心的需求---------...
2326 0