#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;
}