#51微控制器學習筆記# 流水燈的實現
阿新 • • 發佈:2018-12-22
一、原理
常見LED燈模組一共有八位,如果二極體的負極接VCC,正極接51晶片引腳,則給引腳輸入低電平,LED燈亮。如果二極體負極接GND,則高電平有效。
#include <reg52.h> #include <intrins.h> #define led P1 #define uchar unsigned char uchar i,j; void delay(uchar k){ for(i=k;i>0;i--){ for(j=100;j>0;j--){} } } void main(){ // led = 0xfe;//左移流水燈 led = 0xef;//右移流水燈 while(1){ /* 左移實現 for(i=0;i<7;i++){ led = _crol_(led,1); delay(50); } */ //右移實現 for(i=0;i<7;i++){ led = _cror_(led,1); delay(50); } } }
三、語法總結
1、此次流水燈實現,使用了 —crol—()、 —cror—()函式;—crol—()函式是帶迴圈左移函式,—cror—()是帶迴圈右移函式;函式在“intrins.h”庫中呼叫。
2、—crol—() 與 << 的不同?
舉個例子:P1 = 1111 1110//0xfe
P1 = crol(P1,1);
結果:1111 1101、1111 1011;//這個是迴圈左移
P1 << = 1;
結果: 1111 1100 、 1111 1000//位左移,後面補0