找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2131|回復: 0
打印 上一主題 下一主題
收起左側

不怎么講原理的51單片機應用入門(1)單片機是啥

[復制鏈接]
跳轉到指定樓層
樓主
ID:105323 發(fā)表于 2016-2-23 15:57 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
出自:西漂sky的博客


單片機是一門應用類課程,與一些理論課程如微積分不同。對于微積分課程的學習,我們首先需要系統(tǒng)掌握公式定理,然后才是如何應用。而就個人認為,單片機的學習是“由外而內(nèi)”的,對于初學者來說,首先要解決的是“怎么用”的問題,然后才是“為什么”的問題。就我個人的經(jīng)驗,如果一上手就是各種理論,學習興趣很快就會喪失;若是現(xiàn)從實踐應用開始,不說多么有意思,起碼要比理論好玩那么一點。等實踐學到了一定的火候,再回溯理論,一步一步深究如何實現(xiàn),想必要簡單一點。本系列就是為了解決“怎么用”的問題。學習單片機,首先要知道什么是單片機。
電腦是什么,手機是什么想必大家都是知道的,也就是你用來看這篇博文的這個玩意。而電腦和手機的核心是什么?其實是一塊CPU,CPU進行運算,并操控各種輸入輸出設備,比如觸控屏,鍵盤,鼠標什么的。而單片機,就是把電腦或者說手機集成到了一個芯片上,這塊芯片可以根據(jù)你的要求對輸入進行處理,產(chǎn)生你需要的輸出:
                             

                          上右圖為ATMEL公司的單片機,其他51單片機與其封裝可能不一樣,用都是一樣用(兼容的)。
從外觀和逼格上看,這兩個相差貌似蠻大的,其實對于電腦,你可已通過鍵盤和鼠標輸入,電腦的屏幕和音響可以給你你需要的輸出。而對于單片機,它的一些引腳相當于鼠標鍵盤,也相當于屏幕音響。這些可以用來輸入輸出的引腳們,我們稱之為IO口。
IO口常規(guī)作用只有3個——置高(引腳電壓相對于地5V或3.3V),置低(引腳電壓相對于地0V),檢測高還是低(檢測引腳電壓相對于地是5/3.3還是0)。無論是以后或簡單,或復雜的實驗,最終你所需要的,就是讓這些腳管電壓按著你的要求按時上下翻飛。
現(xiàn)在知道單片機是做什么用的了么?就是按要求對外部輸入的電壓信號做出規(guī)定的電壓回應。

好了,現(xiàn)在說說具體是怎么樣的,在計算機C語言中,如果我們需要從鍵盤上讀取輸入信號,我們通常會用這種方法:
int temp;//定義一個32位變量
scanf(“%d”,&temp);//從鍵盤緩沖區(qū)讀取一個整形數(shù)據(jù)存在temp中
而單片機略顯寒酸的沒有自備鍵盤......不過這不是問題,我們通過這種方法:
unsigned char temp;//定義一個8位變量
temp=P1;//讀取P1口的值,賦值給變量temp
第二句代碼就是輸入啦,大部分的51單片機的IO口都是P0,P1這樣命名的。先來看看單片機的引腳圖:

            
先不看那些好長名字的引腳,只看1~8的8個,名字分別為P1.0~P1.7,這八個引腳就是一個被稱為P1的IO口,8個引腳分別對應了unsignedchar型數(shù)據(jù)的8個位。再看20引腳VSS,其實就是常用的“地”,所有電壓高低都是相對于VSS引腳的電壓而言的。
執(zhí)行temp=P1;這條語句的時候P1每個引腳的電壓情況就會被保存到變量temp里。例如,P1口電壓情況是P1.0~P1.3電壓與VSS相同,P1.4~P1.7的電壓比VSS高3.3V/5V,也就是“高高高高低低低低”,換成邏輯語言就是“11110000”,那么單片機就讀取了一個為“11110000”的值,也就是“0xF0”并將這個值保存在temp變量中。
有了輸入自然要有輸出,在計算機C語言中,有一種輸出的方式是這樣的:
int temp=214;
printf(“%d”,temp);
這樣,計算機就通過屏幕輸出了值214,但是單片機同樣不自備屏幕,然而這更不是問題,我們是這么做的:
unsigned char temp=0xF0;
P1=temp;
從語法來說,這是將temp的值賦值給了一個叫P1的......東西。然而這個P1,就是剛才所說的IO口P1。執(zhí)行這條語句后,P1口的8個引腳就會各司其職,輸出與之對應位的值。例如P1.0引腳,它對應的是最低位,temp為0xF0,也就是“11110000”,最低位為0,那么P1.0引腳的電位就會變成與Vss相同。也就是說,執(zhí)行完P1=temp后,P1.7~P1.4的電壓會變得比Vss高5V/3.3V,P1.3~P1.0的電壓會變得跟Vss基本相同。
上文所分3.3V與5V的原因是51單片機的常見電源電壓有5V與3.3V兩種:對于5V單片機,“高”和“1”是比VSS的電壓高5V(只是理想情況,低一點也是可以的);對于3.3V單片機,“高”和“1”是比VSS的電壓高3.3V(同樣是理想情況)。
好啦,單片機的輸入輸出也就是一個符號“=”的事,現(xiàn)在總結一下:單片機的作用是按要求對電壓信號做出電壓回應,輸入和輸出的方式就是改變引腳的電壓和看單片機把引腳電壓改變成什么樣子。
(如需轉載,在下表示不勝榮幸,也請注明出處)

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表