Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // PIC16F887 Configuration Bit Settings
- // 'C' source line config statements
- #define _XTAL_FREQ 4000000
- #include <xc.h>
- #include <stdlib.h>
- #include <stdio.h>
- // #pragma config statements should precede project file includes.
- // Use project enums instead of #define for ON and OFF.
- // CONFIG1
- #pragma config FOSC = HS // Oscillator Selection bits
- #pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT not enabled)
- #pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT disabled)
- #pragma config MCLRE = ON // RE3/MCLR pin function select bit (RE3/MCLR pin function is MCLR)
- #pragma config CP = OFF // Code Protection bit (Program memory code protection is disabled)
- #pragma config CPD = OFF // Data Code Protection bit (Data memory code protection is disabled)
- #pragma config BOREN = ON // Brown Out Reset Selection bits (BOR enabled)
- #pragma config IESO = ON // Internal External Switchover bit (Internal/External Switchover mode is enabled)
- #pragma config FCMEN = ON // Fail-Safe Clock Monitor Enabled bit (Fail-Safe Clock Monitor is enabled)
- #pragma config LVP = ON // Low Voltage Programming Enable bit (RB3/PGM pin has PGM function, low voltage programming enabled)
- // CONFIG2
- #pragma config BOR4V = BOR40V // Brown-out Reset Selection bit (Brown-out Reset set to 4.0V)
- #pragma config WRT = OFF // Flash Program Memory Self Write Enable bits (Write protection off)
- void C(double duration){
- int reps = 1046*duration;
- for (int i=0; i<reps;i++){
- RC2 = 1;
- __delay_us(477);
- RC2 = 0;
- __delay_us(477);
- }
- }
- void D(double duration){
- int reps = 1174*duration;
- for (int i=0; i<reps;i++){
- RC2 = 1;
- __delay_us(425);
- RC2 = 0;
- __delay_us(425);
- }
- }
- void E(double duration){
- int reps = 1318*duration;
- for (int i=0; i<reps ;i++){
- RC2 = 1;
- __delay_us(378);
- RC2 = 0;
- __delay_us(378);
- }
- }
- void F(double duration){
- int reps = 1396*duration;
- for (int i=0; i<reps ;i++){
- RC2 = 1;
- __delay_us(357);
- RC2 = 0;
- __delay_us(357);
- }
- }
- void G(double duration){
- int reps = 1567*duration;
- for (int i=0; i<reps ;i++){
- RC2 = 1;
- __delay_us(318);
- RC2 = 0;
- __delay_us(318);
- }
- }
- void A(double duration){
- int reps = 1760*duration;
- for (int i=0; i<reps ;i++){
- RC2 = 1;
- __delay_us(283);
- RC2 = 0;
- __delay_us(283);
- }
- }
- void main(){
- TRISC = 0;
- ANSEL, ANSELH = 0;
- PORTC = 0;
- while (1){
- C(.5);
- __delay_ms(100);
- C(.5);
- __delay_ms(100);
- G(.5);
- __delay_ms(100);
- G(.5);
- __delay_ms(100);
- A(.5);
- __delay_ms(100);
- A(.5);
- __delay_ms(100);
- G(1);
- __delay_ms(100);
- F(.5);
- __delay_ms(100);
- F(.5);
- __delay_ms(100);
- E(.5);
- __delay_ms(100);
- E(.5);
- __delay_ms(100);
- D(.5);
- __delay_ms(100);
- D(.5);
- __delay_ms(100);
- C(1);
- __delay_ms(100);
- G(.5);
- __delay_ms(100);
- G(.5);
- __delay_ms(100);
- F(.5);
- __delay_ms(100);
- F(.5);
- __delay_ms(100);
- E(.5);
- __delay_ms(100);
- E(.5);
- __delay_ms(100);
- D(1);
- __delay_ms(100);
- G(.5);
- __delay_ms(100);
- G(.5);
- __delay_ms(100);
- F(.5);
- __delay_ms(100);
- F(.5);
- __delay_ms(100);
- E(.5);
- __delay_ms(100);
- E(.5);
- __delay_ms(100);
- D(1);
- __delay_ms(100);
- C(.5);
- __delay_ms(100);
- C(.5);
- __delay_ms(100);
- G(.5);
- __delay_ms(100);
- G(.5);
- __delay_ms(100);
- A(.5);
- __delay_ms(100);
- A(.5);
- __delay_ms(100);
- G(1);
- __delay_ms(100);
- F(.5);
- __delay_ms(100);
- F(.5);
- __delay_ms(100);
- E(.5);
- __delay_ms(100);
- E(.5);
- __delay_ms(100);
- D(.5);
- __delay_ms(100);
- D(.5);
- __delay_ms(100);
- C(1);
- __delay_ms(100);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement