① 單片機的機器周期和時鍾周期分別怎麼算的,還請舉例說明下
你好!
以51為例(不同的MCU計算方法不同):
外部晶振為12Mhz
,
振盪周期
=
時鍾周期
=
12Mhz
機器周期為12個時鍾周期,即1Mhz。
周期是時間的倒數,即一個機器周期1/1Mhz=1us
指令周期:因為51是復雜指令集,執行一條指令需要1~3個機器周期(根據指令不同而不同)
如有疑問,請追問。
② 單片機可以做什麼事
單片機,又稱微處理器,他將一個系統所需要的RAM,Rom ,CPU等相關外設集成在一塊集成電路上,我們通過匯編語言或者C語言寫成我們需要的程序下載到單片機中運行,其實無論哪種單片機無非都是在控制自己的相關IO高低變化從而達到控制外設的目的。
在學習單片機的過程中,大部分人也是從點亮一個LED 燈泡開始的,完後時流水燈,控制繼電器,在然後就是各種協議,IIC,,spi,usart等。
S7200-plc
例如有這么一個控制系統,要求光電檢測物體,當光電檢測到物體到來時,接近感測器隨機檢測物體是否為金屬,當為金屬時系統不做處理,當不為金屬時系統輸出報警型號,控制報警器工作3S後關閉報警器,提示人工挑揀。
方法如下:
1、利用幾點器加延時繼電器進行設計,完全可以達到要求,成本也不是很高。
2、採用PLC,更加簡單,一個梯形圖外加幾個繼電器就搞定,但是成本高了,而且對於PLC的IO口來說一種浪費。
3、採用單片機:我們將光電採集的信號進入單片機的外部中斷,在中斷程序中判斷接近感測器的電平變化,沒有信號就不是金屬物體,我們輸出一個電平信號用定時器延時3秒就可以,而且成本低廉。
接下來我們對此系統進行擴展,加入一個1602液晶顯示屏成本10元以內,在液晶上我們對經過光電的物體進行技術,顯示出非金屬物體有過少個,我們還可以加入按鍵來隨時調節報警輸出時間。成本基本無變化。如果我們用PLC的話,就需要加HDMI,組態。
(2)單片機舉例子擴展閱讀:
單片機分類標准①:通用性
按通用性可分為:通用型/專用型
這是按單片機適用范圍來區分的。例如,80C51是通用型單片機,它不是為某種專用途設計的;專用型單片機是針對一類產品甚至某一個產品設計生產的,例如為了滿足電子體溫計的要求,在片內集成ADC介面等功能的溫度測量控制電路。
單片機分類標准②:匯流排結構
按匯流排結構可分為:匯流排型/非匯流排型
這是按單片機是否提供並行匯流排來區分的。匯流排型單片機普遍設置有並行地址匯流排、 數據匯流排、控制匯流排,這些引腳用以擴展並行外圍器件都可通過串列口與單片機連接。
另外,許多單片機已把所需要的外圍器件及外設介面集成一片內,因此在許多情況下可以不要並行擴展匯流排,大大減省封裝成本和晶元體積,這類單片機稱為非匯流排型單片機。
單片機分類標准③:應用領域
按應用領域可分為:家電類,工控類,通信類,個人信息終端類等等
一般而言,工控型定址范圍大,運算能力強;用於家電的單片機多為專用型,通常是小封裝、低價格,外圍器件和外設介面集成度高。
單片機分類標准④:數據匯流排位數
按單片機數據匯流排位數可分為:4位、8位、16位和32位單片機
4位單片機結構簡單,價格便宜,非常適合用於控制單一的小型電子類產品,如PC機用的輸入裝置(滑鼠、游戲桿)、電池充電器、遙控器、電子玩具、小家電等。 2. 8位單片機。
8位單片機是目前品種最為豐富、應用最為廣泛的單片機,目前,8位單片機主要分為51系列及和非51系列單片機。51系列單片機以其典型的結構,眾多的邏輯位操作功能,以及豐富的指令系統,堪稱一代「名機」。
16位單片機 16位單片機操作速度及數據吞吐能力在性能上比8位機有較大提高。目前,應用較多的有TI的MSP430系列、凌陽SPCE061A系列、Motorola的68HC16系列、Intel的MCS-96/196系列等。
32位單片機 與51單片機相比,32位單片機運行速度和功能大幅提高,隨著技術的發展以及價格的下降,將會與8位單片機並駕齊驅。32位單片機主要由ARM公司研製,因此,提及32位單片機,一般均指ARM單片機。
嚴格來說,ARM不是單片機,而是一種32位處理器內核,實際中使用的ARM晶元有很多型號,常見的ARM晶元主要有飛利浦的LPC2000系列、三星的S3C/S3F/S3P系列等。
③ 請問,那位知道51單片機常用哪幾種定址方式分別在什麼情況下使用最好能舉一個例子。謝謝。
MCS-51 的定址方式:
1 、立即定址 如: MOV A , #40H
2 、直接定址 如: MOV A , 3AH
3 、寄存器定址 如: MOV A , Rn
4 、寄存器間接定址 如: MOV A , @Rn
5 、基址加變址定址 如: MOVC A , @A+DPTR
6 、相對定址 如: SJMP 08H
7 、位定址 MOV 20H , C
以下是詳細介紹:
一、立即定址:操作數就寫在指令中,和操作碼一起放在程序存貯器中。把「#」號放在立即數前面,以表示該定址方式為立即定址,如#20H。
二、寄存器定址:操作數放在寄存器中,在指令中直接以寄存器的名字來表示操作數的地址。例如MOV A,R0就屬於寄存器定址,即將R0寄存器的內容送到累加器A中。
三、直接定址:操作數放在單片機的內部RAM某單元中,在指令中直接寫出該單元的地址。如前例的ADD A,70H中的70H。
四、寄存器間接定址:操作數放在RAM某個單元中,該單元的地址又放在寄存器R0或R1中。
如果RAM的地址大於256,則該地址存放在16位寄存器DPTR(數據指針)中,此時在寄存器名前加@符號來表示這種間接定址。如MOV A,@R0。其它還有變址定址、相對定址、位定址等,待以後再詳細介紹。可能有人會問,在指令中直接給出實際操作數,不是簡單、明了嗎?為什麼還要用其它幾種定址方式呢?這是因為在編製程序時很難一下子就給出操作數。如用單片機控制溫度時,時時需要將給定的控制溫度(如20℃)減去環境溫度,而環境溫度時時有變化,顯然無法在程序指令中給出,只有通過一定方式,將其送入某個輸入/輸出口,再存放在某個寄存器中,這就必須用到寄存器定址。又如要進行算術運算,要計算每班學員各科成績的平均值,如果把每個學員的各科都編一個程序,在程序中直接給出該學員各科成績,再求平均值,顯然太麻煩。這里可以編一個求平均成績的通用程序,把每位學員的成績送入存貯器的各個單元中,這時可採取直接定址,一個程序可供每個學員用,不是更方便嗎?所以,定址方式越多,編製程序就越方便、靈活,適用范圍就越廣。定址有如找人,如被找的人有手機、BP機、座機電話等多種聯系方式則就容易找到他,單片機也是如此,定址方式越多,找操作數越方便,單片機的功能就越強。前面介紹51系列單片機的定址方式時,常遇到單片機內部的一些寄存器、累加器A、通用寄存器R0~R7、數據指針DPTR和存貯器等。在以後介紹指令時,數據就要在這些寄存器、存貯器之間傳送,或者進行運算。因此,編製程序就需熟悉單片機的內部結構。
8051單片機的內部總體結構其基本特性如下:
8位CPU、片內振盪器
4k位元組ROM、128位元組RAM
21個特殊功能寄存器
32根I/O線
可定址的64k位元組外部數據、程序存貯空間
2個16位定時器、計數器
中斷結構:具有二個優先順序、五個中斷源
一個全雙口串列口
位定址(即可尋找某位的內容)功能,適於按位進行邏輯運算的位處理器。除128位元組RAM、4k位元組ROM和中斷、串列口及定時器模塊外,還有4組I/O口P0~P3,餘下的就是CPU的全部組成。把4kROM換為EPROM就是8751的結構,如去掉ROM/EPROM部分即為8031的框圖,如果將ROM置換為Flash存貯器或EEPROM,或再省去某些I/O,即可得到51系列的派生品種,如89C51、AT89C2051等單片機的框圖。
④ 簡述51單片機中的讀-修改–寫操作,並舉例說明。
按照我的理解來說,讀操作:從需要的寄存器中讀出需要的數據。修改操作:這里可以指處理讀到的數據嗎?寫操作:把修改的數據或者其他的數據寫進需要的寄存器中。舉例:(1)控制兩片DS18B20溫度感測器,這時需要讀出兩片感測器的序列號,然後存入存儲器中(某存儲晶元),然後再從該存儲器中讀出來寫入某指令去監測需要的那塊單片機。(2)從時鍾晶元DS1302中讀出年月日數據,寫入自己的函數中,來顯示出來。
⑤ 生活中哪些用到了單片機請舉例說明!
38./rd
39.6個
40.片外數據存儲器
41.自然優先順序最先訪問
42.自然優先順序最後訪問
43.ea接地,只訪問片內程序存儲器,ea接高電平,先訪問片內程序存儲器,超過4kb范圍訪問片外程序存儲器
44.mov訪問片內數據存儲器,movx訪問片外數據存儲器
45.p0
46.p0
47.讀出數據操作
48./psen
49.外部中斷0