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