亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? fpgadram_new.c

?? ASC 信號機控制程序,國內最先進的信號機控制程序
?? C
字號:
#include <absacc.h>
#include <reg51.h>
unsigned int xdata start_addr;
unsigned int xdata end_addr;
unsigned int xdata address;
unsigned int xdata data_address=0xa080;    //雙口RAM數據存放地址計數器

unsigned int re_flagaddr;
unsigned int tr_flagaddr=0xa030;
unsigned int tr_startaddr;     //發送數據開始地址
unsigned int tr_endaddr;   //
unsigned int detail_answer(/*unsigned char *ptr,*/unsigned int len,unsigned char detail)
{
  unsigned char i;
  data_address=XBYTE[0XA021]<<8+XBYTE[0XA022]+1;     //當前數據區的尾地址,可以使用的首地址,偏移量
  address=data_address;
  data_address=data_address+len;            //應答數據長度1字節
  if(data_address>0x7f0)data_address=data_address-0x7F0+0x80;  //偏移地址

  while((XBYTE[0xa023]==0)&&(XBYTE[0xa024]==1)){};    //等待FGPA修改頭尾
  XBYTE[0xa023]=0x01;                              //CPU修改頭尾
  XBYTE[0xa024]=0X00;
  data_address=(XBYTE[0XA021]<<8)+XBYTE[0XA022]+1;    //CPU程序可以應用的首地址,偏移地址


  address=data_address;                     //首地址偏移量
  data_address=data_address+len;            //應答數據長度1字節
  if(data_address>0x7f0)data_address=data_address-0x7f0+0x80;
  data_address--;
  XBYTE[0XA021]=data_address>>8;          //尾地址偏移量
  XBYTE[0XA022]=data_address;
  XBYTE[0XA023]=0X00;                      //CPU修改頭尾結束
  XBYTE[0XA024]=0X00;
  tr_flagaddr=0xa030;
  for(i=0;i<6;i++){
      tr_flagaddr=tr_flagaddr+i*5;
      if(XBYTE[tr_flagaddr]==0x87)break;
                   }
  if(i==6)return 1 ;
  XBYTE[tr_flagaddr+1]=address>>8;        //發送數據的首地址
  XBYTE[tr_flagaddr+2]=address;

  XBYTE[tr_flagaddr+3]=data_address>>8;   //發送數據的尾地址
  XBYTE[tr_flagaddr+4]=data_address;
  address=address+0xa000;                 //發送應答數據   絕對地址
  XBYTE[address]=detail;
  XBYTE[tr_flagaddr]=0x01;
  return 1;
}

unsigned char answer_fpga(unsigned char flag)
{
  unsigned char i;


 //相應的接收標志寫成0x87
     XBYTE[re_flagaddr]=0x87;

      for(i=0;i<6;i++){
           tr_flagaddr=0XA030+5*i;
           if(XBYTE[tr_flagaddr]==0x87)break;
                      }
           if(i==6)return 1;
           switch(flag){ //FPG對CPU進行設置
              case 0x92:break;
              case 0x93:detail_answer(1,0xd3);break;
              case 0x94:detail_answer(1,0xd4);break;
              case 0x95:detail_answer(1,0xd5);break;
              case 0x96:detail_answer(1,0xd6);break;
              case 0x97:detail_answer(1,0xd7);break;
              case 0x98:detail_answer(1,0xd8);break;
              case 0x99:detail_answer(1,0xd9);break;
              case 0x9a:detail_answer(1,0xda);break;
              case 0x9c:detail_answer(1,0xdc);break;
              case 0x9d:break;
              case 0x9e:break;
              case 0x9f:break;
              default:break;
                  }

    return 1;
     }

