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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? yijia.c

?? 一個大型洗衣設(shè)備晾衣架的光電控制系統(tǒng)的C51程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
#include <reg51.h>

#define USE_KEY
#define CH451_RESET     0x0201                           /*復位    */
#define CH451_LEFTMOV   0x0300		            /*設(shè)置移動方式-左移 */
#define CH451_LEFTCYC   0x0301		            /*設(shè)置移動方式-左循 */
#define CH451_RIGHTMOV  0x0302		            /*設(shè)置移動方式-右移        */
#define CH451_RIGHTCYC  0x0303		            /*設(shè)置移動方式-右循        */
#define CH451_SYSOFF    0x0400                      /*關(guān)顯示、鍵盤、看門狗     */
#define CH451_SYSON1    0x0401                      /*開顯示                   */
#define CH451_SYSON2    0x0403                      /*開顯示、鍵盤、關(guān)看門狗   */
#define CH451_SYSON3    0x0407                      /*開顯示、鍵盤、看門狗功能 */
#define CH451_DSP       0x0500                      /*設(shè)置默認顯示方式   */
#define CH451_BCD       0x0580                      /*設(shè)置BCD譯碼方式  */
#define CH451_USER      0x05c0                      /*設(shè)置BCD譯碼方式、4位數(shù)碼管、最亮*/
#define CH451_TWINKLE   0x0600		            /*設(shè)置閃爍控制的命令碼,無閃爍    */
#define CH451_TWINKLE1   0x0601		            /*設(shè)置閃爍控制--從右向左計數(shù),1閃爍(DIG0驅(qū)動)    */
#define CH451_TWINKLE2   0x0602		            /*設(shè)置閃爍控制--從右向左計數(shù),2閃爍(DIG1驅(qū)動)     */
#define CH451_TWINKLE3   0x0604		            /*設(shè)置閃爍控制--從右向左計數(shù),3閃爍(DIG2驅(qū)動)     */
#define CH451_TWINKLE4   0x0608		            /*設(shè)置閃爍控制--從右向左計數(shù),4閃爍(DIG3驅(qū)動)     */
#define CH451_TWINKLE5   0x0610		            /*設(shè)置閃爍控制--從右向左計數(shù),5閃爍(DIG4驅(qū)動)     */
#define CH451_TWINKLE6   0x0620		            /*設(shè)置閃爍控制--從右向左計數(shù),6閃爍(DIG5驅(qū)動)     */
#define CH451_TWINKLE7   0x0640		            /*設(shè)置閃爍控制--從右向左計數(shù),7閃爍(DIG6驅(qū)動)     */
#define CH451_TWINKLE8   0x0680		            /*設(shè)置閃爍控制--從右向左計數(shù),8閃爍(DIG7驅(qū)動)     */
#define CH451_DIG0       0x0800                     /*送數(shù)碼管位0顯示的數(shù)據(jù),本值或上一個要顯示的值即可   */
#define CH451_DIG1       0x0900		            /*送數(shù)碼管位1顯示的數(shù)據(jù),本值或上一個要顯示的值即可   */
#define CH451_DIG2       0x0a00		            /*送數(shù)碼管位2顯示的數(shù)據(jù),本值或上一個要顯示的值即可   */
#define CH451_DIG3       0x0b00		            /*送數(shù)碼管位3顯示的數(shù)據(jù),本值或上一個要顯示的值即可   */
#define CH451_DIG4       0x0c00		            /*送數(shù)碼管位4顯示的數(shù)據(jù),本值或上一個要顯示的值即可   */
#define CH451_DIG5       0x0d00	                    /*送數(shù)碼管位5顯示的數(shù)據(jù),本值或上一個要顯示的值即可   */
#define CH451_DIG6       0x0e00	                    /*送數(shù)碼管位6顯示的數(shù)據(jù),本值或上一個要顯示的值即可  */
#define CH451_DIG7       0x0f00		            /*送數(shù)碼管位7顯示的數(shù)據(jù),本值或上一個要顯示的值即可  */
#define CH451_KEY        0x07		            /*讀取鍵值的命令碼  */

