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