51流水灯
51单片机引脚的驱动能力 ,sink,source
左移 循环移动
/**********************51单片机学习例程************************ * 平台:Keil U4 + STC89C52 * 名称:P1口控制流水灯闪烁 * 编写:Tony * 日期:2022-1-23 * QQ : 674749794 * 晶体:12MHZ * 变更记录:无 ******************************************************************/ #include <reg52.h> #include <intrins.h> /******************************************** 主函数 ********************************************/ void main(){ unsigned int i; P1=0x01; //LED状态初始化 while(1){ P1=_crol_(P1,1); //LED状态切换(循环左移函数) for(i=0;i<40000;i++); //延时 } }
左移,需要复位
/**********************51单片机学习例程************************ * 平台:Keil U4 + STC89C52 * 名称:P1口控制流水灯闪烁 * 编写:Tony * 日期:2022-1-22 * QQ : 674749794 * 晶体:12MHZ * 变更记录:无 ******************************************************************/ #include <reg52.h> unsigned char led_state; void led_show(); /******************************************** LED状态切换子函数 ********************************************/ void led_show(){ if(led_state>=7) led_state=0; else led_state++; P1=(0x01<<led_state); } void main(){ unsigned int i; while(1){ led_show(); for(i=0;i<30000;i++); } }