十年专注单片机方案开发的方案公司英锐恩,分享单片机开发之入门程序。英锐恩现提供服务产品涉及主控芯片:8位单片机、16位单片机、32位单片机及各类运算放大器等。
//****************************************************************/ /*8路顺序控制器源程序,源文件名order.c*/ //先顺序点亮led0--led7,然后再反序点亮led7--led0 //****************************************************************/ //能够用的点灯程序
#include #include #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; }