導航:首頁 > 操作系統 > 單片機原理第6章

單片機原理第6章

發布時間:2022-09-27 14:20:29

❶ 用AT89C51單片機和溫度感測器DS18B20S設計數字式溫度計

江蘇省聯合職業技術學院常州旅遊商貿分院
專科畢業論文

基於51單片機及DS18B20溫度感測器的數字溫度計設計

姓 名:(××××××××3號黑體)
學 號:(××××××××3號黑體)
班 級:(聯院班級號×××3號黑體)
專 業:(××××××××3號黑體)
指導教師:(××××××××3號黑體)
系 部:創意信息系××××3號黑體)

二〇二0年××月××日

摘 要
本設計採用的主控晶元是ATMEL公司的AT89S52單片機,數字溫度感測器是DALLAS公司的DS18B20。本設計用數字感測器DS18B20測量溫度,測量精度高,感測器體積小,使用方便。所以本次設計的數字溫度計在工業、農業、日常生活中都有廣泛的應用。
單片機技術已經廣泛應用社會生活的各個領域,已經成為一種非常實用的技術。51單片機是最常用的一種單片機,而且在高校中都以51單片機教材為藍本,這使得51單片機成為初學單片機技術人員的首選。本次設計採用的AT89S52是一種flash型單片機,可以直接在線編程,向單片機中寫程序變得更加容易。本次設計的數字溫度計採用的是DS18B20數字溫度感測器,DS18B20是一種可組網的高精度數字式溫度感測器,由於其具有單匯流排的獨特優點,可以使用戶輕松地組建起感測器網路,並可使多點溫度測量電路變得簡單、可靠。
本設計根據設計要求,首先設計了硬體電路,然後繪制軟體流程圖及編寫程序。本設計屬於一種多功能溫度計,溫度測量范圍是-55℃到125℃。溫度值的解析度可以被用戶設定為9-12位,可以設置上下限報警溫度,當溫度不在設定的范圍內時,就會啟動報警程序報警。本設計的顯示模塊是用四位一體的數碼管動態掃描顯示實現的。在顯示實時測量溫度的模式下還可以通過查詢按鍵查看設定的上下限報警溫度。

關鍵詞:單片機、數字溫度計、DS18B20、AT89S52

目 錄

1 引言 1
2 系統總體方案及硬體設計 2
2.1 系統總體方案 2
2.1.1系統總體設計框圖 2
2.1.2各模塊簡介 2
2.2 系統硬體設計 6
2.2.1 單片機電路設計 6
2.2.2 DS18B20溫度感測器電路設計 6
2.2.3 顯示電路設計 7
2.2.4 按鍵電路設計 7
2.2.5 報警電路設計 8
3 軟體設計 9
3.1 DS18B20程序設計 9
3.1.1 DS18B20感測器操作流程 9
3.1.2 DS18B20感測器的指令表 9
3.1.3 DS18B20感測器的初始化時序 10
3.1.4 DS18B20感測器的讀寫時序 10
3.1.5 DS18B20獲取溫度程序流程圖 11
3.2 顯示程序設計 13
3.3 按鍵程序設計 13
4實物製作及調試 14
5電子綜合設計體會 15
參考文獻 16

1 引言
本系統所設計的數字溫度計採用的是DS18B20數字溫度感測器測溫,DS18B20直接輸出的就是數字信號,與傳統的溫度計相比,具有讀數方便,測溫范圍廣,測溫准確,上下限報警功能。其輸出溫度採用LED數碼管顯示,主要用於對測溫比較准確的場所。
該設計控制器使用的是51單片機AT89S52,AT89S52單片機在工控、測量、儀器儀表中應用還是比較廣泛的。測溫感測器使用的是DS18B20,DS18B20是一種可組網的高精度數字式溫度感測器,由於其具有單匯流排的獨特優點,可以使用戶輕松地組建起感測器網路,並可使多點溫度測量電路變得簡單、可靠。顯示是用4位共陰極LED數碼管實現溫度顯示,LED數碼管的優點是顯示數字比較大,查看方便。蜂鳴器用來實現當測量溫度超過設定的上下限時的報警功能。

2 系統總體方案及硬體設計
2.1 系統總體方案
2.1.1系統總體設計框圖
由於DS18B20數字溫度感測器具有單匯流排的獨特優點,可以使用戶輕松地組建起感測器網路,並可使多點溫度測量電路變得簡單、可靠,所以在該設計中採用DS18B20數字溫度感測器測量溫度。
溫度計電路設計總體設計框圖如圖2-1所示,控制器採用單片機AT89S52,溫度感測器採用DS18B20,顯示採用4位LED數碼管,報警採用蜂鳴器、LED燈實現,鍵盤用來設定報警上下限溫度。

圖2-1 溫度計電路總體設計框圖
2.1.2各模塊簡介
1.控制模塊
AT89S52單片機是美國ATMEL公司生產的低功耗,高性能CMOS 8位單片機,片內含有8kb的可系統編程的Flash只讀程序存儲器,器件採用ATMEL公司的高密度、非易失性存儲技術生產,兼容標准8051指令系統及引腳。在單晶元上,擁有靈巧的8 位CPU 和在系統可編程的Flash,使得AT89S52為眾多嵌入式控制應用系統提供高靈活、超有效的解決方案。
AT89S52具有以下標准功能:8k位元組Flash,256位元組RAM,32 位I/O 口線,看門狗定時器,2 個數據指針,三個16 位定時器/計數器,一個6向量2級中斷結構,全雙工串列口,片內晶振及時鍾電路。另外,AT89S52 可降至0Hz 靜態邏輯操作,支持2種軟體可選擇節電模式。空閑模式下,CPU停止工作,允許RAM、定時器/計數器、串口、中斷繼續工作。掉電保護方式下,RAM內容被保存,振盪器被凍結,單片機一切工作停止,直到下一個中斷或硬體復位為止。
2.顯示模塊
顯示電路採用4位共陰LED數碼管,從P0口輸出段碼,P2口的高四位為位選端。用動態掃描的方式進行顯示,這樣能有效節省I/O口。
3.溫度感測器模塊
DS18B20溫度感測器是美國DALLAS半導體公司最新推出的一種改進型智能溫度感測器,與傳統的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,並且可根據實際要求通過簡單的編程實現9~12位的數字值讀數方式。DS18B20的性能特點如下:獨特的單線介面僅需要一個埠引腳進行通信;多個DS18B20可以並聯在惟一的三線上,實現多點組網功能;無須外部器件;可通過數據線供電,電壓范圍為3.0~5.5v;零待機功耗;溫度以9或12位二進制數字表示;用戶可定義報警設置;報警搜索命令識別並標志超過程序限定溫度(溫度報警條件)的器件;負電壓特性,電源極性接反時,溫度計不會因發熱而燒毀,但不能正常工作;
DS18B20採用3腳TO-92封裝或8腳SO或µSOP封裝,其其封裝形式如圖2-2所示。

圖2-2 DS18B20的封裝形式
DS18B20的64位ROM的結構開始8位是產品類型的編號,接著是每個器件的惟一的序號,共有48位,最後8位是前面56位的CRC檢驗碼,這也是多個DS18B20可以採用一線進行通信的原因。溫度報警觸發器TH和TL,可通過軟體寫入戶報警上下限。
DS18B20溫度感測器的內部存儲器還包括一個高速暫存RAM和一個非易失性的可電擦除的EEPRAM。高速暫存RAM的結構為8位元組的存儲器,結構如圖2-3所示。

圖2-3 DS18B20的高速暫存RAM的結構
頭2個位元組包含測得的溫度信息,第3和第4位元組TH和TL的拷貝是易失的,每次上電復位時被刷新。第5個位元組,為配置寄存器,它的內容用於確定溫度值的數字轉換解析度,DS18B20工作時寄存器中的解析度轉換為相應精度的溫度數值,該位元組各位的定義如表2-1所示。
表2-1:配置寄存器
D7 D6 D5 D4 D3 D2 D1 D0

TM

R1

R0

1

1

1

1

1

配置寄存器的低5位一直為1,TM是工作模式位,用於設置DS18B20在工作模式還是在測試模式,DS18B20出廠時該位被設置為0,用戶要去改動,R1和R0決定溫度轉換的精度位數,來設置解析度,「R1R0」為「00」是9位,「01」是10位,「10」是11位,「11」是12位。當DS18B20解析度越高時,所需要的溫度數據轉換時間越長。因此,在實際應用中要將解析度和轉換時間權衡考慮。
高速暫存RAM的第6、7、8位元組保留未用,表現為全邏輯1。第9位元組讀出前面所有8位元組的CRC碼,可用來檢驗數據,從而保證通信數據的正確性。
當DS18B20接收到溫度轉換命令後,開始啟動轉換。轉換完成後的溫度值就以16位帶符號擴展的二進制補碼形式存儲在高速暫存存儲器的第1、2位元組。單片機可以通過單線介面讀出該數據,讀數據時低位在先,高位在後,數據格式以0.0625℃/LSB形式表示。
當符號位s=0時,表示測得的溫度值為正值,可以直接將二進制位轉換為十進制;當符號位s=1時,表示測得的溫度值為負值,要先將補碼變成原碼,再計算十進制數值。輸出的二進制數的高5位是符號位,最後4位是溫度小數點位,中間7位是溫度整數位。表2-2是一部分溫度值對應的二進制溫度數據。
表2-2 DS18B20輸出的溫度值

溫度值

二進制輸出

十六進制輸出

+125℃

0000 0111 1101 0000

07D0h

+85℃

0000 0101 0101 0000

0550h

+25.0625℃

0000 0001 1001 0001

0191h

+10.125℃

0000 0000 1010 0010

00A2h

+0.5℃

0000 0000 0000 1000

0008h

0℃

0000 0000 0000 0000

0000h

-0.5℃

1111 1111 1111 1000

FFF8h

-10.125℃

1111 1111 0101 1110

FF5Eh

-25.0625℃

1111 1110 0110 1111

FF6Fh

-55℃

1111 1100 1001 0000

FC90h

DS18B20完成溫度轉換後,就把測得的溫度值與RAM中的TH、TL位元組內容作比較。若T>TH或T<TL,則將該器件內的報警標志位置位,並對主機發出的報警搜索命令作出響應。因此,可用多隻DS18B20同時測量溫度並進行報警搜索。在64位ROM的最高有效位元組中存儲有循環冗餘檢驗碼(CRC)。主機ROM的前56位來計算CRC值,並和存入DS18B20的CRC值作比較,以判斷主機收到的ROM數據是否正確。
4.調節模塊介紹
調節模塊是由四個按鍵接地後直接接單片機的I/O口完成的。當按鍵沒有按下時單片機管腳相當於懸空,默認下為高電平,當按鍵按下時相當於把單片機的管腳直接接地,此時為低電平。程序設計為低電平觸發。
5.報警模塊介紹
報警模塊是由一個PNP型的三極體9012驅動的5V蜂鳴器,和一個加一限流電阻的發光二極體組成的。報警時蜂鳴器間歇性報警,發光二極體閃爍。

2.2 系統硬體設計
2.2.1 單片機電路設計

圖2-4 單片機最小系統原理圖
單片機最小系統是由晶振電路,上電復位、按鍵復位電路,ISP下載介面和電源指示燈組成。原理圖如圖2-4所示。
2.2.2 DS18B20溫度感測器電路設計
DS18B20溫度感測器是單匯流排器件與單片機的介面電路採用電源供電方。
電源供電方式如圖2-7,此時DS18B20的1腳接地,2腳作為信號線,3腳接電源。

圖2-7 DS18B20電源供電方式
當DS18B20處於寫存儲器操作和溫度A/D轉換操作時,匯流排上必須有強的上拉,上拉開啟時間最大為10us。採用寄生電源供電方式時VDD端接地。由於單線制只有一根線,因此發送介面必須是三態的。
2.2.3 顯示電路設計
顯示電路是由四位一體的共陰數碼管進行顯示的,數碼管由三極體9013驅動。
四位一體的共陰數碼管的管腳分布圖如圖2-5所示。

圖2-5 四位一體的共陰數碼管管腳分布圖
顯示電路的總體設計如圖2-6所示。

圖2-6 顯示電路
2.2.4 按鍵電路設計
按鍵電路是用來實現調節設定報警溫度的上下限和查看上下報警溫度的功能。電路原理圖如圖2-10所示。

圖2-10 按鍵電路原理圖

2.2.5 報警電路設計
報警電路是在測量溫度大於上限或小於下限時提供報警功能的電路。該電路是由一個蜂鳴器和一個紅色的發光二極體組成,具體的電路如圖2-9所示。

圖2-9 報警電路原理圖

3 軟體設計
3.1 DS18B20程序設計
3.1.1 DS18B20感測器操作流程
根據DS18B20的通訊協議,主機(單片機)控制DS18B20完成溫度轉換必須經過三個步驟:
• 每一次讀寫之前都要對DS18B20進行復位操作
• 復位成功後發送一條ROM指令
• 最後發送RAM指令
這樣才能對DS18B20進行預定的操作。復位要求主CPU將數據線下拉500μs,然後釋放,當DS18B20收到信號後等待16~60μs左右,後發出60~240μs的存在低脈沖,主CPU收到此信號表示復位成功。
DS18B20的操作流程如圖3-1所示。

如圖3-1 DS18B20的操作流程
3.1.2 DS18B20感測器的指令表
DS18B20感測器的操作指令如表3-1所示。感測器復位後向感測器寫相應的命令才能實現相應的功能。
表3-1 DS18B20的指令表

指 令

指令代碼

功 能

讀ROM

0x33

讀DS1820溫度感測器ROM中的編碼(即64位地址)

符合 ROM

0x55

發出此命令之後,接著發出 64 位 ROM 編碼,訪問單匯流排上與該編碼相對應的 DS1820 使之作出響應,為下一步對該 DS1820 的讀寫作準備。

搜索 ROM

0xF0

用於確定掛接在同一匯流排上 DS1820 的個數和識別 64 位 ROM 地址。為操作各器件作好准備。

跳過 ROM

0xCC

忽略 64 位 ROM 地址,直接向 DS1820 發溫度變換命令。適用於單片工作。

告警搜索命令

0xEC

執行後只有溫度超過設定值上限或下限的片子才做出響應。

溫度變換

0x44

啟動DS1820進行溫度轉換,12位轉換時最長為750ms(9位為93.75ms)。結果存入內部9位元組RAM中。

讀暫存器

0xBE

讀內部RAM中9位元組的內容

寫暫存器

0x4E

發出向內部RAM的3、4位元組寫上、下限溫度數據命令,緊跟該命令之後,是傳送兩位元組的數據。

復制暫存器

0x48

將RAM中第3 、4位元組的內容復制到EEPROM中。

重調 EEPROM

0xB8

將EEPROM中內容恢復到RAM中的第3 、4位元組。

讀供電方式

0xB4

讀DS1820的供電模式。寄生供電時DS1820發送「 0 」,外接電源供電 DS1820發送「 1 」。

3.1.3 DS18B20感測器的初始化時序
DS18B20感測器為單匯流排結構器件,在讀寫操作之前,感測器晶元應先進性復位操作也就是初始化操作。
DS18B20的初始化時序如圖3-2所示。首先控制器拉高數據匯流排,接著控制器給數據匯流排一低電平,延時480μs,控制器拉高數據匯流排,等待感測器給數據線一個60-240μs的低電平,接著上拉電阻將數據線拉高,這樣才初始化完成。

圖3-2 DS18B20初始化時序
3.1.4 DS18B20感測器的讀寫時序
1.寫時序
DS18B20感測器的讀寫操作是在感測器初始化後進行的。每次操作只能讀寫一位。
當主機把數據線從高電平拉至低電平,產生寫時序。有兩種類型的寫時序:寫「0」時序,寫「1」時序。所有的時序必須有最短60μs的持續期,在各個寫周期之間必須有最短1μs的恢復期。
在數據匯流排由高電平變為低電平之後,DS18B20在15μs至60μs的時間間隙對匯流排采樣,如果為「1」則向DS18B20寫「1」, 如果為「0」則向DS18B20寫「0」。如圖3-2的上半部分。
對於主機產生寫「1」時序時,數據線必須先被拉至低電平,然後被釋放,使數據線在寫時序開始之後15μs內拉至高電平。
對於主機產生寫「1」時序時,數據線必須先被拉至低電平,且至少保持低電平60μs。
2.讀時序
在數據匯流排由高電平變為低電平之後,數據線至少應保持低電平1μs,來自DS18B20的輸出的數據在下降沿15μs後有效,所以在數據線保持低電平1μs之後,主機將數據線拉高,等待來自DS18B20的數據變化,在下降沿15μs之後便可開始讀取DS18B20的輸出數據。整個讀時序必須有最短60μs的持續期。如圖3-2的下半部分。讀時序結束後數據線由上拉電阻拉至高電平。

圖3-3 DS18B20感測器的讀寫時序
3.1.5 DS18B20獲取溫度程序流程圖
DS18B20的讀位元組,寫位元組,獲取溫度的程序流程圖如圖3-3所示。

圖3-4 DS18B20程序流程圖
3.2 顯示程序設計
顯示電路是由四位一體的數碼管來實現的。由於單片機的I/O口有限,所以數碼管採用動態掃描的方式來進行顯示。程序流程圖如圖3-4所示。

圖3-5 顯示程序流程圖
3.3 按鍵程序設計
按鍵是用來設定上下限報警溫度的。具體的程序流程圖如圖3-5所示。

圖3-6 按鍵程序流程圖

4實物製作及調試
製作好的實物如圖4-1所示。

圖4-1 數字溫度計實物正面圖
在做實物時出現了不少問題。比如本來是採用NPN型9013驅動蜂鳴器,但是在實際調試中蜂鳴器驅動不了,經多次試驗,在三極體的基極電阻與單片機的介面處接一個1、2kΩ的上拉電阻就能驅動了。但考慮到單片機的I/O口默認狀態時為高電平,這樣一上電蜂鳴器就會響,所以將NPN型9013換成了PNP型的9012三極體,效果還不錯。

5電子綜合設計體會
經過將近一個月的設計、焊接、編程、調試,我們終於完成了數字溫度計的設計,基本能夠達到設計要求,而且還設計了一些其他功能,比可以開啟或消除按鍵音功能,開機動畫功能,查看報警上下限溫度功能。
此次的設計使我從中學到了一些很重要的東西,那就是如何從理論到實踐的轉化,怎樣將我們所學到的知識運用到實踐中去。在大學課堂的學習只是給我們灌輸專業知識,而我們應把所學的知識應用到我們現實的生活中去。這次的設計不僅使我們將課堂上學到的理論知識與實際應用結合了起來,而且使我們對電子電路、電子元器件、印製電路板等方面的知識有了更進一步的認識,同時在軟體編程、焊板調試、相關調試儀器的使用等方面得到較全面的鍛煉和提高,為今後能夠獨立進行某些單片機應用系統的開發設計工作打下一定的基礎。此次單片機設計也為我們以後進行更復雜的單片機系統設計提供了寶貴的經驗。
在本次設計的過程中,我們遇到不少的問題,剛開始焊好的板子下不進去程序,經過一再仔細的檢查,才發現是在下載口處出了問題,由於焊盤口比較小,排針插不進去,最後使了很大力氣才插進去,插進去後才發現壞了,結果在去排針的時候把焊盤給去下來了,最後只能在旁邊將下載口引了出來。還有就是文章中提到的蜂鳴器驅動問題等等。經過此次的硬體製作與調試,鍛煉了我們的動手實踐能了。本次設計的另一個重點就是軟體程序的設計,其中需要有很巧妙的程序演算法,雖然以前寫過幾次程序,但我覺的寫好一個程序並不是一件簡單的事,有好多的東西,只有我們去試著做了,才能真正的掌握,只學習理論,有些東西是很難理解的,更談不上掌握。
通過此次的綜合設計,我們初步掌握了單片機系統設計的基本原理。充分認識到理論學習與實踐相結合的重要性,對於書本上的很多知識,不但要學會,更重要的是會運用到實踐中去。在以後的學習中,我們會更加註重實踐方面的鍛煉,多提高自己的動手實踐能力。

參考文獻
[1] 譚浩強.C程序設計(第三版).北京:清華大學出版社,2005.7 .
[2] 余發山,王福忠.單片機原理與應用技術.徐州:中國礦業大學出版社,2008.6 .
[3] 求是科技.單片機典型模塊設計實例導航.北京:人民郵電出版社,2005.5 .
[4] 求是科技.8051系列單片機C程序設計完全手冊.北京:人民郵電出版社,2006.4 .
[5] 於永,戴佳,劉波.51單片機C語言常用模塊與綜合系統設計實例精講(第2版).北京:電子工業出版社,2008.10 .
[6]劉騰遠.基於單片機的溫度控制系統設計[J].科技經濟導刊,2018(01):77-78.
[7]蘇康友.基於51單片機的無線溫度控制系統設計[J].電子技術與軟體工程,2017(10):250-251.
[8]劉豐年.基於AT89C51的簡易智能化加濕器設計[J].三門峽職業技術學院學報,2016,15(04):139-142.
[9]楊偉才.基於DS18B20的多點溫度測量系統研究[J].山東工業技術,2016(24):266.
[10]嚴敏.基於單片機的智能溫控系統的設計與實現[J].無錫職業技術學院學報,2016,15(03):61-64.
[11]吳嘉穎. 基於單片機的地鐵低壓設備觸點溫度監測系統的設計與實現[D].西南交通大學,2017.
[12]孫曉倩.基於51單片機的溫度監測報警系統設計研究[J].赤峰學院學報(自然科學版),2015,31(24):24-26.
[13]仲霞.基於DS18B20的多點溫度測量系統探討[J].山東工業技術,2015(22):156.
[14]呂曉磊.基於單片機智能控溫的模擬與設計[J].安徽電子信息職業技術學院學報,2015,14(03):34-37.
[15]賀爭漢.基於51單片機的溫度控制系統[J].黑龍江科技信息,2015(16):145.
[16]譚虹.智能型滑雪保溫鞋溫控系統的設計與實現[J].體育世界(學術版),2014(11):19-20.
[17]王雲飛.DS18B20溫度感測器的應用設計[J].電子世界,2014(12):355.
[18]劉金魁.基於DS18B20的數字測溫系統[J].焦作大學學報,2014,28(02):99-100.
[19]楊丹丹,楊風,馬慧卿.基於單片機的溫度採集系統設計[J].山西電子技術,2014(03):19-21.
[20]曹美霞.單片機與數字溫度感測器DS18B20的介面設計[J].電子製作,2014(11):9-10.

❷ 簡述MCS-51單片機中斷響應的過程