unsigned char fpga_dram_data(unsigned char flag)
{

  unsigned int i,j;
  unsigned char a;
  switch(flag){
     case 0x92:break;
     case 0x93://設置時間   數據由雙口RAM讀到VNRAM中
               address++;
               if(address>0xa7f0)address=0xa080;
               a=XBYTE[address];
               XBYTE[0XC009]=a;  //year

               address++;
               if(address>0xa7f0)address=0xa080;
               XBYTE[0XC008]=XBYTE[address];  //month
               address++;
               if(address>0xa7f0)address=0xa080;
               a=XBYTE[address];
               XBYTE[0XC007]=a;  //date

               address++;
               if(address>0xa7f0)address=0xa080;
               a=XBYTE[address];
               XBYTE[0XC004]=a;  //hour
               address++;
               if(address>0xa7f0)address=0xa080;
               a=XBYTE[address];
               XBYTE[0XC002]=a;  //min
               address++;
               if(address>0xa7f0)address=0xa080;
               a=XBYTE[address];
               XBYTE[0XC000]=a;  //sec

               address++;
               if(address>0xa7f0)address=0xa080;
               a=XBYTE[address];
               XBYTE[0XC006]=XBYTE[address];  //day
               data_address=address;          //實際地址
               //應答
               answer_fpga(0x93);
               break;
     case 0x94:address++;
               if(address>0xa7f0)address=0xa080;
               if(XBYTE[address]==0){
                   for(i=0;i<289;i++){
                                      address++;
                                      if(address>0xa7f0)address=0xa080;
                                      XBYTE[0X5000+i]=XBYTE[address];
                                      }
                                       }else{
                       for(i=0;i<289;i++){
                                          address++;
                                          if(address>0xa7f0)address=0xa080;
                                          XBYTE[0X5121+i]=XBYTE[address];
                                          }
                                             }
               answer_fpga(0x94);
               break;
     case 0x95:address++;
               if(address>0xa7f0)address=0xa080;
               j=(XBYTE[address]-1)*98;   //階段表
               for(i=0;i<98;i++){
                   address++;
                   if(address>0xa7f0)address=0xa080;
                   XBYTE[0X5242+i+j]=XBYTE[address];
                                 }
               answer_fpga(0x95);
               break;
     case 0x96:address++;
               if(address>0xa7f0)address=0xa080;
               j=(XBYTE[address]-1)*41;      //方案
               for(i=0;i<41;i++){
                   address++;
                   if(address>0xa7f0)address=0xa080;
                   XBYTE[0X5e82+i+j]=XBYTE[address];
                                 }
               answer_fpga(0x96);
               break;
     case 0x97:
               break;
     case 0x98:address++;
               if(address>0xa7f0)address=0xa080;
               j=(XBYTE[address]-1)*74;        // 計劃
               for(i=0;i<74;i++){
                   address++;
                   if(address>0xa7f0)address=0xa080;
                   XBYTE[0X63a2+i+j]=XBYTE[address];                                  }
               answer_fpga(0x98);
               break;
     case 0x99:address++;
               if(address>0xa7f0)address=0xa080;
               for(i=0;i<60;i++){
                   address++;
                   if(address>0xa7f0)address=0xa080;
                   XBYTE[0X6ce2+i]=XBYTE[address];
                                 }
               answer_fpga(0x99);
               break;
     case 0x9a:break;
     case 0x9b:break;
     case 0x9c:break;
     case 0x9d:break;
     case 0xc6:j=/*(XBYTE[address+1]-1)*/31*41;      //方案  接受降級方案 寫到方案32指定的空間

               for(i=0;i<40;i++){
                   address++;
                   if(address>0xa7f0)address=0xa080;
                   XBYTE[0X5e82+i+j]=XBYTE[address];
                                 }
               answer_fpga(0x96);
               break;
     case 0x82:XBYTE[re_flagaddr]=0x87;
               data_address=XBYTE[0XA021]<<8+XBYTE[0XA022]+1;      //首地址偏移量
               address=data_address;                               //首地址偏移量
               data_address=data_address+14;              //應答數據長度14字節
               if(data_address>0x7f0)data_address=data_address-0x7f0+0x80;
               while((XBYTE[0xa023]==0)&&(XBYTE[0xa024]==1)){};    //等待FGPA修改頭尾
               XBYTE[0xa023]=0x01;                                 //CPU修改頭尾
               XBYTE[0xa024]=0X00;
               data_address=(XBYTE[0XA021]<<8)+XBYTE[0XA022]+1;  //首地址偏移量
               address=data_address;                     //首地址偏移量
               data_address=data_address+14;            //應答數據長度14字節
               if(data_address>0x7f0)data_address=data_address-0x7f0+0x80;
               data_address--;
               XBYTE[0XA021]=data_address>>8;          //尾地址偏移量
               XBYTE[0XA022]=data_address;
               XBYTE[0XA023]=0X00;                      //CPU修改頭尾結束
               XBYTE[0XA024]=0X00;
               tr_flagaddr=0xa030;
               for(i=0;i<6;i++){
                tr_flagaddr=tr_flagaddr+i*5;
                if(XBYTE[tr_flagaddr]==0x87)break;
                   }
               if(i==6)return 1 ;
               XBYTE[tr_flagaddr+1]=address>>8;        //發送數據的首地址
               XBYTE[tr_flagaddr+2]=address;
               XBYTE[tr_flagaddr+3]=data_address>>8;   //發送數據的尾地址
               XBYTE[tr_flagaddr+4]=data_address;
               address=address+0xa000;
               XBYTE[address]=0xc2;address++;          //發送應答數據
               if(address>0xa7f0)address=0xa080;
               XBYTE[address]=0x10;address++;          //最大輸出通道數
               if(address>0xa7f0)address=0xa080;
               XBYTE[address]=0x20;address++;
               if(address>0xa7f0)address=0xa080;
               XBYTE[address]=0x20;address++;
               if(address>0xa7f0)address=0xa080;
               XBYTE[address]=0x20;address++;
               if(address>0xa7f0)address=0xa080;
               XBYTE[address]=0x20;address++;
               if(address>0xa7f0)address=0xa080;
               XBYTE[address]=0x18;address++;
               if(address>0xa7f0)address=0xa080;
               XBYTE[address]=XBYTE[0X72E2];address++;       //開機時間小時
               if(address>0xa7f0)address=0xa080;
               XBYTE[address]=XBYTE[0X72E3];address++;       //開機時間分鐘
               if(address>0xa7f0)address=0xa080;
               XBYTE[address]=XBYTE[0X72E4];address++;       //關機時間小時
               if(address>0xa7f0)address=0xa080;
               XBYTE[address]=XBYTE[0X72E5];address++;       //關機時間分鐘
               if(address>0xa7f0)address=0xa080;
               XBYTE[address]=XBYTE[0X72E6];address++;       //關機后狀態
               if(address>0xa7f0)address=0xa080;
               XBYTE[address]=XBYTE[0X8000];address++;       //路口編號高位地址
               if(address>0xa7f0)address=0xa080;
               XBYTE[address]=XBYTE[0X8001];      //路口編號地位地址
               XBYTE[tr_flagaddr]=0x01;
               XBYTE[tr_flagaddr]=0x01;
               break;
     case 0x83:XBYTE[re_flagaddr]=0x87;
               data_address=XBYTE[0XA021]<<8+XBYTE[0XA022]+1;    //首地址偏移量
               address=data_address;                             //首地址偏移量
               data_address=data_address+7;            //應答數據長度7字節
               if(data_address>0x7f0)data_address=data_address-0x7f0+0x80;
               while((XBYTE[0xa023]==0)&&(XBYTE[0xa024]==1)){};    //等待FGPA修改頭尾
               XBYTE[0xa023]=0x01;                              //CPU修改頭尾
               XBYTE[0xa024]=0X00;
               data_address=(XBYTE[0XA021]<<8)+XBYTE[0XA022]+1;
               address=data_address;
               data_address=data_address+7;            //應答數據長度7字節
               if(data_address>0x7f0)data_address=data_address-0x7f0+0x80;
               data_address--;
               XBYTE[0XA021]=data_address>>8;          //
               XBYTE[0XA022]=data_address;
               XBYTE[0XA023]=0X00;                      //CPU修改頭尾結束
               XBYTE[0XA024]=0X00;
               tr_flagaddr=0xa030;
               for(i=0;i<6;i++){
                   tr_flagaddr=tr_flagaddr+i*5;
                   if(XBYTE[tr_flagaddr]==0x87)break;
                   }
               if(i==6)return 1 ;
               XBYTE[tr_flagaddr+1]=address>>8;        //發送數據的首地址
               XBYTE[tr_flagaddr+2]=address;
               XBYTE[tr_flagaddr+3]=data_address>>8;   //發送數據的尾地址
               XBYTE[tr_flagaddr+4]=data_address;
               address=address+0xa000;
               XBYTE[address]=0xc3;address++;
               if(address>0xa7f0)address=0xa080;                                           //發送應答數據
               XBYTE[address]=XBYTE[0XC009];address++;
               if(address>0xa7f0)address=0xa080;
               XBYTE[address]=XBYTE[0XC008];address++;
               if(address>0xa7f0)address=0xa080;
               XBYTE[address]=XBYTE[0XC007];address++;
               if(address>0xa7f0)address=0xa080;
               XBYTE[address]=XBYTE[0XC004];address++;
               if(address>0xa7f0)address=0xa080;
               XBYTE[address]=XBYTE[0XC002];address++;
               if(address>0xa7f0)address=0xa080;
               XBYTE[address]=XBYTE[0XC000];address++;
               if(address>0xa7f0)address=0xa080;
               XBYTE[address]=XBYTE[0XC006];
               XBYTE[tr_flagaddr]=0x01;
               break;
     case 0x84:answer_fpga(0x84);break;
     case 0x85:answer_fpga(0x85);break;
     case 0x86:answer_fpga(0x86);break;
     case 0x87:answer_fpga(0x87);break;
     case 0x88:answer_fpga(0x88);break;
     case 0x89:answer_fpga(0x89);break;
     case 0x8a:answer_fpga(0x8a);break;
     case 0x8b:answer_fpga(0x8b);break;
     case 0x8c:answer_fpga(0x8c);break;
     case 0x8d:answer_fpga(0x8d);break;
     case 0x8e:answer_fpga(0x8e);break;
     default:break;
               }
    return 1;
}
//address代表標志地址 address+1