#define maxp            3000
#define minp            30

typedef  unsigned char   U8 ;
typedef  unsigned int    U16;

 bit pf;                                            /* 有脈沖信號標志*/
 bit t10msf;                                        /* 10ms 間隔到標志  */
 bit udf;                                           /*需要顯示更新標志 */

 bit kf;                                            /*有按鍵按下標志*/
 bit k1f;                                           /*按鍵k1按下標志--左鍵--啟動、確認*/
// bit k2f;                                           /*按鍵k2按下標志--中左鍵--移位*/
// bit k3f;                                           /*按鍵k3按下標志--中右鍵--增1*/
// bit k4f;                                           /*按鍵k3按下標志--右鍵--減1*/

 sbit HC14=P3^2;                                     /* INT0, 光電信號輸入口*/
 sbit jout=P2^0;                                    /* 噴碼信號輸出口*/


 /* CH451接口*/
 sbit ch451_dout=P3^3;                             /* INT1,鍵盤中斷和鍵值數(shù)據(jù)輸入,接CH451的數(shù)據(jù)輸出*/
 sbit ch451_load=P1^0;                             /*串行命令加載,上升延激活 */
 sbit ch451_din=P1^1;	                           /*串行數(shù)據(jù)輸出,接CH451的數(shù)據(jù)輸入 */
 sbit ch451_dclk=P1^7;                             /*串行數(shù)據(jù)時鐘上升延激活 */
 U8   ch451_key;		                   /* 存放鍵盤中斷中讀取的鍵值 */

 sbit s=P1^2;         /* 93c46的片選 */
 sbit c=P1^3;         /* 93c46的串行時鐘 */
 sbit d=P1^4;         /* 93c46的數(shù)據(jù)輸入 */
 sbit q=P1^6;         /* 93c46的數(shù)據(jù)輸出 */

 U8 skv[4];                                         /*顯示緩存,4字節(jié),分別存放要顯示的個、十、百、千*/
 U16  setv;                                         /*設(shè)置的脈沖數(shù)值*/
 U16  cv;                                        /*當前接受的脈沖數(shù)值*/

  void int0() interrupt 0  using 1      /*光電輸入中斷*/
  {
                                /*設(shè)置光電輸入標志   */
     pf=1;

  }
  /*void int1() interrupt 2  using 1      /* 鍵盤輸入中斷*/
  /*{
                                /*設(shè)置按鍵按下標志   */
  /*   kf=1;

  } */
  void time0() interrupt 1 using 1     /* 設(shè)置T0為10ms中斷*/
  {
      TH0=0xdc;                        /* 重裝時間常數(shù)*/
      TL0=0x0;
      t10msf=1;
  }


void  updatedisp(unsigned char* disp,bit twif,unsigned char twip); /* 更新顯示*/
U16 read93(U8 ax);
void write93(U8 ax, U16 dx);
void erwren93(void);
void erwrdisen93(void);
void erase93(U8 ax);
void eraseall93(void);
void writeall93(U16 dx);
U8 ch451_read();
void ch451_init();
void ch451_write(U16 command);
void delay();