嘉鴻視頻教學 www.study8.net.cn 專業提供211重點大學各類視頻教育、教學資料 單片機技術(34講)--吉林大學 趙宏偉 主講 單片機及應用(32講)--東南大學 劉其奇教授 先修課程 數字邏輯電路 計算機組成原理 介面技術 匯編語言 課程性質:應用型課程 前 言: 單片機在一塊半導體材料上集成了CPU、存儲器、I/O介面等各種功能部件,具有體積小、功耗低、價格便宜、功能強、可靠性好和使用方 便靈活的特點。單片機在工業控制、數據採集、智能化儀表、辦公自動化以及家用電器方等各個領域中得到了越來越廣泛的應用。 將單片機技術與測量控制技術相結合,可以使工業自動控制變得更方便、控制效果更佳。在機電一體化方面,單片機也發揮了它的特殊作 用,使許多傳統產業發生了巨大的變化,使許多工業產品體積縮小,能耗降低,功能增加,操作方便。由於單片機在如此廣泛的領域里獲得了 應用,世界上許多集成電路生產廠家相繼推出了各種類型的單片機,其中,MCS-51系列單片機以其優越的性能、成熟的技術和高可靠性,佔領 了工業控制的主要市場。特別是在我國,〖WTBZ〗MCS-51系列單片機已成為單片機應用領域的主流。 課程簡介: 本課程精選了單片機應用技術的基礎知識、感測器與檢測技術以及〖WTBZ〗PC微機控制技術的部分內容,並使之融為一體,在應用技術的 復合方面具有新意。 本課程以MCS-51系列的8位單片機為教學對象,介紹單片機的發展概況、原理及應用。全書共分14章,內容包括:單片機概述,〖WTBZ〗 MCS-51系列單片機的結構,〖WTBZ〗MCS-51系列單片機指令系統,程序設計基礎,中斷系統,〖WTBZ〗MCS-51系列單片機內部定時器/計數器及 其應用,串列介面,單片機應用系統擴展設計基礎,模擬量輸入輸出介面技術,人機介面技術,功率介面技術,單片機應用系統設計技術,單 片機實用技術舉例,新型單片機介紹。 本課程可作為高等院校電氣信息類各專業「單片機原理及應用技術」課程的教程,同時可供有關工程技術人員參考。 教材目錄: 第1章 單片機概述 1.1單片機發展概況 1.2單片機的分類 1.3單片機應用介紹 思考題與習題 第2章 MCS-5單片機的結構 2.1 MCS-51單片機的結構和引腳 2.1.1引腳定義及功能 2.1.2 MCS-51單片機的基本組成 2.2 8051單片機存儲器結構及其用途 2.2.1 程序存儲器 2.2.2 數據存儲器地址空間 2.3 並行I/0口 2.3.1並行I/0口的結構 2.3.2 並行I/0口操作注意事項 2.4 時鍾電路 2.4.1內部時鍾電路 2.4.2 外部時鍾電路 2.4.3 時鍾與時序 2.5 復位電路 2.5.1單片機復位原理 2.5.2 復位電路 思考題與習題 第3章 MCS-51單片機指令系統 3.1指令格式和定址方式 3.1.1指令格式 3.1.2 定址方式 3.2指令系統 3.2.1定址空間及符號注釋 3.2.2 數據傳送指令 3.2.3 算術運算指令 3.2.4 邏輯運算指令 3.2.5 控制轉移指令 3.2.6 位操作指令 思考題與習題 第4章 程序設計基礎 4.1 MCS-51單片機匯編語言的偽指令 4.2匯編語言程序的基本結構 4.3實用程序設計舉例 4.3.1 數制轉換程序 4.3.2 算術和邏輯運算類程序設計 4.3.3 查表程序設計 思考題與習題 第5章 中斷系統 5.1 中斷概念 5.2中斷源與中斷請求 5.3中斷允許控制 5.4中斷優先順序控制 5.5中斷響應與中斷處理 思考題與習題 第6章 MCS-51單片機內部定時器/計數器及其應用 6.1 定時器的結構及工作原理 6.2定時器的控制 6.2.1工作模式寄存器TMOD 6.2.2 控制寄存器TCON 6.3 定時器的工作模式及其應用 6.3.1模式0及應用 6.3.2模式1及應用 6.3.3模式2及應用 6.3.4模式3及應用 6.3.5綜合應用舉例 思考題與習題 第7章 串列介面 7.1 串列通信概念 7.2 串列介面的工作方式 7.2.1串列介面的結構 7.2.2串列介面的工作方式 7.3 串列介面的波特率 7.4 串列介面的應用 7.4.1串列介面工作方式0的I/O擴展應用 7.4.2串列口的非同步通信應用 思考題與習題 第8章 單片機應用系統擴展設計基礎 8.1程序存儲器擴展 8.1.1 EPROM程序存儲器的擴展設計 8.1.2擴展E2PROM 8.2 數據存儲器的擴展設計 8.2.1 數據存儲器擴展舉例 8.2.2 擴展數據和程序存儲器綜合舉例 8.3 並行I/O擴展設計 8.3.1 簡單的I/O擴展設計 8.3.2 8255可編程並行I/O介面擴展電路設計 8.3.3 8155可編程I/O介面擴展設計 8.3.4 串列口擴展I/O介面 8.4 外部中斷擴展方法 8.4.1 利用定時器擴展外部中斷源 8.4.2 中斷加查詢擴展中斷源 思考題與習題 第9章 模擬量輸入輸出介面技術 9.1 模擬量輸入介面技術概述 9.1.1 感測器技術 9.1.2 模擬量信號處理技術 9.2 A/D轉換器的主要性能指標及分類 9.2.1 A/D轉換器的主要性能指標 9.2.2 A/D轉換器的分類 9.3 常用的A/D轉換晶元 9.3.1 ADC0809 8位A/D轉換器 9.3.2 AD574 12位A/D轉換器及介面 9.3.3 雙積分A/D轉換器及介面技術 9.3.4 V/F轉換器與單片機介面 9.4 D / A轉換器及介面技術 9.4.1 D / A轉換器的主要性能指標 9.4.2 D AC0832 8位D / A轉換器 9.4.3 MCS-51單片機與12位D / A轉換器DAC1208的介面 9.4.4 F / V轉換電路 思考題與習題 第10章 人機介面技術 10.1 開關介面 10.1.1 機械式開關介面的基本應用 10.1.2 電子式開關介面的基本應用 10.2 鍵盤介面 10.2.1 硬體消除抖動法 10.2.2 軟體消除抖動法 10.2.3 簡單鍵盤介面 10.2.4 矩陣式鍵盤介面 10.2.5 BCD碼撥盤介面 10.3 LED顯示介面 10.3.1 發光二極體介面 10.3.2 LED數碼管介面 10.4 LCD液晶顯示介面 10.4.1 欄位型LCD及其應用 10.4.2 圖形式液晶顯示驅動器 第11章 功率介面技術 11.1開關型介面 11.1.1 簡單開關量輸出介面 11.1.2 光電耦合介面 11.1.3 繼電器介面 11.2電壓調節介面 11.2.1 可控硅工作原理 11.2.2 可控硅在電壓調節中的應用 11.2.3 固態繼電器 思考題與習題 第12章 單片機應用系統設計技術 12.1設計原則與要求 12.2硬體設計要求 12.3軟體設計要求 12.4 邏輯電平設計要求 12.5可靠性設計要求 12.6 印刷電路的設計要求. 12.7 電源系統的設計要求 12.8 單片機開發裝置的選擇 思考題與習題 第13章 單片機實用技術舉例 13.1 智能化溫度儀表的設計 13.2 PID智能控制器的設計 13.3單片機數字萬用表的設計 13.4 電子血壓計的設計 13.5 步進電機在精確走步中的應用 13.6 單片機在串列通信中的應用 13.7 單片機在氣象參數測量中的應用 13.8 單片機在模糊控制中的應用 思考題與習題 第14章 新型單片機介紹 14.1 MSP430系列單片機 14.2 EM78P447S單片機 14.3 PIC系列單片機 14.4 AT89系列單片機 14.5 AVR系列單片機 14.6 其他系列單片機 思考題與習題

❸ MC9S12XS單片機原理及嵌入式系統開發的目錄