deal_fpgadram()
{
 unsigned char i;
 unsigned char flag;
 unsigned char xdata flagg;

 for(i=0;i<6;i++){
   re_flagaddr=0XA050+i*5;
   flag=XBYTE[re_flagaddr];
   if(flag>0&&flag<5){
      start_addr=XBYTE[re_flagaddr+1];      //偏移地址
      start_addr=(start_addr<<8);
      start_addr=start_addr+XBYTE[re_flagaddr+2];
     // start_addr=start_addr+0xa000;
    //  start_addr=(XBYTE[re_flagaddr+1]<<8)+XBYTE[re_flagaddr+2];
         //開始地址
   //   end_addr  =(XBYTE[re_flagaddr+3]<<8)+XBYTE[re_flagaddr+4];          //結束地址
      end_addr=XBYTE[re_flagaddr+3];
      end_addr=end_addr<<8;
      end_addr=end_addr+ XBYTE[re_flagaddr+4];
    //  end_addr=end_addr+0xa000;
      address=start_addr+0xa000;        //實際開始地址
      data_address=start_addr;          //偏移開始地址
      flagg=XBYTE[start_addr+0xa000];
      fpga_dram_data(flagg);       //接收fpga送來的數據
      return ;
                      }
                  }


}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品一区二区三区蜜臀| 日本va欧美va精品| 日韩vs国产vs欧美| 成人av网址在线| 欧美大肚乱孕交hd孕妇| 裸体一区二区三区| 国产91精品精华液一区二区三区| 欧美色图12p| 国产精品传媒在线| 极品少妇xxxx精品少妇偷拍| 欧美日韩久久一区二区| 国产精品国产三级国产aⅴ原创| 裸体在线国模精品偷拍| 欧美日韩国产首页| 亚洲视频1区2区| 成人午夜激情片| 久久日韩精品一区二区五区| 青青草原综合久久大伊人精品 | 日韩一区二区三区电影| 国产精品国产三级国产aⅴ原创| 国产精品一二三区| 777xxx欧美| 午夜精品久久久久久| 日本高清免费不卡视频| 中文字幕五月欧美| 成人开心网精品视频| 2023国产精华国产精品| 麻豆成人久久精品二区三区红 | 欧美激情综合在线| 久国产精品韩国三级视频| 欧美一级精品大片| 日本免费在线视频不卡一不卡二| 欧美精品第1页| 丝袜a∨在线一区二区三区不卡| 欧美日韩精品系列| 亚洲在线视频一区| 欧洲中文字幕精品| 亚洲午夜电影网| 欧美日韩久久一区| 天使萌一区二区三区免费观看| 欧美人妇做爰xxxⅹ性高电影| 亚洲大型综合色站| 欧美日韩国产精品成人| 日韩成人免费看| 精品久久久影院| 成人小视频在线| 亚洲欧美另类久久久精品2019 | 国产精品66部| 中文av一区二区| 91欧美一区二区| 亚洲二区视频在线| 91麻豆精品国产91久久久久久 | 亚洲国产乱码最新视频 | eeuss鲁片一区二区三区在线看| 亚洲欧美综合色| 91亚洲大成网污www| 亚洲一区国产视频| 欧美一区二区三区免费观看视频| 经典三级在线一区| 国产农村妇女毛片精品久久麻豆| 一本大道av伊人久久综合| 午夜精品福利一区二区蜜股av| 精品国产青草久久久久福利| 成人亚洲精品久久久久软件| 一片黄亚洲嫩模| 日韩一区二区三区电影在线观看 | 在线观看欧美精品| 日日夜夜免费精品| 国产亚洲女人久久久久毛片| 欧美视频一区在线| 精品无人区卡一卡二卡三乱码免费卡 | 99re热视频这里只精品| 亚洲国产一二三| 久久精品欧美日韩精品 | 亚洲精品欧美二区三区中文字幕| 欧美一区二区三级| 99久久精品一区| 久久国产精品露脸对白| 成人欧美一区二区三区1314| 日韩精品一区二区三区四区视频 | 成人三级伦理片| 亚洲一级二级在线| 久久久777精品电影网影网| 91国产免费看| 国v精品久久久网| 日韩高清在线观看| 亚洲日本va午夜在线影院| 日韩久久免费av| 欧美精品日韩一区| 国产一区二区电影| 亚洲成a人v欧美综合天堂 | 青青青伊人色综合久久| 亚洲精品国产一区二区精华液| 欧美成人伊人久久综合网| 欧美色成人综合| 99久精品国产| a4yy欧美一区二区三区| 国产老肥熟一区二区三区| 日韩综合一区二区| 亚洲影院在线观看| 亚洲久本草在线中文字幕| 日本一区二区在线不卡| 国产亚洲综合在线| 欧美一区二区三区啪啪| 欧美日韩视频在线第一区| 色综合久久中文综合久久牛| 成人av动漫在线| 国产成人午夜精品影院观看视频| 久久精品国产成人一区二区三区 | 亚洲国产中文字幕| 亚洲激情第一区| 亚洲视频在线观看一区| 国产精品福利电影一区二区三区四区| 精品国产一区二区精华| 日韩免费观看高清完整版 | 国产一区二区三区高清播放| 久久精品国产亚洲高清剧情介绍| 日韩影院免费视频| 日韩高清一区在线| 麻豆视频观看网址久久| 久久精品国产一区二区三| 麻豆国产精品官网| 精品亚洲成a人在线观看| 国内外成人在线| 高清国产一区二区三区| 国产成人免费9x9x人网站视频| 国产成人久久精品77777最新版本| 国产河南妇女毛片精品久久久| 国产福利电影一区二区三区| 丁香五精品蜜臀久久久久99网站 | 国产乱淫av一区二区三区| 国产一区在线不卡| 国产乱国产乱300精品| 99精品视频一区| 在线国产电影不卡| 欧美二区三区91| 久久久久久9999| 国产精品久久久久毛片软件| 亚洲小说欧美激情另类| 日韩黄色小视频| 国产精品77777| 91豆麻精品91久久久久久| 欧美三级一区二区| 日韩免费电影一区| 国产精品福利电影一区二区三区四区| 一区二区免费视频| 日韩av一区二区在线影视| 国产精品一线二线三线| 91在线云播放| 欧美一级生活片| 国产欧美日韩另类一区| 一区二区三区在线观看视频| 美国av一区二区| av高清久久久| 欧美videos大乳护士334| 亚洲国产精品成人综合| 亚洲高清视频的网址| 精品午夜一区二区三区在线观看| 91亚洲精华国产精华精华液| 欧美v亚洲v综合ⅴ国产v| 粉嫩一区二区三区性色av| 精品视频在线免费看| av在线播放一区二区三区| 色婷婷一区二区| 久久久亚洲高清| 亚洲成va人在线观看| 国产成人精品免费网站| 欧美一区午夜视频在线观看| 国产精品久久久久久久久果冻传媒 | 国产精品一区二区果冻传媒| 91久久奴性调教| 久久久激情视频| 麻豆国产欧美日韩综合精品二区| 91蝌蚪porny| 国产精品网友自拍| 精品亚洲国产成人av制服丝袜| 欧美三级中文字幕在线观看| 亚洲欧美另类在线| 国产+成+人+亚洲欧洲自线| 4438x成人网最大色成网站| 亚洲美腿欧美偷拍| 成人激情午夜影院| 欧美大白屁股肥臀xxxxxx| 亚洲超碰精品一区二区| 成人av影视在线观看| 久久久99精品免费观看| 奇米在线7777在线精品| 欧美日韩中文精品| 亚洲免费毛片网站| 国产成人在线色| 国产日产精品1区| 狠狠色丁香婷婷综合久久片| 日韩欧美激情在线| 午夜久久久影院| 欧美日韩中文精品| 亚洲国产成人精品视频| 色综合久久六月婷婷中文字幕| 国产精品美女视频| 国产裸体歌舞团一区二区| 精品国产人成亚洲区|