51單片機的指令系統(tǒng)及試驗
四、設(shè)計框圖
五、硬件電路設(shè)計
根據(jù)本系統(tǒng)的功能,和單片機的工作條件,我們設(shè)計出下面的電路圖。
六、元件清單的確定:
數(shù)碼管:共陰極2只(分立)
電解電容:10UF的一只
30PF的電容2只
220歐的電阻9只
4.7K的電阻一只
1.2K的電阻一只
4.7K的排阻一只,
12MHZ的晶振一只
有源5V蜂名器一只
AT89S51單片機一片
常開按鈕開關(guān)1只
緊鎖座一只(方便芯取下來的,綠色的)
發(fā)光二極管(5MM紅色)8只
萬能板電路版15*17CM
S8550三極管一只
4.5V電池盒一只,導(dǎo)線若干。
七、硬件電路的焊接
按照原理圖把上面的元件焊接好,詳細步驟省略。
八、相關(guān)程序編寫
針對上面的電路原理圖,設(shè)計出本系統(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ā)出九聲報警聲后重復(fù)上面所有步驟。
(8)程序如下:
ORG 0000H;偽指令,定義下面的程序代碼(機器代碼)從地址為0000H的單元存放。
LJMP START;跳轉(zhuǎn)到標(biāo)號為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” 。
評論