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