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

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

?? debug.c

?? 電子條屏程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
//  以下程序為板06-396作為遠方超市 電子鐘帶條屏程序,LED單元板為3.7舊板

#include  "reg52.h"
#include  "stdio.h"
#include  "intrins.h"
#include  "absacc.h"
#define   uchar   unsigned char
#define   uint    unsigned int
#define   ulint   unsigned long int
#define   TIME1       100
#define   TIME2       200
#define   TIME3       300
#define   TIME4       100      //去抖延時
#define   START_PT    0
//#define   START_PT    0
#define  COUNTADDR         0XC0      //計數值在DS1302中存儲起始地址 先低位后高位 C0/C2/C4...-WRITE C1/C3/C5...-READ 3個字節(ASC)
#define  MODEL_ID_ADDR     0xe0
#define  CT_1            0        // OE 極性  改變極性可更改此宏
#define  CT_0            1
#define  RED0             0X01
#define  RED1             0X02
#define  DAT_INVERSE      0Xff;      //  數據反 0xff ,數據正常 0x00
/********** LED 屏寄存器地址定義************/
#define    SCAN       XBYTE[0X8000]
#define    CT_REG     XBYTE[0X8001]
#define    SC_REG     XBYTE[0X8002]
#define    SC_REG1    XBYTE[0X8006]
#define    IN_OE      XBYTE[0X8003]        // LED顯示板數據輸入允許端 0允許  1禁止
#define    EXT_ADDR   XBYTE[0X8004]        // EEPROM 29C040 擴展地址  A15,A16,A17,A18
#define    RELAY_REG  XBYTE[0X8007]
/*******************************************/

// i2c 程序部分定義
#define FALSE	0
#define TRUE	1
#define NOP  _nop_(); _nop_();_nop_();
#define DeviceAddr  0xa0
#define MAX_WAIT_COUNT    100
#define MAX_RETRY   3

sbit    DE = P3^5 ;
sbit    CS1 =  P2^7;
/********************************************/
sbit    IO_CE=  P1^6;        //外部IO選擇,為1選擇CPLD,為0選擇eeprom

sbit    DAT =P1^7;
sbit    SRCLK =P3^2;
sbit    CLK  =P3^3;

//*****************************************************************
sbit     T_CLK = P1^0;    /*實時時鐘時鐘線引腳 */
sbit     T_IO  = P1^1;    /*實時時鐘數據線引腳 */
sbit     T_RST = P1^4;    /*實時時鐘復位線引腳 */
//********************************************************************
sbit     ACC7=ACC^7;
sbit     ACC0=ACC^0;
//uchar code  string[]="01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789abcdefghijklmnopqrstuvwxyz";
//0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789";
uchar    code     led_seg7[10]={0xee,0x82,0xdc,0xd6,0xb2,0x76,0x7e,0xc2,0xfe,0xf6}; //6B595
 uchar  data   time_sec;
 static uchar  idata  timemem[7];
uint   data   row=0;
uint    data   pt_col=START_PT;
uint  data  flashaddr;
uint    data  flash_addr;

uchar xdata *xp_rbuffer;
uchar   data   over_count;    //回車累計變量,為4時即為通信結束
uint    data   timeout;
uint   counter1;
uint   counter0;
uchar  model_id;
uchar   KEY;
bit     update;
bit     keyflag;
bit     ledflag;
bit     receiveflag;
union
    {
    uchar dpl;
    uchar dph;
    uint  dptr;
    } dp;

void  delay(unsigned int time0)
      {
       while(time0--);

      }

/*********************************************************************/
/* 實時時鐘模塊 時鐘芯片型號:DS1302 */
/*/
/*********************************************************************/
/*
*
* 名稱: v_RTInputByte
* 說明:
* 功能: 往DS1302寫入1Byte數據
* 調用:
* 輸入: ucDa 寫入的數據
* 返回值: 無
***********************************************************************/
void v_RTInputByte(uchar ucDa)
{
        uchar i;
        ACC = ucDa;
        for(i=8; i>0; i--)
                 {
                 T_IO = ACC0;   /*相當于匯編中的 RRC */
                 T_CLK = 1;
                 T_CLK = 0;
                 ACC = ACC >> 1;
                   }
}


