新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 51單片機的內部內部資源和最小系統解讀

        51單片機的內部內部資源和最小系統解讀

        作者: 時間:2018-11-12 來源:網絡 收藏

          1、單片機內部資源

        本文引用地址:http://www.104case.com/article/201811/394173.htm

          STC89C52:8KFLASH、512字節RAM、32個IO口、3個定時器、1個UART、8個中斷源

          (1)Flash(硬盤)——程序存儲空間 —— 擦寫10萬次,斷電數據不丟失,讀寫速度慢

          (2)RAM(內存)——數據存儲空間 —— 斷電數據丟失,讀寫速度快,無限次使用

          (3)SFR —— 特殊功能寄存器

          2、單片機最小系統



          最小系統:最少組件組成單片機可以工作的系統。

          三要素:

          (1)、 電源電路:5V

          (2)、 晶振電路:11.0592MHZ、兩個30PF

          (3)、 復位電路:

          P0:開漏輸出,必須加上拉電阻

          準雙向口:

          強推挽輸出:電流驅動能力強

          高阻態

          上下拉電阻:上拉電路就是將不確定的信號通過一個電阻拉到高電平,同時限流作用。下拉電阻就是下拉到低電平。

          上下拉電阻選取:從降低功耗方面考慮應該足夠大,因為電阻越大,電流越小;驅動能力來看,小電阻

         3、硬件基礎知識

          (1)、電磁干擾(EMI)——靜電放電(ESD)、快速瞬間脈沖群(EFT)、浪涌(Surge)

          (2)、去耦電容的使用

          低頻濾波電容,平常應用最多的事鉭電容,電解電容,陶瓷電容,起到去除電源低頻紋波,穩定電源的作用。

          高頻濾波電容,電容附近,通常用104電容來進行去除高頻干擾。

          (3)、三極管(PNP,NPN) b,c,e --- 電壓驅動

          控制應用

          驅動應用

          4、LED發光二極管——電流驅動



          通常紅色貼片LED, 靠電流驅動,電壓1.8V~2.2V,電流1~20mA,在1~5mA亮度有所變化,5mA以上亮度基本不變。

          VCC 電壓是 5V,發光二極管自

          身壓降大概是 2V,那么在右邊 R34 這個電阻上承受的電壓就是 3V。

          R = U/I —— 1~20mA —— R:150~3K

          5、C語言基礎

          (1)、基本運算符

          + - * / % ++ -- = == != += -= 《《 》》 && “| ! & | ~ ^

          (2)、循環(c語言以;表示一條語句)

          for/while/do.。.while

          for(表達式1;表達式2;表達式3)

          {

          語句;//可以為空

          }

          while(表達式)//表達式為真,執行語句

          {

          語句;//可以為空

          }

          do

          {

          語句;//可以為空

          }while(表達式);

          (3)、函數 (模塊化的思想)

          類型 函數名(參數類型 參數)

          {

          函數體;

          }

          (4)、數組

          《1》、具有相同數據類型

          《2》、具有相同的類型

          《3》、在存儲器中連續存儲

          (5)、常用延時辦法——循環、定時器

          (P0 = ~(1 《《 i++);)

          5、流水燈

          給IO口一個低電平即可點亮LED燈。

          注:單片機對外設的操作其實就是對IO口電平的控制。

          #include//包含特殊功能寄存器定義的頭文件

          typedefunsignedintuint;

          typedefunsignedcharuchar;

          intmain(void)

          {

          uinti=0;//定義循環變量i,用于軟件延時

          ucharj=0;//定義計數變量j,用于移位控制

          while(1)//主循環,程序無限循環執行該循環體語句

          {

          P0=~(1《

          for(i=0;i《20000;++i);//軟件延時

          if(j》=8)//移位計數超過7后,再重新從0開始

          {

          j=0;

          }

          }

          return0;

          }



        關鍵詞: 51單片機

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 微山县| 上高县| 永仁县| 新宾| 施甸县| 恩平市| 阿勒泰市| 潍坊市| 沐川县| 浦东新区| 亚东县| 嘉黎县| 曲水县| 赤水市| 昌吉市| 尼玛县| 西充县| 云南省| 上饶市| 灯塔市| 文化| 鲜城| 桃园市| 怀安县| 舞钢市| 中阳县| 本溪市| 桂林市| 松原市| 乌什县| 合作市| 深水埗区| 察隅县| 平定县| 临汾市| 奉节县| 武汉市| 山丹县| 盐城市| 古丈县| 壤塘县|