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

立即注冊 登錄
返回首頁

uid:82008的個人空間

日志

C Language Program Design

已有 1361 次閱讀2015-6-5 00:18 | Design

#include <reg51.h>
#include "Detec_Ac.h"
//#include "Detec_Ac52.h"
#define uchar unsigned char
#define uint unsigned int
#define schar signed char
sbit  R3Led = P3^5;
schar h;
uchar i,j,k;
uchar address=0;
uchar int_count;
bit state=0,send_data_flag=0;
bit baochi_time;
uint Time, baochi_time_count;
bit ru_3ltor=1,ru_3rtol=0,ru_all_r,ru_4ltor,ru_4rtol,ru_secol;
delayfirst(uchar time);

uchar code  slave[]={0,1,2,3,4,5,6,7,8,9};

uchar code color_P[]={ //訪問片內數據存儲器idata比片外數據存儲器code相對要快一些,但用code定義的是常量,因此不能在中斷函數中去改變它的值
                      0x9f,0x93,0x90,  0x50,0x48,0x4a,  0x2a,0x26,0x25, 
0xc5,0xd9,0xda,  0x7a,0x6e,0x6f,  0x6d,0x75,0xb5,  0xb7,
0xbf,0xff,  0xfc,0xf0,0x90,  0x92,0x8a,0x4a,  0x49,0x45, 
0x25,  0x90,  0x50,0x88,0x92,0x90,  0x92,0x98,0xd0,0x90, 
0xd0,0x98,0x92,0x90,  0x93,0x8c,0x70,0x90,  0x70,0x8c, 
    0x93,0x90,  0x91,0x94,0xb0,0x90,  0xb0,0x94,0x91,0x90, 
    0x93,0x9c,0xf0,0x90,  0xf0,0x9c,0x93,0x90,  0x91,0x84,
    0x30,0x90,  0x30,0x84,0x91,0x90, 0x90,0x4a,0x25,0xda,
    0xb5,0x6f,0xff
                  };//主機,把idata改為code數組就可以大量擴充, code 存儲在flash中,只讀

uchar code color_R3[]={
                                         0x01,0x01,0x01,0x01,  0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x01,0x01,0x01,  0x00,0x01,0x01,0x01,0x01,
0x01,0x01,0x01,0x01,0x01,  0x00,0x00,0x00,0x00,0x00,
0x00,0x01,0x01,0x01,0x00,  0x01,0x01,0x01,0x01,0x01,
0x01,0x01,0x01,0x01,0x00,  0x01,0x01,0x01,0x01,0x01,
0x00,0x01,0x01,0x01,0x01,  0x01,0x01,0x01,0x01,0x01,
0x01,0x01,0x01,0x01,0x01,  0x01,0x01,0x01,0x00,0x01,
0x01,0x01,0x01,0x01,0x00,0x01,0x01,0x00,0x00,0x01,
0x01,0x00,0x01
  };

void com_initialize(void)//
{
  P1=0;
  R3Led=0;
  PCON = 0x00;
  SCON = 0x80;//方式2,不允許接收
  TMOD |= 0x01;//定時器工作方式1   
  TH0=0xff;    
  TL0=0x9c; //定時100us,串口發送出去的波形是大約每隔75us一次
  ET0=1; 
  ES=0;   
  EA=1;
  acdef();
  delayfirst(2);  
  TR0=1;
}
  