/********************************************************************
*
* 名稱: uchar uc_RTOutputByte
* 說明:
* 功能: 從DS1302讀取1Byte數據
* 調用:
* 輸入:
* 返回值: ACC
***********************************************************************/
uchar uc_RTOutputByte(void)
{
  uchar i;
  for(i=8; i>0; i--)
           {

           ACC=ACC>>1;    /*相當于匯編中的 RRC */
           ACC7=T_IO;
           T_CLK=1;
           T_CLK=0;
           }
           return(ACC);
}



/********************************************************************
*
* 名稱: v_W1302
* 說明: 先寫地址,后寫命令/數據
* 功能: 往DS1302寫入數據
* 調用: v_RTInputByte()
* 輸入: ucAddr: DS1302地址, ucDa: 要寫的數據
* 返回值: 無
***********************************************************************/
void v_W1302(uchar ucAddr, uchar ucDa)
{
        T_RST = 0;
        T_CLK = 0;
        T_RST = 1;
        v_RTInputByte(ucAddr); /* 地址,命令 */
        v_RTInputByte(ucDa); /* 寫1Byte數據*/
        T_CLK = 1;
        T_RST =0;
}



/********************************************************************
*
* 名稱: uc_R1302
* 說明: 先寫地址,后讀命令/數據
* 功能: 讀取DS1302某地址的數據
* 調用: v_RTInputByte() , uc_RTOutputBytk()
* 輸入: ucAddr: DS1302地址
* 返回值: ucDa :讀取的數據
***********************************************************************/
uchar uc_R1302(uchar ucAddr)
{
        uchar ucDa;
        T_RST = 0;
        T_CLK = 0;
        T_RST = 1;
        v_RTInputByte(ucAddr);    /* 地址,命令 */
        ucDa = uc_RTOutputByte(); /* 讀1Byte數據 */
        T_CLK = 1;
        T_RST =0;
        return(ucDa);
}


/********************************************************************
*
* 名稱: v_Set1302
* 說明:
* 功能: 設置初始時間
* 調用: v_W1302()
* 輸入: pSecDa: 初始時間地址。初始時間格式為: 秒 分 時 日 月 星期 年
* 7Byte (BCD碼) 1B 1B 1B 1B 1B 1B 1B
* 返回值: 無
***********************************************************************/
void v_Set1302(uchar idata *pSecDa)
{
        uchar i;
        uchar ucAddr = 0x80;
        v_W1302(0x8e,0x00); /* 控制命令,WP=0,寫操作?*/
        for(i =7;i>0;i--)
              {
              v_W1302(ucAddr,*pSecDa); /* 秒 分 時 日 月 星期 年 */

              pSecDa++;
              ucAddr +=2;
              }
       v_W1302(0x8e,0x80); /* 控制命令,WP=1,寫保護?*/
}


/********************************************************************
*
* 名稱: v_Get1302
* 說明:
* 功能: 讀取DS1302當前時間
* 調用: uc_R1302()
* 輸入: ucCurtime: 保存當前時間地址。當前時間格式為: 秒 分 時 日 月 星期 年
* 7Byte (BCD碼) 1B 1B 1B 1B 1B 1B 1B
* 返回值: 無
***********************************************************************/
void v_Get1302(uchar idata *ucCurtime)
{
        uchar i;
        uchar ucAddr = 0x81;
        for (i=0;i<7;i++)
            {
            *ucCurtime++=uc_R1302(ucAddr);   /*格式為: 秒 分 時 日 月 星期 年 */
            ucAddr += 2;
             }
 }

void charge()      //DS1302 充電
    {
           v_W1302(0x8e,0x00); /* 控制命令,WP=0,寫操作?*/
           v_W1302(0x90,0xa5); // 選用一個二極管及一個2K電阻
           v_W1302(0x8e,0x80); /* 控制命令,WP=1,寫保護?*/

    }


uint  LoadCounter(uchar number)
{
   union
   {
      uchar byte[2];
      uint  word;
   }num;
   number=number*2+1;
   num.byte[0]=uc_R1302(COUNTADDR+number);
   num.byte[1]=uc_R1302(COUNTADDR+number+2);

   return(num.word);

}
uchar  LoadModelId()
{
   uchar model_id;
   model_id=uc_R1302(MODEL_ID_ADDR+1);

   return(model_id);

}
void  SaveModelId(uchar model_id)
{
   v_W1302(0x8e,0x00);
   v_W1302(MODEL_ID_ADDR,model_id);
   v_W1302(0x8e,0x80);

}