void main()
{
    U16 temp1,temp2,temp3;
    U8 ck,shift;
    /* 初始化*/
    P1=0x00;                 /* 初始化輸出端口*/
    P2=0x00;

    SP=0x5f;                /* 初始化堆棧指針*/

    /* 初始化變量*/
    pf=0;
    k1f=0;
    kf=0;

    temp1=read93(2);
    temp2=read93(4);
    temp3=read93(6);
    if(temp1==temp2)
        setv=temp1;
    else if(temp2==temp3)
        setv=temp2;
    else
        setv=temp1;
    if(setv<minp)
    {
         setv=3000;
         erwren93();
         write93(2,0xaaaa);
         write93(4,0xaaaa);
         write93(6,0xaaaa);
         erwrdisen93();
    }
    cv=0;
    skv[0]=setv%10;
    skv[1]=(setv%100)/10;
    skv[2]=(setv%1000)/100;
    skv[3]=(setv/1000);
    udf=1;

    /* 初始化芯片ch451*/
    ch451_init();                                  /*調(diào)用初始化 */

    /* 初始化CPU*/
    IP=0x05;                  /* 兩個外中斷為高優(yōu)先級*/
    TCON=0x05;                /*設(shè)置外中斷為下降沿觸發(fā) */
    /* 允許兩個外中斷*/
    EX0=1;
    EX1=1;

   // TMOD=0x21;              /* 設(shè)置T0/T1工作方式:T0為方式1, 16位定時器,T1為波特率發(fā)生器,8位自裝入方式*/
   // TH0=0x0dc;               /* 設(shè)置T0為10ms中斷--12Mp:d8f0*///10*1000/(12/12M)=10000(T), (65536-10000)=0xd8f0
   // TL0=0x0;                 //11.0592Mp:10ms=10*1000us, 10*1000/(12/11.0592M)=9216(T), (65536-9216)=0xdc00
   // TR0=1;                  /* 啟動T0*/
   // ET0=1;                  /* 允許T0中斷*/

   // ES=1;                   /* 允許串口中斷*/

   EA=1;                      /* 開中斷*/

    /* 開始運行*/
    while(1)
    {
        if(pf)            /* 有光電信號*/
        {
            pf=0;
            cv++;         /*當前脈沖數(shù)值增1 */
            if(cv>=setv)  /*如果當前脈沖數(shù)與設(shè)置值相等,則重新開始計數(shù),并發(fā)出一個脈沖--用于噴碼機動作 */
            {
                cv=0;

                jout=1;
                jout=0;
            }
            /*更新顯示*/
            skv[0]=cv%10;
            skv[1]=(cv%100)/10;
            skv[2]=(cv%1000)/100;
            skv[3]=(cv/1000);
            udf=1;       /*脈沖數(shù)改變,需要更新顯示 */

        }
        if(kf)          /*有按鍵--按鍵處理 */
        {
           kf=0;
           if(k1f)    /*已經(jīng)按過啟動鍵的按鍵操作處理  */
           {
              if(ch451_key==0x40)  /*減1鍵操作,當前設(shè)置位之值發(fā)生改變*/
              {
                 if(ck==0)
                    ck=9;
                 else
                    ck--;
              }
              else if(ch451_key==0x41)  /*增1鍵操作,當前設(shè)置位之值發(fā)生改變*/
              {
                 if(ck==9)
                    ck=0;
                 else
                    ck++;
              }
              else if(ch451_key==0x42)  /*移位鍵操作*/
              {
                 skv[shift]=ck;       /*獲取修改過的當前設(shè)置位之值,暫存起來 */
                 if(shift==3)         /*改變設(shè)置位*/
                    shift=0;
                 else
                    shift++;
                 ck=skv[shift];       /*取得新設(shè)置位之值,用于修改 */
              }
              else if(ch451_key==0x43)   /*確認鍵--與啟動按鍵操作是同一鍵,第1次按是啟動,第2次按是確認 */
              {
                 k1f=0;

                 /*計算新的設(shè)置值,并保存新的設(shè)置值*/
                 setv=skv[3]*1000+skv[2]*100+skv[1]*10+skv[0];
                 erwren93();
                 write93(2,setv);
                 write93(4,setv);
                 write93(6,setv);
                 erwrdisen93();
                 /*設(shè)置完畢,重新顯示為當前脈沖數(shù) */
                 skv[0]=cv%10;
                 skv[1]=(cv%100)/10;
                 skv[2]=(cv%1000)/100;
                 skv[3]=(cv/1000);
              }

           }
           else if(ch451_key==0x43)    /*啟動鍵--與確認按鍵操作是同一鍵,第1次按是啟動,第2次按是確認*/
           {
              k1f=1;            /*k1f=1表明當前在操作按鍵設(shè)置,顯示設(shè)置值,并閃爍*/
              skv[0]=setv%10;
              skv[1]=(setv%100)/10;
              skv[2]=(setv%1000)/100;
              skv[3]=(setv/1000);

              /*首先設(shè)置個位,個位閃爍 */
              shift=0;           /*表明當前設(shè)置位--也是閃爍位 */
              ck=skv[shift];     /*取當前要設(shè)置的值 */
           }
           else
           {
            /*沒有按啟動鍵,先按了其它鍵,則其它的功能處理*/

           }
           udf=1;              /*設(shè)置更新顯示標志 */
        }
        if(udf)                /*更新顯示的操作  */
        {
          updatedisp(skv,k1f,shift);

          udf=0;
        }
    }  /*end of while loop  */

}
/*更新顯示,*disp--顯示內(nèi)容,twif--是否閃爍標志,twip--閃爍位  */
 void  updatedisp(unsigned char* disp,bit twif,unsigned char twip)
 {
     if(twif)        /*閃爍        */
     {
        if(twip==0)
           ch451_write(CH451_TWINKLE1);
        else if(twip==1)
           ch451_write(CH451_TWINKLE2);
        else if(twip==2)
           ch451_write(CH451_TWINKLE3);
        else if(twip==3)
           ch451_write(CH451_TWINKLE4);
     }
     else
        ch451_write(CH451_TWINKLE);     /*不閃爍     */
     /*顯示各個位數(shù)據(jù)               */
     ch451_write(CH451_DIG0 | disp[0]);
     ch451_write(CH451_DIG1 | disp[1]);
     ch451_write(CH451_DIG2 | disp[2]);
     ch451_write(CH451_DIG3 | disp[3]);
 }

 /*讀操作,ax:地址,以字為單位*/
 U16 read93(U8 ax)
 {
     char i;
     U8 db,ay;
     U16 dx;
     /* 前導條件  */
     c=0;
     d=0;
     s=0;
     s=1;
     d=1;
     c=1;
     c=0;
     /* 發(fā)送讀操作碼  */
     d=1;
     c=1;
     c=0;
     d=0;
     c=1;
     c=0;
     /* 發(fā)送地址  */
     for(i=5;i>=0;i--)
     {
         ay=(ax>>i) & 1;
         if(ay==1)
             d=1;
         else
             d=0;
         c=1;
         c=0;
     }
     /*輸出前導0
     c=0;
     c=1;      */
     /*讀數(shù)據(jù)*/
     dx=0;
     for(i=15;i>=0;i--)
     {
         c=1;
         if(q==1)
             db=1;
         else
             db=0;
         dx=dx | (db<<i);
         c=0;
     }

     s=0;
     return dx;
 }

 /*寫操作,ax:地址,dx:數(shù)據(jù),以字為單位*/
 /*總的寫操作之前,要調(diào)用擦寫使能函數(shù)*/
 /*總的寫操作之后,要調(diào)用擦寫禁止函數(shù)*/
 void write93(U8 ax, U16 dx)
 {
     char i;
     U8   ay;
     /* 前導條件  */
     c=0;
     d=0;
     s=0;
     s=1;
     d=1;
     c=1;
     c=0;
     /* 發(fā)送寫操作碼  */
     d=0;
     c=1;
     c=0;
     d=1;
     c=1;
     c=0;
     /* 發(fā)送地址  */
     for(i=5;i>=0;i--)
     {
         ay=(dx>>i) & 1;
         if(ay==1)
             d=1;
         else
             d=0;
         c=1;
         c=0;
     }
     /* 發(fā)送數(shù)據(jù)  */
     for(i=15;i>=0;i--)
     {
         ay=(dx>>i) & 1;
         if(ay==1)
             d=1;
         else
             d=0;
         c=1;
         c=0;
     }
     /*啟動寫操作*/
     
     s=0;
     q=1;
     s=1;
     /*等待寫操作結(jié)束*/
      while(q==0)
      {
          c=1;
          c=0;
      }
    /* delay();
     delay();  */
     s=0;
 }

 /*擦寫使能*/
 void erwren93(void)
 {
     char i;
     /* 前導條件  */
     c=0;
     d=0;
     s=0;
     s=1;
     d=1;
     c=1;
     c=0;
     /* 發(fā)送操作碼  */
     d=0;
     c=1;
     c=0;
     c=1;
     c=0;
     /* 發(fā)送"地址"  */
     for(i=0;i<6;i++)
     {
         d=1;
         c=1;
         c=0;
     }

     s=0;
 }

 /*擦寫禁止*/
 void erwrdisen93(void)
 {
     char i;
     /* 前導條件  */
     c=0;
     d=0;
     s=0;
     s=1;
     d=1;
     c=1;
     c=0;
     /* 發(fā)送操作碼  */
     d=0;
     c=1;
     c=0;
     c=1;
     c=0;
     /* 發(fā)送"地址"  */
     for(i=0;i<6;i++)
     {
         d=0;
         c=1;
         c=0;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产suv精品一区二区三区| 91麻豆精品久久久久蜜臀| 在线不卡中文字幕| 亚洲裸体在线观看| 日韩av中文在线观看| 99精品国产一区二区三区不卡| 欧美日韩精品欧美日韩精品| 国产精品女主播av| 精品中文字幕一区二区| 欧美日韩精品一二三区| 中文字幕一区二区在线播放| 蜜臀av性久久久久蜜臀aⅴ四虎| 9色porny自拍视频一区二区| 精品国产一区二区三区久久影院 | 欧美成人精品福利| 亚洲免费观看视频| 国产91精品露脸国语对白| 日韩欧美一区二区免费| 亚洲成av人在线观看| 色综合久久88色综合天天6| 中文字幕第一区| 国产成人精品三级麻豆| 久久综合国产精品| 蜜桃一区二区三区在线观看| 欧美精品v国产精品v日韩精品| 亚洲免费视频成人| 色94色欧美sute亚洲线路一久| 亚洲国产成人私人影院tom| 国产精品一区不卡| 久久女同互慰一区二区三区| 蜜臂av日日欢夜夜爽一区| 4438x成人网最大色成网站| 视频一区视频二区在线观看| 欧美视频一区二区三区在线观看 | 亚洲国产精品二十页| 成人免费毛片片v| 国产精品欧美一区喷水| 337p日本欧洲亚洲大胆色噜噜| 亚洲成人午夜影院| 欧美老女人在线| 麻豆成人免费电影| 久久亚洲一区二区三区明星换脸| 国产精品资源在线| 国产精品福利一区| 欧美亚洲免费在线一区| 亚洲国产精品欧美一二99| 欧美日韩精品一区二区天天拍小说| 日韩视频免费直播| 国产成人精品亚洲777人妖| 久久久久久久久久美女| 国产福利视频一区二区三区| 国产午夜精品福利| 国产成人精品网址| 亚洲私人黄色宅男| 在线观看免费亚洲| 一区二区三区视频在线观看| 欧美中文字幕久久| 日韩在线观看一区二区| 欧美一区二区三区成人| 人人超碰91尤物精品国产| 欧美一区二区三区免费大片| 久久成人精品无人区| 精品福利一区二区三区| 国产suv精品一区二区三区| 最新热久久免费视频| 成人亚洲一区二区一| 亚洲成av人片在www色猫咪| 欧美久久久久久久久久| 蜜桃视频在线观看一区| 2014亚洲片线观看视频免费| 国产成人精品一区二| 亚洲九九爱视频| 欧美一区二区三区在线观看视频| 美日韩一区二区| 国产精品欧美极品| 欧美日韩久久一区二区| 国产成人免费视频网站| 亚洲综合在线观看视频| 日韩午夜精品视频| 高清av一区二区| 亚洲第四色夜色| 精品欧美一区二区三区精品久久| eeuss鲁片一区二区三区在线看| 亚洲激情网站免费观看| 亚洲精品一区二区三区影院| 国产精品一区一区| 亚洲精品视频免费观看| 欧美v亚洲v综合ⅴ国产v| eeuss鲁片一区二区三区在线观看| 亚洲图片欧美色图| 久久久精品免费免费| 欧美日韩亚洲高清一区二区| 国模一区二区三区白浆| 亚洲第一精品在线| 中文成人综合网| 欧美性受极品xxxx喷水| 国产成都精品91一区二区三| 亚洲国产视频a| 国产精品久久久久国产精品日日| 国产精品久久午夜| 精品少妇一区二区三区在线视频| 99vv1com这只有精品| 日韩av中文字幕一区二区三区| 一区二区三区在线视频免费观看| 久久亚洲影视婷婷| 欧美高清激情brazzers| 99r国产精品| 国产精品123| 久久av中文字幕片| 日韩电影网1区2区| 一区二区三区日韩精品| 26uuu亚洲婷婷狠狠天堂| 精品国产乱码久久久久久夜甘婷婷| 日本丰满少妇一区二区三区| 成人午夜av在线| 久久99国产精品尤物| 日韩福利电影在线观看| 一区二区三区在线影院| 日韩一区欧美一区| 国产精品国产馆在线真实露脸 | 中文字幕一区二区三区视频| 日韩精品一区二区三区老鸭窝| 欧美丝袜丝nylons| 成人深夜福利app| 91在线精品一区二区| 成人avav影音| 丁香激情综合国产| 成人精品一区二区三区中文字幕| 国产美女精品在线| 国产黑丝在线一区二区三区| 极品瑜伽女神91| 日韩高清不卡一区二区三区| 久久黄色级2电影| 日韩和的一区二区| 日韩国产欧美视频| 人禽交欧美网站| 激情综合色播激情啊| 国产真实乱对白精彩久久| 国精产品一区一区三区mba桃花| 性做久久久久久免费观看欧美| 另类中文字幕网| 国产白丝精品91爽爽久久| 成人精品小蝌蚪| 欧美在线色视频| 7777精品伊人久久久大香线蕉 | 韩国精品久久久| 国产精品资源在线看| av电影在线不卡| 色婷婷久久99综合精品jk白丝| 99视频超级精品| 欧美性受xxxx| 日韩久久精品一区| 日本一区二区免费在线| 中文字幕一区二区三中文字幕| 亚洲免费观看高清在线观看| 亚洲成av人综合在线观看| 美腿丝袜亚洲综合| 成人av在线电影| 欧美午夜不卡在线观看免费| 91精品国产一区二区三区香蕉 | 韩日精品视频一区| 99国产精品久久| 欧美日本一区二区三区四区| 精品国产3级a| 一区二区三区四区不卡在线| 男人的j进女人的j一区| 成人少妇影院yyyy| 欧美精品v国产精品v日韩精品| 精品国产91亚洲一区二区三区婷婷| 中文字幕中文字幕中文字幕亚洲无线| 夜夜嗨av一区二区三区网页 | 一区二区三区在线播放| 麻豆精品久久久| 色综合咪咪久久| 精品成人免费观看| 国产精品乱码久久久久久| 亚洲精品高清视频在线观看| 久久国产夜色精品鲁鲁99| 色婷婷精品久久二区二区蜜臀av | 欧美夫妻性生活| 国产精品久久久久桃色tv| 日本亚洲最大的色成网站www| av高清久久久| 久久久亚洲精品石原莉奈| 性久久久久久久| 91蜜桃网址入口| 2021国产精品久久精品| 丝袜诱惑制服诱惑色一区在线观看| 成人精品在线视频观看| 久久综合久久99| 五月天国产精品| 在线成人免费视频| 一区二区三区免费在线观看| 国产盗摄女厕一区二区三区| 日韩亚洲欧美高清| 日本网站在线观看一区二区三区| 色88888久久久久久影院野外| 日韩一区二区免费在线电影| 最新久久zyz资源站| 成人精品国产一区二区4080|