新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 51單片機學習筆記(二)_流水燈實驗

        51單片機學習筆記(二)_流水燈實驗

        作者: 時間:2016-11-20 來源:網絡 收藏
        流水燈實驗電路圖


        本文引用地址:http://www.104case.com/article/201611/318620.htm

        一、控制一/多燈亮滅

        匯編實現

        ;注釋LOOP:;SETB P1.1 ;(1)熄滅燈MOV P1,#0FFH;LCALL DELAY     ;(2)延時一段時間;CLR P1.1        ;(3)點亮燈MOV P1,#0FDH;LCALL DELAY     ;(4)延時一段時間   AJMP LOOP       ;(5)跳轉到第一句LOOP處;以下子程序 DELAY: MOV R7,#250 ;D1: MOV R6,#250 ;D2: DJNZ R6,D2  ;R6=R6-1;IF(R6!=0) GOTO D2;DJNZ R7,D1  ;RET         ;返回主程序END             ;子程序結束標志

        C語言實現

        #include sbit led=P1^3;void Delay(){unsigned char i,j;for(i=0;i<250;i++)for(j=0;j<200;j++);}void main(){while(1){P1=0xfe;Delay(); Delay();Delay();Delay();led=0;Delay(); Delay();Delay();Delay();P1=0x00;Delay(); Delay();Delay();Delay();}}
        開關控制單燈亮滅

        #include sbit led=P1^3;void main(){while(1){if(P0^1==0){ //開關是否按下led=0;}else{led=1;}}}

        流水燈表示乘法運算結果

        #includevoid main(void){unsigned char s,m,n;m=64;n=71;s=m*n;  //s=4544=17*256+192  所以用P0表示17、P1表示192P0=s/256;P1=s%256;}

        走馬燈

        #include void Delay(){unsigned char i,j;for(i=0;i<250;i++)for(j=0;j<250;j++);}void main(){unsigned int i;i=0x01; while(1){P1=i; Delay();i<<=1;if(i==0x100) i=0x01;}}
        摘自《單機片C語言編程100個實例》
        //實例19:用if語句控制P0口8位LED的流水方向#include  //包含單片機寄存器的頭文件 sbit S1=P1^4;     //將S1位定義為P1.4sbit S2=P1^5;     //將S2位定義為P1.5/*函數功能:主函數 */void main(void){  while(1){if(S1==0)   //如果按鍵S1按下 P0=0x0f;  //P0口高四位LED點亮 if(S2==0)   //如果按鍵S2按下 P0=0xf0;  //P0口低四位LED點亮 }      }





        評論


        技術專區

        關閉
        主站蜘蛛池模板: 芮城县| 湘阴县| 迭部县| 巴林左旗| 黑龙江省| 堆龙德庆县| 元氏县| 南木林县| 大名县| 南川市| 大关县| 公主岭市| 霍山县| 当阳市| 樟树市| 隆回县| 金乡县| 延安市| 潮州市| 梧州市| 林州市| 抚远县| 台湾省| 中阳县| 霍城县| 凤山县| 南靖县| 呼和浩特市| 金堂县| 屏南县| 西畴县| 六安市| 广南县| 铁岭市| 河源市| 垫江县| 观塘区| 元氏县| 安平县| 依安县| 山东省|