void SaveCounter(uchar number,uint counter)
{
  union
   {
      uchar byte[2];
      uint  word;
   }num;
   number=number*2;
   num.word=counter;

     v_W1302(0x8e,0x00);
     v_W1302(COUNTADDR+number,num.byte[0]);
     v_W1302(COUNTADDR+number+2,num.byte[1]);
     v_W1302(0x8e,0x80);

}
void  SetTime(uchar xdata *pt_time)
{
   uchar idata *ip_time;
   uchar data high;
   uchar data low;
   ip_time=timemem;

   high=*(pt_time+19);         //秒
   high=(high-0x30)<<4;
   low=*(pt_time+20);
   low=(low-0x30)&0x0f;
   *ip_time++=high|low;

   high=*(pt_time+16);       // 分
   high=(high-0x30)<<4;
   low=*(pt_time+17);
   low=(low-0x30)&0x0f;
   *ip_time++=high|low;


   high=*(pt_time+13);       // 時
   high=(high-0x30)<<4;
   low=*(pt_time+14);
   low=(low-0x30)&0x0f;
   *ip_time++=high|low;

   high=*(pt_time+8);       // 日
   high=(high-0x30)<<4;
   low=*(pt_time+9);
   low=(low-0x30)&0x0f;
   *ip_time++=high|low;

   high=*(pt_time+5);        // 月
   high=(high-0x30)<<4;
   low=*(pt_time+6);
   low=(low-0x30)&0x0f;
   *ip_time++=high|low;

   low=*(pt_time+11);      // 星期
   low=(low-0x30)&0x0f;
   if((low==0)||(low==8))
              low=7;
   *ip_time++=low;
                            // 年
   high=*(pt_time+2);
   high=(high-0x30)<<4;
   low=*(pt_time+3);
   low=(low-0x30)&0x0f;
   *ip_time++=high|low;

    v_Set1302(timemem);

}

void  DispNumToLed(uchar dat)
{
      uchar data d;
      uchar data i;
      d=led_seg7[dat];
        for(i=0;i<8;i++)
        {
          d<<=1;
          DAT=CY;
          _nop_();
          _nop_();
          CLK=0;
          _nop_();
          _nop_();
          _nop_();
          CLK=1;
        }

}
void IntToChar(uint num,uchar data *pt_array)
{
  *pt_array++=num/1000;
  *pt_array++=(num%1000)/100;
  *pt_array++=(num%100)/10;
  *pt_array++=num%10;

}
void  led_disp()
{
  uchar i;
  uchar j;
  uchar d;
  uchar num_array[4];
  uchar  idata *p_time=timemem;     //指向內存中的時間位置
  uchar  data   time;
 //if(ledflag)
   {

        DispNumToLed(2);
        DispNumToLed(0);

         time=*(p_time+6);                // 年
         DispNumToLed((time&0xf0)>>4);
         DispNumToLed(time&0x0f);


         time=*(p_time+4);                //月
         DispNumToLed((time&0xf0)>>4);
         DispNumToLed(time&0x0f);

         time=*(p_time+3);                //日
         DispNumToLed((time&0xf0)>>4);
         DispNumToLed(time&0x0f);


         time=*(p_time+5);               // 星期
         if(time==7)
                 time=8;
         DispNumToLed(time&0x0f);

                                          // 時
         time=*(p_time+2);
         DispNumToLed((time&0xf0)>>4);
         DispNumToLed(time&0x0f);

         time=*(p_time+1);                  //分
         DispNumToLed((time&0xf0)>>4);
        DispNumToLed(time&0x0f);

         time=*(p_time+0);                  // 秒
         DispNumToLed((time&0xf0)>>4);
         DispNumToLed(time&0x0f);

        SRCLK=0;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        SRCLK=1;
        ledflag=0;
   }


}


//********************************* FLASH  讀寫程序 ****************************
void  Flash_Write(uchar page,uchar xdata *source,uchar xdata *destination)
{
  uint data i;
  IO_CE=1;
  EXT_ADDR=0;
  IO_CE=0;
  XBYTE[0xD555]=0xaa;      //load 0xaa to adresss 5555
  XBYTE[0xAAAA]=0x55;      //load 0x55 to address 2aaa
  XBYTE[0xD555]=0xa0;      //load 0xa0 to adresss 5555
  IO_CE=1;
  EXT_ADDR=page;
  IO_CE=0;
  for(i=0;i<256;i++)
  {
     *destination++=*source++;
  }

  delay(10000);


}

