51/AVR单片机技术驿站!  <在线翻译>     便利工具    特色网址   无弹窗、无插件的绿色站点...  英才招聘   学历查询  喜欢>>收藏我站 

当前位置:首页 > 单片机技术文章 > PIC单片机 > 详细内容
pic单片机LED流水灯(C程序)
发布时间:2009/7/20  阅读次数:1898  字体大小: 【】 【】【

#include <pic.h>
#include <pic1687x.h>
#define PORTBIT(add,bit) ((unsigned)(&add)*8+(bit))

static   bit   PORT_0 @   PORTBIT(PORTB,0);     /*定义PORTB 0位*/
static   bit   PORT_1 @   PORTBIT(PORTB,1);     /*定义PORTB 1位*/
static   bit   PORT_2 @   PORTBIT(PORTB,2);     /*定义PORTB 2位*/
static   bit   PORT_3 @   PORTBIT(PORTB,3);     /*定义PORTB 3位*/
static   bit   PORT_4 @   PORTBIT(PORTB,4);     /*定义PORTB 4位*/
static   bit   PORT_5 @   PORTBIT(PORTB,5);     /*定义PORTB 5位*/
static   bit   PORT_6 @   PORTBIT(PORTB,6);     /*定义PORTB 6位*/
static   bit   PORT_7 @   PORTBIT(PORTB,7);     /*定义PORTB 7位*/

void   delay();             //延迟函数的声明
      
main()
{   TRISB=0x00;             //设置portb口全为输出
     INTCON=0x00;           //关闭所有的中断
     PORTB=0x00;             //RB口先送低电品平

loop1:    
     //点亮led的第0位,顺序显示
     //PORTB=0x01;
     PORT_0=1;
     delay();

     //点亮led的第1位
     //PORTB=0x03;
     PORT_1=1;
     delay();

     //点亮led的第2位
     //PORTB=0x07;
     PORT_2=1;
     delay();

     //点亮led的第3位
     //PORTB=0x0f;
     PORT_3=1;
     delay();

     //点亮led的第4位
     //PORTB=0x1f;
     PORT_4=1;
     delay();

     //点亮led的第5位
     //PORTB=0x3f;
     PORT_5=1;
     delay();

     //点亮led的第6位
     //PORTB=0x7f;
     PORT_6=1;
     delay();

     //点亮led的第7位
  //PORTB=0xff;
     PORT_7=1;
     delay();

     //全灭
     PORTB=0x00;
     delay();

     //点亮led的第7位,反序显示
     //PORTB=0x80;
     PORT_7=1;
     delay();

     //点亮led的第6位
     //PORTB=0xc0;
     PORT_6=1;
     delay();
    
     //点亮led的第5位
     //PORTB=0xe0;
     PORT_5=1;
     delay();
    
     //点亮led的第4位
     //PORTB=0xf0;
     PORT_4=1;
     delay();
    

     //点亮led的第3位
     //PORTB=0xf8;
     PORT_3=1;
     delay();

     //点亮led的第2位
     //PORTB=0xfc;
     PORT_2=1;
     delay();
    
     //点亮led的第1位
     //PORTB=0xfe6;
     PORT_1=1;
     delay();
    
     //点亮led的第0位
     //PORTB=0xff;
     PORT_0=1;
     delay();
  
     //全灭
     PORTB=0x00;
     delay();
    
     goto   loop1;
}

void   delay()
{
     int i;
     for(i=0;i<=10000;i++)
     continue;

}

我要评论
  • 匿名发表
  • [添加到收藏夹]
  • 发表评论:(匿名发表无需登录,已登录用户可直接发表。) 登录状态:未登录
最新评论
所有评论[0]
    暂无已审核评论!

网站导航 管理登陆 ┊ 免责声明 问题反馈  友链说明
本站部分内容来自网络共享资源,如有冒犯您的权利请来信告之删除或纠正!
不得对本站进行复制、盗链或镜像,转载内容须获得同意或授权;欢迎友情链接、站务合作!

    我要报警 Alexa
 mcusy_cn#126.com (请把#改成@) 交流:522422171
本站学习交流群:138..158(高级群1-)、77930286(高级群2)、61804809(群3)
Copyright© MCUSY All Rights Reserved
本站网警备案号: WZ36040002485
  ICP备案证书号:粤ICP备09034963号