案例2-單片機(jī)最小系統(tǒng)設(shè)計_第1頁
案例2-單片機(jī)最小系統(tǒng)設(shè)計_第2頁
案例2-單片機(jī)最小系統(tǒng)設(shè)計_第3頁
案例2-單片機(jī)最小系統(tǒng)設(shè)計_第4頁
案例2-單片機(jī)最小系統(tǒng)設(shè)計_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、案例2 單片機(jī)最小系統(tǒng)設(shè)計01用戶名:stu密碼:stu2014.9.18單片機(jī)最小系統(tǒng)設(shè)計步驟 硬件設(shè)計工具軟件:Altium Designer、DXP 軟件設(shè)計工具軟件:Keil uVision 調(diào)試萬用表示波器最小系統(tǒng)-硬件單元電路 電源及其指示燈電路 晶振電路 復(fù)位電路 ROM啟動選擇電路 下載接口電路 獨立按鍵電路 發(fā)光二極管電路等電源及其指示燈電路電源接插件XH2.54KF2510KF7.62HT5.08DC電源插座電源插座壓線鉗壓線鉗發(fā)光二極管5mm、3mm直徑直徑貼片發(fā)光管貼片發(fā)光管060308051206電阻1/4W立式電阻(碳膜、金屬膜)立式電

2、阻(碳膜、金屬膜)貼片電阻貼片電阻熱敏電阻熱敏電阻壓敏電阻壓敏電阻晶振電路時鐘:定時與控制部件時鐘:定時與控制部件晶振和電容組成的晶振和電容組成的并聯(lián)諧振并聯(lián)諧振回路。回路。晶振:晶振:1.2MHz1.2MHz12MHz12MHz之間選擇(典型:之間選擇(典型:6 6M M、12M12M、11.0592M11.0592M)電容:瓷片電容電容:瓷片電容 5 53030PFPF調(diào)試單片機(jī)最小系統(tǒng)時,可用示波器測晶振波形(正弦信號)來判斷調(diào)試單片機(jī)最小系統(tǒng)時,可用示波器測晶振波形(正弦信號)來判斷CPUCPU是否已工作(正弦波)是否已工作(正弦波)無源無源有源有源瓷片瓷片電容電容8051 8051

3、周期周期 振蕩周期振蕩周期:指振蕩源的周期(石英晶體的振蕩周期):指振蕩源的周期(石英晶體的振蕩周期) 時鐘周期時鐘周期:( (稱稱S S周期周期) )為振蕩周期的為振蕩周期的2 2倍倍 機(jī)器周期機(jī)器周期:一個機(jī)器周期含:一個機(jī)器周期含6 6個時鐘周期,即個時鐘周期,即1212個振蕩周期。個振蕩周期。 指令周期指令周期:完成一條指令占用的全部時間。:完成一條指令占用的全部時間。805l805l的指令周期的指令周期含含1 14 4個機(jī)器周期個機(jī)器周期 機(jī)器周期機(jī)器周期: :T=12/foscT=12/fosc 若若foscfosc6 MHz6 MHz,則,則805l805l的:的:振蕩周期振蕩周

4、期1 16 6 usus; 時鐘周期時鐘周期1 13 3 usus;機(jī)器周期機(jī)器周期2 2 usus; 指令周期指令周期2 28 8 usus。 復(fù)位電路 為什么要復(fù)位?為什么要復(fù)位?單片機(jī)死機(jī)時,需要復(fù)位;單片機(jī)死機(jī)時,需要復(fù)位;復(fù)位后復(fù)位后CPUCPU從地址從地址00000000H H開始執(zhí)行開始執(zhí)行程序。程序。 怎么復(fù)位?怎么復(fù)位?在在RSTRST輸入端出現(xiàn)輸入端出現(xiàn)高電平高電平時實現(xiàn)時實現(xiàn)復(fù)位和初始化。復(fù)位時復(fù)位和初始化。復(fù)位時RSTRST引腳引腳至少保持一定時間的高電平高至少保持一定時間的高電平高電平持續(xù)電平持續(xù)2424個振蕩周期以上個振蕩周期以上(6 6MHzMHz4us4us)。

5、)。當(dāng)當(dāng)RSTRST引腳返回低電平以后,引腳返回低電平以后,CPUCPU從地址從地址00000000H H開始執(zhí)行程序,復(fù)開始執(zhí)行程序,復(fù)位時晶振上無信號。位時晶振上無信號。6*6*5mm微動按鈕微動按鈕12*12*7mm微動按鈕微動按鈕復(fù)位電路 復(fù)位電路復(fù)位電路上電復(fù)位上電復(fù)位(R=10kR=10k,C=10uF tC=10uF tRC=100msRC=100ms)手動復(fù)位手動復(fù)位看門狗自動復(fù)位看門狗自動復(fù)位看門狗監(jiān)控復(fù)位電路看門狗監(jiān)控復(fù)位電路 IMP705/706/813LIMP705/706/813L為帶看門狗為帶看門狗PP監(jiān)控電路。程監(jiān)控電路。程序中要對序中要對813“813“喂狗喂狗

6、”,若,若1.61.6秒內(nèi)沒有秒內(nèi)沒有“喂狗喂狗” ” 信號信號(P1.0)(P1.0),則,則813813會自動產(chǎn)生信號對會自動產(chǎn)生信號對CPUCPU復(fù)位。復(fù)位。8051 存儲器系統(tǒng)存儲器分類存儲器分類ROMROM:程序存儲器,放代碼:程序存儲器,放代碼 AT89S51AT89S51片內(nèi)片內(nèi)(4(4K)K) 片外最大片外最大6464K K(0000HFFFFH0000HFFFFH)RAMRAM:數(shù)據(jù)存儲器,放數(shù)據(jù):數(shù)據(jù)存儲器,放數(shù)據(jù) AT89S51AT89S51片內(nèi)片內(nèi)(256(256字節(jié)字節(jié)) ) 片外最大片外最大6464K K(0000HFFFFH0000HFFFFH) 8051的ROM

7、與RAM采用獨立編址(地址會出現(xiàn)重疊) 系統(tǒng)是通過控制信號PSEN#(ROM編程選擇使能)RD#(RAM讀控制)WR# (RAM寫控制)來區(qū)分對ROM還是RAM的操作ROM啟動選擇電路 AT89S51單片機(jī)片內(nèi)含4K Flash ROM地址范圍:000H3FFH 片外亦可擴(kuò)展到最大64K的ROM地址范圍:0000HFFFFH 8051單片機(jī)系統(tǒng)是從0H地址處開始運行的,因此8051單片機(jī)設(shè)置了EA#(External Address外部地址)選通控制位EA#=0:用外部ROM啟動EA#=1:用內(nèi)部ROM啟動ROM(程序存儲器程序存儲器)ROM保留地址其它ROM地址RAM(隨機(jī)存儲器隨機(jī)存儲器)

8、低低128128字節(jié)(字節(jié)(0000H7FHH7FH) RAMRAM區(qū)區(qū)高高128128字節(jié)(字節(jié)(8080H HFFHFFH) 特殊功能寄存器特殊功能寄存器(SFR)(SFR)的區(qū)的區(qū) 80518051有有2121個特殊功能寄存器,其個特殊功能寄存器,其它是預(yù)留,不能用于存儲數(shù)據(jù)它是預(yù)留,不能用于存儲數(shù)據(jù) 具體見下頁具體見下頁8051 218051 21個特殊功能寄存器個特殊功能寄存器( (SFR)SFR)符號符號地址地址注釋注釋符號符號地址地址注釋注釋* *ACCACCE0HE0H累加器累加器* *P3P3B0HB0H通道通道3 3* *B BF0HF0H乘法寄存器乘法寄存器PCONPCO

9、N8787H H電源控制及波特率選擇電源控制及波特率選擇* *PSWPSWD0HD0H程序狀態(tài)字程序狀態(tài)字* *SCONSCON9898H H串行口控制器串行口控制器SPSP8181H H堆棧指針堆棧指針SBUFSBUF9999H H串行數(shù)據(jù)緩沖器串行數(shù)據(jù)緩沖器DPLDPL8282H H數(shù)據(jù)存儲器指針(低數(shù)據(jù)存儲器指針(低8 8位)位)* *TCONTCON8888H H定時器控制定時器控制DPHDPH8383H H數(shù)據(jù)存儲器指針(高數(shù)據(jù)存儲器指針(高8 8位)位)TMODTMOD8989H H定時器方式選擇定時器方式選擇* *IEIEA8HA8H中斷允許控制器中斷允許控制器TL0TL08AH

10、8AH定時器定時器0 0低低8 8位位* *IPIPD8HD8H中斷優(yōu)先控制器中斷優(yōu)先控制器TL1TL18BH8BH定時器定時器0 0高高8 8位位* *P0P08080H H通道通道0 0TH0TH08CH8CH定時器定時器1 1低低8 8位位* *P1P19090H H通道通道1 1TH1TH18DH8DH定時器定時器1 1高高8 8位位* *P2P2A0HA0H通道通道2 2* *:表示該:表示該SFRSFR可以位尋址可以位尋址8051單片機(jī)程序下載 編程器方式 ISPIn System Program在系統(tǒng)編程 IAPIn Application Program在應(yīng)用編程:通過RS23

11、2、CAN、以太網(wǎng)等ISP下載接口電路ByteBlasterIIByteBlasterII 并口下載并口下載實驗室臺式機(jī)實驗室臺式機(jī)參閱參閱 Isplay1.3ISPlayIsplay1.3ISPlay使用手冊使用手冊. .pdfpdfAVR ISP USBAVR ISP USB下載下載學(xué)生筆記本學(xué)生筆記本參閱參閱progisp168USB-ASPprogisp168USB-ASP使用說使用說明明. .docdocFC10P壓線頭壓線頭DC10P簡易牛角座簡易牛角座IDC壓線鉗壓線鉗輸入檢測電路1-獨立按鍵電路高電平有效高電平有效低電平有效低電平有效輸入檢測電路2-大信號輸入 工程應(yīng)用中,很多

12、開關(guān)量輸入信號為12V或24V,要傳入MCU,應(yīng)將對應(yīng)信號轉(zhuǎn)換成MCU的匹配電平,可采用電阻分壓或光耦方式實現(xiàn),具體電路見下:電路1:電阻分壓電路(74HC14:六施密特反相器)輸入檢測電路2-大信號輸入 若輸入信號為12V或24V的開關(guān)信號,要傳入MCU,應(yīng)將對應(yīng)信號轉(zhuǎn)換成MCU的匹配電平,可采用電阻分壓或光耦方式實現(xiàn),具體電路見下:電路2:光耦電路開關(guān)量輸出控制電路1-發(fā)光二極管電路上拉接法(典型)上拉接法(典型)低電平驅(qū)動低電平驅(qū)動下拉接法下拉接法高電平驅(qū)動高電平驅(qū)動開關(guān)量輸出控制電路2-大信號輸出 工業(yè)現(xiàn)場的開關(guān)量通常是12V或24V,而MCU輸出一般為5V或3.3V,因此需要加驅(qū)動電

13、路。具體方法可采用三極管或集成達(dá)林頓管驅(qū)動。繼電器驅(qū)動電路開關(guān)量輸出控制電路2-大信號輸出 工業(yè)現(xiàn)場的開關(guān)量通常是12V或24V,而MCU輸出一般為5V或3.3V,因此需要加驅(qū)動電路。具體方法可采用三極管或集成達(dá)林頓管驅(qū)動。達(dá)林頓管驅(qū)動8051 I/O口 8051單片機(jī)有4組8位P0P1P2P3 每個端口可作為輸入或輸出字節(jié)操作位操作(位尋址) 部分端口除I/O功能外的第二功能P0 AD7AD0 低8位地址總線8位數(shù)據(jù)總線分時復(fù)用P2 A15A8 高8位地址總線P3 RXD、TXD、INT0#、INT1# T0、T1、WR#、RD#8051 I/O 讀寫操作字節(jié)操作 #include “reg

14、51.h” / sfr P1=0 x90; 讀字節(jié) unsigned char a; a=P1; /讀8位 a=P1&0 x01; /讀1位 a=P1&0 x0f; /讀4位 寫字節(jié) P2=0 x01; /寫8位常量 P2=ai; /寫8位數(shù)組元素 P2=P2|0 x01;/對P2.0置1 P2=P2&0 x0f;/對P2高4位清0,低4位保持不變位操作 sbit P1_0=P10; /必須先定義位 讀位 bdata my_byte=0 x20; sbit my_bit= my_byte 0; 或bit my_bit=0 x00; my_bit=P1_0; if(my_bit=1) ; if(

15、P1_0= =1) ; 寫位 P1_0=1; P1_0=0; P1_0=P1_0;端口輸出控制-字節(jié)操作方式#include reg51.h#define DELAY 1000void delay(unsigned int n)unsigned int i;for(i=0;in;i+);void main()P2=0 x7f;delay(DELAY_1S);P2=0 xBf;delay(DELAY_1S);P2=0 xDf;delay(DELAY_1S);P2=0 xEf;delay(DELAY_1S);P2=0 xF7;delay(DELAY_1S);P2=0 xFB;delay(DELAY

16、_1S);P2=0 xFD;delay(DELAY_1S);P2=0 xFE;delay(DELAY_1S);問題:1、8狀態(tài)完成后程序結(jié)束,應(yīng)該加死循環(huán)while(1);2、低電平有效時,16進(jìn)制數(shù)據(jù)書寫較繁瑣,可采用位取反“”實現(xiàn);3、8組語句可采用通過數(shù)組,用循環(huán)實現(xiàn),以簡化程序。具體方法見下頁端口輸出控制-字節(jié)操作方式 while內(nèi)嵌for語句void main()unsigned char d8=0 x80,0 x40,0 x20,0 x10,0 x08,0 x04,0 x02,0 x01;unsigned char i;while(1)for(i=0;i8;i+)P2=di;del

17、ay(DELAY_1S); while內(nèi)嵌if語句void main()unsigned char d8=0 x80,0 x40,0 x20,0 x10,0 x08,0 x04,0 x02,0 x01;unsigned char i;i=0;while(1)P2=di;delay(DELAY_1S);i+;if(i=8)i=0;問題:1、程序中數(shù)組d與變量i為什么要用unsigned char類型定義?2、左右程序執(zhí)行一次while循環(huán)各用多少時間?采用哪種方式更好?為什么?3、若要改變循環(huán)移動方向,程序應(yīng)如何修改?端口輸出控制-字節(jié)操作方式 循環(huán)左移改為循環(huán)右移void main()unsi

18、gned char d8=0 x80,0 x40,0 x20,0 x10,0 x08,0 x04,0 x02,0 x01;unsigned char i;i=0; /i=7;while(1)P2=di;delay(DELAY_1S);i+;/i-;if(i=8) /if(i=-1)i=0; /i=7 觀察Proteus仿真效果void main()unsigned char d8=0 x80,0 x40,0 x20,0 x10,0 x08,0 x04,0 x02,0 x01;char i;i=7;while(1)P2=di;delay(DELAY_1S);i-;if(i=-1)i=7;問題原因:1、unsigned char i; i是不可能為負(fù)的,因此應(yīng)修改為char i;端口輸出控制-位操作方式 注意sbit定義位必須在源程序的上方必須在函數(shù)外 該程序的最終執(zhí)行效果如何? 顯然本例用字節(jié)方式輸出更方便端口輸入檢測-字節(jié)操作方式void main()while(1)if(P1&0 x01=0)/S0按下/循環(huán)左移else if(P1&0 x02=0) /S1按下/循環(huán)右移8051輸入S0(P1.0)S1(P1.1)有效電平:低電平,即只要判斷P1.0、P1.1是否為低電平即可 字節(jié)輸入方式判斷存在的問題:關(guān)系運算符(=) 比 位與運算符(&

溫馨提示

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

評論

0/150

提交評論