我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 827|回复: 7

51单片机流星灯c语言源程序

[复制链接]

该用户从未签到

77

主题

359

回帖

0

积分

二级逆天

积分
0

社区居民终身成就奖金点子奖

QQ
发表于 2021-6-26 02:07:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区

您需要 登录 才可以下载或查看,没有账号?立即注册

×
[paragraph]



51单片机流星灯c语言源程序



//.........................................

//内控自走程序
//CPU:STC12C2052
//主频:18.432MHZ(外部晶振144),内部晶振5MHZ
//日期:2008/11/30
//.........................................
#include
#include
#include
#include
#include        //产生随机数SAND();

#define     uchar   unsigned char
#define  uint    unsigned int
#define  T0_DAH  160;
#define  T0_DAL  160;
#define     Speed_Data     0x2;

void    delay(uint);
void    Out_Put (void);
void    Read_Pro1(void);
void    Read_Pro2(void);
void    Pwm_Out (void);
void    Read_Pro_R(uchar QW_Data1);
///////////////////////////////
//////////IO口定义/////////////
///////////////////////////////
sbit    ExPort1=P1^0;
sbit    ExPort8=P1^1;//2
sbit    ExPort7=P1^2;//8
sbit    ExPort6=P1^3;//7
sbit    ExPort5=P1^4;//6
sbit    ExPort4=P1^5;//5
sbit    ExPort3=P1^6;//4
sbit    ExPort2=P1^7;//3
sbit    Export9=P3^0;//
sbit    Export10=P3^1;//

//定义RAM

sfr        P1M0=0x91;
sfr        P1M1=0x92;
sfr        P3M0=0xB1;
sfr        P3M1=0xB2;
sfr        WDT_CONTR=0xe1;
sfr     ISP_TRIG=0xe6;
sfr     SPSTAT=0x84;
sfr        PCA_PWM0=0xf2;
sfr        unm1=0xf3;
sfr     unm2=0xf4;
sfr        unm3=0xf5;
sfr     unm4=0xf6;
sfr        unm5=0xf7;
sfr     unm6=0xf8;
bit     Time0_Flag;
   

uchar   Speed,Time0_Dec,Latch,Add_speed;
uchar   delay_X,Run_S,Run_S1;
uint    delay_z;
uchar    Display_Data[10];
/////////////////////////////////
//////////共十六等级/////////////
/////////////////////////////////
void    timer_0(void) interrupt 1        //共十六等级
        {   
             Time0_Flag=1;
            Time0_Dec--;
        }
//*************************************************//
//                  主函数功能                     //
//                主要产生花样数据                 //
//*************************************************//
void    main(void)
        {   
            
/////////////////////////////////////////////////////
/////////////////IO口初始化//////////////////////////
/////////////////////////////////////////////////////
/*************************读入ID号******************/
            P3M0=0x00;
            P3M1=0x03;
            memset(Display_Data,0x00,sizeof(Display_Data));
//产生一个随机字符型数据
            TMOD=0x12;
            TR1=1;
            delay_z = ((TH1<<8)|TL1)|((SBUF<<8)|ISP_TRIG)|((SPSTAT<<8)|PCA_PWM0);
            rand();
             srand(delay_z);
            Run_S1=rand()/10;                                     //得到一个数据为25-35做为停留时间
            Run_S=(uchar)Run_S1*2+15;
            TMOD=0x02;                                             //系统初始化
            TH0=T0_DAH;
              TL0=T0_DAH;
            ET0=1;
            EA=1;
            TR0=1;
            Time0_Flag=0;                                         //定时器0初始化
            Speed=Speed_Data;
            Time0_Dec=64;            
            while(1)
            {   
            Read_Pro1();
            delay_z = ((TH1<<8)|TL1)|((SBUF<<8)|ISP_TRIG)|((SPSTAT<<8)|PCA_PWM0);
             srand(delay_z);
            rand();
            Run_S=(uchar)((rand())*2)+15;
            }
        }
//*************************************************//
//               花样1:白间七彩右移渐变            //
//                对10MS到进行处理                 //
//*************************************************//
void   Read_Pro1(void)   
        {uchar j,i,B_W;
         Add_speed=1;
          memset(Display_Data,0x00,sizeof(Display_Data));
         for(i=4;i>0;i--)               //1短
             {if(i==4)B_W=64;
             if(i==3)B_W=35;
             if(i==2)B_W=10;
             if(i==1)B_W=1;
             Read_Pro_R(B_W);
             }
         for(i=Run_S;i>0;i--)
             {Read_Pro_R(0);
            }

         for(j=0;j<2;j++)
             {for(i=7;i>0;i--)            //2长
                {
                  if(i==7)B_W=64;
                  if(i==6)B_W=63;
                  if(i==5)B_W=62;
                  if(i==4)B_W=60;
                  if(i==3)B_W=55;
                  if(i==2)B_W=40;
                  if(i==1)B_W=15;
                  Read_Pro_R(B_W);
                }
              for(i=Run_S;i>0;i--)
                 {Read_Pro_R(0);
                }
            }
         for(j=0;j<2;j++)
             {for(i=5;i>0;i--)            //2中
                {
                  if(i==5)B_W=64;
                  if(i==4)B_W=63;
                  if(i==3)B_W=55;
                  if(i==2)B_W=40;
                  if(i==1)B_W=15;
                  Read_Pro_R(B_W);
                }
              for(i=Run_S;i>0;i--)
                 {Read_Pro_R(0);
                }
            }
    }
