Electgpl

PIC - Programa emulador de Ladder para LCD 4x20

Jun 19th, 2016
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.15 KB | None | 0 0
  1. #include <16F883.h>
  2. #use delay(clock=4000000)
  3. #include <lcd420.c>
  4. void main(){
  5.    int1 flag1=0, flag2=0;
  6.    lcd_init();
  7.    output_low(PIN_A3);
  8.    output_low(PIN_A4);
  9.    while(TRUE){
  10.       if(input(PIN_A0)){
  11.          flag1=1;
  12.       }else{
  13.          if(flag2==0){
  14.             lcd_gotoxy(1,1);
  15.             printf(lcd_putc," |--| |--[ ]---( )-|");
  16.             lcd_gotoxy(1,2);
  17.             printf(lcd_putc," |--| |--------( )-|");
  18.             lcd_gotoxy(1,3);
  19.             printf(lcd_putc," |--| |--|          ");
  20.             lcd_gotoxy(1,4);
  21.             printf(lcd_putc," |--| |------(RST)-|");            
  22.             delay_ms(1000);
  23.          }
  24.          while(flag1==1&&flag2==0&&input(PIN_A0)){
  25.             output_high(PIN_A3);
  26.             output_high(PIN_A4);
  27.             lcd_gotoxy(1,1);
  28.             printf(lcd_putc,">|--|/|--[ ]---(*)-|");
  29.             lcd_gotoxy(1,2);
  30.             printf(lcd_putc," |--| |--------( )-|");
  31.             lcd_gotoxy(1,3);
  32.             printf(lcd_putc," |--| |--|          ");
  33.             lcd_gotoxy(1,4);
  34.             printf(lcd_putc," |--| |------(RST)-|");
  35.             delay_ms(1000);
  36.             lcd_gotoxy(1,1);
  37.             printf(lcd_putc," |--| |--[3]---(*)-|");
  38.             lcd_gotoxy(1,2);
  39.             printf(lcd_putc,">|--|/|--------(*)-|");
  40.             lcd_gotoxy(1,3);
  41.             printf(lcd_putc,">|--|/|--|          ");
  42.             lcd_gotoxy(1,4);
  43.             printf(lcd_putc," |--| |------(RST)-|");
  44.             delay_ms(1000);
  45.             lcd_gotoxy(1,1);
  46.             printf(lcd_putc," |--| |--[2]---(*)-|");
  47.             lcd_gotoxy(1,2);
  48.             printf(lcd_putc,">|--|/|--------(*)-|");
  49.             lcd_gotoxy(1,3);
  50.             printf(lcd_putc,">|--|/|--|          ");
  51.             lcd_gotoxy(1,4);
  52.             printf(lcd_putc," |--| |------(RST)-|");
  53.             delay_ms(1000);
  54.             lcd_gotoxy(1,1);
  55.             printf(lcd_putc," |--| |--[1]---(*)-|");
  56.             lcd_gotoxy(1,2);
  57.             printf(lcd_putc,">|--|/|--------(*)-|");
  58.             lcd_gotoxy(1,3);
  59.             printf(lcd_putc,">|--|/|--|          ");  
  60.             lcd_gotoxy(1,4);
  61.             printf(lcd_putc," |--| |------(RST)-|");
  62.             delay_ms(1000);
  63.             output_low(PIN_A3);
  64.             lcd_gotoxy(1,1);
  65.             printf(lcd_putc," |--| |--[ ]---( )-|");
  66.             lcd_gotoxy(1,2);
  67.             printf(lcd_putc," |--| |--------(*)-|");
  68.             lcd_gotoxy(1,3);
  69.             printf(lcd_putc,">|--|/|--|          ");    
  70.             lcd_gotoxy(1,4);
  71.             printf(lcd_putc," |--| |------(RST)-|");
  72.             flag2=1;
  73.          }
  74.       }
  75.       if(input(PIN_A1)){
  76.          output_low(PIN_A3);
  77.          output_low(PIN_A4);
  78.          lcd_gotoxy(1,1);
  79.          printf(lcd_putc," |--| |--[ ]---( )-|");
  80.          lcd_gotoxy(1,2);
  81.          printf(lcd_putc," |--| |--------( )-|");
  82.          lcd_gotoxy(1,3);
  83.          printf(lcd_putc," |--| |--|          ");
  84.          lcd_gotoxy(1,4);
  85.          printf(lcd_putc,">|--|/|------(RST)-|");
  86.          delay_ms(1000);
  87.          reset_cpu();
  88.       }else{
  89.          lcd_gotoxy(1,4);
  90.          printf(lcd_putc," |--| |------(RST)-|");
  91.       }
  92.    }  
  93. }
Advertisement
Add Comment
Please, Sign In to add comment