昨天我給大家分享了一些基本的單片機的知識,那么今天我會說一些關(guān)于電平特征、二進制的邏輯運算和C51中的基礎(chǔ)知識,在最后也會告訴大家怎么去使用單片機程序常用編譯軟件Keil。
這里提供一個Keil uVISION4下載地址:http://pan.baidu.com/share/link?shareid=4168108828&uk=3843120621&fid=3382752131
大家開始邊下載邊看這文章。
單片機是一種數(shù)字集成芯片,數(shù)字電路中只有兩種電平:高電平和低電平。
常用的邏輯電平有:TTL、COMS、LVTTL、ECL、PECL、GTL、RS-232、RS-422、RS-485、LVDS等。
其中TTL和COMS的邏輯電平按典型電壓可分為四類:5V類型,3.3V類型,2.5V類型和1.8V類型。
5V TTL 和 5V COMS是通用的邏輯電平;3.3V 、2.5V 和 1.8V 的邏輯電平被稱為低電壓邏輯電平,常用的為LVTTL電平;ECL/PECL 和 LVDS 是差分輸入/輸出;RS-422/485 和 RS-232 是串口的接口標準,RS-422/485 是差分輸入/輸出,RS-232是單端輸入/輸出。計算機的串口為RS-232C電平,其中高電平為-12V,低電平為+12V,為負邏輯電平。
TTL電平信號用的最多,數(shù)據(jù)表示通常采用二進制,+5V 等價于邏輯1,0V 等價于邏輯0,這被稱為TTL(晶體管-晶體管邏輯電平)信號系統(tǒng),這是計算機處理器控制的設備內(nèi)部各部分之間通信的標準技術(shù)。CMOS電平Vcc可達12V,CMOS電路輸出高電平約為0.9Vcc,而輸出低電平約0.1Vcc。CMOS電路中不使用的輸入端不能懸空,否則會造成邏輯混亂。
TTL和CMOS的邏輯電平轉(zhuǎn)換:
這里要注意的是 CMOS電平能驅(qū)動TTL電平,但TTL電平不能驅(qū)動CMOS電平,需要上拉電阻。
常用邏輯芯片的特點如下:
74LS系列:TTL輸入:TTL 輸出:TTL
74HC系列:CMOS輸入:CMOS輸出:CMOS
74HCT系列:CMOS輸入:TTL輸出:CMOS
CD4000系列:CMOS輸入:CMOS輸出:CMOS
單片機、DSP、FPGA之間引腳能否直接相連可以參考一下這個方法:
一般來說,同電壓的是可以相連的,不過最好還是好好查看芯片技術(shù)手冊上的VIL(邏輯電平0的輸入電壓)、VIH(邏輯電平1的輸入電壓)、VOL(邏輯電平0的輸出電壓)、VOH(邏輯電平1的輸出電壓)的值,看是否能夠匹配。
二進制的邏輯運算:與、或、非、同或和異或
與:運算符“&”,規(guī)則 0&0=0,0&1=0,1&0=0,1&1=1;
或:運算符“|”,規(guī)則 0&0=0,0&1=1,1&0=1,1&1=1;
非:運算符“!”,規(guī)則 !0=1,!1=0;
同或:運算符“⊙“,規(guī)則 0⊙0=1,0⊙1=0,1⊙0=0,1⊙1=1;
異或:運算符”⊕“,規(guī)則 0⊕0=0,0⊕1=1,1⊕0=1,1⊕1=0;
這些我想很多人都知道了,在這里我就不詳細說。
那么接下來我們說一下C51中的基礎(chǔ)知識,單片機開發(fā)大多都是用C語言編程的,我們需要知道一些關(guān)于C語言方面的知識,但是在單片機中的要求的C語言知識會比平時我們知道的C語言有所拓展,所以我們用C51來區(qū)分:
C51中的基本數(shù)據(jù)類型:
無符號字符型: unsigned char
有符號字符型: char
無符號整型: unsigned int
有符號整型: int
無符號長整型: unsigned long
有符號長整型: long
單精度實型: float
雙精度實型: double
位類型: bit
C51數(shù)據(jù)類型擴充定義
單片機內(nèi)部有很多的特殊功能寄存器,每個寄存器在單片機內(nèi)部都分配有唯一的地址,一般我們會根據(jù)寄存器功能的不同給寄存器賦予各自的名稱,當我們需要在程序中操作這些特殊功能寄存器時,必須要在程序的最前面將這些名稱加以聲明,聲明的過程實際就是將這個寄存器在內(nèi)存中的地址編號賦給這個名稱,這樣編譯器在以后的程序中才可認知這些名稱所對應的寄存器。而這些聲明已經(jīng)包括在一個叫”reg51.h“中了。
sfr——特殊功能寄存器的數(shù)據(jù)聲明,聲明一個8位的寄存器。
sfr16——16位特殊功能寄存器的數(shù)據(jù)聲明。
sbit——特殊功能位聲明,也就是聲明某一個特殊功能寄存器中的某一位。
bit——位變量聲明,當定義一個位變量時可使用此符號。
C51中常用的頭文件
通常有reg51.h、reg52.h、math.h、ctype.h、stdio.h、stdlib.h、absacc.h、intrins.h
C51中的運算符
+ - * / ++ -- % > >= < <= == != && || ! & | ^ ~ >> <<
這些跟C語言里面的運算符是一樣的。
C51中的基本語句
if 選擇語句
while 循環(huán)語句
for 循環(huán)語句
switch/case 多分支選擇語句
do-while 循環(huán)語句
關(guān)機C語言的語法細節(jié),可以去找一本關(guān)于C語言的書籍去閱讀。
學習單片機應該要掌握:
1)掌握單片機最小系統(tǒng)能夠運行的必要條件。
①電源
②晶振
③復位電路
2)掌握對單片機任意I/O口的操作。
①輸出控制電平高低
②輸入檢測電平高級
3)定時器:重點掌握最常用的方式2。
3)中斷:掌握外部中斷、定時器中斷、串口中斷。
4)串口通信:掌握單片機之間通信、單片機與計算機之間的通信。
接下來呢,我會以圖文的方式告訴大家怎么用編譯軟件Keil。
首先我們先打開這一個軟件。
選擇 Project 菜單里面的 New uVision Project,出現(xiàn)一個保存的框,選擇你要保存的位置和名稱,然后確定。
確定后出現(xiàn)一個選擇框,在這里我們選擇 Atmel ,然后再選擇里面的 AT89C52,選擇OK。
這時我們選擇File菜單下面的一個白色圖標,新建一個文檔。
然后選擇File 菜單里面的 Save 按鈕保存,記得保存為后綴為 .c 文件,且最好是保存到和工程的同一目錄下。
保存完雙擊Source Group1,把保存的c源文件添加進來。
這樣就添加完成了。
那么下面我會告訴大家怎么去編譯c源文件。
我們選擇 Target Options的按鈕。
選擇Output 選項,把 Create HEX File 選項的鉤打上,按OK確定。
然后按 Rebuild 按鈕,對源文件進行編譯。
編譯通過后會生成后綴為hex的文件,這個文件就是下載到單片機的文件。
今天給大家分享了這些的知識,如果還敢興趣的朋友可以繼續(xù)關(guān)注我的博客。
在接下來的學習,我會以邊焊接東西邊教大家寫代碼的形式來分享。所以希望大家至少要準備一個自己好的最小系統(tǒng)。