//*************************************************//
void    Read_Pro_R(uchar QW_Data1)
        {   
            Display_Data[9]=Display_Data[8];
            Display_Data[8]=Display_Data[7];
            Display_Data[7]=Display_Data[6];
            Display_Data[6]=Display_Data[5];
            Display_Data[5]=Display_Data[4];
            Display_Data[4]=Display_Data[3];
            Display_Data[3]=Display_Data[2];
            Display_Data[2]=Display_Data[1];
            Display_Data[1]=Display_Data[0];
            Display_Data[0]=QW_Data1;
            Out_Put();
            Out_Put();
            Out_Put();
            Out_Put();
            Out_Put();
            Out_Put();
        }
//*************************************************//
//                 花样输出功能                    //
//                对10MS到进行处理                 //
//*************************************************//
void   Out_Put(void)
        {uchar S;
         bit Time0_Zear;
         for(S=0;S
             {             Time0_Zear=1;
             Time0_Flag=0;             while(Time0_Zear)
                  {                   if(Time0_Flag)                                //中斷時間到,灰度輸出
                      {                      Time0_Flag=0;
                      WDT_CONTR=0x30;                       Pwm_Out();
                     }                  if(Time0_Dec==0)
                      {EA=0;                      Time0_Zear=0;
                      Time0_Dec=64;                      TH0=T0_DAH;
                        TL0=T0_DAH;                      EA=1;
                      }                 }
             }        }
//***********//*************************************************//
//                 PWM输出功能                     ////    将Display_Data[]数组内数据与16等级进行比较   //
//*************************************************//void    Pwm_Out ()
        {         Latch=Time0_Dec;
         if(Display_Data[0]>Latch)    ExPort1=1;  else    ExPort1=0;         if(Display_Data[1]>Latch)    ExPort2=1;  else    ExPort2=0;
         if(Display_Data[2]>Latch)    ExPort3=1;  else    ExPort3=0;          if(Display_Data[3]>Latch)    ExPort4=1;  else    ExPort4=0;
         if(Display_Data[4]>Latch)    ExPort5=1;  else    ExPort5=0;         if(Display_Data[5]>Latch)    ExPort6=1;  else    ExPort6=0;
         if(Display_Data[6]>Latch)    ExPort7=1;  else    ExPort7=0;         if(Display_Data[7]>Latch)    ExPort8=1;  else    ExPort8=0;
         if(Display_Data[8]>Latch)    Export9=1;  else    Export9=0;          if(Display_Data[9]>Latch)    Export10=1; else    Export10=0;
        }








来源于网络,仅供学习

回复

使用道具 举报

该用户从未签到

1

主题

6740

回帖

1280

积分

二级逆天

积分
1280

终身成就奖特殊贡献奖原创先锋奖优秀斑竹奖

发表于 2021-6-26 07:33:09 | 显示全部楼层
回复

使用道具 举报

该用户从未签到

1

主题

6218

回帖

8731

积分

二级逆天

积分
8731

终身成就奖特殊贡献奖原创先锋奖优秀斑竹奖

QQ
发表于 2021-6-26 08:50:39 | 显示全部楼层
回复

使用道具 举报

该用户从未签到

1

主题

4703

回帖

5

积分

二级逆天

积分
5

终身成就奖特殊贡献奖原创先锋奖优秀斑竹奖

发表于 2021-6-26 10:23:13 | 显示全部楼层
回复

使用道具 举报

  • TA的每日心情
    开心
    2024-9-7 09:00
  • 签到天数: 2 天

    [LV.1]初来乍到

    0

    主题

    4981

    回帖

    3456

    积分

    二级逆天

    积分
    3456

    终身成就奖社区居民优秀斑竹奖

    QQ
    发表于 2021-6-26 11:01:27 | 显示全部楼层
    谢谢分享51单片机流星灯源程序
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    前天 12:43
  • 签到天数: 67 天

    [LV.6]常住居民II

    61

    主题

    1万

    回帖

    8337

    积分

    二级逆天

    积分
    8337

    终身成就奖特殊贡献奖原创先锋奖社区居民灌水天才奖优秀斑竹奖宣传大使奖忠实会员最爱沙发社区劳模

    QQ
    发表于 2021-6-26 11:30:14 | 显示全部楼层
    回复

    使用道具 举报

    该用户从未签到

    77

    主题

    359

    回帖

    0

    积分

    二级逆天

    积分
    0

    社区居民终身成就奖金点子奖

    QQ
     楼主| 发表于 2021-7-29 01:13:52 | 显示全部楼层
    回复

    使用道具 举报

    该用户从未签到

    77

    主题

    359

    回帖

    0

    积分

    二级逆天

    积分
    0

    社区居民终身成就奖金点子奖

    QQ
     楼主| 发表于 2021-8-11 02:23:26 | 显示全部楼层
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    每日签到,有金币领取。


    Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

    本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

    ( 闽ICP备2024076463号-1 ) 论坛技术支持QQ群171867948 ,论坛问题,充值问题请联系QQ1308068381

    平平安安
    TOP
    快速回复 返回顶部 返回列表