FORUM Syndrome-OC - Jacky-PC


  Programmation


  Autre


  [PIC][C] debuggage programme pour PIC16F877A

 




Il y a 29 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici

 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PIC][C] debuggage programme pour PIC16F877A

n°7146
Cool871559​851
Posté le 18-03-2007 à 13:23:39  profilanswer
 

Donc voila pour mes etude je dois concevoir en partie un générateur de mire. Ma partie consiste à sortir le RVB, la synchro et la gestion du lcd.
 
Pour cela j'utilise un PIC16F877A programmer en CCS et j'ai des problemes de delay qui ne fonctionne que quand ils veulent donc si quelqu'un peut m'aider parceque je ne vois plus de solution merci.
 
 
 
 
 

Code :
  1. #include <16F877A.h>
  2. #fuses HS,NOWDT,NOPROTECT,PUT,NOBROWNOUT
  3. #use delay (clock=63000)
  4. set_tris_a (0xFF);
  5. set_tris_b (0x00);
  6. set_tris_d (0x00);
  7. void mirebarre(void)
  8. {
  9. output_b (0b0010111); // blanc
  10. delay_us(6.5);
  11. output_b (0b0010110); // jaune
  12. delay_us(6.5);
  13. output_b (0b001101); // turquoise
  14. delay_us(6.5);
  15. output_b (0b001100); // vert
  16. delay_us(6.5);
  17. output_b (0b001011); // violet
  18. delay_us(6.5);
  19. output_b (0b001010); // rouge
  20. delay_us(6.5);
  21. output_b (0b001001); // bleu
  22. delay_us(6.5);
  23. output_b (0b001000); // noir
  24. delay_us(6.5);
  25. }
  26. void topligne(void)
  27. {
  28. output_b (0b001000); // palier avant
  29. delay_us(1);
  30. output_b (0b000000); // synchronisation ligne
  31. delay_us(5);
  32. output_b (0b001000); // palier arriere
  33. delay_us(6);
  34. }
  35. void egap(void)     //egalisation paire
  36. {
  37. char preegap;
  38. char egal;
  39. char postegp;
  40. for(preegap=0;preegap<6;preegap++)   // preegalisation   
  41.  {
  42.  output_b (0b000000);
  43.  delay_us(2);
  44.  output_b (0b001000);
  45.  delay_us(32);
  46.  }
  47. for(egal=0;egal<5;egal++)     // egalisation
  48.  {
  49.  output_b (0b000000);
  50.  delay_us(32);
  51.  output_b (0b001000);
  52.  delay_us(2);
  53.  }
  54. for(postegp=0;postegp<5;postegp++)   // post egalisation
  55.  {
  56.  output_b (0b000000);
  57.  delay_us(2);
  58.  output_b (0b001000);
  59.  delay_us(32);
  60.  }
  61. }
  62. void egaimp(void)    // egalisation impaire
  63. {
  64. char preegaimp;
  65. char egal;
  66. char postegp;
  67. for(preegaimp=0; preegaimp<5; preegaimp++) // preegalisation
  68.  {
  69.  output_b (0b000000);
  70.  delay_us(2);
  71.  output_b (0b001000);
  72.  delay_us(32);
  73.  }
  74. for(egal=0;egal<5;egal++)     // egalisation
  75.  {
  76.  output_b (0b000000);
  77.  delay_us(32);
  78.  output_b (0b001000);
  79.  delay_us(2);
  80.  }
  81. for(postegp=0;postegp<5;postegp++)   // post egalisation
  82.  {
  83.  output_b (0b000000);
  84.  delay_us(2);
  85.  output_b (0b001000);
  86.  delay_us(32);
  87.  }
  88. }
  89. void mirebarrefinale (void)      //mire barre finie
  90. {
  91. long ligne2;
  92. long ligne3;
  93. while(input_a()==0)
  94.  {
  95.  for(ligne2=0;ligne2<312;ligne2++)
  96.   {
  97.   mirebarre();
  98.   topligne();
  99.   }
  100.  egap();
  101.  for(ligne3=0;ligne3<312;ligne3++)
  102.   {
  103.   mirebarre();
  104.   topligne();
  105.   }
  106.  egaimp();
  107.  }
  108. }
  109. void mirepurbleu (void)       //mire de purete bleue
  110. {
  111. long ligne2;
  112. long ligne3;
  113. while(input_a()==0)
  114.  {
  115.  for(ligne2=0;ligne2<312;ligne2++)
  116.   {
  117.   output_b (0b10001);
  118.   delay_us(52);
  119.   topligne();
  120.   }
  121.  egap();
  122.  for(ligne3=0;ligne3<312;ligne3++)
  123.   {
  124.   output_b (0b10001);
  125.   delay_us(52);
  126.   topligne();
  127.   }
  128.  egaimp();
  129.  }
  130. }
  131. void mirerougepur (void)     //mire de purete rouge
  132. {
  133. long ligne2;
  134. long ligne3;
  135. while(input_a()==0)
  136.  {
  137.  for(ligne2=0;ligne2<312;ligne2++)
  138.   {
  139.   output_b (0b10010);
  140.   delay_us(52);
  141.   topligne();
  142.   }
  143.  egap();
  144.  for(ligne3=0;ligne3<312;ligne3++)
  145.   {
  146.   output_b (0b10010);
  147.   delay_us(52);
  148.   topligne();
  149.   }
  150.  egaimp();
  151.  }
  152. }
  153. void mirevertpur (void)      //mire de purete verte
  154. {
  155. long ligne2;
  156. long ligne3;
  157. while(input_a()==0)
  158.  {
  159.  for(ligne2=0;ligne2<312;ligne2++)
  160.   {
  161.   output_b (0b10100);
  162.   delay_us(52);
  163.   topligne();
  164.   }
  165.  egap();
  166.  for(ligne3=0;ligne3<312;ligne3++)
  167.   {
  168.   output_b (0b10100);
  169.   delay_us(52);
  170.   topligne();
  171.   }
  172.  egaimp();
  173.  }
  174. }
  175. void mirenoirpur (void)      //mire de purete noire
  176. {
  177. long ligne2;
  178. long ligne3;
  179. while(input_a()==0)
  180.  {
  181.  for(ligne2=0;ligne2<312;ligne2++)
  182.   {
  183.   output_b (0b10000);
  184.   delay_us(52);
  185.   topligne();
  186.   }
  187.  egap();
  188.  for(ligne3=0;ligne3<312;ligne3++)
  189.   {
  190.   output_b (0b10000);
  191.   delay_us(52);
  192.   topligne();
  193.   }
  194.  egaimp();
  195.  }
  196. }
  197. void mireblancpur (void)     //mire de purete blanche
  198. {
  199. long ligne2;
  200. long ligne3;
  201. while(input_a()==0)
  202.  {
  203.  for(ligne2=0;ligne2<312;ligne2++)
  204.   {
  205.   output_b (0b10111);
  206.   delay_us(52);
  207.   topligne();
  208.   }
  209.  egap();
  210.  for(ligne3=0;ligne3<312;ligne3++)
  211.   {
  212.   output_b (0b10111);
  213.   delay_us(52);
  214.   topligne();
  215.   }
  216.  egaimp();
  217.  }
  218. }
  219. void mirequadri (void)    //mire quadrillage
  220. {
  221. char fi;
  222. char li;
  223. long quad;
  224. char tempo;
  225. char tempo2;
  226. char tempo3;
  227. while(input_a()==0)
  228.  {
  229.  for(fi=0;fi<5;fi++)
  230.   {
  231.   for(li=0;li<56;li++)
  232.    {
  233.    for(tempo3=0;tempo3<15;tempo3++)
  234.     {
  235.     output_b(0b10000);
  236.     delay_us(2.91);
  237.     output_b(0b10111);
  238.     delay_us(0.36);
  239.     }
  240.    output_b(0b10000);
  241.    delay_us(2.91);
  242.    topligne();
  243.    }
  244.   output_b(0b10111);
  245.   delay_ms(52);
  246.   topligne();
  247.   }
  248.  for(tempo=0;tempo<27;tempo++)
  249.   {
  250.   delay_us(52);
  251.   topligne();
  252.   }
  253.  egap();
  254.   for(quad=0;quad<312;quad++)
  255.    {
  256.    for(tempo2=0;tempo2<15;tempo2++)
  257.     {
  258.     output_b(0b10000);
  259.     delay_us(2.91);
  260.     output_b(0b10111);
  261.     delay_us(0.36);
  262.     }
  263.    output_b(0b10000);
  264.    delay_us(2.91);
  265.    topligne();
  266.    }
  267.  egaimp();
  268.  }
  269. }
  270. void mirepoint (void)    //mire point
  271. {
  272. char fi;
  273. char li;
  274. char tempo;
  275. long tempo2;
  276. char tempo3;
  277. while(input_a()==0)
  278.  {
  279.  for(fi=0;fi<5;fi++)
  280.   {
  281.   for(li=0;li<56;li++)
  282.    {
  283.    delay_us(52);
  284.    topligne();
  285.    }
  286.   for(tempo3=0;tempo3<15;tempo3++)
  287.    {
  288.    output_b(0b10000);
  289.    delay_us(2.91);
  290.    output_b(0b10111);
  291.    delay_us(0.36);
  292.    }
  293.   output_b(0b10000);
  294.   delay_us(2.91);
  295.   topligne();
  296.   }
  297.   for(tempo=0;tempo<27;tempo++)
  298.    {
  299.    delay_us(52);
  300.    topligne();
  301.    }
  302.  egap();
  303.  for(tempo2=0;tempo2<312;tempo2++)
  304.    {
  305.    delay_us(52);
  306.    topligne();
  307.    }
  308.  egaimp();
  309.  }
  310. }
  311. void initlcd (void)
  312. {
  313. delay_ms(15.0);
  314. output_d(0b000011);
  315. delay_ms(4.1);
  316. output_d(0b000011);
  317. delay_us(100.0);
  318. output_d(0b000011);
  319. output_d(0b000000);
  320. output_d(0b101000);
  321. output_d(0b000000);
  322. output_d(0b001000);
  323. output_d(0b000000);
  324. output_d(0b000001);
  325. output_d(0b000000);
  326. output_d(0b000101);
  327. }
  328. void mire(void)
  329. {
  330. output_d(0b1000100);
  331. output_d(0b1100000);               // M
  332. delay_us(1.0);
  333. output_d(0b1001101);
  334. output_d(0b1000100);
  335. delay_us(1.0);
  336. output_d(0b1000100);
  337. output_d(0b1100000);               // I
  338. delay_us(1.0);
  339. output_d(0b1001001);
  340. output_d(0b1100000);
  341. delay_us(1.0);
  342. output_d(0b1000101);
  343. output_d(0b1100000);               // R
  344. delay_us(1.0);
  345. output_d(0b1000010);
  346. output_d(0b1100000);
  347. delay_us(1.0);
  348. output_d(0b1000100);
  349. output_d(0b1100000);               // E
  350. delay_us(1.0);
  351. output_d(0b1000101);
  352. output_d(0b1100000);
  353. delay_us(1.0);
  354. }
  355. void mirebarrelcd(void)
  356. {
  357. char sp;
  358. char sp2;
  359. for (sp=0;sp<6;sp++);
  360.  {
  361.  output_d(0b1000010);
  362.  output_d(0b1100000);           // 6 espaces
  363.  delay_us(1.0);
  364.  output_d(0b1000000);
  365.  output_d(0b1100000);
  366.  delay_us(1.0);
  367.  }
  368. mire();
  369. output_d(0b1000000);
  370. output_d(0b1100000);               // Saut de ligne
  371. delay_us(1.0);
  372. output_d(0b1000110);
  373. output_d(0b1100000);
  374. delay_us(1.0);
  375. for (sp2=0;sp2<6;sp2++);
  376.  {
  377.  output_d(0b1000010);
  378.  output_d(0b1100000);           // 6 espaces
  379.  delay_us(1.0);
  380.  output_d(0b1000000);
  381.  output_d(0b1100000);
  382.  delay_us(1.0);
  383.  }
  384. output_d(0b1000100);
  385. output_d(0b1100000);               // B  
  386. delay_us(1.0);
  387. output_d(0b1000010);
  388. output_d(0b1100000);
  389. delay_us(1.0);
  390. output_d(0b1000100);
  391. output_d(0b1100000);               // A
  392. delay_us(1.0);
  393. output_d(0b1000001);
  394. output_d(0b1100000);
  395. delay_us(1.0);
  396. output_d(0b1000101);
  397. output_d(0b1100000);               // R
  398. delay_us(1.0);
  399. output_d(0b1000010);
  400. output_d(0b1100000);
  401. delay_us(1.0);
  402. output_d(0b1000101);
  403. output_d(0b1100000);               // R
  404. delay_us(1.0);
  405. output_d(0b1000010);
  406. output_d(0b1100000);
  407. delay_us(1.0);
  408. output_d(0b1000100);
  409. output_d(0b1100000);               // E
  410. delay_us(1.0);
  411. output_d(0b1000101);
  412. output_d(0b1100000);
  413. delay_us(1.0);
  414. }
  415. void mirepointlcd(void)
  416. {
  417. char sp;
  418. char sp2;
  419. for (sp=0;sp<6;sp++);
  420.  {
  421.  output_d(0b1000010);
  422.  output_d(0b1100000);           // 6 espaces
  423.  delay_us(1.0);
  424.  output_d(0b1000000);
  425.  output_d(0b1100000);
  426.  delay_us(1.0);
  427.  }
  428. mire();
  429. output_d(0b1000000);
  430. output_d(0b1100000);               // Saut de ligne
  431. delay_us(1.0);
  432. output_d(0b1000110);
  433. output_d(0b1100000);
  434. delay_us(1.0);
  435. for (sp2=0;sp2<6;sp2++);
  436.  {
  437.  output_d(0b1000010);
  438.  output_d(0b1100000);           // 6 espaces
  439.  delay_us(1.0);
  440.  output_d(0b1000000);
  441.  output_d(0b1100000);
  442.  delay_us(1.0);
  443.  }
  444. output_d(0b1000101);
  445. output_d(0b1100000);               // P
  446. delay_us(1.0);
  447. output_d(0b1000000);
  448. output_d(0b1100000);
  449. delay_us(1.0);
  450. output_d(0b1000100);
  451. output_d(0b1100000);               // O
  452. delay_us(1.0);
  453. output_d(0b1001111);
  454. output_d(0b1100000);
  455. delay_us(1.0);
  456. output_d(0b1000100);
  457. output_d(0b1100000);               // I
  458. delay_us(1.0);
  459. output_d(0b1001001);
  460. output_d(0b1100000);
  461. delay_us(1.0);
  462. output_d(0b1000100);
  463. output_d(0b1100000);               // N
  464. delay_us(1.0);
  465. output_d(0b1001001);
  466. output_d(0b1100000);
  467. delay_us(1.0);
  468. output_d(0b1000101);
  469. output_d(0b1100000);               // T
  470. delay_us(1.0);
  471. output_d(0b1000100);
  472. output_d(0b1100000);
  473. delay_us(1.0);
  474. }
  475. void mirequadrillagelcd(void)
  476. {
  477. char sp;
  478. char sp2;
  479. for (sp=0;sp<6;sp++);
  480.  {
  481.  output_d(0b1000010);
  482.  output_d(0b1100000);           // 6 espaces
  483.  delay_us(1.0);
  484.  output_d(0b1000000);
  485.  output_d(0b1100000);
  486.  delay_us(1.0);
  487.  }
  488. mire();
  489. output_d(0b1000000);
  490. output_d(0b1100000);               // Saut de ligne
  491. delay_us(1.0);
  492. output_d(0b1000110);
  493. output_d(0b1100000);
  494. delay_us(1.0);
  495. for (sp2=0;sp2<2;sp2++);
  496.  {
  497.  output_d(0b1000010);
  498.  output_d(0b1100000);           // 2 espaces
  499.  delay_us(1.0);
  500.  output_d(0b1000000);
  501.  output_d(0b1100000);
  502.  delay_us(1.0);
  503.  }
  504. output_d(0b1000101);
  505. output_d(0b1100000);               // Q
  506. delay_us(1.0);
  507. output_d(0b1000000);
  508. output_d(0b1100000);
  509. delay_us(1.0);
  510. output_d(0b1000101);
  511. output_d(0b1100000);               // U
  512. delay_us(1.0);
  513. output_d(0b1000101);
  514. output_d(0b1100000);
  515. delay_us(1.0);
  516. output_d(0b1000100);
  517. output_d(0b1100000);               // A
  518. delay_us(1.0);
  519. output_d(0b1000001);
  520. output_d(0b1100000);
  521. delay_us(1.0);
  522. output_d(0b1000100);
  523. output_d(0b1100000);               // D
  524. delay_us(1.0);
  525. output_d(0b1000100);
  526. output_d(0b1100000);
  527. delay_us(1.0);
  528. output_d(0b1000101);
  529. output_d(0b1100000);               // R
  530. delay_us(1.0);
  531. output_d(0b1000010);
  532. output_d(0b1100000);
  533. delay_us(1.0);
  534. output_d(0b1000100);
  535. output_d(0b1100000);               // I
  536. delay_us(1.0);
  537. output_d(0b1001001);
  538. output_d(0b1100000);
  539. delay_us(1.0);
  540. output_d(0b1000100);
  541. output_d(0b1100000);               // L
  542. delay_us(1.0);
  543. output_d(0b1001100);
  544. output_d(0b1100000);
  545. delay_us(1.0);
  546. output_d(0b1000100);
  547. output_d(0b1100000);               // L
  548. delay_us(1.0);
  549. output_d(0b1001100);
  550. output_d(0b1100000);
  551. delay_us(1.0);
  552. output_d(0b1000100);
  553. output_d(0b1100000);               // A
  554. delay_us(1.0);
  555. output_d(0b1000001);
  556. output_d(0b1100000);
  557. delay_us(1.0);
  558. output_d(0b1000100);
  559. output_d(0b1100000);               // G
  560. delay_us(1.0);
  561. output_d(0b1000111);
  562. output_d(0b1100000);
  563. delay_us(1.0);
  564. output_d(0b1000100);
  565. output_d(0b1100000);               // E
  566. delay_us(1.0);
  567. output_d(0b1000101);
  568. output_d(0b1100000);
  569. delay_us(1.0);
  570. }
  571. void mirerouge(void)
  572. {
  573. char sp;
  574. char sp2;
  575. for (sp=0;sp<6;sp++);
  576.  {
  577.  output_d(0b1000010);
  578.  output_d(0b1100000);           // 6 espaces
  579.  delay_us(1.0);
  580.  output_d(0b1000000);
  581.  output_d(0b1100000);
  582.  delay_us(1.0);
  583.  }
  584. mire();
  585. output_d(0b1000000);
  586. output_d(0b1100000);               // Saut de ligne
  587. delay_us(1.0);
  588. output_d(0b1000110);
  589. output_d(0b1100000);
  590. delay_us(1.0);
  591. for (sp2=0;sp2<6;sp2++);
  592.  {
  593.  output_d(0b1000010);
  594.  output_d(0b1100000);           // 6 espaces
  595.  delay_us(1.0);
  596.  output_d(0b1000000);
  597.  output_d(0b1100000);
  598.  delay_us(1.0);
  599.  }
  600. output_d(0b1000101);
  601. output_d(0b1100000);               // R
  602. delay_us(1.0);
  603. output_d(0b1000010);
  604. output_d(0b1100000);
  605. delay_us(1.0);
  606. output_d(0b1000100);
  607. output_d(0b1100000);               // O
  608. delay_us(1.0);
  609. output_d(0b1001111);
  610. output_d(0b1100000);
  611. delay_us(1.0);
  612. output_d(0b1000101);
  613. output_d(0b1100000);               // U
  614. delay_us(1.0);
  615. output_d(0b1000101);
  616. output_d(0b1100000);
  617. delay_us(1.0);
  618. output_d(0b1000100);
  619. output_d(0b1100000);               // G
  620. delay_us(1.0);
  621. output_d(0b1000111);
  622. output_d(0b1100000);
  623. delay_us(1.0);
  624. output_d(0b1000100);
  625. output_d(0b1100000);               // E
  626. delay_us(1.0);
  627. output_d(0b1000101);
  628. output_d(0b1100000);
  629. delay_us(1.0);
  630. }
  631. void mirevert(void)
  632. {
  633. char sp;
  634. char sp2;
  635. for (sp=0;sp<6;sp++);
  636.  {
  637.  output_d(0b1000010);
  638.  output_d(0b1100000);           // 6 espaces
  639.  delay_us(1.0);
  640.  output_d(0b1000000);
  641.  output_d(0b1100000);
  642.  delay_us(1.0);
  643.  }
  644. mire();
  645. output_d(0b1000000);
  646. output_d(0b1100000);               // Saut de ligne
  647. delay_us(1.0);
  648. output_d(0b1000110);
  649. output_d(0b1100000);
  650. delay_us(1.0);
  651. for (sp2=0;sp2<6;sp2++);
  652.  {
  653.  output_d(0b1000010);
  654.  output_d(0b1100000);           // 6 espaces
  655.  delay_us(1.0);
  656.  output_d(0b1000000);
  657.  output_d(0b1100000);
  658.  delay_us(1.0);
  659.  }
  660. output_d(0b1000101);
  661. output_d(0b1100000);               // V
  662. delay_us(1.0);
  663. output_d(0b1000110);
  664. output_d(0b1100000);
  665. delay_us(1.0);
  666. output_d(0b1000100);
  667. output_d(0b1100000);               // E
  668. delay_us(1.0);
  669. output_d(0b1000101);
  670. output_d(0b1100000);
  671. delay_us(1.0);
  672. output_d(0b1000101);
  673. output_d(0b1100000);               // R
  674. delay_us(1.0);
  675. output_d(0b1000010);
  676. output_d(0b1100000);
  677. delay_us(1.0);
  678. output_d(0b1000101);
  679. output_d(0b1100000);               // T
  680. delay_us(1.0);
  681. output_d(0b1000100);
  682. output_d(0b1100000);
  683. delay_us(1.0);
  684. }
  685. void mirebleu(void)
  686. {
  687. char sp;
  688. char sp2;
  689. for (sp=0;sp<6;sp++);
  690.  {
  691.  output_d(0b1000010);
  692.  output_d(0b1100000);           // 6 espaces
  693.  delay_us(1.0);
  694.  output_d(0b1000000);
  695.  output_d(0b1100000);
  696.  delay_us(1.0);
  697.  }
  698. mire();
  699. output_d(0b1000000);
  700. output_d(0b1100000);               // Saut de ligne
  701. delay_us(1.0);
  702. output_d(0b1000110);
  703. output_d(0b1100000);
  704. delay_us(1.0);
  705. for (sp2=0;sp2<6;sp2++);
  706.  {
  707.  output_d(0b1000010);
  708.  output_d(0b1100000);           // 6 espaces
  709.  delay_us(1.0);
  710.  output_d(0b1000000);
  711.  output_d(0b1100000);
  712.  delay_us(1.0);
  713.  }
  714. output_d(0b1000100);
  715. output_d(0b1100000);               // B
  716. delay_us(1.0);
  717. output_d(0b1000010);
  718. output_d(0b1100000);
  719. delay_us(1.0);
  720. output_d(0b1000100);
  721. output_d(0b1100000);               // L
  722. delay_us(1.0);
  723. output_d(0b1001100);
  724. output_d(0b1100000);
  725. delay_us(1.0);
  726. output_d(0b1000100);
  727. output_d(0b1100000);               // E
  728. delay_us(1.0);
  729. output_d(0b1000101);
  730. output_d(0b1100000);
  731. delay_us(1.0);
  732. output_d(0b1000101);
  733. output_d(0b1100000);               // U
  734. delay_us(1.0);
  735. output_d(0b1000101);
  736. output_d(0b1100000);
  737. delay_us(1.0);
  738. output_d(0b1000100);
  739. output_d(0b1100000);               // E
  740. delay_us(1.0);
  741. output_d(0b1000101);
  742. output_d(0b1100000);
  743. delay_us(1.0);
  744. }
  745. void mireblanche(void)
  746. {
  747. char sp;
  748. char sp2;
  749. for (sp=0;sp<6;sp++);
  750.  {
  751.  output_d(0b1000010);
  752.  output_d(0b1100000);           // 6 espaces
  753.  delay_us(1.0);
  754.  output_d(0b1000000);
  755.  output_d(0b1100000);
  756.  delay_us(1.0);
  757.  }
  758. mire();
  759. output_d(0b1000000);
  760. output_d(0b1100000);               // Saut de ligne
  761. delay_us(1.0);
  762. output_d(0b1000110);
  763. output_d(0b1100000);
  764. delay_us(1.0);
  765. for (sp2=0;sp2<5;sp2++);
  766.  {
  767.  output_d(0b1000010);
  768.  output_d(0b1100000);           // 5 espaces
  769.  delay_us(1.0);
  770.  output_d(0b1000000);
  771.  output_d(0b1100000);
  772.  delay_us(1.0);
  773.  }
  774. output_d(0b1000100);
  775. output_d(0b1100000);               // B
  776. delay_us(1.0);
  777. output_d(0b1000010);
  778. output_d(0b1100000);
  779. delay_us(1.0);
  780. output_d(0b1000100);
  781. output_d(0b1100000);               // L
  782. delay_us(1.0);
  783. output_d(0b1001100);
  784. output_d(0b1100000);
  785. delay_us(1.0);
  786. output_d(0b1000100);
  787. output_d(0b1100000);               // A
  788. delay_us(1.0);
  789. output_d(0b1000001);
  790. output_d(0b1100000);
  791. delay_us(1.0);
  792. output_d(0b1000100);
  793. output_d(0b1100000);               // N
  794. delay_us(1.0);
  795. output_d(0b1001001);
  796. output_d(0b1100000);
  797. delay_us(1.0);
  798. output_d(0b1000100);
  799. output_d(0b1100000);               // C
  800. delay_us(1.0);
  801. output_d(0b1000011);
  802. output_d(0b1100000);
  803. delay_us(1.0);
  804. output_d(0b1000100);
  805. output_d(0b1100000);               // H
  806. delay_us(1.0);
  807. output_d(0b1001000);
  808. output_d(0b1100000);
  809. delay_us(1.0);
  810. output_d(0b1000100);
  811. output_d(0b1100000);               // E
  812. delay_us(1.0);
  813. output_d(0b1000101);
  814. output_d(0b1100000);
  815. delay_us(1.0);
  816. }
  817. void mirenoire(void)
  818. {
  819. char sp;
  820. char sp2;
  821. for (sp=0;sp<6;sp++);
  822.  {
  823.  output_d(0b1000010);
  824.  output_d(0b1100000);           // 6 espaces
  825.  delay_us(1.0);
  826.  output_d(0b1000000);
  827.  output_d(0b1100000);
  828.  delay_us(1.0);
  829.  }
  830. mire();
  831. output_d(0b1000000);
  832. output_d(0b1100000);               // Saut de ligne
  833. delay_us(1.0);
  834. output_d(0b1000110);
  835. output_d(0b1100000);
  836. delay_us(1.0);
  837. for (sp2=0;sp2<6;sp2++);
  838.  {
  839.  output_d(0b1000010);
  840.  output_d(0b1100000);           // 6 espaces
  841.  delay_us(1.0);
  842.  output_d(0b1000000);
  843.  output_d(0b1100000);
  844.  delay_us(1.0);
  845.  }
  846. output_d(0b1000100);
  847. output_d(0b1100000);               // N
  848. delay_us(1.0);
  849. output_d(0b1001001);
  850. output_d(0b1100000);
  851. delay_us(1.0);
  852. output_d(0b1000100);
  853. output_d(0b1100000);               // O
  854. delay_us(1.0);
  855. output_d(0b1001111);
  856. output_d(0b1100000);
  857. delay_us(1.0);
  858. output_d(0b1000100);
  859. output_d(0b1100000);               // I
  860. delay_us(1.0);
  861. output_d(0b1001001);
  862. output_d(0b1100000);
  863. delay_us(1.0);
  864. output_d(0b1000101);
  865. output_d(0b1100000);               // R
  866. delay_us(1.0);
  867. output_d(0b1000010);
  868. output_d(0b1100000);
  869. delay_us(1.0);
  870. output_d(0b1000100);
  871. output_d(0b1100000);               // E
  872. delay_us(1.0);
  873. output_d(0b1000101);
  874. output_d(0b1100000);
  875. delay_us(1.0);
  876. }
  877. void main(void)
  878. {
  879. char test;
  880. setup_adc (ADC_OFF);
  881. setup_adc_ports (NO_ANALOGS);
  882. initlcd();
  883. while(1)
  884.  {
  885.  if(input_a()==0b0001)
  886.   {
  887.   test=0;
  888.   mirebarrelcd();
  889.   mirebarrefinale();
  890.   }
  891.  else if(input_a()==0b0010)
  892.   {
  893.   test=0;
  894.   mirepointlcd();
  895.   mirepoint();
  896.   }
  897.  else if(input_a()==0b0100)
  898.   {
  899.   test=0;
  900.   mirequadrillagelcd();
  901.   mirequadri();
  902.   }
  903.  else if(input_a()==0b1000)
  904.   {
  905.   test++;
  906.   if(test==1)
  907.    {
  908.    mirerouge();
  909.    mirerougepur();
  910.    }
  911.   else if(test==2)
  912.    {
  913.    mirevert();
  914.    mirevertpur();
  915.    }
  916.   else if(test==3)
  917.    {
  918.    mirebleu();
  919.    mirepurbleu();
  920.    }
  921.   else if(test==4)
  922.    {
  923.    mirenoire();
  924.    mirenoirpur();
  925.    }
  926.   else if(test==5)
  927.    {
  928.    mireblanche();
  929.    mireblancpur();
  930.    }
  931.   else
  932.    {
  933.    test=0;
  934.    }
  935.   }
  936.  else
  937.   {
  938.   }
  939.  }
  940. }


Message édité par Cool871559851 le 18-03-2007 à 16:52:35
mood
Google
Posté le 18-03-2007 à 13:23:39  profilanswer
 

n°7147
tonton rem
Dresseur de troll
Posté le 18-03-2007 à 13:49:41  profilanswer
 

c'est peut etre une solution un peut barbare, mais tu ne peut pas creer une fonction dans ton programme, pour remplacer les 'delay' ?

n°7148
Cool871559​851
Posté le 18-03-2007 à 14:14:07  profilanswer
 

tonton rem a écrit :

c'est peut etre une solution un peut barbare, mais tu ne peut pas creer une fonction dans ton programme, pour remplacer les 'delay' ?


 
 
C'est une possiblité mais si mon delay est court le fait d'appeller une fonction prendra peut être plus de temps que mon delay  :(

mood
Google
Posté le 18-03-2007 à 14:14:07  profilanswer
 


Aller à :
Ajouter une réponse

  FORUM Syndrome-OC - Jacky-PC


  Programmation


  Autre


  [PIC][C] debuggage programme pour PIC16F877A

 

Hit Parade