专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

PIC单片机控制8位流水灯C语言程序

作者:huqin   来源:本站原创   点击数:  更新时间:2014年03月31日   【字体:
/*****************************************************
*** 功能:8位流水灯
*** 实验内容:本实验是用二进制写的程序
*****************************************************/
#include<pic.h>                      //包含单片机内部资源预定义
__CONFIG(0xFF32);
//芯片配置字,看门狗关,上电延时开,掉电检测关,低压编程关,加密,4M晶体HS振荡

void delay();                              //delay函数申明

/****************************************************************************
* 名    称:main()
* 功    能:主函数
* 入口参数:
* 出口参数:
****************************************************************************/
void main()                 
{
        TRISD = 0;                          //portd 输出
        TRISC = 0xf0;                  //porta 输出
        PORTC = 0x00;     //74HC138控制端口
       
        while (1)         //死循环,让数码管持续点亮
        {
                PORTD=0b00000001; //点亮第1个发光管
                delay();
                PORTD=0b00000000; //关掉发光管 也可以写成16位的 自己试一试吧
                delay();
               
                PORTD=0b00000010; //点亮第2个发光管
                delay();
                PORTD=0b00000000; //关掉发光管 也可以写成16位的 自己试一试吧
                delay();
               
                PORTD=0b00000100; //点亮第3个发光管
                delay();
                PORTD=0b00000000; //关掉发光管 也可以写成16位的 自己试一试吧
                delay();
               
                PORTD=0b00001000; //点亮第4个发光管
                delay();
                PORTD=0b00000000; //关掉发光管 也可以写成16位的 自己试一试吧
                delay();
                               
                PORTD=0b00010000; //点亮第5个发光管
                delay();
                PORTD=0b00000000; //关掉发光管 也可以写成16位的 自己试一试吧
                delay();
               
                PORTD=0b00100000; //点亮第6个发光管
                delay();
                PORTD=0b00000000; //关掉发光管 也可以写成16位的 自己试一试吧
                delay();
               
                PORTD=0b01000000; //点亮第7个发光管
                delay();
                PORTD=0b00000000; //关掉发光管 也可以写成16位的 自己试一试吧
                delay();
               
                PORTD=0b10000000; //点亮第8个发光管
                delay();
                PORTD=0b00000000; //关掉发光管 也可以写成16位的 自己试一试吧
                delay();
        }
}
/****************************************************************************
* 名    称:delay()   
* 功    能:延时
* 入口参数:
* 出口参数:
****************************************************************************/
void delay()              
{
        int i;                 //定义整形变量
        for (i = 10000;i--;);     //延时
}
关闭窗口

相关文章