Advertisement
Guest User

Untitled

a guest
Oct 8th, 2015
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.16 KB | None | 0 0
  1.  
  2. // PIC16F887 Configuration Bit Settings
  3.  
  4. // 'C' source line config statements
  5. #define _XTAL_FREQ 4000000
  6. #include <xc.h>
  7. #include <stdlib.h>
  8. #include <stdio.h>
  9. // #pragma config statements should precede project file includes.
  10. // Use project enums instead of #define for ON and OFF.
  11.  
  12. // CONFIG1
  13. #pragma config FOSC = HS // Oscillator Selection bits
  14. #pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT not enabled)
  15. #pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT disabled)
  16. #pragma config MCLRE = ON // RE3/MCLR pin function select bit (RE3/MCLR pin function is MCLR)
  17. #pragma config CP = OFF // Code Protection bit (Program memory code protection is disabled)
  18. #pragma config CPD = OFF // Data Code Protection bit (Data memory code protection is disabled)
  19. #pragma config BOREN = ON // Brown Out Reset Selection bits (BOR enabled)
  20. #pragma config IESO = ON // Internal External Switchover bit (Internal/External Switchover mode is enabled)
  21. #pragma config FCMEN = ON // Fail-Safe Clock Monitor Enabled bit (Fail-Safe Clock Monitor is enabled)
  22. #pragma config LVP = ON // Low Voltage Programming Enable bit (RB3/PGM pin has PGM function, low voltage programming enabled)
  23.  
  24. // CONFIG2
  25. #pragma config BOR4V = BOR40V // Brown-out Reset Selection bit (Brown-out Reset set to 4.0V)
  26. #pragma config WRT = OFF // Flash Program Memory Self Write Enable bits (Write protection off)
  27.  
  28.  
  29.  
  30. void C(double duration){
  31. int reps = 1046*duration;
  32. for (int i=0; i<reps;i++){
  33. RC2 = 1;
  34. __delay_us(477);
  35. RC2 = 0;
  36. __delay_us(477);
  37. }
  38. }
  39.  
  40. void D(double duration){
  41. int reps = 1174*duration;
  42. for (int i=0; i<reps;i++){
  43. RC2 = 1;
  44. __delay_us(425);
  45. RC2 = 0;
  46. __delay_us(425);
  47. }
  48. }
  49.  
  50. void E(double duration){
  51. int reps = 1318*duration;
  52. for (int i=0; i<reps ;i++){
  53. RC2 = 1;
  54. __delay_us(378);
  55. RC2 = 0;
  56. __delay_us(378);
  57. }
  58. }
  59.  
  60. void F(double duration){
  61. int reps = 1396*duration;
  62. for (int i=0; i<reps ;i++){
  63. RC2 = 1;
  64. __delay_us(357);
  65. RC2 = 0;
  66. __delay_us(357);
  67. }
  68. }
  69.  
  70. void G(double duration){
  71. int reps = 1567*duration;
  72. for (int i=0; i<reps ;i++){
  73. RC2 = 1;
  74. __delay_us(318);
  75. RC2 = 0;
  76. __delay_us(318);
  77. }
  78. }
  79.  
  80. void A(double duration){
  81. int reps = 1760*duration;
  82. for (int i=0; i<reps ;i++){
  83. RC2 = 1;
  84. __delay_us(283);
  85. RC2 = 0;
  86. __delay_us(283);
  87. }
  88. }
  89.  
  90. void main(){
  91. TRISC = 0;
  92. ANSEL, ANSELH = 0;
  93. PORTC = 0;
  94. while (1){
  95.  
  96. C(.5);
  97. __delay_ms(100);
  98. C(.5);
  99. __delay_ms(100);
  100. G(.5);
  101. __delay_ms(100);
  102. G(.5);
  103. __delay_ms(100);
  104. A(.5);
  105. __delay_ms(100);
  106. A(.5);
  107. __delay_ms(100);
  108. G(1);
  109. __delay_ms(100);
  110. F(.5);
  111. __delay_ms(100);
  112. F(.5);
  113. __delay_ms(100);
  114. E(.5);
  115. __delay_ms(100);
  116. E(.5);
  117. __delay_ms(100);
  118. D(.5);
  119. __delay_ms(100);
  120. D(.5);
  121. __delay_ms(100);
  122. C(1);
  123. __delay_ms(100);
  124. G(.5);
  125. __delay_ms(100);
  126. G(.5);
  127. __delay_ms(100);
  128. F(.5);
  129. __delay_ms(100);
  130. F(.5);
  131. __delay_ms(100);
  132. E(.5);
  133. __delay_ms(100);
  134. E(.5);
  135. __delay_ms(100);
  136. D(1);
  137. __delay_ms(100);
  138. G(.5);
  139. __delay_ms(100);
  140. G(.5);
  141. __delay_ms(100);
  142. F(.5);
  143. __delay_ms(100);
  144. F(.5);
  145. __delay_ms(100);
  146. E(.5);
  147. __delay_ms(100);
  148. E(.5);
  149. __delay_ms(100);
  150. D(1);
  151. __delay_ms(100);
  152. C(.5);
  153. __delay_ms(100);
  154. C(.5);
  155. __delay_ms(100);
  156. G(.5);
  157. __delay_ms(100);
  158. G(.5);
  159. __delay_ms(100);
  160. A(.5);
  161. __delay_ms(100);
  162. A(.5);
  163. __delay_ms(100);
  164. G(1);
  165. __delay_ms(100);
  166. F(.5);
  167. __delay_ms(100);
  168. F(.5);
  169. __delay_ms(100);
  170. E(.5);
  171. __delay_ms(100);
  172. E(.5);
  173. __delay_ms(100);
  174. D(.5);
  175. __delay_ms(100);
  176. D(.5);
  177. __delay_ms(100);
  178. C(1);
  179. __delay_ms(100);
  180.  
  181.  
  182.  
  183.  
  184. }
  185. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement