home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 15 / 15.iso / s / s199 / 1.img / COUNT10.ABL < prev    next >
Encoding:
Text File  |  1986-02-04  |  2.2 KB  |  97 lines

  1. module count10   flag '-r3'
  2. title 'decimal Up/Down counter with synchronous Clear
  3. Michael Holley     Data I/O Corp   29 Sep 1984'
  4.  
  5.     uc3    device 'P16R4';
  6.  
  7.     Clk,Clr,Dir,OE    pin 1,2,3,11;
  8.     Q3,Q2,Q1,Q0    pin 14,15,16,17;
  9.     
  10.     Ck,X,Z    = .C. , .X., .Z.;
  11.  
  12. " Counter States
  13.     S0 = ^b1111;    S4 = ^b1011;    S8 = ^b0111;
  14.     S1 = ^b1110;    S5 = ^b1010;    S9 = ^b0110;
  15.     S2 = ^b1101;    S6 = ^b1001;
  16.     S3 = ^b1100;    S7 = ^b1000;
  17.  
  18. " Counter modes
  19.     Mode    = [Clr,Dir];
  20.     Up    = [ 1 , 1 ];
  21.     Down    = [ 1 , 0 ];
  22.     Clear    = [ 0 , X ];
  23.  
  24. test_vectors (  [Clk ,OE, Mode ] -> [Q3,Q2,Q1,Q0])
  25.         [ Ck , 0, Clear] ->    S0;    
  26.         [ Ck , 0, Up   ] ->    S1;
  27.         [ Ck , 0, Up   ] ->    S2;
  28.         [ Ck , 0, Up   ] ->    S3;
  29.         [ Ck , 0, Up   ] ->    S4;
  30.         [ Ck , 0, Up   ] ->    S5;
  31.         [ Ck , 0, Up   ] ->    S6;
  32.         [ Ck , 0, Up   ] ->    S7;
  33.         [ Ck , 0, Up   ] ->    S8;
  34.         [ Ck , 0, Up   ] ->    S9;
  35.         [ Ck , 0, Up   ] ->    S0;
  36.         [ Ck , 0, Up   ] ->    S1;
  37.         [ Ck , 0, Down ] ->    S0;
  38.         [ Ck , 0, Down ] ->    S9;
  39.         [ Ck , 1, Down ] ->    Z ;
  40.         [ Ck , 0, Down ] ->    S7;
  41.         [ Ck , 0, Clear] ->    S0;
  42. @page
  43.  
  44. state_diagram [Q3,Q2,Q1,Q0]
  45.  
  46.     State S0:    case (Mode == Up)    : S1;
  47.                  (Mode == Down)  : S9;
  48.                  (Mode == Clear) : S0;
  49.             endcase;
  50.  
  51.     State S1:    case (Mode == Up)    : S2;
  52.                  (Mode == Down)  : S0;
  53.                  (Mode == Clear) : S0;
  54.             endcase;
  55.  
  56.     State S2:    case (Mode == Up)    : S3;
  57.                  (Mode == Down)  : S1;
  58.                  (Mode == Clear) : S0;
  59.             endcase;
  60.  
  61.     State S3:    case (Mode == Up)    : S4;
  62.                  (Mode == Down)  : S2;
  63.                  (Mode == Clear) : S0;
  64.             endcase;
  65.  
  66.     State S4:    case (Mode == Up)    : S5;
  67.                  (Mode == Down)  : S3;
  68.                  (Mode == Clear) : S0;
  69.             endcase;
  70.  
  71.     State S5:    case (Mode == Up)    : S6;
  72.                  (Mode == Down)  : S4;
  73.                  (Mode == Clear) : S0;
  74.             endcase;
  75.  
  76.     State S6:    case (Mode == Up)    : S7;
  77.                  (Mode == Down)  : S5;
  78.                  (Mode == Clear) : S0;
  79.             endcase;
  80.  
  81.     State S7:    case (Mode == Up)    : S8;
  82.                  (Mode == Down)  : S6;
  83.                  (Mode == Clear) : S0;
  84.             endcase;
  85.  
  86.     State S8:    case (Mode == Up)    : S9;
  87.                  (Mode == Down)  : S7;
  88.                  (Mode == Clear) : S0;
  89.             endcase;
  90.  
  91.     State S9:    case (Mode == Up)    : S0;
  92.                  (Mode == Down)  : S8;
  93.                  (Mode == Clear) : S0;
  94.             endcase;
  95. end count10 
  96.  
  97.