欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 求大神幫下忙,下面的如何改為c語言程序? [打印本頁]

作者: dream602    時間: 2019-4-2 19:58
標題: 求大神幫下忙,下面的如何改為c語言程序?
XinHao   EQU  P1.0
Light     EQU   P2.0
ORG    0000H
AJMP   MAIN
------------------MAIN-----------------
MAIN:      CLR  light             ;初始時燈泡熄滅
Check:      SETB  XinHao
                      JNB  XinHao,yanshi      ;檢測是否有信號
                      LJMP  Check
yanshi:      LCALLdelay              ;延時防信號抖動
                      SETB  XinHao
                      JNB   XinHao,dianliang    ;有,點亮燈泡
                      LJMP  Check
-------------------dianliang--------------------
dianliang:     SETB light             ;點亮燈泡
LOOP:          SETB  XinHao
               JB   XinHao,yanshi1     ;判斷是否無信號
                    LJMP LOOP   
yanshi1:     LCALLdelay             ;延時防抖動
                    SETB XinHao
                    JB   XinHao,yanshi8    ;再次確定無信號
                    LJMP LOOP
yanshi2:     LCALL delay1            ;利用定時器延時兩分鐘
                    CLR  light             ;熄滅燈泡
                    RET
--------------------delay-------------------
Delay:     MOV  R0, #100
D1:             MOV   R1, #100
D2:       DJNZ R1, D2
                  DJNZ  R0, D1
                RET
----------定時器延時兩分鐘----------
delay1:    MOV  R2, #180
           MOV  IE, #00H
           MOV  TMOD, #01H
                   SETB TR0
                   CLR  TF0
LOOP0:     MOV  TL0, #0FH
                    MOV  TH0, #00H
LOOP1:     JBC  TF0,LOOP2         ;定時是否溢出
                    JMP  LOOP1
LOOP2:     DJNZ   R2, LOOP0
           MOV  TMOD, #00H
           CLR  TR0
                   CLR  TF0
                   RET
---------------------END---------------------
           END


作者: angmall    時間: 2019-4-7 13:08
給你改了一下試試。

  1. #include<reg51.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. sbit XinHao =P1^0;
  5. sbit Light  =P2^0;

  6. void Delay(void)
  7. {
  8.         uint x, y;
  9.        
  10.         for(x=100;x>0;x--)
  11.            for(y=100;y>0;y--);
  12. }

  13. void delay1(void) //定時器延時兩分鐘
  14. {
  15.         uchar count=180;
  16.         TMOD=0x01;     //定時器0工作方式1
  17.         TR0=1;       //啟動定時器

  18.         TH0=0;
  19.         do{
  20.                 TF0=0;
  21.                 TL0=0x0F;       
  22.                 while(!TF0);   //定時是否溢出
  23.         } while((count--) > 0);
  24.         TR0=0;
  25.         TF0=0;

  26. }

  27. void dianliang(void)
  28. {
  29.         Light  = 1; //點亮燈泡
  30.         XinHao = 1;
  31.         if(XinHao == 1)  //判斷是否無信號
  32.         {
  33.                 Delay(); //延時防抖動
  34.                 XinHao = 1;
  35.                 if(XinHao == 1) //再次確定無信號
  36.                 {
  37.                         delay1(); //利用定時器延時兩分鐘
  38.                         Light  = 0; //熄滅燈泡
  39.                 }
  40.         }
  41. }

  42. void main(void)
  43. {
  44.         Light  = 0; //初始時燈泡熄滅
  45.         while(1)
  46.         {
  47.                 XinHao = 1;
  48.                 if(XinHao == 0)  //檢測是否有信號
  49.                 {
  50.                         Delay(); //延時防信號抖動
  51.                         XinHao = 1;
  52.                         if(XinHao == 0)
  53.                         {
  54.                                 dianliang(); //有,點亮燈泡
  55.                         }
  56.                 }
  57.         }
  58. }


復制代碼

作者: dream602    時間: 2019-4-9 16:34
angmall 發表于 2019-4-7 13:08
給你改了一下試試。

特別感謝




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1