c51单片机(预备知识)
1、什么是單片機
? ? ? ? 單片機又稱單片微控制器,它不是完成某一個邏輯功能的芯片,而是把一個計算機系統(tǒng)集成到一個芯片上。相當于一個微型的計算機,和計算機相比,單片機只缺少了I/O設備(小鍵盤、LED顯示器)。
?2、結構示意圖(以STC89C51為講解)
0)? 無源晶振:12MHZ
1)振蕩周期:也稱時鐘周期,是指為單片機提供時鐘脈沖信號的振蕩源的周期.也是晶振頻率12Mhz倒數(shù)。即 :1/ (12* 10^6).
2)狀態(tài)周期:每個狀態(tài)周期為時鐘周期的2倍,是振蕩周期經(jīng)二分頻后得到的
3)機器周期:一個機器周期包含6個狀態(tài)周期S1~S6,也就是12個時鐘周期。在一個機器周期內,CPU可以完成一個獨立的操作。即:12 / (12*10^6)。
單片機總共有P0、P1、P2、P3四個8位雙向輸入輸出端口,每個端口都有鎖存器、輸出驅動器和輸入緩沖器。4個I/O端口都能作輸入輸出口用。
2.1什么是I/O
即輸入/輸出,通常指數(shù)據(jù)在內部存儲器和外部存儲器或其他周邊設備之間的輸入和輸出.
P0:P0.0~0.7(下同),無外擴芯片時作I/O口用,讀入或寫出數(shù)據(jù)。有外擴時既要連接鎖存器,從鎖存器出去在連接外擴芯片的8位地址線;同時P0還要直接連接外擴的數(shù)據(jù)總線
P1:作普通的I/O口用
P2:無外擴作IO口。有外擴時,直接連接外擴的外擴芯片的剩余高位地址。
P3:P3的每一對端口都是是功能口。
? ? ? ? ? ? ? ? ? ? ? ?3.1,3.0是串口通信的TXD,RXD;
? ? ? ? ? ? ? ? ? ? ? ?3.2,3.3是外部中斷輸入的INT0和INT1;
? ? ? ? ? ? ? ? ? ? ? ?3.4和3.5控制T1和T0的定時/計數(shù)器功能;
? ? ? ? ? ? ? ? ? ? ? ? 3.6,3.7控制讀寫數(shù)據(jù)
3、預備知識(電平特性)
3.1、電平特性
? ? ? ? ? ? ?51系列單片機接口是TTL電平:? ?高電平(+5V)? ? ?低電平(0V)
? ? ? ? ? ? ? RS232電平:也就是計算機的串口:?高電平(-12V)? ? ?低電平(+12V)
3.1.1、 二進制邏輯運算
? ? 1)“與”運算?
? ? ? ? ? ? ? ?口訣:有0得0?
? ? ? ? ? ? 例子:1&1=1 ;? ? ? ? 1&0=0 ;? ? ? ? ? ?0&0=0 ;
? ? 2)“或”運算?
? ? ? ? ? ? ? ?口訣:有1得1?
? ? ? ? ? ? 例子:1|1=1 ;? ? ? ? ? 1|0=1 ;? ? ? ? ? ? ?0|0=0;
? ? ?3)“非”運算?
? ? ? ? ? ? ? ? 口訣:1的非得0,0的非得1
? ? ? ? ? ? 例子:~1=0;? ? ? ? ? ? ?~0=1;
? ? ?
? ? ? 4)“異或”運算?
? ? ? ? ? ? ? ? ?口訣:兩個不同則1,反之則0?
? ? ? ? ? ? ? 例子:1^1=0;? ? ? ? ? ?1^0=1;? ? ? ? ? ? 0^0=0;
4、進制轉換
? ? 4.1、二進制轉化為十進制
習題: (擴展)
4.2、巧方法:8421法
4.3十進制轉換為二進制(巧方法:問百度)
? ? ?
?4.4、二進制轉十六進制
?4.5、十六進制轉化為二進制
??
5、 單位換算
? ? ? ?我的時鐘周期為:12MHZ
? ? ? ?機器周期:一個機器周期包含6個狀態(tài)周期S1~S6,也就是12個時鐘周期。
? ? ? ?注意:我們放一個bite位,即一個機器周期
5.1、頻率(frequency)
? ? ? ? ?是單位時間內完成周期性變化的次數(shù)。(單位時間,就是1s內工作了多少次)
? ? ? ? ?單位:HZ
? ? ? ? ?公式:f?= 1/T? ? 即為周期的導數(shù)
? 5.2、單位轉化
? ?1s = 1,000 毫秒(ms)
? ?1s = 1,000,000 微秒(μs)
? ?1s = 1,000,000,000 納秒(ns)
---------------
? ?1 KHz =1,000 Hz
? ?1 MHz =1,000,000 Hz
? ?1 GHz =1,000,000,000 Hz
------------
? ?1Hz = 1 s? ? ? ? ? ? ? ? ? ? ? ? ? ? (1秒震動一次)
? ?1KHz = 1,000 / 1s? ? ? ? ? ? ? ?(1秒震動1000次)
? ?1MHz = 1,000,000 / 1s? ? ? ? (1秒震動1000000次)
? ?1)時鐘周期為晶振的倒數(shù):1?/12MHZ =? ? 1? /? (?12 * 10^6) HZ
? ?2)機器周期? ? ?12 *? ? 1 / 12MHZ? ?=? 12 *? 1/ (12?* 10^6)?HZ? ? ? ? ? ?(定時器常用)
6、管腳的定義(sbit 和 sfr)
? 6.1sbit 類似C語言的denfine 函數(shù),給管腳取一個新的名字
例如:? sbit? LED?= P1^6 ;
即 : LED 表示了P1口的第6個管腳(P1^6)
? ?6.2、sfr特殊功能寄存器
自我理解;也是取一個新的名字,但它與sbit不同,它直接取8個管腳,統(tǒng)稱為一個名字。
舉一個非常簡單的例子區(qū)別一下:
比如門牌號是:某省某市某小區(qū)16棟14號房,是鄭大俠的家,你說記鄭大俠的家好記,還是上面那個詳細地址好記呢?
一開始單片機沒程序的時候,單片機其實沒有P0/P1/P2/P3口的說法,單片機只知道P1口的8只引腳,是連著內部地址0x90。為了方便記憶,就衍生出P0、P1、P2、P3。
? ? ?例如:sfr P1 = 0x90;
? ? ? 即:就是把單片機的地址0x90改名字為P1,方便我們使用。
7、C51常用頭文件
? ? ? ? ? C51中頭文件很多,包括reg51.h或reg52.h、absacc.h、math.h、intrins.h、stdio.h、stdlib.h等。但是常用的通常只有reg51.h或reg52.h、absacc.h、math.h這三個頭文件。
?(1)reg51.h或reg52.h
? ? ? ? ?這是定義51子系列單片機和52子系列單片機內部特殊功能寄存器和相關可尋址位的頭文件。這兩個頭文件內容絕大部分都是相同的,只是52子系列比51子系列單片機多了一個定時器T2,因此也就多了幾行與其相關的定義。
?(2)? math.h是定義數(shù)學運算的,求方根、正余弦、絕對值等,
?(3)intrins.h是固有函數(shù)
?(4)absacc.h 訪問特殊功能寄存器的
?(5)stdio.h動態(tài)內存分配函數(shù)
?(6)stdlib.h標準庫文件函數(shù)
? ? ? ?
? ??
總結
以上是生活随笔為你收集整理的c51单片机(预备知识)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 软件产品案例分析
- 下一篇: 考计算机二级要先学一级吗,计算机二级必须