单片机简介 & 点亮LED & 流水灯 & 电路基础
視頻地址:https://www.bilibili.com/video/av10765766
超詳細(xì)!!!!!!
單片機(jī)內(nèi)部三大資源
【資源:單片機(jī)可提供使用的東西】
FLASH
可以重復(fù)擦寫
斷電后數(shù)據(jù)不丟失
RAM
存儲(chǔ)中間運(yùn)算過程中產(chǎn)生和需要的數(shù)據(jù)
數(shù)據(jù)斷電丟失
讀寫速度非常快
無限次擦寫
SFR
單片機(jī)內(nèi)部的功能對應(yīng)一個(gè)或多個(gè)SFR
對SFR的讀寫、配置來實(shí)現(xiàn)單片機(jī)各種功能
啥是51單片機(jī)?
兼容Inter的MCS-51體系架構(gòu)的一系列單片機(jī)
選擇的STC89C52的數(shù)據(jù)
想讓單片機(jī)運(yùn)行程序——> 需要外圍電路
單片機(jī)最小系統(tǒng)——>用最少元器件搭建的可以工作的系統(tǒng)
XTAL 晶振電路 提供基準(zhǔn)步調(diào)
VCC 電源 40腳 正極
GND 接地 20腳 負(fù)極
RST 復(fù)位
電壓有 5v 3.3v
STC89C52用5v供電
LED發(fā)光二極管
點(diǎn)亮一個(gè)LED發(fā)光二極管【用程序】
通過控制P0.0電位的高低來控制LED亮滅
【即告訴編程軟件 P0,就在0x80 的位置上】
可以直接 #include<reg52.h>
但,有些擴(kuò)展的特殊功能寄存器在這個(gè)庫里是沒有的,可通過sfr 來定義其位置
控制一位:
即P0.0引腳
每一個(gè)功能對應(yīng)一個(gè)工程
點(diǎn)亮LED:
#include <reg52.h>
#define uint unsigned int
sbit led = P2^0;
void light(uint x);
void main()
{
led=0;
light(1);
led=1;
light(2);
P2=0xaa;
light(3);
P2=55;
light(3);
}
void light(uint x)
{
uint i,j;
for(i=x*1000;i>0;i--)
for(j=110;j>0;j--);
}
【保存為.c文件】
生成HEX文件
顯示下方則完成
燒錄程序
流水燈:
#include <reg52.h>
#include <intrins.h> //包含_crol_函數(shù)的頭文件
#define uint unsigned int
#define uchar unsigned char
void delayms(uint);
uchar aa;//賦值用
void main()
{
aa=0xfe;//11111110
while(1)
{
P2=aa;
delayms(500);//延時(shí)500ms
aa=_crol_(aa,1);//將aa循環(huán)左移1位并將結(jié)果賦值給aa
}
}
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
單片機(jī)編寫程序是根據(jù)硬件電路圖編寫的
硬件基礎(chǔ)
大電容低頻濾波
小電容高頻濾波
低頻濾波電容作用:
(1)保護(hù): 相當(dāng)于直接用水管澆花和用花灑澆花
(2)穩(wěn)定:功耗不是一成不變的
【比如點(diǎn)亮1個(gè)LED,然后點(diǎn)亮所有LED,造成電流瞬間加大,瞬間電壓拉低,使有些元件無法正常工作,加上低頻濾波電容后,可以穩(wěn)定這一過程,以適應(yīng)系統(tǒng)慢慢增加電壓過程,避免停機(jī)】
電容參數(shù)的選取:
(1)耐壓值:比如一個(gè)5V的系統(tǒng),則此電容的耐壓值必須高于5V
【通常是電壓的1.5~2倍】
(2)電壓容值:根據(jù)后端電路功耗情況+功耗突然變化的情況選取
【比如,5V系統(tǒng)加上100μF的電容,功耗變化電壓降至4V,部分元件無法工作,但加490μF的電容就可以保證該系統(tǒng)在功耗突然變化時(shí),使得全部元件仍然正常工作】
(3)類型:
性能:鋁<鉭tan<陶瓷電容【尤其在通信鄰域】
但同樣的特征,鋁電解電容很便宜,體積大
陶瓷和鉭體積較小
高頻濾波電容:
把靜電消耗掉,防止進(jìn)入芯片內(nèi)部
用的時(shí)候直接用104電容【10*10^4】即0.1微法的電容就可以了【5V系統(tǒng)里足夠用】
都是陶瓷的,也有磁片
三極管
在PNP型三極管中,基極比發(fā)射極電壓高0.7V即可導(dǎo)通
用P1.0的高低電平【差0.7V】控制三極管導(dǎo)通來控制小燈亮滅
單片機(jī)其實(shí)就是 控制器件【電流輸出能力很差】——起四兩撥千斤的作用
驅(qū)動(dòng)能力——電流輸出能力
單片機(jī)的 IO 電流輸出能力有限
普通IO口,內(nèi)部上拉電阻比較大,輸出電流幾十微安---上百微安
所以,不會(huì)采取下圖方式:
總線上:是一一對應(yīng)連接一起的關(guān)系,而不是全部都連一起
LED本身就有2V的壓降
IO口作為低電平時(shí),輸入的電流不能一直太大,還受到單片機(jī)整體IO口【50mA的限制,即高于50mA會(huì)造成傷害】
解決辦法:
是雙向緩沖器,也是電流緩沖器
O-E- 使能引腳 低電平有效,使74HC245正常工作
DIR 方向引腳 接高電平的話 A1【輸入】 ——> B1【輸出】 .....一一對應(yīng)
接低電平的話 B1【輸入】——> A1 【輸出】 .....一一對應(yīng)
如果讓所有的LED點(diǎn)亮,DB_0 ~ DB_7全部輸出低電平,形成八路共64mA的電流,但單片機(jī)整體IO口【50mA的限制,即高于50mA會(huì)造成傷害】,所以接74HC245緩沖器【70mA】,可起到電流緩沖的作用
還加三極管的目的是保證 電流輸出能力【就像水管中較窄的地方,水流速度變慢】,邏輯上A1...和B1...是導(dǎo)通的,只是起到電流緩沖的作用
74HC138電路 ----- 拓展單片機(jī)IO口【數(shù)字?jǐn)U展芯片】
又叫三八譯碼器 ———— 由三個(gè)輸入來控制八個(gè)輸出口的狀態(tài)
即減小電流,通過小電流來控制大電流
點(diǎn)亮LED整體工作過程:【視屏教學(xué)中的程序,,我用的實(shí)驗(yàn)板是普中的,不一樣】
其中ADDR0 ADDR1 ADDR2 ADDR3分別通過跳線帽與 P1^0 P1^1 P1^2 P1^3引腳相連
觀察下方的ENABLE使能引腳和74HC138真值表
所以,程序中將ADDR3 = 1 ENABLE=0 【兩條線】,使74HC138有效
# 有無效是指外界是否對其有影響 如當(dāng)使能引腳不是100時(shí),所有的輸出引腳都是H,即1,輸入引腳對其無影響,故無效
通過ADDR0 ADDR1 ADDR2 為011,使Y6引腳輸出低電平
從而使Y6引腳輸出低電平,即LEDS6輸出低電平,從而使三極管導(dǎo)通
從而,只要使DB_0 輸出低電平【即程序中的LED = P0^0 = 0】,DB0 也即低電平,從而使LED電路DB0為低電平,從而電路導(dǎo)通,電流沿著LED2流入74HC245的GND
【單片機(jī)IO口默認(rèn)是高電平,所以別的DB1~7都是高電平,電流不導(dǎo)通,LED不亮】
總結(jié)
以上是生活随笔為你收集整理的单片机简介 & 点亮LED & 流水灯 & 电路基础的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: word如何把章节抽出来生成目录(怎么在
- 下一篇: windows如何打开aspx文件