ahai0306:
第二章 單片機基礎實驗一、單片機控制發(fā)光二極管實驗[圖片]500){this.resized=true;this.width=500;this.alt='這是一張縮略圖,點擊可放大。\n按住CTRL,滾動鼠標滾輪可自由縮放';this.style.cursor='hand'}"onclick="if(!this.resized){returntrue;}else{window.open('http://u.dianyuan.com/bbs/u/72/67561228365123.jpg');}"onmousewheel="returnimgzoom(this);">首先學習一下硬件,拿第一路為例,R1為限流電阻,發(fā)光二極管導通后的壓降為Ud,那么流過此二極管的電流為(U-Ud)/R,大家可以根據(jù)二極管的大小來調整電阻大小,以保證亮度.開發(fā)板用的0805/1206發(fā)光二極管使用1K電阻即可.如果是大功率的發(fā)光管需要加驅動如三極管電路之類的,不能直接連接單片機引腳的.各種品牌的IO驅動能力不一樣的,STC89C51的IO灌電流能力是20mA.上面發(fā)光二極管的原理是,P00為高電平(5V),D1截止,不亮;P00為低電平(0V),D1導通,發(fā)光.二極管控制就這么簡單,下面來編寫程序吧C語言程序:#include //調用頭文件(單片機內部的寄存器定義)sbit LED0 =P0^0; //必須定義,P0^0脫離開sbit指令是其它意思main() //主函數(shù){ LED0=0; //LED0發(fā)光二極管亮(P00輸出低電平) while(1); //單片機在這里等待(待機)}匯編程序:;***********硬件I/O口定義************LED0 EQU P0.0 ORG 0000H ;上電后程序從這里運行 AJMP MAIN MAIN: CLR LED0 ;LED0發(fā)光二極管亮(P00輸出低電平) SJMP $ ;單片機在這里等待(待機) END第一個程序已經編寫完了,編譯后下載到單片機體驗一下吧,我以前寫過初學者的第一個單片機程序,大家可以看看:http://blog.ednchina.com/ahai0306/19917/message.aspx這時候大家已經會點亮第一個燈了,然后大家可以隨便點亮其它的燈了,可以使用P0直接點亮8個燈了C語言程序:#include //調用頭文件(單片機內部的寄存器定義)main() //主函數(shù){ P0=0; //P0口的8個發(fā)光二極管全亮 while(1); //單片機在這里等待(待機)}匯編程序: ORG 0000H ;上電后程序從這里運行 AJMP MAINMAIN: MOVP0 #00H ;P0的8個發(fā)光二極管全亮 SJMP $ ;單片機在這里等待(待機) END現(xiàn)在大家可以用移位指令加上適當延時,來進行流水燈實驗了,大家先思考一下如何實現(xiàn)?不明白的地方和本人交流!QQ:464976346http://blog.ednchina.com/ahai0306/(我的博客)