⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pic16f630.c

📁 RA0-RA5,RC0-RC5口的流水灯
💻 C
字号:
//实验目的:RA0-RA5,RC0-RC5口的流水灯,熟悉PIC16F630的I/O口的操作
//RA3因为做编程电压VPP和复位脚MCLR,所以不点亮该口的LED
//硬件要求:
//1)时钟选择OSCC跳到I/O
//2)断开j5/j6或者j7/j8
//3)拨码开关S11、S13全部置ON
#include<pic.h>

  __CONFIG(0x31b4);  
看门狗关;内部RC振荡,RA4/RA5做I/O,MCLR脚做复位

//------------------------------------
//延时函数
void delay()
{
 int i;                       //定义循环变量
 for(i=5000;i>0;i--)          //循环次数控制
    {
      NOP();                  //消耗一个指令周期时间
      NOP();
    }
}

//------------------------------------
//初始化函数
void init()
{
    TRISA=0X00;               //设置A口为输出
    TRISC=0X00;               //设置C口为输出
    CMCON=0X07;               //设置A口为普通数字口
}

//------------------------------------
//亮灯函数
void led()
{
    char i;                   //设置循环变量
    while(1)
      {
        PORTA=1;              //点亮RA0
        for(i=3;i>0;i--)      //循环次数(RA0-RA2)
          {
            delay();
            delay();
            delay();          //调用3次延时函数
            PORTA=PORTA<<1;   //点亮下一位LED
          }
         PORTA=0X10;          //点亮RA4
        for(i=2;i>0;i--)      //循环2次(RA4-RA5)
          {
            delay();
            delay();
            delay();
            PORTA=PORTA<<1;
          }
         PORTA=0;            //清除A口的所有显示
         PORTC=1;            //点亮RC0
        for(i=6;i>0;i--)     //循环6次(RB0-RB5)
          {
            delay();
            delay();
            delay();
            PORTC=PORTC<<1;
           }
         PORTC=0;           //清除所有RB口的显示
       }
}

//--------------------------------------
//主函数
void main()
{
   init();                  //调用初始化函数
   led();                   //调用亮灯函数
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -