級_單片機課程設計_學生.doc_第1頁
級_單片機課程設計_學生.doc_第2頁
級_單片機課程設計_學生.doc_第3頁
級_單片機課程設計_學生.doc_第4頁
級_單片機課程設計_學生.doc_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、11級_單片機課程設計指導老師:廖迎新設計題目:高精度電子溫度計設計要求:利用單片機STC12C5608AD、溫度傳感器DS18B20和數(shù)碼塊等,設計一個智能溫度檢測器。元件清單:元件型號、參數(shù)圖中標號數(shù)量10uF電解電容C5,C7,CR130。1 uF電容C6,C823位單排針座CON3139 pF 電容(貼片)CY1,CY22發(fā)光二級管D1713位單排針座(DS18B20)JK112位共陰數(shù)碼塊LED1, LED222位單排針座(電源)POWER118050 NPN三極管Q2,Q3,Q4,Q5410kW/5.1kW 電阻(貼片)R17,RST1321kW電阻RS1,RS2,RST2,RST

2、3,RST9,RST106510W 電阻RST1,RST4,RST5,,RST6,RST7,RST8,RST11,RST12, R189撥動開關S11復位按鈕ST11STC12C5608ADU21STC12C5608AD插座1個12MHz 晶振Y11電源線1根下載器1個硬件電路:程序設計:1、數(shù)碼塊驅動² STC12C5410AD單片機上電復位后為準雙向口/弱上拉模式,2V以上為高電平,0。8V以下為低電平.每個I/O口驅動能力可達20mA,但整個芯片不得超過55mA(或90mA)。I/O口工作方式設定如下(n=3,2,1,0)P3M07:0P3M17:0I/O口模式00準雙向口01

3、強推挽輸出10僅輸入11開漏l P3寄存器可位尋址,P3M1、P3M0不可位尋址.P2口設定:P2M1,P2M0.P2寄存器可位尋址,P2M1、P2M0不可位尋址。P1口設定:P1M1,P1M0。P1寄存器可位尋址,P1M1、P1M0不可位尋址。P0口設定:P0M1,P0M0。P0寄存器可位尋址,P0M1、P0M0不可位尋址。P2M0=0x00; /P2口設為推挽模式,提高數(shù)碼塊亮度P2M1=0xff;P3M0=0x00; /P3口設為推挽模式P3M1=0xff;2、DS18B20訪問圖2 溫度采樣流程圖發(fā)DS18B20復位信號發(fā)跳過ROM命令CCH發(fā)讀溫度命令BEH發(fā)啟動轉換命令44HY轉換

4、結束否否?N發(fā)DS18B20復位信號發(fā)跳過ROM命令CCH接收并保存溫度數(shù)據(jù) 返回圖1 主程序流程圖T0初始化,實現(xiàn)4ms定時(每個數(shù)碼塊顯示時間)開T0溢出中斷,并啟動T0調整顯存采樣時間到否?Y對溫度采樣TR0=0(禁止中斷)TR0=1(開中斷)對采樣數(shù)據(jù)進行處理,采樣標志清零N圖3 T0中斷服務子程序Y返回顯示1位數(shù),并準備下次顯示數(shù)的序號采樣標志置11s到否?開始Nl INITIALIZATION TIMINGl READ/WRITE TIME SLOT TIMING負數(shù)補碼取反+1=負數(shù)原碼大小(負數(shù)補碼-1)取反=負數(shù)原碼大小YDQ0=0,之后延時2us返回DQ0=1,之后延時2u

5、s保存接收到的1位數(shù)據(jù),之后延時120us接收完8位否?開始N圖4讀1個字節(jié)NYDQ0=0,之后延時2us返回DQ0=1,之后延時2us發(fā)送1位數(shù)據(jù),之后延時120us發(fā)送完8位否?開始圖5寫1個字節(jié)TEMPERATURE REGISTER FORMATbit7bit6bit5bit4bit3bit2bit1bit0LS Byte232221202-1222324bit15bit14bit13bit12bit11bit10bit9bit8MS ByteSSSSS262524TEMPERATURE/DATA RELATIONSHIPTEMPERATUREDIGITAL OUTPUT(Binary

6、)DIGITAL OUTPUT(Hex)+125°C0000 0111 1101 000007D0h+85°C*0000 0101 0101 00000550h+25.0625°C0000 0001 1001 00010191h+10。125°C0000 0000 1010 001000A2h+0。5°C0000 0000 0000 10000008h0°C0000 0000 0000 00000000h-0.5°C1111 1111 1111 1000FFF8h-10。125°C1111 1111 0101 11

7、10FF5Eh-55°C1111 1100 1001 0000FC90h開發(fā)工具Keil開發(fā)工具選擇Intel80C51芯片,在源文件中加“#include<STC12C5608AD。H”STCISPV4。83下載工具MCU Type ® COM ® 打開程序文件® DOWNLOAD/下載CP2102下載器驅動軟件程序1。Cinclude reg51。h>define uint unsigned intvoid delay(uint i)/延時函數(shù) while(i);void main()delay(1000);程序1.C的反匯編程序:傳統(tǒng)1

8、2T的8051模式(1T模式)LJMP STARTUPSTARTUP :MOV R0,#0X7FCLR AIDATALOOP:MOV R0,ADJNZ R0, IDATALOOPMOV SP,0X07LJMP MAINMAIN:MOV R7,#0xE8; 12TOSC(2 TOSC)MOV R6,#0x03; 12TOSC(2 TOSC)LJMP DELAY; 24TOSC(4 TOSC)DELAY: MOV A,R7; 12 TOSC(1 TOSC)DEC R7; 12 TOSC(3 TOSC)MOV R4,0X06; 24TOSC(4 TOSC)JNZ D1; 24 TOSC(3 TOSC

9、)DEC R6; 12 TOSC(3TOSC)D1:ORL A,R4; 12 TOSC(2 TOSC)JNZ DELAY; 24 TOSC(3 TOSC)(若R6,R7都減到0,退出)RET; 24 TOSC(4 TOSC)R6=y,R7=x時,延遲時間=48+108x+108256+12* y+12 +24 (TOSC)=84+108*(y256+x)+12y (TOSC)(或8+16x +16*256+3 * y +3+4=15+16*(y256+x)+3y (TOSC))附錄A 電阻電容參數(shù)識別一、電阻1、電阻的參數(shù)標注方法有3種,即數(shù)標法、色標法和直標法。1)數(shù)標法。主要用于貼片等小體

10、積電路,如:472 表示 47×100(即4。7K); 104則表示100K2)色環(huán)標注法.常用的有四色環(huán)電阻 五色環(huán)電阻(精密電阻)。色環(huán)順序識別技巧:(1)最常用的表示電阻誤差的顏色是:金、銀、棕,金環(huán)和銀環(huán)絕少用做電阻色環(huán)的第一環(huán),所以電阻上若有金環(huán)和銀環(huán),則這是最末一環(huán)。 (2)棕色環(huán)是否是誤差標志的判別??梢愿鶕?jù)色環(huán)之間的間隔判別:如一個五道色環(huán)的電阻,第五環(huán)和第四環(huán)之間的間隔比第一環(huán)和第二環(huán)之間的間隔要寬一些。 (3)利用電阻的生產(chǎn)序列值加以判別.如一個電阻的色環(huán)讀序是:棕、黑、黑、黃、棕,其值為:100×104=1M誤差為1,屬于正常的電阻系列值,若是反順序讀

11、:棕、黃、黑、黑、棕,其值為140×100=140,誤差為1.顯然后一種排序的電阻值在生產(chǎn)系列中沒有,故后一種色環(huán)順序不對。四色環(huán)電阻:如“棕 紅 紅 金”,則阻值為12×102=1。2K,誤差為±5% 五色環(huán)電阻:如“紅 紅 黑 棕 金”,則阻值為220×101=2。2K,誤差為±5%二、電容1、電容的參數(shù)標注方法有3種,即數(shù)標法、色標法和直標法。大容量電容的容量值直接標明,如10 uF/16V小容量電容的容量值用字母表示或數(shù)字表示字母表示法:1m=1000 uF,1P2=1.2PF,1n=1000PF 數(shù)字表示法:一般用三位數(shù)字表示容量大小

12、,前兩位表示有效數(shù)字,第三位數(shù)字是倍率。如:102表示10×102PF=1000PF,224表示22×104PF=0.22 uF(其中:1F=103 mF =106 uF =109 nF =1012 pF)2、電容容量誤差表符號 F G J K L M允許誤差 ±1 ±2% ±5% ±10 ±15 ±20%如:一瓷片電容為104J表示容量為0。 1 uF、誤差為±5%。 附錄B STC12C5608AD單片機² STC12C5608AD:工作電壓3.55。5V,4KB Flash程序存儲器,76

13、8Bytes SRAM,8路10位A/D轉換電路等。² 若用戶板使用外部晶振,必須在下載程序時,在“STCISP”下載軟件界面設置“外部晶體或時鐘”。² STC12C5608AD是1T的8051單片機,為了兼容傳統(tǒng)的8051,定時器0和定時器1在復位后是傳統(tǒng)8051的速度,即12分頻。² STC12C5608AD單片機上電復位后為準雙向口/弱上拉模式,2V以上為高電平,0.8V以下為低電平。每個I/O口驅動能力可達20mA,但整個芯片不得超過55mA。I/O口工作方式設定如下(n=3,2,1,0)P3M07:0P3M17:0I/O口模式00準雙向口01強推挽輸出1

14、0僅輸入11開漏舉例:MOV P3M0,10100000B;MOV P3M1,#11000000BP3。7為開漏,P3。6為強推挽輸出,P3。5為高阻輸入,/P3。4/ P3.3/ P3。2/ P3.1/ P3.0為準雙向口。l P3寄存器可位尋址,P3M1、P3M0不可位尋址。P2口設定:P2M1,P2M0。P2寄存器可位尋址,P2M1、P2M0不可位尋址。P1口設定:P1M1,P1M0。P1寄存器可位尋址,P1M1、P1M0不可位尋址。P0口設定:P0M1,P0M0。P0寄存器可位尋址,P0M1、P0M0不可位尋址。附錄C STC12C5410AD單片機² STC12C5410A

15、D:工作電壓3。5-5。5V,10KB Flash程序存儲器,512Bytes SRAM,8路10位A/D轉換電路等。² STC12C5410AD是1T的8051單片機,為了兼容傳統(tǒng)的8051,定時器0和定時器1在復位后是傳統(tǒng)8051的速度,即12分頻.² STC12C5608AD單片機上電復位后為準雙向口/弱上拉模式,2V以上為高電平,0.8V以下為低電平。每個I/O口驅動能力可達20mA,但整個芯片不得超過55mA。I/O口工作方式設定如下(n=3,2,1,0)P3M07:0P3M17:0I/O口模式00準雙向口01強推挽輸出10僅輸入11開漏舉例:MOV P3M0,#

16、10100000B;MOV P3M1,11000000BP3。7為開漏,P3.6為強推挽輸出,P3。5為高阻輸入,/P3。4/ P3.3/ P3.2/ P3。1/ P3。0為準雙向口。l P3寄存器可位尋址,P3M1、P3M0不可位尋址.P2口設定:P2M1,P2M0。P2寄存器可位尋址,P2M1、P2M0不可位尋址。P1口設定:P1M1,P1M0。P1寄存器可位尋址,P1M1、P1M0不可位尋址。P0口設定:P0M1,P0M0。P0寄存器可位尋址,P0M1、P0M0不可位尋址。附錄D DS1820* DQ(引腳2):數(shù)據(jù)輸入輸出引腳,漏極開路。單線總線要求5k左右的上拉電阻。 DS1820的

17、兩種充電方式:1) DQ充電方式。DQ=H,給內部電容充電;L停止充電.2)用外部5V 電源供電.* DS1820 8位數(shù)據(jù)發(fā)送順序:先低位D0,再高位圖1 DS1820 方框圖DS18B20 內部寄存器陣列1) 暫存存貯器0Temp_read低字節(jié)1Temp_read高字節(jié)2高限報警溫度值TH3低限報警溫度值TL4保留5保留6計數(shù)(Count_remain)7單位溫度計數(shù)(Count_per_c)8CRC* 2、3字節(jié):是TH 、TL 的易失性拷貝,在每一次上電復位時被刷新。* 7字節(jié):是計數(shù)寄存器,用于獲得較高的溫度分辨率。 8字節(jié):為循環(huán)冗余校驗CRC 字節(jié)它,是前面8 個字節(jié)的CRC

