標(biāo)題: 請(qǐng)求高手指點(diǎn)一下,51單片機(jī)程序 [打印本頁(yè)]

作者: dianye8717944    時(shí)間: 2010-2-18 21:32
標(biāo)題: 請(qǐng)求高手指點(diǎn)一下,51單片機(jī)程序

 

1.例題:用8個(gè)發(fā)光管演示出8位二進(jìn)制數(shù)累加過(guò)程。

 

程序如下:
#include<reg52.h>  //52單片機(jī)頭文件
#include <intrins.h> //包含有左右循環(huán)移位子函數(shù)的庫(kù)
#define uint unsigned int    //宏定義
#define uchar unsigned char  //宏定義
void delay(uint z)  //延時(shí)函數(shù),z的取值為這個(gè)函數(shù)的延時(shí)ms數(shù),如delay(200);大約延時(shí)200ms.
{     //delay(500);大約延時(shí)500ms.
 uint x,y;
 for(x=z;x>0;x--)
  for(y=110;y>0;y--); 
}
void main()      //主函數(shù)
{
 uchar a;
 while(1)        //大循環(huán)
 {
  a++ ;
  P1=~a;
  delay(200); 
 }
}

 

前面那個(gè)delay是延時(shí),但主函數(shù)這部分我看不懂,請(qǐng)高手指點(diǎn),謝謝啦


作者: ngyg12    時(shí)間: 2010-3-6 10:41

它這個(gè)程序的電路圖可能是當(dāng)p1口低電平是  LED 等被點(diǎn)亮.   8位2進(jìn)制數(shù)累加既是:00000000— 00000001— 00000010— 000000011.....  11111111 .

 

  開(kāi)始的a=0 , 進(jìn)入循環(huán)后,a=1,  既是00000001, 取反后 p1=~a;則P1=FFFFFFF0, 因?yàn)槭堑碗娖接行?nbsp; 這個(gè)時(shí)候 P1口的8個(gè)LED燈的  最后一個(gè)被點(diǎn)亮。。然后

 以此類推。  呃,我個(gè)人認(rèn)為是這樣的哈, 呵呵 ,希望能幫到你.


作者: dianye8717944    時(shí)間: 2010-4-17 03:01
好久沒(méi)上這個(gè)論壇,現(xiàn)在才看到,太謝謝你了
作者: li334505330    時(shí)間: 2010-5-31 21:06
很好,慢慢來(lái),我也是新手




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1