第1章 嵌入式系統簡介 1
1.1 嵌入式系統 1
1.1.1 系統 1
1.1.2 嵌入式系統 1
1.1.3 嵌入式系統的分類 2
1.2 嵌入式系統硬體 3
1.2.1 嵌入式微處理器 3
1.2.2 嵌入式微控制器 3
1.2.3 嵌入式DSP處理器 4
1.2.4 嵌入式片上系統 4
1.3 嵌入式系統軟體 4
1.4 嵌入式操作系統 5
1.4.1 嵌入式操作系統的種類 5
1.4.2 嵌入式操作系統的發展 5
1.4.3 使用實時操作系統的必要性 6
1.4.4 實時操作系統的優缺點 6
1.5 嵌入式系統開發方法 6
第2章 Freescale HCS12和HCS12X系列單片機簡介 8
2.1 HCS12系列單片機概述 8
2.1.1 HCS12系列單片機的命名規則 8
2.1.2 HCS12系列單片機簡介 9
2.2 HCS12X系列單片機概述 10
2.2.1 HCS12X系列單片機主要特點 10
2.2.2 XGATE協處理器與主處理器的關系 11
2.2.3 XGATE的基本特性 12
2.2.4 典型S12X系列單片機簡介 14
2.3 MC9S12XS128簡介 15
2.3.1 MC9S12XS128性能概述 15
2.3.2 MC9S12XS128內部結構、主要特性及引腳 15
2.3.3 MC9S12XS128引腳功能 24
2.4 CPU12(X)核 27
2.4.1 CPU12(X)核特性 27
2.4.2 編程模型 27
2.5 MC9S12XS128的存儲器映射 30
2.6 MC9S12XS128內部鎖相環模塊PLL 31
2.6.1 CRG時鍾合成寄存器(SYNR) 32
2.6.2 CRG時鍾參考分頻寄存器(REFDV) 32
2.6.3 CRG時鍾後分頻寄存器(POSTDIV) 33
2.6.4 CRG標志寄存器(CRGFLG) 33
2.6.5 CRG時鍾選擇寄存器(CLKSEL) 34
2.6.6 CRG IPLL控制寄存器(PLLCTL) 35
2.6.7 CRG中斷使能寄存器(CRGINT) 36
2.6.8 CRG IPLL模塊應用實例 36
第3章 S12X指令系統 38
3.1 概述 38
3.2 S12X匯編指令的格式和符號說明 38
3.2.1 操作碼和操作數 39
3.2.2 數據類型 39
3.2.3 數據表示方法 39
3.2.4 寄存器和存儲器表示法 40
3.3 定址方式(Addressing Mode) 40
3.3.1 隱含/固有定址(Inherent Addressing,INH) 40
3.3.2 立即定址(Immediate Addressing,IMM) 41
3.3.3 直接定址(Direct Addressing,DIR) 42
3.3.4 擴展定址(Extended Addressing,EXT) 42
3.3.5 相對定址(Relative Addressing,REL ) 43
3.3.6 變址定址(Indexed Addressing,IDX) 44
3.3.7 全局定址(Global Page Index Register) 50
3.4 S12X匯編指令系統 50
3.4.1 數據傳送指令 50
3.4.2 算術運算指令 58
3.4.3 邏輯運算指令 66
3.4.4 高級函數指令 71
3.4.5 程序控制指令 74
3.4.6 S12X控制指令 77
3.5 匯編程序偽指令 79
3.5.1 段定義指令 79
3.5.2 常量賦值指令 81
3.5.3 常量存儲指令 82
3.5.4 分配變數指令 84
3.5.5 匯編控制指令 85
3.5.6 符號鏈接指令 85
第4章 C語言的嵌入式編程 87
4.1 編程語言的選擇 87
4.2 C語言編程元素 88
4.2.1 全局變數和局部變數 88
4.2.2 頭文件 88
4.2.3 編譯預處理 89
4.2.4 數據類型 91
4.2.5 運算符 93
4.2.6 指針 95
4.2.7 條件語句、循環語句及無限循環語句 95
4.2.8 函數 98
4.3 C程序編譯器與交叉編譯器 101
4.4 CodeWarrior軟體簡介 102
4.4.1 CodeWarrior的安裝 102
4.4.2 CodeWarrior使用簡介 104
第5章 MC9S12XS輸入/輸出埠模塊及其應用實例 110
5.1 輸入/輸出埠簡介 110
5.2 輸入/輸出埠寄存器及設置 110
5.2.1 PORTA、PORTB、PORTE和PORTK 112
5.2.2 PORTT、PORTS、PORTM、PORTP、PORTH和PORTJ 114
5.2.3 A/D埠用做數字I/O口 116
5.3 輸入/輸出埠應用實例 118
5.3.1 控制輸出設備LED實例 118
5.3.2 讀取輸入設備撥碼開關狀態實例 120
5.4 輸入/輸出埠在智能車系統中的應用 121
5.4.1 鍵盤介面設計 121
5.4.2 LED顯示介面設計 122
5.4.3 LCD顯示介面設計 124
第6章 MC9S12系列中斷系統 129
6.1 MC9S12系列中斷系統概述 129
6.1.1 復位 130
6.1.2 中斷 131
6.2 MC9S12系列中斷優先順序 132
6.3 MC9S12系列中斷程序應用實例 135
第7章 MC9S12XS系列脈寬調制模塊及其應用實例 139
7.1 PWM模塊概述 139
7.2 PWM模塊結構組成和特點 139
7.3 PWM模塊寄存器及設置 140
7.3.1 PWM使能寄存器(PWME) 141
7.3.2 PWM極性寄存器(PWMPOL) 142
7.3.3 PWM時鍾選擇寄存器(PWMCLK) 143
7.3.4 PWM預分頻時鍾選擇寄存器(PWMPRCLK) 144
7.3.5 PWM居中對齊使能寄存器(PWMCAE) 145
7.3.6 PWM控制寄存器(PWMCTL) 146
7.3.7 PWM比例因子A寄存器(PWMSCLA) 148
7.3.8 PWM比例因子B寄存器(PWMSCLB) 148
7.3.9 PWM通道計數器(PWMCNT) 149
7.3.10 PWM通道周期寄存器(PWMPER) 149
7.3.11 PWM通道占空比寄存器(PWMDTY) 150
7.3.12 PWM關閉寄存器(PWMSDN) 152
7.4 PWM模塊應用實例 153
7.5 PWM模塊在智能車系統中的應用 155
7.5.1 應用PWM模塊控制直流電動機 155
7.5.2 應用PWM模塊控制伺服電動機 157
第8章 MC9S12XS128模/數轉換模塊及其應用實例 159
8.1 ATD模塊概述 159
8.2 ATD模塊結構組成和特點 159
8.3 ATD模塊寄存器及設置 161
8.3.1 ATD控制寄存器0(ATDCTL0) 161
8.3.2 ATD控制寄存器1(ATDCTL1) 162
8.3.3 ATD控制寄存器2(ATDCTL2) 164
8.3.4 ATD控制寄存器3(ATDCTL3) 165
8.3.5 ATD控制寄存器4(ATDCTL4) 167
8.3.6 ATD控制寄存器5(ATDCTL5) 167
8.3.7 ATD狀態寄存器0(ATDSTAT0) 169
8.3.8 ATD比較使能寄存器(ATDCMPE) 170
8.3.9 ATD狀態寄存器2(ATDSTAT2) 170
8.3.10 ATD輸入使能寄存器(ATDDIEN) 171
8.3.11 ATD比較大於寄存器(ATDCMPHT) 171
8.3.12 ATD轉換結果寄存器(ATDDRn) 172
8.4 ATD模塊應用實例 173
8.5 ATD模塊在智能車系統中的應用 174
8.5.1 ATD模塊在基於光電管路徑識別方案中的應用 174
8.5.2 ATD模塊在基於攝像頭路徑識別方案中的應用 176
第9章 MC9S12XS128定時器模塊及其應用實例 180
9.1 TIM模塊概述 181
9.2 TIM模塊結構和工作原理 181
9.2.1 TIM模塊結構 181
9.2.2 TIM模塊工作原理 181
9.2.3 TIM模塊寄存器 184
9.2.4 TIM模塊中斷系統 186
9.3 TIM模塊的自由運行計數器和定時器基本寄存器及設置 187
9.3.1 自由運行主定時器與時鍾頻率設置 187
9.3.2 TIM模塊基本寄存器及設置 188
9.4 TIM模塊的輸入捕捉功能及寄存器設置 191
9.4.1 TIM模塊輸入捕捉功能 192
9.4.2 與輸入捕捉功能相關的寄存器及設置 192
9.5 TIM模塊的輸出比較功能及寄存器設置 195
9.5.1 TIM模塊輸出比較功能 195
9.5.2 與輸出比較功能相關的寄存器及設置 196
9.6 TIM模塊的脈沖累加器功能及寄存器設置 199
9.6.1 TIM模塊脈沖累加器功能 199
9.6.2 與脈沖累加器相關的寄存器及設置 201
9.7 TIM模塊應用實例 203
9.7.1 輸入捕捉功能應用實例 203
9.7.2 輸出比較功能應用實例 205
9.7.3 脈沖累加器功能應用實例 211
9.8 TIM模塊在智能車系統中的應用 215
9.8.1 TIM模塊輸入捕捉功能在智能車系統中的應用 215
9.8.2 TIM模塊脈沖累加器功能在智能車系統中的應用 215
第10章 MC9S12XS128周期性中斷定時器模塊及其應用實例 217
10.1 PIT模塊概述 217
10.2 PIT模塊結構和工作原理 217
10.2.1 PIT模塊結構 217
10.2.2 PIT模塊工作原理 218
10.3 PIT模塊寄存器及設置 220
10.3.1 PIT控制和強制裝載微定時寄存器(PITCFLMT) 221
10.3.2 PIT強制裝載定時寄存器(PITFLT) 221
10.3.3 PIT通道使能寄存器(PITCE) 222
10.3.4 PIT復用寄存器(PITMUX) 222
10.3.5 PIT中斷使能寄存器(PITINTE) 222
10.3.6 PIT超時標志寄存器(PITTF) 223
10.3.7 PIT微定時裝載寄存器0和1(PITMTLD0/1) 223
10.3.8 PIT裝載寄存器0~3(PITLD0~3) 223
10.3.9 PIT計數寄存器0~3(PITCNT0~3) 224
10.4 PIT模塊應用實例 224
10.5 PIT模塊在智能車系統中的應用 226
第11章 MC9S12XS系列串列通信介面模塊及其應用實例 234
11.1 SCI模塊概述 234
11.2 SCI模塊結構組成和特點 234
11.3 SCI模塊寄存器 235
11.3.1 SCI波特率寄存器(SCIBDH,SCIBDL) 236
11.3.2 SCI控制寄存器1(SCICR1) 237
11.3.3 SCI可選狀態寄存器1(SCIASR1) 238
11.3.4 SCI可選控制寄存器1(SCIACR1) 239
11.3.5 SCI可選控制寄存器2(SCIACR2) 240
11.3.6 SCI控制寄存器2(SCICR2) 240
11.3.7 SCI狀態寄存器1(SCISR1) 241
11.3.8 SCI狀態寄存器2(SCISR2) 243
11.3.9 SCI數據寄存器(SCIDRH,SCIDRL) 244
11.4 SCI模塊應用實例 244
11.5 SCI模塊在智能車系統中的應用 248
第12章 MC9S12系列SPI和I2C模塊及其應用實例 251
12.1 SPI模塊 251
12.2 SPI模塊結構組成和特點 252
12.3 SPI模塊寄存器及設置 253
12.3.1 SPI控制寄存器1(SPICR1) 253
12.3.2 SPI控制寄存器2(SPICR2) 255
12.3.3 SPI波特率寄存器(SPIBR) 256
12.3.4 SPI狀態寄存器(SPISR) 258
12.3.5 SPI數據寄存器(SPIDR:SPIDRH,SPIDRL) 260
12.4 SPI模塊應用實例 260
12.5 I2C匯流排介面 262
12.5.1 I2C匯流排概述 262
12.5.2 I2C匯流排工作原理 263
12.6 I2C模塊結構組成和特點 265
12.7 I2C模塊寄存器及設置 266
12.7.1 I2C匯流排地址寄存器(IBAD) 267
12.7.2 I2C匯流排分頻寄存器(IBFD) 267
12.7.3 I2C匯流排控制寄存器(IBCR) 268
12.7.4 I2C匯流排狀態寄存器(IBSR) 269
12.7.5 I2C匯流排數據輸入/輸出寄存器(IBDR) 271
12.8 I2C模塊在智能車系統中的應用 271
第13章 綜合應用實例 275
13.1 概述 275
13.2 綜合應用實例1 275
13.2.1 系統組成 275
13.2.2 A/D輸入介面 276
13.2.3 顯示介面 276
13.2.4 通信介面 277
13.2.5 應用軟體設計 277
13.2.6 軟體流程圖 281
13.3 綜合應用實例2 283
13.3.1 系統組成 283
13.3.2 MircoSD卡介面 283
13.3.3 通信介面 284
13.3.4 SD卡工作電源 284
13.3.5 應用軟體設計 284
13.3.6 MircoSD卡應用軟體設計 286
13.3.7 軟體流程圖 288
13.4 綜合應用實例3 290
13.4.1 系統組成 291
13.4.2 A/D輸入介面 291
13.4.3 顯示介面 291
13.4.4 直流電動機驅動介面 291
13.4.5 測速輸入信號調理電路 293
13.4.6 伺服電動機驅動介面 293
13.4.7 應用軟體設計 293
13.4.8 軟體流程圖 295
13.5 綜合應用實例4 297
13.5.1 系統組成 297
13.5.2 起始線信號檢測方法 297
13.5.3 應用軟體設計 299
13.5.4 軟體流程圖 300
附錄A S12匯編指令系統匯總表 303
附錄B S12匯編指令系統匯總表解釋說明 317
附錄C S12匯編指令機器碼匯總表 322
附錄D S12X匯編指令機器碼匯總表解釋說明 326
附錄E HS12實驗開發平台 327
參考文獻 331

❹ 求「ATmega128單片機"學習資料!多謝 必加分 急急急!!!急急急!!!

http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=836230&bbs_page_no=6&bbs_id=1000

ATmega128+RTL8019開發板 配套光碟 源程序 圖紙等
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=3278690&bbs_page_no=1&search_mode=1&search_text=ATmega128&bbs_id=1000

http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=828003&bbs_page_no=1&search_mode=1&search_text=ATmega128&bbs_id=1000

http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=3281668&bbs_page_no=1&search_mode=1&search_text=ATmega128&bbs_id=1000

AVR ATmega128單片機C程序設計與實踐 目錄

