久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

51單片機流星燈c語言源程序

作者:佚名   來源:本站原創   點擊數:  更新時間:2014年09月02日   【字體:

大家自己根據程序中的io定義部分  接上燈即可實現流星燈的效果!!

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

//內控自走程序
//CPU:STC12C2052
//主頻:18.432MHZ(外部晶振144),內部晶振5MHZ
//日期:2008/11/30
//.........................................
#include <reg52.H>
#include <intrins.h>
#include <absacc.h>
#include <string.h>
#include<stdlib.h> //產生隨機數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%10*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()%10)*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<Speed*Add_speed;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;
}
 
關閉窗口

相關文章

主站蜘蛛池模板: 九九视频网 | 成年男女免费视频网站 | 国产精品久久久久久久一区二区 | 午夜av电影 | 亚洲网站在线播放 | 青青草一区二区 | 欧美日韩在线观看一区 | 欧美午夜精品 | 99pao成人国产永久免费视频 | 成人在线精品视频 | 激情综合五月 | 国产在线精品免费 | www国产成人免费观看视频 | 欧美久久一区 | 午夜免费视频 | 成年男女免费视频网站 | 亚洲欧美日韩在线不卡 | 国产一区二区在线免费观看 | 欧美日韩国产一区二区 | 一区二区三区中文 | 欧美二三区 | 91精品久久久久久久久 | 亚洲精品区 | 国产视频一区二区 | 亚洲美女网站 | 玖玖国产 | 日韩精品久久 | 亚洲国产成人精品女人久久久 | 国产精品美女久久久久aⅴ国产馆 | 国产中文字幕在线观看 | 国产一区二区三区久久 | 一区二区在线视频 | 日韩精品一区二区三区中文在线 | 久久精品美女 | 日韩黄色av | 在线视频一区二区三区 | 九色 在线 | 欧美久久天堂 | 日韩欧美二区 | 久久久久久久av | 久久久久久久一级 |