⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 x10-lib.c

📁 Pic Nic 16f877/18f452控制 rtl8019as 原代码
💻 C
字号:
#ifndef RTS
 #define RTS PIN_C5
 #define DTR PIN_C4
#endif

// Definicao de Casas
#define A1_8  0x60  // eq. 01100000
#define A9_16 0x64  // eq. 01100100
#define B1_8  0x70
#define B9_16 0x74
#define C1_8  0x40
#define C9_16 0x44
#define D1_8  0x50
#define D9_16 0x54
#define E1_8  0x80
#define E9_16 0x84
#define F1_8  0x90
#define F9_16 0x94
#define G1_8  0xA0
#define G9_16 0xA4
#define H1_8  0xB0
#define H9_16 0xB4
#define I1_8  0xE0
#define I9_16 0xE4
#define J1_8  0xF0
#define J9_16 0xF4
#define K1_8  0xC0
#define K9_16 0xC4
#define L1_8  0xD0
#define L9_16 0xD4
#define M1_8  0x00
#define M9_16 0x04
#define N1_8  0x10
#define N9_16 0x14
#define O1_8  0x20
#define O9_16 0x24
#define P1_8  0x30
#define P9_16 0x34

//Bright/DIM
#define B    0x88
#define D    0x98

// Definicao de dispositivos
#define ON1   0x0   // eq. 00000000
#define OFF1  0x20  // eq. 00100000
#define ON2   0x10
#define OFF2  0x30
#define ON3   0x08
#define OFF3  0x28
#define ON4   0x18
#define OFF4  0x38
#define ON5   0x40
#define OFF5  0x60
#define ON6   0x50
#define OFF6  0x70
#define ON7   0x48
#define OFF7  0x68  
#define ON8   0x58  
#define OFF8  0x78  


void e_um()
{
  output_high(DTR);
  delay_us(700);
  output_low(DTR);
  delay_us(700);
}

void e_zero()
{
  output_high(RTS);
  delay_us(700);
  output_low(RTS);
  delay_us(700);
}

void e_reset()
{
  output_high(RTS);
  output_high(DTR);
  delay_ms(10);
  output_low(RTS);
  output_low(DTR);
  delay_ms(1);
}

void e_header()
{
  //header 11010101 10101010
  e_um();
  e_um();
  e_zero();
  e_um();
  e_zero();
  e_um();
  e_zero();
  e_um();
  e_um();
  e_zero();
  e_um();
  e_zero();
  e_um();
  e_zero();
  e_um();
  e_zero();
}

void e_footter()
{
  e_um();
  e_zero();
  e_um();
  e_zero();
  e_um();
  e_um();
  e_zero();
  e_um();
}

void e_code(int8 casa, int8 acao)
{
  // envia cabecalho
  e_header();
  
  // envia codigo da casa
  if (bit_test(casa,7))
     e_um();
  else
     e_zero();
  if (bit_test(casa,6))
     e_um();
  else
     e_zero();
  if (bit_test(casa,5))
     e_um();
  else
     e_zero();
  if (bit_test(casa,4))
     e_um();
  else
     e_zero();
  if (bit_test(casa,3))
     e_um();
  else
     e_zero();
  if (bit_test(casa,2))
     e_um();
  else
     e_zero();
  if (bit_test(casa,1))
     e_um();
  else
     e_zero();
  if (bit_test(casa,0))
     e_um();
  else
     e_zero();
     
  // envia codigo da acao
  if (bit_test(acao,7))
     e_um();
  else
     e_zero();
  if (bit_test(acao,6))
     e_um();
  else
     e_zero();
  if (bit_test(acao,5))
     e_um();
  else
     e_zero();
  if (bit_test(acao,4))
     e_um();
  else
     e_zero();
  if (bit_test(acao,3))
     e_um();
  else
     e_zero();
  if (bit_test(acao,2))
     e_um();
  else
     e_zero();
  if (bit_test(acao,1))
     e_um();
  else
     e_zero();
  if (bit_test(acao,0))
     e_um();
  else
     e_zero();
  
  // rodape
  e_footter();
  
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -