單片機(jī)最小系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
單片機(jī)最小系統(tǒng)設(shè)計(jì)
該單片機(jī)最小系統(tǒng)具有的功能:
(1)具有2位LED數(shù)碼管顯示功能。
(2)具有八路發(fā)光二極管顯示各種流水燈。
(3)可以完成各種奏樂,報(bào)警等發(fā)聲音類實(shí)驗(yàn)。
(4)具有復(fù)位功能。
功能分析
(1)兩位LED數(shù)碼管顯示功能,我們可以利用單片機(jī)的P0口接兩個(gè)數(shù)碼管來現(xiàn)這個(gè)功能;
(2)八路發(fā)光二極管顯示可以利用P1口接八個(gè)發(fā)光二極管實(shí)現(xiàn)這個(gè)功能;
(3)各種奏樂、報(bào)警等發(fā)聲功能可以采用P2.0這個(gè)引腳接一蜂鳴器來實(shí)現(xiàn)。
(4)利用單片機(jī)的第9腳可以設(shè)計(jì)成復(fù)位系統(tǒng),我們采用按鍵復(fù)位;利用單片機(jī)的18、19腳可以設(shè)計(jì)成時(shí)鐘電路,我們利用單片機(jī)的內(nèi)部振蕩方式設(shè)計(jì)的。
設(shè)計(jì)框圖
硬件電路設(shè)計(jì)
根據(jù)本系統(tǒng)的功能,和單片機(jī)的工作條件,我們?cè)O(shè)計(jì)出下面的電路圖。
元件清單的確定:
數(shù)碼管:共陰極2只(分立)
電解電容:10UF的一只
30PF的電容2只
220歐的電阻9只
4.7K的電阻一只
1.2K的電阻一只
4.7K的排阻一只,
12MHZ的晶振一只
有源5V蜂名器一只
AT89S51單片機(jī)一片
常開按鈕開關(guān)1只
緊鎖座一只(方便芯取下來的,綠色的)
發(fā)光二極管(5MM紅色)8只
萬能板電路版15*17CM
S8550三極管一只
4.5V電池盒一只,導(dǎo)線若干。 七、硬件電路的焊接
按照原理圖把上面的元件焊接好,詳細(xì)步驟省略。
相關(guān)程序編寫
針對(duì)上面的電路原理圖,設(shè)計(jì)出本單片機(jī)最小系統(tǒng)的詳細(xì)功能:
(1)、第一個(gè)發(fā)光二極管點(diǎn)亮,同時(shí)數(shù)碼管顯示“1”。
(2)、第二個(gè)發(fā)光二極管點(diǎn)亮,同時(shí)數(shù)碼管顯示“2”。
(3)、依次類推到第八個(gè)發(fā)光二極管點(diǎn)亮,同時(shí)數(shù)碼管顯示“8”。
以上出現(xiàn)的是流水燈的效果
(4)、所有的發(fā)光二極管滅了,同時(shí)數(shù)碼管現(xiàn)實(shí)“0”。
(5)、數(shù)碼管顯示“1”。
(6)、數(shù)碼管顯示“2、……”直到“9、A、B、C、D、E、F、Y”。
(7)、蜂鳴器發(fā)出九聲報(bào)警聲后重復(fù)上面所有步驟。
(8)程序如下:
ORG 0000H;偽指令,定義下面的程序代碼(機(jī)器代碼)從地址為0000H的單元存放。
LJMP START;跳轉(zhuǎn)到標(biāo)號(hào)為START的地方去執(zhí)行。
ORG 0030H;偽指令,定義下面的程序代碼(機(jī)器代碼)從地址為0030H的單元存放。
START:MOV P1,#0FEH ;點(diǎn)亮第一個(gè)發(fā)光二極管。
CLR P2.7 ;送低電平到第一個(gè)數(shù)碼管,開啟數(shù)碼管。
CLR P2.6 ;送低電平到第二個(gè)數(shù)碼管,開啟數(shù)碼管。
MOV P0,#06H;讓數(shù)碼管顯示“1” 。
LCALL DELAY;調(diào)用延時(shí)子程序,起到延時(shí)的目的。
MOV P1,#0FDH;點(diǎn)亮第二個(gè)發(fā)光二極管。
MOV P0,#5bH;讓數(shù)碼管顯示“2” 。
LCALL DELAY;調(diào)用延時(shí)子程序,起到延時(shí)的目的。
MOV P1,#0FBH;點(diǎn)亮第三個(gè)發(fā)光二極管。
MOV P0,#4fH;讓數(shù)碼管顯示“3” 。
LCALL DELAY;調(diào)用延時(shí)子程序,起到延時(shí)的目的。
MOV P1,#0F7H;點(diǎn)亮第四個(gè)發(fā)光二極管。
MOV P0,#66H;讓數(shù)碼管顯示“4” 。
LCALL DELAY;調(diào)用延時(shí)子程序,起到延時(shí)的目的。
MOV P1,#0EFH;點(diǎn)亮第五個(gè)發(fā)光二極管。
MOV P0,#6dH;讓數(shù)碼管顯示“5” 。
LCALL DELAY;調(diào)用延時(shí)子程序,起到延時(shí)的目的。
MOV P1,#0DFH;點(diǎn)亮第六個(gè)發(fā)光二極管。
MOV P0,#7dH;讓數(shù)碼管顯示“6” 。
LCALL DELAY;調(diào)用延時(shí)子程序,起到延時(shí)的目的。
MOV P1,#0BFH;點(diǎn)亮第七個(gè)發(fā)光二極管。
MOV P0,#07H;讓數(shù)碼管顯示“7” 。
LCALL DELAY;調(diào)用延時(shí)子程序,起到延時(shí)的目的。
MOV P1,#7FH;點(diǎn)亮第八個(gè)發(fā)光二極管。
MOV P0,#7fH;讓數(shù)碼管顯示“8” 。
LCALL DELAY;調(diào)用延時(shí)子程序,起到延時(shí)的目的。
MOV P1,#00H;滅了所有的發(fā)光二極管。
MOV P0,#3FH;讓數(shù)碼管顯示“0” 。
LCALL DELAY;調(diào)用延時(shí)子程序,起到延時(shí)的目的。
MOV P0,#06H;讓數(shù)碼管顯示“1” 。
LCALL DELAY;調(diào)用延時(shí)子程序,起到延時(shí)的目的。
MOV P0,#5bH;讓數(shù)碼管顯示“2” 。
LCALL DELAY;調(diào)用延時(shí)子程序,起到延時(shí)的目的。
MOV P0,#4fH;讓數(shù)碼管顯示“3” 。
LCALL DELAY;調(diào)用延時(shí)子程序,起到延時(shí)的目的。
MOV P0,#66H;讓數(shù)碼管顯示“4” 。
LCALL DELAY;調(diào)用延時(shí)子程序,起到延時(shí)的目的。
MOV P0,#6dH;讓數(shù)碼管顯示“5” 。
LCALL DELAY;調(diào)用延時(shí)子程序,起到延時(shí)的目的。
MOV P0,#7dH;讓數(shù)碼管顯示“6” 。
LCALL DELAY;調(diào)用延時(shí)子程序,起到延時(shí)的目的。
MOV P0,#07H;讓數(shù)碼管顯示“7” 。
LCALL DELAY;調(diào)用延時(shí)子程序,起到延時(shí)的目的。
MOV P0,#7fH;讓數(shù)碼管顯示“8” 。
LCALL DELAY;調(diào)用延時(shí)子程序,起到延時(shí)的目的。
MOV P0,#6fH;讓數(shù)碼管顯示“9” 。
LCALL DELAY;調(diào)用延時(shí)子程序,起到延時(shí)的目的。
MOV P0,#7fH;讓數(shù)碼管顯示“A” 。
LCALL DELAY;調(diào)用延時(shí)子程序,起到延時(shí)的目的。
MOV P0,#7fH;讓數(shù)碼管顯示“b” 。
LCALL DELAY;調(diào)用延時(shí)子程序,起到延時(shí)的目的。
MOV P0,#7fH;讓數(shù)碼管顯示“C” 。
LCALL DELAY;調(diào)用延時(shí)子程序,起到延時(shí)的目的。
MOV P0,#7fH;讓數(shù)碼管顯示“d” 。
LCALL DELAY;調(diào)用延時(shí)子程序,起到延時(shí)的目的。
MOV P0,#7fH;讓數(shù)碼管顯示“E” 。
LCALL DELAY;調(diào)用延時(shí)子程序,起到延時(shí)的目的。
MOV P0,#7fH;讓數(shù)碼管顯示“F” 。
LCALL DELAY;調(diào)用延時(shí)子程序,起到延時(shí)的目的。
MOV P0,#7fH;讓數(shù)碼管顯示“Y” 。
LCALL DELAY;調(diào)用延時(shí)子程序,起到延時(shí)的目的。
MOV R4,#9;送蜂鳴器的報(bào)警次數(shù)。
LOOP:SETB P2.0;不發(fā)聲
LCALL DELAY;調(diào)用延時(shí)子程序,起到延時(shí)的目的。
CLR P2.0;發(fā)聲。
LCALL DELAY;調(diào)用延時(shí)子程序,起到延時(shí)的目的。
DJNZ R4,LOOP;發(fā)聲九次后向下執(zhí)行。
SETB P2.0;關(guān)閉發(fā)聲
LJMP START;跳轉(zhuǎn)到標(biāo)號(hào)為START處執(zhí)行,循環(huán)本程序。
DELAY:MOV R7,#200;這是延時(shí)子程序。
D1:MOV R6,#200
D2:MOV R5,#200
D3:DJNZ R5,D3
DJNZ R6,D2
DJNZ R7,D1
RET;延時(shí)子程序返回指令。
END;結(jié)束偽指令。
九、利用KEIL C51 軟件對(duì)上面的程序進(jìn)行調(diào)試和編譯,產(chǎn)生*.HEX文件,以便用編程器寫入單片機(jī)芯片中。
十、編程器的使用:用編程器把電腦里生成的*.HEX文件寫到芯片中。
十一、產(chǎn)品調(diào)試:通上4.5V(三節(jié)電池)的電源,可以調(diào)試本系統(tǒng),如果沒有錯(cuò)誤就可以正常工作了。
下面還有有一個(gè)網(wǎng)上copy的一個(gè)設(shè)計(jì)
單片機(jī)課程設(shè)計(jì)題目:?jiǎn)纹瑱C(jī)最小系統(tǒng)
一、設(shè)計(jì)題目:?jiǎn)纹瑱C(jī)最小系統(tǒng)四、任務(wù)與要求:
在智能化儀器儀表中,控制核心均為微處理器,而單片機(jī)以高性能、高速度、體積小、價(jià)格低廉、穩(wěn)定可靠而得到廣泛應(yīng)用,是設(shè)計(jì)智能化儀器儀表的首選微控制器,單片機(jī)結(jié)合簡(jiǎn)單的接口電路即可構(gòu)成單片機(jī)最小系統(tǒng),它是智能化儀器儀表的基礎(chǔ),也是測(cè)控。監(jiān)控的重要組成部分。
本課題任務(wù)與要求如下:
1、 單片機(jī)可采用8031、8051、AT89C51、AT89C52、fosc=6MHz。
2、 時(shí)鐘電路,復(fù)位電路的設(shè)計(jì)。
3、 系統(tǒng)RAM、ROM的容量均為8KB。
4、 顯示位數(shù):8位。
5、 鍵盤按鍵數(shù):16個(gè)。[!--empirenews.page--]
6、 上電初始化顯示P.
7、 能輸入、顯示十六進(jìn)制數(shù)0——F
8、 編寫系統(tǒng)初始化主程序、鍵掃子程序、顯示子程序及其他所需要子程序。
9、 計(jì)算機(jī)輸出設(shè)計(jì)說明書一分(包括各部分電路工作原理說明、程序清單及程序流程框圖),16開方框圖一張,電路原理總圖一張。
10、 設(shè)計(jì)時(shí)間:一周五、單片機(jī)最小系統(tǒng)總體方案設(shè)計(jì)提示
1、 可利用8031,RAM,ROM,8279構(gòu)造單片機(jī)最小系統(tǒng)。
2、 可利用8031,RAM,ROM,8155構(gòu)造單片機(jī)最小系統(tǒng)。
也可以利用AT89C51(或AT89C52),RAM,8155構(gòu)造單片機(jī)最小系統(tǒng)。
請(qǐng)看我的程序然后修改 ,有問題可以在我們的論壇交流,qq群7344883
設(shè)Inter 8051片內(nèi)RAM78H-7FH單元為顯示緩沖區(qū),依次從低到高存顯示數(shù)據(jù)
ORG 0000H
AJMP MAIN
ORG 0080H
MAIN : MOV SP, #60H
MOV R0, #08H
MOV R1, #78H
LCALL ML ;調(diào)清零子程序
MOV R0, #64 ;清工作單元
MOV R1, #20H
LCALL ML
MOV A, #03H ; 8155的初始化
MOV DPTR, #7F00H
MOVX @DPTR,A
ST: MOV 78H, #0FFH ;顯示P.
MOV 79H, #0FFH
MOV 7AH, #0FFH
MOV 7BH, #0FFH
MOV 7CH, #0FFH
MOV 7DH, #0FFH
MOV 7EH, #0FFH
MOV 7FH, #0CH
LM: LCALL DIS ;調(diào)顯示顯示P.
LCALL SHIFT ;調(diào)移位程序
LCALL LTIM ;調(diào)延時(shí)子程序
LCALL KD1 ;調(diào)鍵掃程序
INC R0
AJMP LM
DIS: MOV A, #03H ;顯示程序
MOV DPTR, #7F00H
MOV @DPTR,A
MOV R0, #78H
MOV R3, #01H
MOV A, R3
LD0: MOV DPTR, #7F01H
MOVX @DPTR,A
INC DPTR
MOV A, @R0
DIR0: ADD A, #0DH
MOVC A, @A+PC
DIR1: MOVX @DPTR,A
LCALL DL
INC R0
MOV A, R3
JB ACC.5,LD1
RL A
MOV R3, A
LJMP LD0
LD1: RET
DSEG: DB 3FH,06H,5BH,4FH,66H
DB 6DH,7DH,07H,7FH,6FH
DB 77H,7CH,39H,5EH,79H
DB 71H
DL1: MOV R7, #01H ;延時(shí)1ms
DL : MOV R6, #0FFH
DL6: DJNZ R6, DL6
DJNZ R7, DL
RET
KD1: LCALL DIS ;鍵盤掃描程序
KEY1: LCALL KEY
JNZ LK1
NI: ACALL DIS
AJMP KEY1
LK1: ACALL DIS ;有鍵閉合2次延時(shí)
ACALL DIS ;共12ms去抖動(dòng)
ACALL K1
JNZ LK2
LCALL DIS
AJMP KEY1
LK2: MOV R2, #0FEH
MOV R4, #00H
LK4: MOV DPTR, #7F01H
MOV A, R2
MOVX @DPTR, A[!--empirenews.page--]
INC DPTR
INC DPTR
MOVX A, @DPTR
JB ACC.0, LONE
MOV A, #00H
AJMP LKP
LONE: JB ACC.1, NEXT
MOV A, #08H
AJMP LKP
LKP: ADD A, R4 ;計(jì)算鍵碼
PUSH ACC ;保護(hù)鍵碼
LK3: ACALL DIS
ACALL K1 ;查鍵是否繼續(xù)閉合,若閉合再延時(shí)
JNZ LK3
POP ACC
RET
NEXT: INC R4
MOV A, R2
JNB ACC.7, KLM
RL A
MOV R2, A
LJMP LK4 ;進(jìn)行下一次掃描
KLM: AJMP KEY1 ;掃描完畢,開始新的一次
LTIM: MOV R5, 01H ;延時(shí)子程序
LP3: MOV R6, #0FFH
LP2: MOV R7, #0FFH
LP1: MOV R7, LP1
DJNZ R6, LP2
DJNZ R6, LP3
ML: MOV A, #60H ;清零子程序
MOV @R1, A
INC R1
DJNZ R0, ML
MM: MOV A, #00H ;清顯示
MOV R0, #08H
MOV R1, #78H
LCALL ML
SHIFT: MOV 7EH, 7FH ;移位子程序
MOV 7DH, 7EH
MOV 7CH, 7DH
MOV 7BH, 7CH
MOV 7AH, 7BH
MOV 79H, 7AH
MOV 78H, 79H
KEY: MOV DPTR, #7F01H ;判斷是否有鍵閉合
MOV A, #00H
MOVX @DPTR, A
INC DPTR
INC DPTR
MOVX A , @DPTR
CPL A
ANL A, #0FH
RET
單片機(jī)最小系統(tǒng)一般情況下運(yùn)行起來不會(huì)很穩(wěn)定,原因是沒有加入看門狗等電路。引電路非常簡(jiǎn)單,能幫助你學(xué)習(xí)和使用單片機(jī)。