void  Flash_Erase()
{

}

void  Dis_Flash_Protect()
{
  IO_CE=1;
  IO_CE=0;
  XBYTE[0xD555]=0xaa;
  XBYTE[0xAAAA]=0x55;
  XBYTE[0xD555]=0x80;
  XBYTE[0xD555]=0xaa;
  XBYTE[0xAAAA]=0x55;
  XBYTE[0xD555]=0x20;
  delay(20000);


}

void SaveModel(uchar xdata *xp_ram)
{
   uint data i;
   uint data j;
   uchar data k;
   uchar data page_flash;
   uchar xdata *xp_flash;
   uchar data row;

     page_flash=0x43000/0x7fff;
     xp_flash=0x43000|0x8000;
               IO_CE=1;
               EXT_ADDR=0;
               IO_CE=0;
               XBYTE[0xD555]=0xaa;      //load 0xaa to adresss 5555
               XBYTE[0xAAAA]=0x55;      //load 0x55 to address 2aaa
               XBYTE[0xD555]=0xa0;      //load 0xa0 to adresss 5555
               IO_CE=1;
               EXT_ADDR=page_flash;
               IO_CE=0;

                for(i=0;i<256;i++)
                {
                    if(xp_ram<0x7fff)
                    {
                      *xp_flash++=*xp_ram++;
                    }
                    else
                    {
                       *xp_flash++=' ';
                    }

                }
                  delay(10000);

}

uint  LoadSetValue(uchar number)
{
   uint  setvalue;
   uchar xdata *xp_flash;
   uchar data  page_flash;
   uchar num[4];
   uchar data  i;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美成人官网二区| 国产九色sp调教91| 欧美日韩精品系列| 91在线国内视频| 亚洲欧美一区二区三区极速播放| 成人av电影在线播放| 亚洲欧美二区三区| 欧美三区在线观看| 毛片av中文字幕一区二区| 欧美一三区三区四区免费在线看| 美日韩一区二区| 国产亚洲综合色| 91在线国产观看| 婷婷中文字幕综合| 欧美成人一区二区三区在线观看| 国产精品 欧美精品| 欧美激情资源网| 欧美色爱综合网| 国产一区福利在线| 成人欧美一区二区三区在线播放| 欧洲精品中文字幕| 久久99久久99| 亚洲欧美成人一区二区三区| 欧美精品第一页| 懂色av一区二区夜夜嗨| 亚洲v中文字幕| 国产清纯白嫩初高生在线观看91| 91久久精品日日躁夜夜躁欧美| 视频一区免费在线观看| 国产女人18水真多18精品一级做 | 欧美精品色综合| 国产成人综合网| 亚洲一区成人在线| 久久精品视频一区二区三区| 欧美视频三区在线播放| 国产一区二区在线免费观看| 亚洲欧美视频在线观看| 亚洲精品一线二线三线无人区| jiyouzz国产精品久久| 日韩精品高清不卡| 中文字幕一区二区三区在线不卡 | 蜜臀99久久精品久久久久久软件| 国产丝袜在线精品| 欧美日韩一区二区三区四区五区| 国产成人综合视频| 美洲天堂一区二卡三卡四卡视频 | 一区二区三区资源| 久久久精品欧美丰满| 欧美人牲a欧美精品| 成人亚洲一区二区一| 日本欧美一区二区| 亚洲综合一区在线| 中文字幕在线一区二区三区| 精品久久久久久久久久久久包黑料| 91免费国产在线| 制服丝袜成人动漫| 91香蕉视频mp4| 国产69精品久久777的优势| 秋霞午夜av一区二区三区| 亚洲免费av在线| 中文字幕一区二区三区视频| 久久综合成人精品亚洲另类欧美| 欧美老女人在线| 欧美综合天天夜夜久久| 91色porny| 成人精品在线视频观看| 国产精品亚洲综合一区在线观看| 午夜不卡在线视频| 亚洲亚洲精品在线观看| 亚洲丝袜精品丝袜在线| 国产精品福利一区二区三区| 久久久精品国产免大香伊| 久久综合狠狠综合久久激情| 精品国产一区二区三区忘忧草| 在线电影国产精品| 欧美精品丝袜久久久中文字幕| 欧美午夜一区二区三区免费大片| 91精品福利在线| 欧美偷拍一区二区| 欧美日韩不卡在线| 在线成人高清不卡| 欧美tickling网站挠脚心| 欧美大片顶级少妇| 2021久久国产精品不只是精品| 欧美变态tickling挠脚心| 日韩欧美一级在线播放| 日韩精品一区二区三区三区免费 | 免费观看在线色综合| 美女精品自拍一二三四| 经典三级在线一区| 国产精品系列在线播放| 成人永久免费视频| 色哟哟国产精品| 欧美人妇做爰xxxⅹ性高电影| 69堂精品视频| 精品国产免费久久| 亚洲国产经典视频| 亚洲激情第一区| 午夜精品视频在线观看| 久久99精品久久只有精品| 国产另类ts人妖一区二区| 成人性生交大合| 色av一区二区| 欧美一区二区精品久久911| 久久综合久久综合久久综合| 亚洲国产精品精华液ab| 亚洲精品国产一区二区精华液| 亚洲国产aⅴ天堂久久| 久久福利资源站| 99视频精品全部免费在线| 在线免费av一区| 日韩精品自拍偷拍| 欧美激情自拍偷拍| 亚洲444eee在线观看| 制服丝袜国产精品| 中文字幕二三区不卡| 亚洲超碰97人人做人人爱| 激情综合色综合久久| 成人综合在线网站| 91精品国产美女浴室洗澡无遮挡| 久久久久久久久久久久久久久99| 亚洲色图清纯唯美| 毛片不卡一区二区| 91麻豆国产福利在线观看| 日韩一区二区高清| 中文字幕一区日韩精品欧美| 日本在线不卡视频| 97精品久久久午夜一区二区三区| 欧美巨大另类极品videosbest| 国产欧美精品一区| 免费在线观看日韩欧美| 99视频一区二区三区| 欧美mv日韩mv国产网站app| 一区二区在线免费观看| 国产在线不卡一区| 欧美二区乱c少妇| |精品福利一区二区三区| 久久99国产精品久久99果冻传媒| 色域天天综合网| 久久久国产精华| 麻豆成人91精品二区三区| 色成人在线视频| 中文字幕中文在线不卡住| 国产精品一二三四| 日韩美女在线视频| 午夜欧美一区二区三区在线播放 | 91丨porny丨户外露出| 精品噜噜噜噜久久久久久久久试看| 亚洲精品国产一区二区三区四区在线| 国产精品自拍在线| 欧美一级欧美一级在线播放| 亚洲一区二区在线视频| 国产91丝袜在线播放九色| 精品少妇一区二区三区在线视频 | 国产精品天干天干在观线| 久久99精品国产.久久久久久 | 国产欧美日韩视频在线观看| 久久精品国产亚洲一区二区三区| 欧美日韩在线观看一区二区| 亚洲精品欧美综合四区| 99久久久精品| 中文字幕第一页久久| 国产揄拍国内精品对白| 精品国产伦一区二区三区免费| 日本成人在线不卡视频| 欧美理论电影在线| 日韩成人精品在线| 欧美精选在线播放| 亚洲成人av一区二区三区| 欧美四级电影网| 午夜精品久久一牛影视| 91麻豆精品国产91| 毛片不卡一区二区| 精品日韩欧美在线| 精品一区二区精品| 国产拍揄自揄精品视频麻豆| 狠狠v欧美v日韩v亚洲ⅴ| 欧美成人一区二区三区在线观看| 欧美午夜精品久久久久久超碰| 一区二区在线观看av| 欧美天堂亚洲电影院在线播放| 一区二区三区在线免费观看| 在线观看欧美精品| 天天综合网 天天综合色| 日韩一级二级三级| 国产在线视频不卡二| 国产日韩精品一区二区三区| 国产福利一区在线观看| 亚洲免费av高清| 欧美日韩国产精选| 国内外成人在线| 亚洲国产激情av| 色丁香久综合在线久综合在线观看| 亚洲国产综合人成综合网站| 欧美一区二区在线观看| 国产精品伊人色| 亚洲日本成人在线观看| 欧美丰满少妇xxxxx高潮对白| 美女网站在线免费欧美精品| 亚洲国产精品高清|