欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1953|回復: 2
收起左側

如何使用mplab實現pic16f887芯片的流水燈實驗 求幫助

[復制鏈接]
ID:502115 發表于 2019-4-1 02:03 | 顯示全部樓層 |閱讀模式
如何使用mplab實現pic16f887芯片的流水燈實驗!
要求從上到下逐個點亮,從下島上逐個熄滅,上下逐個往中間點亮,從中間往外圍熄滅

回復

使用道具 舉報

ID:499770 發表于 2019-4-1 09:11 | 顯示全部樓層
比如8位的,高電平是點亮,你用一個字節,把每次變化的對應位置1,再間隔傳到端口,就能實現了
回復

使用道具 舉報

ID:18297 發表于 2019-4-1 09:32 | 顯示全部樓層
  1. #include"sys.h"
  2. #include <stdint.h>
  3. #include <stdbool.h>
  4. #include <stdio.h>
  5. uint8_t disp_buff=0;
  6. #define LED_OUTPUT PORTD
  7. uint8_t i=0;
  8. uint8_t disp_tabA[8]={0b0000000,0b10000001,0b11000011,0b11100111,0b11111111};
  9. void main()
  10. {
  11.     TRISD=0;
  12.     LED_OUTPUT=0;   
  13.     while(1)
  14.     {
  15.         for(i=0;i<8;i++)
  16.         {
  17.             disp_buff=(uint8_t)((disp_buff<<1)+1);       //右移加1 實現逐個點亮
  18.             LED_OUTPUT=disp_buff;
  19.             __delay_ms(500);
  20.         }      
  21.         for(i=0;i<8;i++)
  22.         {
  23.             disp_buff=(uint8_t)(disp_buff>>1);          //左移,實現逐個滅燈
  24.             LED_OUTPUT=disp_buff;
  25.             __delay_ms(500);
  26.         }
  27.         for(i=0;i<5;i++)
  28.         {
  29.             LED_OUTPUT=disp_tabA[i];                   //由disp_tabA[0]---disp_tabA[5]依次旁邊向中間點亮
  30.             __delay_ms(500);
  31.         }
  32.          for(i=0;i<5;i++)
  33.         {
  34.             LED_OUTPUT=disp_tabA[(uint8_t)(4-i)];      //由disp_tabA[5]---disp_tabA[0]依次旁邊向中間到兩邊逐漸滅燈
  35.             __delay_ms(500);
  36.         }
  37.         
  38.     }
  39. }
復制代碼

  1. // PIC16F887 Configuration Bit Settings

  2. // 'C' source line config statements

  3. // CONFIG1
  4. #pragma config FOSC = INTRC_NOCLKOUT// Oscillator Selection bits (INTOSCIO oscillator: I/O function on RA6/OSC2/CLKOUT pin, I/O function on RA7/OSC1/CLKIN)
  5. #pragma config WDTE = OFF       // Watchdog Timer Enable bit (WDT disabled and can be enabled by SWDTEN bit of the WDTCON register)
  6. #pragma config PWRTE = OFF      // Power-up Timer Enable bit (PWRT disabled)
  7. #pragma config MCLRE = OFF      // RE3/MCLR pin function select bit (RE3/MCLR pin function is digital input, MCLR internally tied to VDD)
  8. #pragma config CP = OFF         // Code Protection bit (Program memory code protection is disabled)
  9. #pragma config CPD = OFF        // Data Code Protection bit (Data memory code protection is disabled)
  10. #pragma config BOREN = ON       // Brown Out Reset Selection bits (BOR enabled)
  11. #pragma config IESO = OFF       // Internal External Switchover bit (Internal/External Switchover mode is disabled)
  12. #pragma config FCMEN = OFF      // Fail-Safe Clock Monitor Enabled bit (Fail-Safe Clock Monitor is disabled)
  13. #pragma config LVP = ON         // Low Voltage Programming Enable bit (RB3/PGM pin has PGM function, low voltage programming enabled)

  14. // CONFIG2
  15. #pragma config BOR4V = BOR40V   // Brown-out Reset Selection bit (Brown-out Reset set to 4.0V)
  16. #pragma config WRT = OFF        // Flash Program Memory Self Write Enable bits (Write protection off)

  17. // #pragma config statements should precede project file includes.
  18. // Use project enums instead of #define for ON and OFF.

  19. #include <xc.h>
  20. #define _XTAL_FREQ  16000000
復制代碼
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表