void main(void)
{
  com_initialize();
  
  while(1)
  {
    if((~baochi_time)&(send_data_flag))
{
 uchar send_data;
 send_data_flag=0;
 if(i==0)
 {
   TB8=1;
   send_data=address;
 }
 else
 { TB8=0; }
 if(i==1)
 {
   send_data=slave[h];
 }
 if(i==2)
 {
   send_data=color_P[j];
//P1=color_P[j];
 }
 if(i==3)
 {
   send_data=color_R3[k];
//R3Led=color_R3[k];
 }
 SBUF=send_data;
 while(!TI);
 TI=0;
 i++;
 if(i>=4)
 {
   i=0;
if(((h==0)&(j==29))|(address==0xaa)) //
 {
   Time=20000;//
 }
 else
   Time=900; // 
baochi_time=1;
 }
}
if(state)
j++; //指針加1
k++;
if(j%3==0) //(原寫成j>=3,這樣就出問題了)
 j-=3; //又從頭開始
 k-=3;
 if(ru_3ltor)
 {
   h++;//從機地址加1,指向下一地址
   if(h>=10)//全跑完
   {
     h=0; //又回到第一地址,此時要加3,開始另一個state
 j+=3; //從第3、6個開始
 k+=3;
 if(j%15==0)  //
 {
   h=10;
   ru_3ltor=0;
ru_3rtol=1;
 }
   }
 }

if(ru_3rtol)
   {
      h--;//從機地址減1,指向下一地址
 if(h<0)
 {
   h=9; //又回到最后地址,此時要加3,開始另一個state
j+=3; //從第18、21、24、27個state開始
k+=3;
if(j%30==0)  //15個state運行完,從頭開始,如此循環
 ru_3rtol=0;
 ru_all_r=1;
 
}
 }
   }
 }

 if(ru_all_r)// 30
 {
   if(j==30)
{
 address=0xaa;
}
else
{
 address=0;
     ru_all_r=0;
 ru_4ltor=1;
   }
 }
 /*if(ru_4ltor)
 {
   h=0;
j=0;
k=0;
P1=0x02;
   ru_3ltor=1;
ru_4ltor=0;
 }

  if(ru_4ltor) //從31開始
 {
   if((j-35)%4==0)
{
 h++;
 j-=4; //state又從31開始
 k-=4;
 if(h==10)
 {
   j+=4; //state從35開始
   k+=4;
if(j==74)
{
 h=0;
 ru_4ltor=0;
 ru_4rtol=0;
 ru_secol=1;
}
else
{
 ru_4ltor=0;
 ru_4rtol=1;
}
 }
}
 }

if(ru_4rtol)
{
 if((j-35)%4==0)
 {
   h--;
j-=4; //state又從35開始
   k-=4;
if(h==0)
   {
     j+=4; //state從39開始
     k+=4;
 ru_4ltor=1;
 ru_4rtol=0;
   }
 }
}

if(ru_secol)
{
 if(j>=81)
 {
   h=0;
j=0;
k=0;
ru_3ltor=1;
ru_secol=0;
 }
}*/
 state=0;
 baochi_time=0;
    }
  }
}
void timer0() interrupt 1  using 1
  send_data_flag=1;
  int_count++;
  if(int_count==199)
  {
    acdeb();
    int_count=0;
  }
  if(baochi_time)
  {
    baochi_time_count++;
if(baochi_time_count>=Time)
{
 baochi_time_count=0;
 state=1;
}
  }
  TH0=0xFF;    
  TL0=0x9c;
}

delayfirst(uchar time)
{
  uchar h,i,j,k,m;
  for(i=0;i<time;i++)
  {
    for(j=0;j<0x08;j++)
    { 
 for(h=0;h<0x28;h++)
      { }  //wait about 60us 40*3=120個機器周期*0.5us=60us
      acdeb();//檢測大約1至2個毫秒
 for(m=0; m<18; m++)  //18*384us=6912us=6.9ms
 {
        for(k=0;k<0xff;k++)  // 256*3*0.5=384us
        { }
 }
    }
  }
}



//測試通過

路過

雞蛋

鮮花

握手

雷人

評論 (0 個評論)

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

返回頂部
主站蜘蛛池模板: 国产精品久久久久aaaa | 美女视频网站久久 | 激情欧美日韩一区二区 | 一本一道久久a久久精品综合 | 国产成人在线观看免费 | 午夜精品福利视频 | 天天操天天摸天天干 | 久久国产精品一区二区 | 亚洲网站在线 | 国产成人免费在线 | 三级视频久久 | 日本欧美大片 | 国产成人在线视频播放 | 黄色网址免费看 | 中文成人在线 | 91在线精品一区二区 | 精品九九| 一级黄色av电影 | 亚洲二区视频 | 操久久 | 欧美一区二区三区在线观看视频 | 自拍偷拍亚洲一区 | 亚州毛片 | 成人免费小视频 | 欧美综合国产精品久久丁香 | 亚洲精品一区二区三区在线 | 久久国产激情视频 | 九九天堂网 | 精品无码久久久久久国产 | 亚洲一区欧美 | 91精品国产一区二区三区 | 成人在线免费网站 | 中文字幕一区在线观看视频 | 亚洲黄色在线 | 日韩羞羞 | 日韩一二区在线观看 | 日本亚洲精品成人欧美一区 | 欧美成人精品一区 | 午夜精品久久久久久久久久久久 | 国产精品视频一区二区三区不卡 | 成年人免费看的视频 |