lockbell.c
上传用户:shyuanyi
上传日期:2008-05-24
资源大小:69k
文件大小:4k
源码类别:

RFID编程

开发平台:

C/C++

  1. #include  "my_head.h"
  2. #define   IIC_SCL         P4_1
  3. #define   IIC_SDA         P4_0
  4. #define   LOCK_CTRL       P4_3
  5. #define   BELL_CTRL       P4_2
  6. #define   SUCCESS_LED     P4_3
  7. #define   FAILURE_LED     P4_2
  8. //===============================================
  9. void   Init_LockBell(void)
  10. {
  11.    P4 = 0xFF;
  12. //    IIC_SCL     = OFF;
  13. //    IIC_SDA     = OFF;
  14.        LOCK_CTRL   = OFF;
  15.    BELL_CTRL   = OFF;
  16. }
  17. //================================================
  18. void  Dis_Err_Led(bit  bOnOff)  //0-close;1--open.
  19. {
  20.       FAILURE_LED = !bOnOff;
  21.       if(bOnOff)SUCCESS_LED=OFF;
  22. }
  23. //bit   success_led_flag = FALSE;
  24. void  Dis_Con_Led(bit bOnOff)   //0-close;1--open.
  25. {
  26.       //success_led_flag=
  27.       SUCCESS_LED = !bOnOff;
  28.       if(bOnOff)FAILURE_LED=OFF;
  29. }
  30. /*
  31. void  Dis_Comming_Led(bit bOnOff)//0-close;1--open. //LCD考勤机上专用
  32. {     
  33.       COMMING_LED = !bOnOff;
  34. }
  35. void  Lock_OnOff(bit bOnOff)     //0-close;1--open.
  36. {
  37.       LOCK_CTRL = !bOnOff;
  38.       OUTPUT373_CTLR = ON;
  39.   do_nop(2);
  40.       OUTPUT373_CTLR = OFF;
  41. }
  42. void  Bell_OnOff(bit bOnOff)     //0-close;1--open.
  43. {
  44.       BELL_CTRL = !bOnOff;
  45.       OUTPUT373_CTLR = ON;
  46.   do_nop(2);
  47.       OUTPUT373_CTLR = OFF;
  48. }
  49. */
  50. //=================================================
  51. /*************************************************/
  52. #define   DATAFULL_LED          0x01
  53. #define   COMMING_LED         0x02
  54. #define   CELL_POWER_LED      0x04
  55. #define   CON_MODE_LED1    0x08
  56. #define   CON_MODE_LED2  0x10
  57. #define   CON_MODE_LED3  0x20
  58. #define   CUR_ERR_LED      0x40
  59. #define   CUR_CON_LED            0x80
  60. //===================================
  61. BYTE  bdata  Led_Save = 0xFF;
  62. sbit  led_0 = Led_Save^0;
  63. sbit  led_1 = Led_Save^1;
  64. sbit  led_2 = Led_Save^2;
  65. sbit  led_3 = Led_Save^3;
  66. sbit  led_4 = Led_Save^4;
  67. sbit  led_5 = Led_Save^5;
  68. sbit  led_6 = Led_Save^6;
  69. sbit  led_7 = Led_Save^7;
  70. void  Init_Led_Save(void)
  71. {
  72.    Led_Save  &=  ~(CUR_ERR_LED|CUR_CON_LED|COMMING_LED|DATAFULL_LED);
  73. }
  74. /*
  75. void  Dis_Balance_Led(bit ledflag)  //0-close;1--open.
  76. {
  77.    ledflag? (Led_Save |= CUR_ERR_LED) : (Led_Save &= ~CUR_ERR_LED);
  78.    Do_Led(Led_Save);
  79. }
  80. */
  81. void  Dis_Consume_Led(bit ledflag)  //0-close;1--open.
  82. {
  83.    ledflag? (Led_Save |= CUR_CON_LED) : (Led_Save &= ~CUR_CON_LED);
  84.    Do_Led(Led_Save);
  85. }
  86. void  Dis_Comming_Led(bit ledflag)  //0-close;1--open.
  87. {
  88.    ledflag? (Led_Save |= COMMING_LED) : (Led_Save &= ~COMMING_LED);
  89.    Do_Led(Led_Save);
  90. }
  91. void  Dis_Cellpower_Led(bit ledflag)  //0-close;1--open.
  92. {
  93.    ledflag? (Led_Save |= CELL_POWER_LED) : (Led_Save &= ~CELL_POWER_LED);
  94.    Do_Led(Led_Save);
  95. }
  96. void  Dis_DataFull_Led(bit ledflag)  //0--close;1--open.
  97. {
  98.    ledflag? (Led_Save |= DATAFULL_LED) : (Led_Save &= ~DATAFULL_LED);
  99.    Do_Led(Led_Save);
  100. }
  101. /*
  102. void  Dis_ConMode(void)
  103. {
  104.     BYTE  mode= con_param_info.con_mode;
  105.     Led_Save &= 0xC7;
  106.     if(mode>0 && mode<4)
  107. {
  108.       Led_Save |= (mode<<3);
  109. }
  110.     else if(mode==4)
  111. {
  112.  Led_Save |=  (CON_MODE_LED1 | CON_MODE_LED3);
  113. }
  114.     else if(mode==5)
  115. {
  116.  Led_Save |=  (CON_MODE_LED2 | CON_MODE_LED3);
  117. }
  118.     else if(mode==6)
  119. {
  120.  Led_Save |=  (CON_MODE_LED1 | CON_MODE_LED2 | CON_MODE_LED3);
  121. }
  122.     Do_Led(Led_Save);
  123. }
  124. */
  125. void  CounterAndfillBuf(BYTE buf[],BYTE lens,LWORD  dat,bit fill0_flag)//1-前面补零,0-不补零
  126. {
  127.     BYTE   ii;
  128.     LWORD  LL;  //mustn't LL=0L;
  129.     for(LL=1,ii=1;ii<lens;ii++)LL *= 10;
  130. for(ii=0;ii<lens;ii++)
  131. {
  132.   buf[ii] = ~D_DISPLAY[dat/LL];
  133.   if((buf[ii]==(BYTE)~D_DISPLAY[0]) && !fill0_flag)buf[ii]=~D_DISPLAY[18];
  134.   else fill0_flag=TRUE;
  135.   dat %= LL;
  136.   LL  /= 10;
  137. }
  138. }
  139. void  Dis_Equip_Code(void)
  140. {
  141.     BYTE   idata  buf[8];
  142. CounterAndfillBuf(&buf[0],2,equip_addr.ntype,TRUE);
  143. buf[2]= ~D_DISPLAY[16];
  144. CounterAndfillBuf(&buf[3],5,equip_addr.number_addr,TRUE);
  145. Display_str(buf);
  146. }
  147. /*
  148. void  Dis_cNumber(BYTE  cNumber[3])
  149. {
  150.     BYTE   idata  buf[8],i;
  151.     i=cNumber[0];
  152.    
  153. buf[0]=buf[1]=~D_DISPLAY[18];
  154. buf[2]=~D_DISPLAY[(cNumber[0]>>4)];
  155. buf[3]=~D_DISPLAY[(cNumber[0]&0xf)];
  156. buf[4]=~D_DISPLAY[(cNumber[1]>>4)];
  157. buf[5]=~D_DISPLAY[(cNumber[1]&0xf)];
  158. buf[6]=~D_DISPLAY[(cNumber[2]>>4)];
  159. buf[7]=~D_DISPLAY[(cNumber[2]&0xf)];
  160. Display_str(buf);
  161. }
  162. */