標(biāo)題: 使用Proteus學(xué)習(xí)單片機(jī)系列教程-點(diǎn)亮LED [打印本頁]

作者: 11166    時間: 2021-1-22 22:27
標(biāo)題: 使用Proteus學(xué)習(xí)單片機(jī)系列教程-點(diǎn)亮LED
獲取本項目代碼以及仿真文件
https://github.com/Lighter-z/51-Single-chip


基于Proteus學(xué)習(xí)單片機(jī)系列(一)——點(diǎn)亮LED
基于Proteus學(xué)習(xí)單片機(jī)系列(二)——驅(qū)動數(shù)碼管
基于Proteus學(xué)習(xí)單片機(jī)系列(三)——按鍵
基于Proteus學(xué)習(xí)單片機(jī)系列(四)——中斷
基于Proteus學(xué)習(xí)單片機(jī)系列(五)——定時器實現(xiàn)電子表
基于Proteus學(xué)習(xí)單片機(jī)系列(六)——I2C總線AT24C04
基于Proteus學(xué)習(xí)單片機(jī)系列(七)——實時時鐘DS1302
基于Proteus學(xué)習(xí)單片機(jī)系列(八)——AD轉(zhuǎn)換及其應(yīng)用--TLC549
基于Proteus學(xué)習(xí)單片機(jī)系列(九)——DA轉(zhuǎn)換及其應(yīng)用--TLC5615
基于Proteus學(xué)習(xí)單片機(jī)系列(十)——LCD1602
基于Proteus學(xué)習(xí)單片機(jī)系列(十一)——LCD12864

1、LED電路設(shè)計
2、程序設(shè)計

  1. #include<reg51.h>
  2. sbit LED = P0^0;                  //LED接P0.0
  3. void delay(unsigned int x)        //延時函數(shù)
  4. {
  5.     while(x--);
  6. }
  7. void main()                          //主函數(shù)
  8. {
  9.     while(1)
  10.     {
  11.         LED=0;                          //P0.0輸出低電平,LED滅
  12.         delay(5000);                  //調(diào)用延時函數(shù),延時一段時間
  13.         LED=1;                          //P0.0輸出高電平,LED亮
  14.         delay(5000);                //調(diào)用延時函數(shù),延時一段時間
  15.     }
  16. }  
復(fù)制代碼

(1)單片機(jī)程序順序執(zhí)行程序,先執(zhí)行主函數(shù),在主函數(shù)內(nèi)可以調(diào)用子函數(shù),子函數(shù)不可以調(diào)用主函數(shù)。單片機(jī)程序從主函數(shù)入口依次執(zhí)行每一條指令,執(zhí)行完后回到主函數(shù)進(jìn)行下次循環(huán)。
(2)延時函數(shù),延時就是單片機(jī)執(zhí)行了一個延時函數(shù)。單片機(jī)執(zhí)行延時函數(shù)的每一條指令時都會浪費(fèi)一些時間,浪費(fèi)的時間就是調(diào)用延時函數(shù)所獲得的時間,但是延時函數(shù)不能精確延時。
(3)利用位定義讓LED等價于P0^0。LED等于0,先讓P0^0為低電平關(guān)掉LED,延時一段時間再讓P0^0為高電平開啟LED,在延時一段時間,一直循環(huán)達(dá)到LED閃爍的目的





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