新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 51單片機(jī)學(xué)習(xí)筆記(二)_流水燈實(shí)驗(yàn)

51單片機(jī)學(xué)習(xí)筆記(二)_流水燈實(shí)驗(yàn)

作者: 時間:2016-11-20 來源:網(wǎng)絡(luò) 收藏
流水燈實(shí)驗(yàn)電路圖


本文引用地址:http://butianyuan.cn/article/201611/318620.htm

一、控制一/多燈亮滅

匯編實(shí)現(xiàn)

;注釋LOOP:;SETB P1.1 ;(1)熄滅燈MOV P1,#0FFH;LCALL DELAY     ;(2)延時一段時間;CLR P1.1        ;(3)點(diǎn)亮燈MOV P1,#0FDH;LCALL DELAY     ;(4)延時一段時間   AJMP LOOP       ;(5)跳轉(zhuǎn)到第一句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             ;子程序結(jié)束標(biāo)志

C語言實(shí)現(xiàn)

#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();}}
開關(guān)控制單燈亮滅

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

流水燈表示乘法運(yùn)算結(jié)果

#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;}}
摘自《單機(jī)片C語言編程100個實(shí)例》
//實(shí)例19:用if語句控制P0口8位LED的流水方向#include  //包含單片機(jī)寄存器的頭文件 sbit S1=P1^4;     //將S1位定義為P1.4sbit S2=P1^5;     //將S2位定義為P1.5/*函數(shù)功能:主函數(shù) */void main(void){  while(1){if(S1==0)   //如果按鍵S1按下 P0=0x0f;  //P0口高四位LED點(diǎn)亮 if(S2==0)   //如果按鍵S2按下 P0=0xf0;  //P0口低四位LED點(diǎn)亮 }      }





評論


技術(shù)專區(qū)

關(guān)閉