zoukankan      html  css  js  c++  java
  • 改进后的跑马灯

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

      1 #include<reg52.h>
      2 #include <intrins.h>
      3 sbit P32 = P3^2;
      4 unsigned char flag=0; //设置标志位(0/1)  1为左移
      5 unsigned char LED;
      6 unsigned char count=0;
      7 
      8 void delayms(unsigned char ms)
      9 {
     10     unsigned char i;
     11     while(ms--)
     12     {
     13     for(i = 0; i < 120; i++);
     14     }
     15 }
     16 
     17 void timer0() interrupt 1
     18 {
     19        TH0=(65535-50000)/256;
     20        TL0=(65535-50000)%256;
     21        
     22        count++;
     23        if(count==20)
     24        {
     25            count=0;
     26            flag=!flag;
     27         }
     28 }
     29 
     30 void waibu() interrupt 0
     31 {
     32         flag=!flag;
     33 }
     34 
     35 
     36 void main()
     37 {
     38     
     39         //时间中断打开
     40         TMOD=0x11;
     41         IE=0x83;   //EA=1; ET0=1;
     42         TR0=1;
     43          //外部中断打开
     44          //IE=0x81;
     45          //EA=1;
     46          //EX0=1;
     47          IT0=1;     //为1是边沿触发,为0是电平触发
     48          
     49          
     50         TH0=(65535-50000)/256;
     51         TL0=(65535-50000)%256;
     52         
     53     LED = 0x01;
     54         
     55     P1 = LED;
     56     while(1)
     57     {
     58             if(flag==1)
     59         {
     60            while(1){
     61            if(P1!=0x80)
     62             {
     63                  
     64                  LED=LED<<1;
     65                  P1 = LED;
     66                  delayms(250);
     67                  //n++;
     68                  
     69             }
     70             else if(P1==0x80)
     71             {
     72                  //n=0;
     73                  LED=0x01;
     74                  P1=LED; 
     75                  delayms(250);
     76             }
     77             if(flag==0)
     78                break;
     79             }
     80         
     81          
     82         }
     83         else
     84         {
     85         while(1)
     86         {
     87         if(P1!=0x01)
     88             {
     89                  
     90                  LED=LED>>1;
     91                  P1 = LED;
     92                  delayms(250);
     93                 
     94                  
     95             }
     96             else if(P1==0x01)
     97             {
     98                 
     99                  LED=0x80;
    100                  P1=LED; 
    101                  delayms(250);
    102             }
    103             if(flag==1)
    104                break;
    105             }
    106          }
    107     }
    108 }
  • 相关阅读:
    CF 336494 C. Meme Problem
    MySql备份
    MySQL索引背后的数据结构及算法原理
    show profile 开启权限
    示例数据库
    索引使用策略及优化
    shiro权限登录案例
    Swagger技术
    Shiro框架
    shiro授权管理
  • 原文地址:https://www.cnblogs.com/dingxiaowei/p/3104346.html
Copyright © 2011-2022 走看看