第1章 AVR單片機概述1
1.1 AVR單片機簡介1
1.2 哈佛結構與馮•諾伊曼結構1
1.3 RISC與CISC2
1.4 ISP簡介2
第2章 ATmega128單片機概要4
2.1 ATmega128單片機結構和主要性能4
2.2 外部引腳7
2.3 AVR單片機CPU 內核8
2.4 ATmega128單片機的存儲器11
2.5 同步串列口——SPI16
2.6 兩線串列介面——TWI20
第3章 系統時鍾和系統控制25
3.1 時鍾選擇25
3.2 晶體振盪器27
3.3 低頻晶體振盪器27
3.4 外部RC振盪器28
3.5 標準的內部RC振盪器28
3.6 外部時鍾29
3.7 定時器/計數器振盪器29
3.8 系統控制和復位29
3.9 看門狗定時器31
第4章 ATmega128 KIT 開發環境的設置33
4.1 ATmega128 KIT的組成33
4.2 編譯器的下載及安裝40
4.3 AVR ISP 軟體的下載及安裝45
4.4 PonyProg2000的設置48
第5章 I/O埠55
5.1 I/O埠的結構及功能55
5.2 與I/O埠相關的寄存器58
5.3 編譯和程序下載59
5.4 硬體電路圖60
5.5 實驗 1——LED的移位62
5.6 實驗 2——逐個熄滅LED63
5.7 實驗 3——7段數碼管顯示數字64
第6章 外部中斷65
6.1 中斷概述65
6.2 與中斷相關的寄存器65
6.3 硬體電路圖67
6.4 實驗 4——7段數碼管顯示數字68
6.5 實驗5——沒有防抖電路的INT069
6.6 實驗 6——使用中斷標志70
第7章 定時器/計數器72
7.1 定時器/計數器簡介72
7.2 定時器/計數器0(8位)72
7.3 定時器/計數器1、3(16位定時器/計數器)77
7.4 定時器/計數器2(8位)86
7.5 輸出比較調制器(OCM1C2)87
7.6 實驗7——計數(溢出中斷)89
7.7 實驗8——計數(溢出標志)90
7.8 實驗9——定時器(溢出中斷)91
7.9 實驗10——定時器(溢出標志)92
7.10 實驗11——定時器(比較A匹配)93
第8章 7段數碼管和按鍵95
8.1 7段數碼管和 82C5595
8.2 硬體電路圖98
8.3 實驗12——7段數碼管循環顯示0~999
8.4 實驗13——用7段數碼管/顯示與被按下的按鍵相對應的數字100
8.5 實驗14——7段數碼管2顯示與被按下的按鍵相對應的數字104
8.6 實驗15——7段數碼管1和2分別顯示與被按下按鍵相對應的數字108
第9章 LED 點陣112
9.1 LED點陣簡介112
9.2 LED電光板112
9.3 硬體電路圖114
9.4 實驗 16——顯示綠色、紅色和橙色115
9.5 實驗 17——顯示文字116
9.6 實驗18——移動文字118
第10章 TEXT LCD122
10.1 Text LCD簡介122
10.2 Text LCD的種類123
10.3 LCD的結構和原理123
10.4 Text LCD模塊的構成124
10.5 硬體電路圖131
10.6 實驗19——顯示一個個文字131
10.7 實驗20——顯示一行文字133
10.8 實驗21——移動句子135
第11章 步進電動機139
11.1 步進電動機簡介139
11.2 步進電動機的分類140
11.3 步進電動機的驅動141
11.4 步進電動機驅動元件148
11.5 步進電動機相關的用語151
11.6 步進電動機的控制153
11.7 硬體電路圖153
11.8 實驗 22——步進電動機正向旋轉154
11.9 實驗 23——步進電動機正向,逆向旋轉155
11.10 實驗 24——步進電動機和中斷鍵157
第12章 RC 伺服電動機159
12.1 RC 伺服電動機簡介159
12.2 RC 伺服電動機的內部組成159
12.3 RC 伺服電動機的控制160
12.4 硬體電路圖161
12.5 實驗25——伺服電動機的正向旋轉和逆向旋轉162
12.6 實驗 26——伺服電動機旋轉相應的角度163
12.7 實驗 27——伺服電動機速度控制164
第13章 直流電動機167
13.1 直流電動機簡介167
13.2 直流電動機的驅動170
13.3 電動機旋轉感應裝置177
13.4 編譯計數器的設計178
13.5 硬體電路圖183
13.6 硬體電路圖基礎控制理論184
13.7 實驗28——電動機的正向旋轉和逆向旋轉187
13.8 實驗 29——電動機速度控制188
13.9 實驗 30——PWM控制190
第14章 A/D轉換器192
14.1 A/D轉換器的結構及功能192
14.2 與A/D轉換器相關的寄存器192
14.3 模擬比較器196
14.4 硬體電路圖198
14.5 實驗31——用7段數碼管顯示溫度值199
14.6 實驗32——用LCD顯示溫度和MIC值200
14.7 實驗33——10位解析度測試203
14.8 實驗34——ADC開關測試206
第15章 IR 感測器210
15.1 紅外線感測器概要210
15.2 硬體電路圖212
15.3 實驗35——中央測距感測器的測試213
15.4 實驗36——通過感測器的輸入使步進電動機旋轉215
15.5 實驗37——3組測距感測器的檢測217
15.6 實驗38——光電感測器的 OnOff測試220
15.7 實驗39——光電感測器的光量測試222
第16章 USART227
16.1 USART的結構及功能227
16.2 與USART相關的寄存器229
16.3 通信與超級終端的使用及USB驅動安裝方法232
16.4 實驗40——與PC的串列通信1238
16.5 實驗41——與PC的串列通信2242
16.6 實驗42——與PC的USB通信253
第17章 音頻輸出265
17.1 音頻輸出簡介265
17.2 硬體電路圖267
17.3 實驗43——輸出聲音268
17.4 實驗44——利用定時器輸出聲音269
17.5 建立Voice頭文件271
17.6 頭文件的使用方法275

www.ouravr.com
有很多可以看看

❺ 單片機原理與應用的目錄

第1章 單片微型計算機概述
1.1 單片微型計算機發展概況
1.2 微型計算機系統的概念
1.3 單片機的特點和種類
習題1
第2章 MCS-51單片機硬體結構
2.1 單片機的基本結構
2.2 單片機的引腳及片外匯流排結構
2.3 單片機的存儲器配置
2.4 CPU的時鍾及鋪助電路
習題2
第3章 MCS-51 單片機指令系統
3.1 概述
3.2 定址方式
3.3 數據傳送類指令
3.4 算術運算類指令
3.5 邏輯運算和移位指令
3.6 控制轉移指令
3.7 位操作類指令
習題3
第4章 匯編語言程序設計
4.1 概述
4.2 順序程序設計
4.3 分支程序設計
4.4 循環程序設計
4.5 子程序設計
4.6 常用程序舉例
習題4
第5章 單片機應用小系統
5.1 單片機系統擴展的必要性
5.2 幾個基本的概念
5.3 應用小系統介紹
5.4 介面電路綜述
習題5
第6章 中斷系統與定時/計數器
6.1 中斷系統結構及管理
6.2 定時器/計數器結構特點與控制
6.3 定時器/計數器計數器及中斷系統的綜合應用
習題6
第7章 串列通信及其介面
7.1 串列口基本概念與串列口控制寄存器
7.2 串列通信工作方式
習題7
第8章 單片機的基本擴展
8.1 程序存儲器擴展
8.2 數據存儲器擴展
8.3 輸入/輸出口擴展技術
習題8
第9章 單片機的鍵盤顯示介面技術
……
第10章 單片機與A/D和D/A轉換器介面
第11章 單片機應用系統設計
參考文

❻ 求單片機原理及介面技術 試題及答案

單片機模擬試卷001
一、選擇題(每題1分,共10分)
1.8031單片機的( )口的引腳,還具有外中斷、串列通信等第二功能。
a)P0 b)P1 c)P2 d)P3
2.單片機應用程序一般存放在( )
a) RAM b)ROM c)寄存器 d)CPU
3.已知某數的BCD碼為0111 0101 0100 0010 則其表示的十進制數值為( )
a) 7542H b) 7542 c) 75.42H d) 75.42
4.下列指令中不影響標志位CY的指令有( )。
a)ADD A,20H b)CLR c)RRC A d)INC A
5.CPU主要的組成部部分為( )
a)運算器、控制器 b)加法器、寄存器
c)運算器、寄存器 d)運算器、指令解碼器
6.INTEL 8051 CPU是( )位的單片機
a) 16 b)4 c)8 d)准16
7.8031復位後,PC與SP的值為( )
a )0000H,00H b) 0000H,07H c) 0003H,07H d)0800H,00H
8.當需要從MCS-51單片機程序存儲器取數據時,採用的指令為( )。
a)MOV A, @R1 b)MOVC A, @A + DPTR
c)MOVX A, @ R0 d)MOVX A, @ DPTR
9.8031單片機中既可位定址又可位元組定址的單元是( )
a)20H b)30H c)00H d)70H
10.下列哪條指令是正確的( )
a) PUSH R2 b) ADD R0,A
c) MOVX A @DPTR d) MOV @R0,A
二、填空題(每空1分,共30分)
1.一個完整的微機系統由 和 兩大部分組成。
2.8051 的引腳RST是____(IN腳還是OUT腳),當其端出現____電平時,8051進入復位狀態。8051一直維持這個值,直到RST腳收到____電平,8051才脫離復位狀態,進入程序運行狀態,從ROM H單元開始取指令並翻譯和執行。
3.半導體存儲器分成兩大類 和 ,其中 具有易失性,常用於存儲 。
4.求十進制數-102的補碼(以2位16進制數表示),該補碼為 。
5.PC存放_______________,具有___________特性。在8051中決定程序執行順序的是PC還是DPTR? 它是______位? (是,不是)SFG?
6.123= B= H。
7.8051內部有 並行口,P0口直接作輸出口時,必須外接 ;並行口作輸入口時,必須先 ,才能讀入外設的狀態。
8.MCS-51的堆棧只可設置在 ,其最大容量為 ,存取數據的原則是 。堆棧寄存器SP是 位寄存器,存放 。
9.中斷處理的全過程分為以下3個段: 、 、 。
10.定時和計數都是對 進行計數,定時與計數的區別是

三、判斷題(對者打√,錯者打×,並改正,每題1分,共10分)
1 中斷服務程序的最後一條指令是RET。
2 存儲器分成內存和外存兩大部分,其中外存可以直接與CPU交換信息。
3 P2口既可以作為I/O使用,又可以作地址/數據復用口使用。
4 在中斷響應階段CPU一定要做如下2件工作:保護斷點和給出中斷服務程序入口地址。
5 RC A為循環左移指令。
6 MOV A,30H的源操作數為立即定址方式。
7 MOV A,@A+DPTR是一條查表指令。
8 MUL AB的執行結果是高8位在A中,低8 位在B中。
9 AJMP跳轉空間最大可達到64KB 。
10 DPTR是由DPH和DPL兩個8位特殊寄存器組成的。
四、簡答題(每題5分,共15分)
1.MCS51的中斷系統有幾個中斷源?幾個中斷優先順序?中斷優先順序是如何控制的?在出現同級中斷申請時,CPU按什麼順序響應(按由高級到低級的順序寫出各個中斷源)?各個中斷源的入口地址是多少?
2.已知單片機系統晶振頻率為6MHz,若要求定時值為10ms時,定時器T0工作在方式1時,定時器T0對應的初值是多少?TMOD的值是多少?TH0=?TL0=?(寫出步驟)
3.MCS51系列單片機的內部資源有哪些?說出8031、8051和8751的區別。
五、作圖題(10分)
用6264(8K*8)構成16K的數據存儲系統。要求採用線選法產生片選信號,並計算6264的地址范圍。
六、設計題(1題13分;2題12分,共25分)
1.某單片機控制系統有8個發光二極體。試畫出89C51與外設的連接圖並編程使它們由左向右輪流點亮。
2.某控制系統有2個開關K1和K2,1個數碼管,當K1按下時數碼管加1,K2按下時數碼管減1。試畫出8051與外設的連接圖並編程實現上述要求。

單片機模擬試卷001答案
一、選擇題(每題1分,共10分)
1. D 2. B 3. B 4. D 5. A 6. C 7. B 8. B 9. A 10. D
二、填空題(每空1分,共30分)
1.一個完整的微機系統由硬體和軟體兩大部分組成。
2.8051 的引腳RST是IN腳(IN腳還是OUT腳),當其端出現高電平時,8051進入復位狀態。8051一直維持這個值,直到RST腳收到低電平,8051才脫離復位狀態,進入程序運行狀態,從ROM 0000 H單元開始取指令並翻譯和執行。
3.半導體存儲器分成兩大類:RAM ROM,其中 RAM 具有易失性,常用於存儲 臨時性數據 。
4.求十進制數-102的補碼(以2位16進制數表示),該補碼為¬¬¬¬ 9AH 。
5.PC存放_CPU將要執行的指令所在的ROM單元的地址,具有自動加1特性。在8051中決定程序執行順序的是PC還是DPTR PC ?它是16位?不是(是,不是)SFG?
6.123= 01010010 B= 52 H。
7.8051內部有 4 個並行口,P0口直接作輸出口時,必須外接 上拉電阻 ;並行口作輸入口時,必須先 將口鎖存器置1 ,才能讀入外設的狀態。
8.MCS-51的堆棧只可設置在 內RAM低128B區 ,其最大容量為 128B ,存取數據的原則是 先進後出 。堆棧寄存器SP是 8 位寄存器,存放 堆棧棧頂的地址 。9.中斷處理的全過程分為以下3個段: 中斷請求 、 中斷響應 、 中斷服務 。
10.定時和計數都是對 脈沖 進行計數,定時與計數的區別是 定時是對周期已知的脈沖計數;計數是對周期未知的脈沖計數 。
三、判斷題(對者打√,錯者打×,並改正,每題1分,共10分)
1 中斷服務程序的最後一條指令是RETRETI。×
2 存儲器分成內存和外存兩大部分,其中外內存可以直接與CPU交換信息。×
3 P2口既可以作為I/O使用,又可以作地址/數據復用口使用。√
4 在中斷響應階段CPU一定要做如下2件工作:保護斷點和給出中斷服務程序入口地址。√
5 LCRL A為循環左移指令。×
6 MOV A,30H的源操作數為立即直接定址方式。
7 MOVMOVC A,@A+DPTR是一條查表指令。×
8 MUL AB的執行結果是高低8位在A中,低高8 位在B中。×
9 AJMP跳轉空間最大可達到642KB 。
10 DPTR是由DPH和DPL兩個8位特殊寄存器組成的。 √
四、簡答題(每題5分,共15分)
1.MCS51的中斷系統有幾個中斷源?幾個中斷優先順序?中斷優先順序是如何控制的?在出現同級中斷申請時,CPU按什麼順序響應(按由高級到低級的順序寫出各個中斷源)?各個中斷源的入口地址是多少?
答:MCS51單片機有5個中斷源,2個中斷優先順序,中斷優先順序由特殊功能寄存器IP控制,在出現同級中斷申請時,CPU按如下順序響應各個中斷源的請求:INT0、T0、INT1、T1、串口,各個中斷源的入口地址分別是0003H、000BH、0013H、001BH、0023H。
2.已知單片機系統晶振頻率為6MHz,若要求定時值為10ms時,定時器T0工作在方式1時,定時器T0對應的初值是多少?TMOD的值是多少?TH0=?TL0=?(寫出步驟)
答:定時值為10ms時,定時器T0工作在方式1時,定時器T0對應的初值是1388H
TMOD的值是00000001B,TH0=13H;TL0=88H。
3.MCS51系列單片機的內部資源有哪些?說出8031、8051和8751的區別。
答:MCS51系列單片機上有1個8位CPU、128B的RAM、21個SFR、4個並行口、1個串列口、2個定時計數器和中斷系統等資源。8031、8051和8751的區別是8031內無ROM;8051內有4KB的掩膜ROM;8751內有4KB的EPROM。
五、作圖題(10分)
答:WR接6264的WE
RD接6264的OE
AB0---AB12接6264的A0---A12
DB0—DB7接6264的D0—D7
AB15、AB14分別接Y0和Y1
地址:0000H---1FFFH;2000H---3FFFH
六、設計題
1.某單片機控制系統有8個發光二極體。試畫出89C51與外設的連接圖並編程使它們由右向左輪流點亮。
答: 圖 (5分) 構思 (3分)
MOV A,#80H (1分)
UP:MOV P1,A (1分)
RR A (2分)
SJMP UP (1分)
2.某控制系統有2個開關K1和K2,1個數碼管,當K1按下時數碼管加1,K2按下時數碼管減1。試畫出8051與外設的連接圖並編程實現上述要求。
答:圖 (5分) 構思 (3分)
程序(4分)
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP AINT0
ORG 0013H
LJMP BINT1
MAIN: MOV IE,#83H
SETB IT0
SETB IT1
MOV R0,#00H
MOV DPTR,#TAB
UP: MOV A,R0
MOVC A,@A+DPTR
MOV P1,A
SJMP UP
AINT0: INC R0
CJNE R0,#10,AINT01
MOV R0,#0
AINT01: RETI
BINT1: DEC R0
CJNE R0,#0FFH,BINT11
MOV R0,#9
BINT11: RETI

❼ 單片機中TCON和TMOD寄存器如何控制

單片機中TCON控制器用於控制定時器的啟動、停止和溢出標志以及外部中斷觸發方式等。TMOD控制器,用於控制定時器T1和T0的操作模式及工作方式。高四位控制定時器1,低四位控制定時器0。

TCON控制器由高到低每個位都有定義:

1、TF1(8FH)、TF0(8DH)位分辨是定時器1和0的溢出標志。定時器產生溢出時,硬體自動置「1」,並可申請中斷,進入中斷服務程序後,由硬體自動清0。也可以作為程序查詢標志位,查詢方式下軟體清零。

2、TR1(8EH)和TR0(8CH):為定時器1和0的啟動控制位。軟體清零定時器停止工作,定時器啟動時該為置「1」。

3、IE1(8BH)和IE0(89H):外部中斷/(INT1)、外部中斷/(INT0)的中斷請求標志位,外部中斷源有請求時置「1」,由觸發方式設置復位;

4、IT1和IT0:外部中斷1和0,觸發方式選擇位。為0是電平觸發方式,為1是邊沿觸發方式。

TMOD控制器每個位定義:

其中:GATE(D7,D3)是門控位,用來控制定時器啟動操作方式。為0由軟體控制位控制,為1外部中斷引腳和軟體控制位共同控制。

C/(/T)(D6,D2)功能選擇位,為0是定時器工作方式,為1是計數器工作方式;

M1(D5、D1)M0(D4、D0)操作模式控制位:00模式0,13位計數器,TLi只用低5位;01 模式1,16位計數器;10 模式2 ,8位自動重裝計數器;11模式3 ,T停止計數,T0分成2個獨立的8位計數器。

TMOD不可以位定址,只能用位元組指令操作,TCON可以位定址。

(7)單片機原理第6章擴展閱讀

MCS-51單片機存儲器結構詳解

MCS-51單片機存儲器採用哈佛結構(har-vard),在物理結構上分為程序存儲器空間和數據存儲器空間,細分為:片內、片外程序存儲器和片內、片外數據存儲器從圖中可看出,這4個存儲空間存在地址沖突問題:

數據存儲器與程序存儲器的64KB地址空間重疊;程序存儲器中片內與片外的低4KB地址重疊;數據存儲器中片內與片外最低的256B(8031僅有低128B)地址重疊。在程序存儲器中,片內地址0000日一OOZA日的存儲空間,留給系統使用。

片內數據存儲器共256B地址空間,分為低128B和高128B。低128B又分為工作寄存器區、位定址區和用戶RAM區;高128B又叫特殊功能寄存器,這些寄存器的功能具有專門的規定,用戶不能修改其結構。存儲器中共有11個可位定址的位地址。其中,片內數據存儲器中有128個;特殊功能寄存器中有83個。

❽ 急求 單片機原理與技術 周明德 課後習題答案

第1章 作 業 答 案
1.1 微處理器、微型計算機和微型計算機系統三者之間有什麼不同?

解:
把CPU(運算器和控制器)用大規模集成電路技術做在一個晶元上,即為微
處理器。微處理器加上一定數量的存儲器和外部設備(或外部設備的介面)構成了
微型計算機。微型計算機與管理、維護計算機硬體以及支持應用的軟體相結合就形
成了微型計算機系統。

1.2 CPU在內部結構上由哪幾部分組成?CPU應該具備哪些主要功能?
解:
CPU主要由起運算器作用的算術邏輯單元、起控制器作用的指令寄存器、指
令解碼器、可編程邏輯陣列和標志寄存器等一些寄存器組成。其主要功能是進行算
術和邏輯運算以及控制計算機按照程序的規定自動運行。

1.3 微型計算機採用匯流排結構有什麼優點?
解:
採用匯流排結構,擴大了數據傳送的靈活性、減少了連線。而且匯流排可以標准
化,易於兼容和工業化生產。

1.4 數據匯流排和地址匯流排在結構上有什麼不同之處?如果一個系統的數據和地址合用
一套匯流排或者合用部分匯流排,那麼要靠什麼來區分地址和數據?
解:
數據匯流排是雙向的(數據既可以讀也可以寫),而地址匯流排是單向的。
8086CPU為了減少晶元的引腳數量,採用數據與地址線復用,既作數據匯流排也作為
地址匯流排。它們主要靠信號的時序來區分。通常在讀寫數據時,總是先輸出地址
(指定要讀或寫數據的單元),過一段時間再讀或寫數據。

1.8在給定的模型中,寫出用累加器的辦法實現15×15的程序。

解:
LD A, 0
LD H, 15
LOOP:ADD A, 15
DEC H
JP NZ, LOOP
HALT

第 2 章 作 業 答 案

2.1 IA-32結構微處理器直至Pentillm4,有哪幾種?
解:
80386、30486、Pentium、Pentium Pro、Peruium II 、PentiumIII、Pentium4。

2.6 IA-32結構微處理器有哪幾種操作模式?
解:
IA一32結構支持3種操作模式:保護模式、實地址模式和系統管理模式。操
作模式確定哪些指令和結構特性是可以訪問的。

2.8 IA-32結構微處理器的地址空間如何形成?
解:
由段寄存器確定的段基地址與各種定址方式確定的有效地址相加形成了線性地址。若末啟用分頁機制,線性地址即為物理地址;若啟用分頁機制,則它把線性地址轉為物理地址。

2.15 8086微處理器的匯流排介面部件由哪幾部分組成?
解:
8086微處理器中的匯流排介面單元(BIU)負責CPU與存儲器之間的信息傳
送。具體地說,BIU既負責從內存的指定部分取出指令,送至指令隊列中排隊
(8086的指令隊列有6個位元組,而8088的指令隊列只有4個位元組);也負責傳送執
行指令時所需的操作數。執行單元(EU)負責執行指令規定的操作。

2.16 段寄存器CS=120OH,指令指針寄存器IP=FFOOH,此時,指令的物理地址為
多少?
解:

指令的物理地址=12000H+FFOOH=21FOOH

第 3 章 作 業 答 案
3.1分別指出下列指令中的源操作數和目的操作數的定址方式。
(1)MOV SI, 30O
(2)MOV CX, DATA[DI]
(3)ADD AX, [BX][SI]
(4)AND AX, CX
(5)MOV [BP], AX
(6)PUSHF
解:
(l)源操作數為立即定址,目的操作數為寄存器定址。
(2)源操作數為變址寄存器加位移量定址,目的操作數為寄存器定址。
(3)源操作數為基址加變址定址,目的操作數為寄存器定址。
(4)源操作數和目的操作數都為寄存器定址。
(5)源操作數為寄存器定址,目的操作數為寄存器間接定址。
(6)為堆棧操作。

3.2 試述指令MOV AX,2000H和MOV AX,DSz[2000H]的區別。
解:前一條指令是立即定址,即把立即數2000H傳送至寄存器AX。後一條指令
是直接定址,是把數據(DS)段中的地址為200OH單元的內容傳送至寄存器AX。

3.3 寫出以下指令中內存操作數的所在地址。
(1)MOV AL, [BX+10]
(2)MOV [BP+10], AX
(3)INC BYTE PTR[SI十5]
(4)MOV DL, ES:[BX+SI]
(5)MOV BX , [BP+DI+2]
解:
(1)數據段BX+10單元。
(2)堆棧段BP+10單元。
(3)數據段SI+5位元組單元。
(4)附加段(ES段)BX+SI單元。
(5)堆棧段BP+DI+2單元。

3.4 判斷下列指令書寫是否正確。
(1)MOV AL, BX
(2)MOV AL, CL
(3)INC [BX]
(4)MOV 5, AL
(5)MOV [BX], [SI]
(6)M0V BL, OF5H
(7)MOV DX, 2000H
(8)POP CS
(9)PUSH CS

解:
(l)不正確,AL與BX數據寬度不同。
(2)正確。
(3)不正確,因為不明確是增量位元組還是字。
(4)不正確,立即數不能作為目的操作數。
(5)不正確,因為不明確要傳送的是位元組還是字。
(6)正確。
(7)正確。
(8)不正確,CS不能作為:pop指令的操作數。
(9)不正確,CS不能作為PUSH指令的操作數。

3.5 設堆錢指針SP的初值為1000H,AX=2000H, BX=3000H,試問:
(1)執行指令PUSH AX後SP的值是多少?
(2)再執行PUSH BX及POP AX後,SP、AX和BX的值各是多少?

解:
(1) SP=OFFEH。
(2) SP=OFFEH; AX=3000H, BX=3000H。

3.6要想完成把[3000H]送[2000H]中,用指令:
MOM [200OH], [300OH]
是否正確?如果不正確,應該用什麼方法實現?

解: 不正確。
正確的方法是:
MOV AL, [300OH]
MOV [2000H], AL

3.7 假如想從200中減去AL中的內容,用SUB 200,AL是否正確?如果不正確,應該
用什麼方法?

解:不正確。
正確的方法是:
MOV BL, 200
SUB BL, AL

3.8 試用兩種方法寫出從8OH埠讀入信息的指令。再用兩種方法寫出從4OH口輸
出10OH的指令。
解:
(1)IN AL, 80H
(2)MOV DX, 8OH
IN AL, DX
(3)MOV, AL, lOOH
OUT 40H, AL
4)MOV AL, 10OH
MOV DX,4OH
OUT DX, AL

3.9假如:AL=20H,BL=1OH,當執行CMP AL,BL後,問:
(1)AL、BL中的內容是兩個無符號數,比較結果如何?影響哪兒個標志位?
(2)AL、BL中的內容是兩個有符號數,結果又如何,影響哪幾個標志位?
解:
(l)AL=2OH,BL=1OH,O=0,S=0,Z=0,A=0,P=0,C=0。
(2)因為兩個都是符號正數,其結果與(l)相同。

3.10 若要使AL×10,有哪幾種方法,試編寫出各自的程序段?

解:
(1)使用乘法指令:
MOV BL,10
MUL BI,

(2)使用移位指令:
SHL AL,1
MOV BL,AL
SHL AL, 2
ADD AL,BL

(3)使用加法指令:
ADD AL,AL
MOV BL, AL
ADD AL, AL
ADD AL, AL
ADD AL, BL

3.11 8086匯編語言指令的定址方式有哪幾類?哪種定址方式的指令執行速度最快?

解:定址方式分為:立即數定址方式、寄存器操作數定址方式和存儲器操作數尋
址方式。其中,寄存器操作數定址方式的指令執行速度最快。

3.12 在直接定址方式中,一般只指出操作數的偏移地址,那麼,段地址如何確定?如果要用某個段寄存器指出段地址,指令中應該如何表示?

解:
默認的數據訪問,操作數在DS段;堆棧操作在SS段;串操作源操作數(SI)在DS段,目的操作數(DI)在ES段;用BP作為指針在SS段。如果要顯式地指定段地址,則在操作數中規定段寄存器。例如:

MOV AX, ES:(BX+10H)

3.13 在寄存器間接定址方式中,如果指令中沒有具體指明段寄存器,那麼如何確定段地址?
解:
在寄存器間接定址方式中,如果指令中沒有具體指明段寄存器,段地址是
隱含約定的,也就是隱含地選擇段寄存器。如操作類型為指令,則指定代碼段寄
存器CS,如操作類型為堆棧操作,則指定堆找段寄存器SS,…,如表3-1中所示。
當需要超越約定時,通常用段替代前綴加冒號":"來表示段超越,它允許程序設計者偏離任何約定的段。
例如:
MOV ES:〔BX],AX
這時數據將從寄存器EAX傳送至附加段中由EBX定址的存儲單元,而不是傳送
到數據段中。

3.14 採用寄存器間接定址方式時,BX、BP、SI、DI分別針對什麼情況來使用?這4個寄存器組合間接定址時,地址是怎樣計算的?請舉例說明。
解: 在寄存器間接定址方式下,BX和BP作為間址寄存器使用,而SI、DI作為
變址寄存器使用。除BP間址默認的段為堆棧段,其他的都默認為數據段。它們
都可以單獨使用,或加上偏移量或組合使用。如:
[BX +n]
LBP +n]
[SI +n]
[DI +n]
[BX +SI +n]
[BX +DI +n]
[BP +SI +n]
[BP +DI +n]

3.15 設DS=2100H,SS=5200H,BX=1400H,BP=6200H,說明下面兩條指令所進行
的具體操作:
MOV BYTE PTR[BP],200
MOV WORD PTR[BX],2000
解:前一條指令是把立即數(應是位元組)200,傳送至堆棧段(BP的默認段〉偏移
量由BP規定的位元組單元,地址為:52000H+620OH=58200H
第二條指令是把立即數.2000,傳送至數據段(BX的默認段)偏移量由BX規定的
字單元,地址為:21000H+1400H = 22400H。
3.16 使用堆錢操作指令時要注意什麼問題?傳送指令和交換指令在涉及內存操作數時應該分別要注意什麼問題?

解:使用堆棧指令可以把內存單元作為一個操作數(從內存到內存)。但堆棧固定在堆棧段且只能由SP指向。且堆棧操作要修改堆核指針。MOV指令不能實現內存單元間的數據傳送。XCHG指令是交換,有一個操作數必須是寄存器。

3.17下面這些指令中哪些是正確的?哪些是錯誤的?若是錯誤的,請說明原因。
(1)XCHG CS, AX
(2)MOV [BX], [1000]
(3)XCHG BX, IP
(4)PUSH CS
(5)POP CS
(6)IN BX, DX
(7)MOV BYTE[BX], 100O
(8)MOV CS, [1000]
解:
(l)錯誤,CS不能交換。
(2)錯誤,MOV指令不能在內存間傳送。
(3)錯誤,IP不能交換。
(4)錯誤,CS可以作為PUSH指令的操作數。
(5)錯誤,CS可以作為POP指令的操作數。
(6)錯誤,IN指令的目的操作數是累加器。
(7)錯誤,目的操作數是位元組單元。
(8〉錯誤,CS不能作為MOV指令的目的操作數。

3.18 以下是格雷碼的編碼表,
O 0000
1 0001
2 0011
3 0010
4 0110
5 0111
6 0101
7 0100
8 1100
請用換碼指令和其他指令設計一個程序段,以實現由格雷碼向ASCII碼的轉換。
解:
MOV BX,TABLE
MOV SI,ASCII_TAB
MOV AL,0
MOV CX,10
TRAN: XLAT TABLE
MOV DL,AL
ADD DL,30H
MOV [SI],DL
INC AL
LOOP TRAN
3.19 使用乘法指令時,特別要注意先判斷是用有符號數乘法指令還是用無符號數乘法指令,這是為什麼?

解:因為有符號數和無符號數,其數的乘法是一樣的。但結果的符號取決於兩
個操作數的符號。

3.20 位元組擴展指令和字擴展指令一般用在什麼場合?舉例說明。

解:主要用於位元組相除和字相除之前,把被除數擴展為兩倍寬度的操作數。

3.21 什麼叫BCD碼?什麼叫組合的BCD碼?什麼叫非組合的BCD碼?8086匯編語言在對BCD碼進行加、減、乘、除運算時,採用什麼方法?

解:BCD碼為十進制編碼的二進制數。組合的BCD數是把兩位BCD加在一個位元組中,高位的在高4位。非組合的BCD碼是把一位BCD數放在一個位元組的低4位,高4位為0。8086在BCD加、減和乘法運算以後用BCD調整指令把結果調整為正確的BCD數。在BCD除法之前先用BCD調整指令再做除法.

3.22 用普通運算指令執行BCD碼運算時,為什麼要進行十進制調整?具體地講,在進行BCD碼的加、減、乘、除運算時,程序段的什麼位置必須加上十進制調整指令?

解:因為8086指令把操作數作為二進制數進行二進制運算,要得到正確的BCD結果,需要進行調整。在加、減、乘法指令之後加上BCD調整指令,而在除法指令之前先用BCD調整指令再用除法指令。

第4章 作業答案
4.1 在下列程序運行後,給相應的寄存器及存儲單元填入運行的結果:
MOV AL, 1OH
MOV CX, 100OH
MOV BX , 2000H
MOV [CX],AL
XCHG CX, BX
MOV DH, [BX]
MOV DL, 01H
XCHG CX, BX
MOV [BX],DL
HLT
解:寄存器及存儲單元的內容如下:
AL = 1OH
BL = OOH
BH = 2OH
CL = OOH
CH = 1OH
DH = 1OH
(10O0H) = lOH
(200OH) = 0lH
2.要求同題4.1,程序如下:
MOV AL, 50H
MOV BP, 100OH
MOV BX, 200OH
MOV [BP], AL
MOV DH, 20H
MOV [BX], DH
MOV DL, OlH
MOV DL, [BX]
MOV CX, 300OH
HLT
解:寄存器及存儲單元的內容如下:
AL = 5OH
BL = OOH
BH = 20H
CL = OOH
CH = 30H
DL = 20H
DH = 2OH
BP = 100OH
(10OOH) = 5OH
(20OOH) = 20H
4.3 自1000H單元開始有一個100個數的數據塊,若要把它傳送到自200OH開始的存
儲區中去,可以採用以下3種方法實現,試分別編製程序以實現數據塊的傳送。
(l)不用數據塊傳送指令
(2)用單個傳送的數據塊傳送指令
(3)用數據塊成組傳送指令。
解:
(1) LEA SI, 1OOOH
LEA DI, 200OH
MOV CX, 100
L1: MOV AX, [SI]
MOV [DI], AX
LOOP Ll
HLT

(2) LEA SI, 100OH
LEA DI, 2000H
MOV CX, 100
CLD
L1: MOVSB
LOOP L1
HLT

(3) LEA SI, 100OH
LEA DI, 200OH
MOV CX, 100
CLD
REP MOVSB
HLT
4.4 利用變址寄存器,編寫一個程序,把自1000H單元開始的100個數傳送到自1070H
開始的存儲區中去。
解:
LEA SI, 100OH
LEA DI, 1070H
MOV CX, 100
CLD
REP MOVSB
HLT
4.5 要求同題4.4,源地址為2050H,目的地址為2000H,數據塊長度為50.
解:
LEA SI, 205OH
LEA DI, 200OH
MOV CX, 50
CLD
REP MOVSB
HLT
4.6 編寫一個程序,把自100OH單元開始的100個數傳送'至105OH開始的存儲區中
(注意:數據區有重疊)。
解:
LEA SI, 100OH
LEA DI , 1050H
ADD SI, 63H
ADD DI, 63H
MOV CX, 100
STD
REP MOVSB
HLT
4.7 在自0500H單元開始,存有100個數。要求把它傳送到1000H開始的存儲區中,
但在傳送過程中要檢查數的值,遇到第一個零就停止傳送。
解:
LEA SI, 050OH
LEA DI, 10OOH
MOV CX, 100
N1: MOV AL, [SI]
CMP AL, 0
JZ N2
MOV [DI], AL
INC SI
INC DI
LOOP N1
N2: HLT

4.14若在0500H單元中有一個數
(1)利用加法指令把它乘2,且送回原存儲單元(假定X×2後仍為一個位元組);
(2)X×4;
(3)X×10(假定X×l0≤255).
解:
(1) LEA BX, 050OH
MOV AL, [BX]
ADD AL, AL
MOV [BX], AL

(2) LEA BX, 0500H
MOV AL, [BX]
ADD AL, AL
ADD AL, AL
MOV [BX], AL

(3) LEA BX, 050OH
MOV AL, [BX]
ADD AL, AL
MOV DL, AL
ADD AL, AL
ADD AL, AL
ADD AL, DL
MOV [BX], AL

第 5 章 作業答案
5.1 匯流排周期的含義是什麼?8086/8088CPU的基本匯流排周期由幾個時鍾組成?如果一個CPU的時鍾頻率為8MHz,那麼,它的一個時鍾周期是多少?一個基本匯流排周期是多少?如果主頻為5MHz呢?

解: CPLI訪問匯流排(從內存儲器或I/0埠讀/寫位元組或字)所需的時間稱為匯流排周期。8086/8088CPU的基本匯流排周期由4個時鍾組成。若CPU的時鍾頻率為8(5)MHz,時鍾周期為1/8MHz=125(1/5MHz=2O)ns,基本匯流排周期為4×125(200)ns=500(800)ns

5.2 在匯流排周期的TI、T2、T3、T4狀態,CPU分別執行什麼動作?什麼情況下需要插入
等待狀態Tw? Tw在哪兒插入? 怎樣插入?

解: 下面以存儲器讀為例進行說明。
在Tl周期:輸出地址信號、地址鎖存允許信號、內存或I/O埠訪問控制信號;
在T2周期:CPIJ開始執行數據傳送操作,此時,8086CPU內部的多路開關進行切換,將地址/數據線AD15~AD0上的地址撤銷,切換為數據匯流排,為讀寫數據作準備。8288匯流排控制器發出數據匯流排允許信號和數據發送/接收控制信號DT/R允許數據收發器工作,使數據匯流排與8086CPU的數據線接通,並控制數據傳送的方向。同樣,把地址/狀態線A19/S6~A16/S3切換成與匯流排周期有關的狀態信息,指示若干與周期有關的情況。
在T3周期:開始的時鍾下降沿上,8086CPU采樣READY線。如果READY信號有效(高電平),則在T3狀態結束後進人TA狀態。在T4狀態開始的時鍾下降沿,把數據匯流排上的數據讀入CPU或寫到地址選中的單元。
在T4狀態:結束匯流排周期。如果訪問的是慢速存儲器或是外設介面,則應該在Tl狀態輸出的地址,經過解碼選中某個單元或設備後,立即驅動READY信號到低電平。8086CPU在T3狀態采樣到READY信號無效,就會插入等待周期Tw,在Tw狀態CPU繼續采樣READY信號;直至其變為有效後再進人T4狀態,完成數據傳送,結束匯流排周期。在T4狀態,8086CPU完成數據傳送,狀態信號 。變為無操作的過渡狀態。在此期間,8086CPU結束匯流排周期,恢復各信號線的初態,准備執行下一個匯流排周期。

第 6 章 作 業 答 案
6.1 若有一單板機,具有用8片2114構成的4KBRAM,連線如圖創所示。

若以每1KB RAM作為一組,則此4組RAM的基本地址是什麼?地址有沒有重疊區?每一組的地址范圍為多少?

解:RAM的基本地址為:
第一組 OOOOH ~ 03FFH
第二組 4000H ~ 43FFH
第三組 8000H ~ 83FFH
第四組 COOOH ~ C3FFH
地址有重疊區。每一組的地址范圍為OOOH ~ 3FFH(1024個位元組)。

6.4 若要擴充1KB RAM(用2114片子),規定地址為8000H~83FFH,地址線應該如何
連接?
解: 擴充lKB RAM至規定地址8000H ~ 83FFH,其地址線的低10位接晶元,高6位地址(Al5 ~A10 = 100000)產生組選擇信號。

第 7 章 作 業 答 案
7.1 外部設備為什麼要通過介面電路和主機系統相連?

解: 因為外部設備種類繁多,輸入信息可能是數字量、模擬量或開關量,而且輸入速度、電平、功率與CPU差距很大。所以,通常要通過介面電路與主機系統相連。

7.4 CPU和輸入輸出設備之間傳送的信息有哪幾類?
解:CPU和輸入輸出設備之間傳送的信息主要有3類。
(l)數據
在微型計算機中,數據通常為8位、16位或32位。
(2)狀態信息
在輸入時,有輸入設備的信息是否准備好;在輸出時有輸出設備是否有空,若輸出設備正在輸出信息,則以忙指示等。
(3)控制信息
例如,控制輸入輸出設備啟動或停止等。

7.9 設一個介面的輸入埠地址為0100H,狀態埠地址為0104H,狀態埠中第5位為1表示輸入緩沖區中有一個位元組准備好,可以輸入。設計具體程序以實現查詢式
輸入。
解: 查詢輸入的程序段為:
POLl : IN AL, 0104H
AND AL, 20H
JZ POLl
IN AL, 0100H

第 8 章作 業 答 案
8.1 在中斷響應過程中,8086CPU向8259A發出的兩個RT互信號分別起什麼作用?
解: CPU發出的第一個 脈沖告訴外部電路,其提出的中斷請求已被響應,
應准備將類型號發給CPU,8259A接到了這個 脈沖時,把中斷的最高優先順序
請求置入中斷狀態寄存器(ISR)中,同時把IRR(中斷請求寄存器)中的相應位復
位。CPU發出的第二個 脈沖告訴外部電路將中斷的類型號放在數據匯流排上。

8.2 8086CPU最多可以有多少個中斷類型?按照產生中斷的方法分為哪兩大類?
解:8086CPU最多可以有256個中斷類型。按照產生中斷的方法,可以分為內
部中斷(軟體中斷)和外部(硬體中斷)中斷兩大類。

8.9 在編寫中斷處理子程序時,為什麼要在子程序中保護許多寄存器?
解: 因為在用戶程序運行時,會在寄存器中有中間結果,當在中斷服務程序中要
使用這些寄存器前要把這些寄存器的內容推至堆棧保存(稱為保護現場)。在從中斷服務程序返回至用戶程序時把這些內容從堆找恢復至寄存器中(稱為恢復現場)。

8.12 若在一個系統中有5個中斷源,其優先權排列為:1、2、3、4、5,它們的中斷服務程序的入口地址分別為:3000H、302OH、3050H、3080H、30AOH。編寫一個程序,當有中斷請求CPU響應時,能用查詢方式轉至申請中斷的優先權最高的源的中斷服
務程序。
解: 若5個中斷源的中斷請求放在一中斷狀態寄存器中,按優先權分別放在狀態的7位(優先權最高)至位3中。查詢方法的程序段為:
IN AL, STATUS
CMP AL, 80H
JNE N1
JMP 3000H
N1: IN AL, STATUS
CMP AL, 40H
JNE N2
JMP 3020H
N2: IN AL, STATUS
CMP AL, 20H
JNE N3
JMP 3050H
N3: IN AL, STATUS
CMP AL, 10H
JNE N4
JMP 3080H
N4: IN AL, STATUS
CMP AL, 08H
JNE N5
JMP 30A0H
N5: RET

第9章 作 業 答 案
9.3 在某一應用系統中,計數器/定時器8253地址為340H~343H,定時用作分頻器(N為分頻系數),定時器2用作外部事件計數器,如何編制初始化程序?
解:
定時器0用作分頻器,工作方式2,其初始化程序為:
MOV AL, 34H
OUT 343H, AL
MOV AL, N1
OUT 342H, AL
MOV AL, N2
OUT 342H, AL
定時器2用作外部事件計數器,工作在方式0,其初始程序:
MOV AL, 0B0H
OUT 343H,AL
MOV AL, N1
OUT 342H,AL
MOV AL, N2
OUT 342H,AL

9.4 若已有一頻率發生器,其頻率為1MHZ,若要示求通過計數器/定時器8253,著重產生每秒一次的信號,8253應如何連接?編寫出初始化程序。
解:
1MHZ的信號要變為每秒一次,則需經過106分頻。一個通道的計數為16 位最大為65536。故需要需兩個通道級連,則每個通道計數為1000。用通道0和通道1級連,都工作在方式2,初始化程序為:
MOV AL, 34H
OUT 343H, AL
MOV AL, 0E8H
OUT 342H, AL
MOV AL, 03
OUT 342H, AL
MOV AL, 74H
OUT 343H, AL
MOV AL, 0E8H
OUT 342H, AL
MOV AL, 03
OUT 342H, AL

9.9 編程將計數器/定時器8253計數器0設置為模式1,計數初值3000H;計數器1設置為模式2初值為2010H;計數器2設置為模式4初值為4030H;

解: 若埠地址為:0F8H~0FBH,初始化程序為:
MOV AL, 32H
OUT 0FBH, AL
MOV AL, 00H
OUT 0F8H, AL
MOV AL, 30H
OUT 0F8H, AL
MOV AL, 74H
OUT 0FBH, AL
MOV AL, 10H
OUT 0F9H, AL
MOV AL, 20H
OUT 0F9H, AL
MOV AL, 0B8H
OUT 0FBH, AL
MOV AL, 30H
OUT 0FAH, AL
MOV AL, 40H
OUT 0FAH, AL

第 10 章 作 業 答 案
10.4 可編程並行介面晶元8255A的3個埠在使用時有什麼差別?

解:通常埠A或B作為輸入輸出的數據埠(埠A還可以作為雙向數據埠),而埠C作為控制或狀態信息的埠,它在"方式"字的控制下,可以分成兩個4位的埠。每個埠包含一個4位鎖存器。它們分別與埠A和B配合使用,可用以作為控制信號輸出,或作為狀態信號輸入。

10.7 8255A有哪幾種基本工作方式?對這些工作方式有什麼規定?
解:8255A有3種基本的工作方式:
方式0-----基本輸入輸出:
方式1-----選通輸入輸出;
方式2-----雙向傳送。

10.8 設置8255A工作方式,8255A的控制口地址為OOC6H。要求埠A工作在方式1,輸
入;埠B工作在方式0,輸出;埠C的高4位配合埠A工作;低4位為輸入。
解:按要求的方式控制字為:10111001B。編程語句為:
MOV AL, 0B9H
OUT OOC6H, AL ;

10.9 設可編程並行介面晶元8255A的4個埠地址為OOCOH、00C2H、00C4H、OOC6H,要求用置0/置1方式對PC6置1,對PC4置0。
解:對埠C的PC6置1的控制字為: 00001101B,
對PC4置O的控制字為: 0000100OB。
程序段為:
MOV AL, DH
OUT OOC6H, AL
MOV AL, 08H.
OUT 00C6H, AL

❾ 單片機原理及應用技術的內容簡介

《單片機原理及應用技術》共包括10章內容,其中第1章為單片機概述部分,介紹了單片機相關的幾個基本概念;第2、3、6章是單片機的理論基礎,為單片機的原理部分,包括單片機的基本結構、指令系統以及各功能模塊的應用,第4章為單片機C程序設計基礎部分;第5章介紹了單片機的集成開發環境;第7章介紹了單片機的常用介面電路設計;第8章介紹了常用的串列匯流排的應用;這兩章為單片機的基本應用部分。第9章為單片機模擬部分,

閱讀全文

與單片機原理第6章相關的資料

熱點內容
如何在vps上搭建自己的代理伺服器 瀏覽:742
nginxphp埠 瀏覽:401
內臟pdf 瀏覽:150
怎麼看雲伺服器架構 瀏覽:83
我的世界國際服為什麼登不進伺服器 瀏覽:994
微盟程序員老婆 瀏覽:928
intellij創建java 瀏覽:110
java連接odbc 瀏覽:38
啟動修復無法修復電腦命令提示符 瀏覽:359
手機編程是什麼 瀏覽:98
山東移動程序員 瀏覽:163
蘇州java程序員培訓學校 瀏覽:477
單片機液晶驅動 瀏覽:854
魔拆app里能拆到什麼 瀏覽:131
新預演算法的立法理念 瀏覽:144
wdcpphp的路徑 瀏覽:134
單片機p0口電阻 瀏覽:926
瀏覽器中調簡訊文件夾 瀏覽:594
五菱宏光空調壓縮機 瀏覽:68
為什麼app佔用幾百兆 瀏覽:680