標題: 單片機點亮一個發(fā)光二極管知識點學習 代碼詳細注釋 [打印本頁]

作者: ralap2020    時間: 2022-4-24 23:56
標題: 單片機點亮一個發(fā)光二極管知識點學習 代碼詳細注釋

附件有工程文件,努力學習吧少年。

注釋得非常詳細的單片機源程序如下:
  1. /*********************************************************************************************************************************************************************************************                                                            
  2.                           表1.6.1                            *    表1.6.2                                *                 表1.6.2                            *       表1.6.4                         *         表1.6.5                                                   *
  3. 常用數(shù)據(jù)類型      關鍵字          所占位數(shù)  表示數(shù)的范圍     *  算數(shù)運算符 含義                            *  關系(邏輯)運算符         含義           *  位運算符   含義              *         基礎語句        類型                         *
  4. 無符號字符型    unsigned char          8                        0~255                 *                              *       >                   大于           *     &                  邏輯與         *           if          選擇語句                         *
  5. 有符號字符型    char               8          -128~127      *     +                   加法                    *      >=                        大于等于           *     |                  邏輯或         *           while           循環(huán)語句                         *
  6. 無符號整型      unsigned int       16        0~65535        *     -               減法                    *      <                            小于           *     ^                  異或                 *           for                   循環(huán)語句                         *
  7. 有符號整型      int                16        -32768~32767   *     *               乘法                        *      <=                                小于等于   *     ~                  取反                 *         switch/case   多分支選擇語句         *
  8. 無符號長整型    unsigned iong       32                      *     /     除法(或求模運算)        *      ==                                測試相等   *         >>                  右移                 *         do-while           循環(huán)語句                         *
  9. 無符號長整型    iong                32                      *     ++               自加                        *     !=                                測試不等   *         <<                  左移                 *                                                                         *
  10. 單精度實型      float               32   3.4e-38~3.4e38     *     --               自減                        *     &&                                按位與           *                                                 *                                                                         *
  11. 雙精度實型      double              64   17.e-308~1.7e30    *     %            求佘運算                        *     ||                                按位或           *                                                 *                                                                         *
  12. 位類型                      bit                 1      0~1                         *                                          *      !                                 非                   *                                                 *                                                                            *
  13. **********************************************************************************************************************************************************************************************/
  14. #include <REGX52.H>           //頭文件                【正式語句】
  15. sbit led1=P1^0;           // 聲明單片機P1口()  【正式語句】         在Pro仿真中:LED-YELLOW燈泡腳連接P1.0口
  16. /*********************************************************************************************************************************************************************************************
  17. 知識點:main()主函數(shù)的寫法
  18. 格式:void main() 注意:后面沒有分號。
  19. 特點:無返回值,無參數(shù)。
  20. 1、無返回值表示該函數(shù)執(zhí)行完成后不返回任何值,上面main前面的void表示“空”,即不返回值的意思,后面我們會講到有返回值的函數(shù),到時大家一對比便會更加明白。
  21. 2、無參數(shù)表示該函數(shù)不帶任何參數(shù),即main后面的括號中沒有任何參數(shù),我們只寫“()”就可以了,也可以在括號里寫上void,表示“空”的意思,如void main(void)。
  22. 3、任何一個單片機C程序有且僅有一個main函數(shù),它是整個程序開始執(zhí)行的入口。大家注意看,在寫完main()之后,在下面有兩個花括號,這是C語言中函數(shù)寫法的基本
  23.   要求之一,即在一個函數(shù)中,所有的代碼都寫在這個函數(shù)的兩個大括號內(nèi),每條語句結束后都要加上分號,語句與語言之間可以用空格或回車嗝開。
  24. 例如:
  25. void main()
  26. {
  27. 總程序從這里開始執(zhí)行;
  28.     其他語句;
  29.         .....
  30.         }

  31. **********************************************************************************************************************************************************************************************/
  32. void main()                   //主函數(shù)                【正式語句】
  33. {
  34. led1=0;                  //點亮第一個發(fā)光二極管   【正式語句】
  35. /*********************************************************************************************************************************************************************************************
  36. "led1=0;" 語句,也就是該程序中最核心的語句。在數(shù)字電路中,電平只有兩種狀態(tài):高電平- 1;低電平- 0。顯然,該語句的意思是,讓P1囗的最低位清0,由于沒有操作其他口,
  37. 所以其余口均保持原來狀態(tài)不變。
  38. **********************************************************************************************************************************************************************************************/                       
  39. while(1);                                                   //【正式語句】

  40. }
  41. /*****************************************************************
  42. 如何讓程序停止在某處呢? 我們用while語句就可以實現(xiàn)。
  43. 知識點:while()語句   
  44. 格式:while(表達式)
  45.     {內(nèi)部語句(內(nèi)部可為空)}
  46. 特點:先判斷表達式,后執(zhí)行內(nèi)部語句。
  47. 原則:若表達式不是0,即為真,那么執(zhí)行語句。否則跳出while語句,執(zhí)行后面的語句。
  48. 需要注意的三點:
  49. (1)在C語言中我們一般把"0"認為是"假","非0"認為是"真" ,也就是說,只要不是0就是真,所以1、2、3等都是真。
  50. (2)內(nèi)部語句可為空,就是說while后面的大括號里什么都不寫也是可以的,如“while(1){};”中“;” 一定不能少,否則while()會把跟在它后面第一個分號前的語句認為是它的內(nèi)部語句。
  51. 例如:while(1)
  52.       P1=123;
  53.           P1=121;
  54.           ....
  55.   上面這個例子中,while()會把“P1=123;”當做它的語句,即使這條語句并沒有加大括號。既然如此,那么我們以后在寫程序時,如果while()內(nèi)部只有一條語句,我們就可以省去大括號,而直接將這條語句跟在它的后面。
  56.   例如:while(1)
  57.   P1=123;

  58. (3)表達式可以是一個常數(shù)、一個運算或一個帶返回值的函數(shù)。
  59. 有了上面的介紹,我們在程序最后加上“while(1)” 這樣一條語句就可以讓程序停止。因為該語句表達式值為1,內(nèi)部語句為空,執(zhí)行時先判斷表達式值,因為為真,所以什么也不執(zhí)行,然后再判斷表達式,仍然為真,又不
  60. 執(zhí)行,因為只有當表達式值為0時才可跳出while()語句,所以程序將不停地執(zhí)行這條語句,也就是說單片機點亮發(fā)光管后將永遠重復執(zhí)行這條語句。
  61.   單片機是不能停止工作的,只有它有電,有晶振在起振,它就不停止工作,每過一個機器周期,它內(nèi)部的程序指針就要加1,程序指針就指向下一條要執(zhí)行的指令。不過我們可以將單片機設置為休眠狀態(tài)或掉電模式,這樣可以最大限度地降低它的功耗。

  62. *****************************************************************/
復制代碼

Keil代碼與Proteus仿真下載:
自學實例.rar (68.39 KB, 下載次數(shù): 6)

作者: sjwwls    時間: 2022-4-25 08:58
剛剛學習點亮一個LED,介紹的很詳細,樓主可以詳細介紹一下IF ,FOR語句嗎?特別是IF。




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