18、值。 DS1820在1 秒(典型值)內把溫度變換為數(shù)字。溫度數(shù)字輸出/二進制數(shù)字輸出十六進制+12500000000 1111101000FAh+2500000000 001100100032h+1/200000000 000000010001h+000000000 000000000000h1/211111111 11111111FFFFh-2511111111 11001110FFCEh-5511111111 10010010FF92h溫度/數(shù)據(jù)關系(數(shù)字輸出=(溫度/2)的補碼)小數(shù):0, 0.0 1, 0.57位整數(shù)8位符號高精度溫度計算公式:* 訪問DS1820 的協(xié)議:初始化ROM

19、 操作命令存貯器操作命令處理/數(shù)據(jù)1) 初始化:總線主機發(fā)一復位脈沖(最短為480µ s 的低電平信號)后,釋放總線;DS1820檢測到I/O 引腳的上升沿后,等待1560µs,接著送出存在脈沖(60-240µs 的低電平信號)。2) ROM 操作命令:主機檢測到從屬器件存在,可發(fā)器件ROM 操作命令之一:(1) Read ROM(讀ROM) 33h:主機讀DS1820 的8 位產(chǎn)品系列編碼、48 位序列號以及8 位CRC。(2) Match ROM( 符合 ROM) 55h:命令后繼以64 位的ROM 數(shù)據(jù)序列,允許總線主機對多點總線上特定的DS1820尋址,只

20、有與64 位ROM 序列嚴格相符的DS1820 才能對后繼的存貯器操作命令作出響應,所有與64位ROM 序列不符的從片將等待復位脈沖;(3) Skip ROM( 跳過ROM ) CCh:允許主機不提供64 位ROM 編碼而訪問存儲器;(4) Search ROM( 搜索ROM) F0h:允許主機使用一種消去elimination 處理來識別總線上所有從片的64 位ROM 編碼;(5) Alarm Search(告警搜索) ECh:命令流程與搜索ROM 命令相同,但僅在最近一次溫度測量出現(xiàn)告警的情況下,DS1820才對此命令作出響應,告警的條件定義為溫度高于TH 或低于TL.只要DS1820 一

21、上電,告警條件就保持在設置狀態(tài),直到另一次溫度測量顯示出非告警值或者改變TH 或TL 的設置,使得測量值再一次位于允許的范圍之內,貯存在EEPROM 內的觸發(fā)器值用于告警. 3) 存貯器操作命令指令代碼說明單總線的操作注溫度變換44h啟動溫度變換讀溫度轉換狀態(tài):0,DS1820忙;1,溫度變換完成溫度變換需要2 秒鐘讀暫存存儲器BEh從暫存存儲器讀字節(jié)讀9 字節(jié)數(shù)據(jù)始于字節(jié)0,直至字節(jié)8(CRC)。寫暫存存儲器4Eh寫字節(jié)至暫存存儲器2 和3處(TH 和TL 溫度觸發(fā)器)寫數(shù)據(jù)至地址2和3的2 個字節(jié)復制暫存存儲器43h把暫存存儲器復制到非易性存儲器E2PROM(僅地址2和3)讀復制狀態(tài)重新調

22、出E2PROME3h把貯存在非易失性存儲器內的數(shù)值重新調入暫存存儲器(溫度觸發(fā)器)讀溫度忙狀態(tài)讀電源B4h發(fā)DS1820 電源方式的信號至主機讀電源狀態(tài)存儲器操作舉例:溫度變換與內插假定采用外部電源,且僅有一個DS1820主機方式數(shù)據(jù)(LSB在先)注 釋TXCCh跳過ROM命令TX44h啟動溫度變換命令RX1 個數(shù)據(jù)字節(jié)讀“忙”標志3 次。主機連續(xù)讀字節(jié)或位,直至數(shù)據(jù)為FFh(溫度變換完成)TXReset (復位) 復位脈沖(最短為480µ s 的低電平信號)RXPresence(存在)存在脈沖(60240µs 的低電平信號)TXCCh 跳過ROM命令TXBEh Read Scratchpad 讀暫存存儲器命令RX9 個數(shù)據(jù)字節(jié)讀整個暫存存儲器。主機計算從暫存存

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論