Advertisement
Guest User

Untitled

a guest
Jun 13th, 2019
270
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 5.66 KB | None | 0 0
  1. /*
  2.  * File:   Main.c
  3.  * Author: gpare
  4.  *
  5.  * Created on June 13, 2019, 2:22 PM
  6.  */
  7.  
  8. #define _XTAL_FREQ 32000000
  9.  
  10. // PIC16F18875 Configuration Bit Settings
  11.  
  12. // 'C' source line config statements
  13.  
  14. // CONFIG1
  15. #pragma config FEXTOSC = HS     // External Oscillator mode selection bits (EC above 8MHz; PFM set to high power)
  16. #pragma config RSTOSC = HFINT32   // Power-up default value for COSC bits (EXTOSC operating per FEXTOSC bits)
  17. #pragma config CLKOUTEN = OFF   // Clock Out Enable bit (CLKOUT function is disabled; i/o or oscillator function on OSC2)
  18. #pragma config CSWEN = ON       // Clock Switch Enable bit (Writing to NOSC and NDIV is allowed)
  19. #pragma config FCMEN = ON       // Fail-Safe Clock Monitor Enable bit (FSCM timer enabled)
  20.  
  21. // CONFIG2
  22. #pragma config MCLRE = ON       // Master Clear Enable bit (MCLR pin is Master Clear function)
  23. #pragma config PWRTE = OFF      // Power-up Timer Enable bit (PWRT disabled)
  24. #pragma config LPBOREN = OFF    // Low-Power BOR enable bit (ULPBOR disabled)
  25. #pragma config BOREN = ON       // Brown-out reset enable bits (Brown-out Reset Enabled, SBOREN bit is ignored)
  26. #pragma config BORV = LO        // Brown-out Reset Voltage Selection (Brown-out Reset Voltage (VBOR) set to 1.9V on LF, and 2.45V on F Devices)
  27. #pragma config ZCD = OFF        // Zero-cross detect disable (Zero-cross detect circuit is disabled at POR.)
  28. #pragma config PPS1WAY = ON     // Peripheral Pin Select one-way control (The PPSLOCK bit can be cleared and set only once in software)
  29. #pragma config STVREN = ON      // Stack Overflow/Underflow Reset Enable bit (Stack Overflow or Underflow will cause a reset)
  30.  
  31. // CONFIG3
  32. #pragma config WDTCPS = WDTCPS_31// WDT Period Select bits (Divider ratio 1:65536; software control of WDTPS)
  33. #pragma config WDTE = ON        // WDT operating mode (WDT enabled regardless of sleep; SWDTEN ignored)
  34. #pragma config WDTCWS = WDTCWS_7// WDT Window Select bits (window always open (100%); software control; keyed access not required)
  35. #pragma config WDTCCS = SC      // WDT input clock selector (Software Control)
  36.  
  37. // CONFIG4
  38. #pragma config WRT = OFF        // UserNVM self-write protection bits (Write protection off)
  39. #pragma config SCANE = available// Scanner Enable bit (Scanner module is available for use)
  40. #pragma config LVP = ON         // Low Voltage Programming Enable bit (Low Voltage programming enabled. MCLR/Vpp pin function is MCLR.)
  41.  
  42. // CONFIG5
  43. #pragma config CP = OFF         // UserNVM Program memory code protection bit (Program Memory code protection disabled)
  44. #pragma config CPD = OFF        // DataNVM code protection bit (Data EEPROM code protection disabled)
  45.  
  46. // #pragma config statements should precede project file includes.
  47. // Use project enums instead of #define for ON and OFF.
  48.  
  49. #include <xc.h>
  50.  
  51. void displayNumberOne(int);
  52. void displayNumberTwo(int);
  53. void displayNumberThree(int);
  54. void displayNumberFour(int);
  55.  
  56. void main(void)
  57. {    
  58.     TRISC = 0b00000000; //Register to display data(for number on VFD tube) on display bus (7 bit)
  59.     TRISD = 0b0000;     //Register to select what number to address
  60.     TRISA = 0x00;
  61.     PORTA = 0xFF;
  62.    
  63.     PORTC = 0;
  64.     PORTD = 0;
  65.    
  66.    
  67.     return;             //Restart program
  68. }
  69.  
  70. void displayNumberOne(int number){
  71.     //Turn On Number One Bit
  72.     RD0 = 1;
  73.     //**********************
  74.     if(number == 1){
  75.        
  76.     }else if(number == 2){
  77.        
  78.     }else if(number == 3){
  79.        
  80.     }else if(number == 4){
  81.  
  82.     }else if(number == 5){
  83.        
  84.     }else if(number == 6){
  85.        
  86.     }else if(number == 7){
  87.        
  88.     }else if(number == 8){
  89.        
  90.     }else if(number == 9){
  91.        
  92.     }
  93.    
  94.     //Turn Off Number One Bit
  95.     RD0 = 0;
  96.     return;
  97. }
  98.  
  99. void displayNumberTwo(int number){
  100.     //Turn On Number Two Bit
  101.     RD1 = 1;
  102.     //**********************
  103.     if(number == 1){
  104.        
  105.     }else if(number == 2){
  106.        
  107.     }else if(number == 3){
  108.        
  109.     }else if(number == 4){
  110.  
  111.     }else if(number == 5){
  112.        
  113.     }else if(number == 6){
  114.        
  115.     }else if(number == 7){
  116.        
  117.     }else if(number == 8){
  118.        
  119.     }else if(number == 9){
  120.        
  121.     }
  122.     //Turn Off Number Two Bit
  123.     RD1 = 0;
  124.     //**********************
  125.     return;
  126. }
  127.  
  128. void displayNumberThree(int number){
  129.     //Turn On Number Three Bit
  130.     RD2 = 1;
  131.     //**********************
  132.     if(number == 1){
  133.        
  134.     }else if(number == 2){
  135.        
  136.     }else if(number == 3){
  137.        
  138.     }else if(number == 4){
  139.  
  140.     }else if(number == 5){
  141.        
  142.     }else if(number == 6){
  143.        
  144.     }else if(number == 7){
  145.        
  146.     }else if(number == 8){
  147.        
  148.     }else if(number == 9){
  149.        
  150.     }
  151.     //Turn Off Number Three Bit
  152.     RD2 = 0;
  153.     //**********************
  154.     return;
  155. }
  156.  
  157. void displayNumberFour(int number){
  158.     //Turn On Number Four Bit
  159.     RD3 = 1;
  160.     //**********************
  161.     if(number == 1){
  162.        
  163.     }else if(number == 2){
  164.        
  165.     }else if(number == 3){
  166.        
  167.     }else if(number == 4){
  168.  
  169.     }else if(number == 5){
  170.        
  171.     }else if(number == 6){
  172.        
  173.     }else if(number == 7){
  174.        
  175.     }else if(number == 8){
  176.        
  177.     }else if(number == 9){
  178.        
  179.     }
  180.     //Turn Off Number Four Bit
  181.     RD3 = 0;
  182.     //**********************
  183.     return;
  184. }
  185.  
  186.     //*****************************************************************************************
  187.     //*notes | 0b00000000   0b means use binary 00000000 means all register bits are output   *
  188.     //*      | 0x00         0x for hex notation, 00 for all pins output. FF for all pins input*
  189.     //*****************************************************************************************
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement