| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 723 人关注过本帖
标题:高手解释一下这个程序吧
只看楼主 加入收藏
缘来是你1990
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-7-17
结帖率:0
收藏
已结贴  问题点数:20 回复次数:6 
高手解释一下这个程序吧
#include <STC12C5AXX.H>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int

sbit  RED1   = P1^0;               //红色IO口定义
sbit  GREEN1 = P1^1;               //绿色IO口定义  
sbit  BLUE1  = P1^2;               //蓝色IO口定义
sbit  RED11   = P1^5;   
uchar  num1=0,PTR1=0,DPTR=0,DPTR1=0;  
long int PWM_HL1,PWM_H1,PWM_L1,time_num=0,j1,a=0;
uchar LED_REG;
bit  Jump_flg=1;

void chioc_RGB1(uchar LED_REG)
{
uchar LEDDATA; LEDDATA=LED_REG;
 switch(LEDDATA)
 {case  0: RED1=1;GREEN1=0;BLUE1=0;break;
  case  1: RED1=1;GREEN1=1;BLUE1=0;break;
  case  2: RED1=1;GREEN1=1;BLUE1=0;break;
  case  3: RED1=0;GREEN1=1;BLUE1=0;break;
  case  4: RED1=0;GREEN1=1;BLUE1=0;break;
  case  5: RED1=0;GREEN1=1;BLUE1=1;break;
  case  6: RED1=0;GREEN1=1;BLUE1=1;break;
  case  7: RED1=0;GREEN1=0;BLUE1=1;break;
  case  8: RED1=0;GREEN1=0;BLUE1=1;break;
  case  9: RED1=1;GREEN1=0;BLUE1=1;break;
  case 10: RED1=1;GREEN1=0;BLUE1=1;break;
  case 11: RED1=1;GREEN1=0;BLUE1=0;break;
  default: break;}}


void chioc_RGB(uchar LED_REG)
{
uchar LEDDATA;
LEDDATA=LED_REG;
switch(LEDDATA)
{case  0: RED1=0;GREEN1=1;BLUE1=1;break;
 case  1: RED1=1;GREEN1=0;BLUE1=1;break;
 case  2: RED1=1;GREEN1=1;BLUE1=0;break;
 case  3: RED1=1;GREEN1=0;BLUE1=0;break;
 case  4: RED1=0;GREEN1=0;BLUE1=1;break;
 case  5: RED1=0;GREEN1=1;BLUE1=0;break;
 case  6: RED1=0;GREEN1=0;BLUE1=0;break;
 default: break;}}


void Jump_RGB()
{
     
        chioc_RGB(DPTR);        
      //  Jump_flg=0;
    //    TR0 = 1;
}

void Gradual_RGB()
 {
        PWM_H1=j1;                        
     PWM_L1=PWM_HL1-j1+1;               
     chioc_RGB1(DPTR1);
     for(;PWM_H1>0;PWM_H1--)
     _nop_;     
     chioc_RGB1(DPTR1+1);     
     for(;PWM_L1>0;PWM_L1--)
     _nop_;
}





void InitTimer0(void)
{    Jump_flg=1;
    RED1=1;
    GREEN1=1;
    BLUE1=1;
    j1=500;
    PWM_HL1=500;
    TMOD = 0x01;
    TH0 = 0xF0;
    TL0 = 0x60;
    EA = 1;
    ET0 = 1;
    TR0 = 1;
}

void main()
 {
    InitTimer0();
    for(;;)
     {
     //RED1=0;
    //GREEN1=1;
    //BLUE1=0;
      Gradual_RGB();
     
    /*    if(Jump_flg==1){Jump_RGB();}
        else{Gradual_RGB();} */
     }           
}





void Timer0Interrupt(void) interrupt 1
{
    TH0 = 0xF0;
    TL0 = 0x60;

    if(Jump_flg)
    {
      time_num++;
      if(time_num>=18000)
       {time_num=0;DPTR++;
        if(DPTR>=7)
       { DPTR=0;
        Jump_flg=0;}
        }
     }                                                           
    else
    {
      a++;
      if(a>=20)
      {a=0;
      j1--;
      if(j1<=0)
      {j1=500;DPTR1=DPTR1+2;
       if(DPTR1>11)
        {
           DPTR1=0;
           Jump_flg=1;
       }
        }  }
    }
 }
   

搜索更多相关主题的帖子: include 
2013-07-17 15:46
love云彩
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3663
专家分:11416
注 册:2012-11-17
收藏
得分:4 
最讨厌的就是像你这种把一大堆代码贴上来叫人解释整个程序,自己不看,就只想别人解释,真心觉得累!

思考赐予新生,时间在于定义
2013-07-17 16:40
q13678986740
Rank: 4
等 级:业余侠客
帖 子:114
专家分:245
注 册:2012-7-7
收藏
得分:4 
#include <STC12C5AXX.H>头文件都没怎么能断章取义?
2013-07-18 10:29
心灯甚亮
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:441
专家分:996
注 册:2013-1-29
收藏
得分:4 
单片机么
2013-07-18 10:39
wyw19880809
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:178
专家分:738
注 册:2013-3-14
收藏
得分:4 
大概就是一个通过的定时器来切换三种颜色的灯亮灭的。
你也得说你那部分不懂噻...这如果要全部解释的话 多没意思啊!!!C不懂就问C的 单片机不懂就问单片机方面的,两个都不懂  直接问老师 比较方便
2013-07-18 14:49
缘来是你1990
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-7-17
收藏
得分:0 
要40s一变化    外部定时有些不懂
2013-07-19 13:42
依恋2012
Rank: 2
等 级:论坛游民
帖 子:29
专家分:53
注 册:2013-6-12
收藏
得分:4 
新手表示需继续奋斗~~~~~
2013-07-19 20:54
快速回复:高手解释一下这个程序吧
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017690 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved