Advertisement
DefiledDev

assignment2

May 2nd, 2023
39
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.26 KB | None | 0 0
  1. void toggleSevenSegment(short success) {
  2. PORTD.F4 = 1;
  3. PORTD.F5 = 1;
  4. if(success == 1) {
  5. PORTB = 0x8E; // FF
  6. } else {
  7. PORTB = 0xFC; // 00
  8. }
  9. delay_ms(1000);
  10. PORTD.F4 = 0;
  11. PORTD.F5 = 0;
  12. }
  13.  
  14. int inputValues[4][4] = {{0, 0, 1, 1}, {0, 1, 0, 1}}; //00, 01, ...
  15. char x;
  16. int i;
  17. void interrupt() { // PortC (0 - 5), PortD (0 - 3, 6 - 7)
  18. if(pir1.F5 == 1) {
  19. x = UART1_READ();
  20. switch(x) {
  21. case 'A': //AND
  22. TRISC = 0b00011011; //011011
  23. TRISD = 0b11000110; //11 0110
  24. for(i = 0; i < 4; i++) { //C0, C1 -> C2
  25. PORTC.F0 = inputValues[0][i];
  26. PORTC.F1 = inputValues[1][i];
  27. toggleSevenSegment(PORTC.F2);
  28. }
  29. for(i = 0; i < 4; i++) { //C3, C4 -> C5
  30. PORTC.F3 = inputValues[0][i];
  31. PORTC.F4 = inputValues[1][i];
  32. toggleSevenSegment(PORTC.F5);
  33. }
  34. for(i = 0; i < 4; i++) { //D0, D1 -> D2
  35. PORTD.F0 = inputValues[0][i];
  36. PORTD.F1 = inputValues[1][i];
  37. toggleSevenSegment(PORTD.F2);
  38. }
  39. for(i = 0; i < 4; i++) { //D3, D6 -> D7
  40. PORTD.F3 = inputValues[0][i];
  41. PORTD.F6 = inputValues[1][i];
  42. toggleSevenSegment(PORTD.F7);
  43. }
  44. break;
  45. case 'N':
  46. TRISC = 0b00010101; //010101
  47. TRISD = 0b10001010; //10 1010
  48. PORTC.F0 = 0;
  49. toggleSevenSegment(PORTC.F1);
  50. PORTC.F0 = 1;
  51. toggleSevenSegment(PORTC.F1);
  52.  
  53. PORTC.F2 = 0;
  54. toggleSevenSegment(PORTC.F3);
  55. PORTC.F2 = 0;
  56. toggleSevenSegment(PORTC.F3);
  57.  
  58. PORTC.F4 = 0;
  59. toggleSevenSegment(PORTC.F5);
  60. PORTC.F4 = 0;
  61. toggleSevenSegment(PORTC.F5);
  62.  
  63. PORTD.F1 = 0;
  64. toggleSevenSegment(PORTD.F0);
  65. PORTD.F1 = 0;
  66. toggleSevenSegment(PORTD.F0);
  67.  
  68. PORTD.F3 = 0;
  69. toggleSevenSegment(PORTD.F2);
  70. PORTD.F3 = 0;
  71. toggleSevenSegment(PORTD.F2);
  72.  
  73. PORTD.F7 = 0;
  74. toggleSevenSegment(PORTD.F6);
  75. PORTD.F7 = 0;
  76. toggleSevenSegment(PORTD.F6);
  77. break;
  78. }
  79. }
  80. }
  81.  
  82. void main() {
  83.  
  84. UART1_INIT(9600);
  85. intcon = 0xc0;
  86. pie1 = 0x20;
  87. pir1 = 0x00;
  88. TRISB = 0x00;
  89. TRISD.F4 = 0;
  90. TRISD.F5 = 0;
  91. while(1) {}
  92.  
  93. }
  94.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement