資源描述:
《單片機(jī)原理與接口技術(shù) 應(yīng)用型高等教育計算機(jī)類 李明 畢萬新 技能訓(xùn)練技能訓(xùn)練4 2.doc》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、技能訓(xùn)練4-2仿真訓(xùn)練一、仿真題目:8鍵8燈2管二、訓(xùn)練目的:掌握I/O口的綜合應(yīng)用技術(shù);掌握延時子程序編寫與使用;了解數(shù)碼管顯示原理;了解按鍵輸入的方法;掌握編程技巧;掌握單片機(jī)系統(tǒng)的仿真過程。三、訓(xùn)練任務(wù):P1口接8個按鍵開關(guān)作為輸入信號,P0、P2、P3口同步輸出。在按鍵都沒有按下時,P0、P2、P3交替出現(xiàn)高電平和低電平10次,左移5次,右移5次,如此循環(huán)。按下任意按鍵時,就把按鍵所接P1口電平送到P0、P2、P3、P1口輸入,P0、P2、P3口輸出,所有輸出都是P0、P2、P3相同,以便比較產(chǎn)生的效果。研究數(shù)碼管的字形與代
2、碼的關(guān)系,便于將來按照數(shù)位和字段變化規(guī)律編寫顯示程序。四、訓(xùn)練準(zhǔn)備:復(fù)習(xí)數(shù)碼管的基本知識,如8個LED排列順序,共陰極和共陽極等。復(fù)習(xí)單片機(jī)指令功能,特別是移位指令,堆棧的用法等。復(fù)習(xí)程序設(shè)計的基本方法,程序的結(jié)構(gòu)等等。重點研究數(shù)碼管的字形與代碼的關(guān)系。參考電路:可以按照技能訓(xùn)練2-1圖1來繪制電路原理圖;也可以按照下圖來做。它們的區(qū)別在于有沒有總線符號。沒有總線符號(導(dǎo)線有標(biāo)號)的電路看起來更清晰。技能訓(xùn)練4-2圖18鍵8燈2管參考源程序:;8鍵8燈2管.ASM;理解單片機(jī)并行口的功能、特點、使用;按鍵沒有按下時,P0、P2、P3
3、交替出現(xiàn)高電平和低電平10次;然后左移5次,再右移5次;按下任意按鍵時,就把按鍵所接P1口電平送到P0、P2、P3;所有輸出都是P0、P2、P3相同,以便比較產(chǎn)生的效果;----------主程序--------------------------------MAIN:MOVR4,#5MAIN1:LCALLSHIFT;交替變化LCALLKEY;檢查按鍵DJNZR4,MAIN1;R4減1不為0,就轉(zhuǎn)移到MAIN1MAIN2:MOVR4,#5MAIN3:LCALLMOVEL;調(diào)用左移位子程序LCALLKEY;檢查按鍵DJNZR4,MAI
4、N3;R4減1不為0,就轉(zhuǎn)移到MAIN3MAIN4:MOVR4,#5MAIN5:LCALLMOVER;調(diào)用右移位子程序LCALLKEY;檢查按鍵DJNZR4,MAIN5;R4減1不為0,就轉(zhuǎn)移到MAIN5LJMPMAIN;無限循環(huán);----------以下交替變化子程序---------------------SHIFT:MOVB,#0;寄存器B置零MOVR3,#2SHIFT1:MOVP0,B;B的值送P0口,輸出MOVP2,B;B的值送P2口,輸出MOVP3,B;B的值送P3口,輸出LCALLDELAY;調(diào)用延時子程序,大約250
5、毫秒LCALLDELAY;調(diào)用延時子程序LCALLDELAY;調(diào)用延時子程序LCALLDELAY;調(diào)用延時子程序XRLB,#0FFH;B的值取反,用的是異或指令DJNZR3,SHIFT1RET;----------以下按鍵檢測子程序--------------------KEY:MOVA,P1;讀入P1口的值CPLA;A的值取反JZKEYEND;A的值為0就轉(zhuǎn)移到MAIN2LCALLRDKEYOUTKEYEND:RET;----------以下移位子程序-左移-------------------MOVEL:MOVA,#1MOVR3
6、,#8MOVEL1:MOVP0,A;B的值送P0口,輸出MOVP2,A;B的值送P2口,輸出MOVP3,A;B的值送P3口,輸出LCALLDELAY;調(diào)用延時子程序,大約250毫秒LCALLDELAY;調(diào)用延時子程序LCALLDELAY;調(diào)用延時子程序,大約250毫秒LCALLDELAY;調(diào)用延時子程序RLADJNZR3,MOVEL1RET;----------以下移位子程序--右移------------------MOVER:MOVA,#7FHMOVR3,#8MOVER1:MOVP0,A;B的值送P0口,輸出MOVP2,A;B的
7、值送P2口,輸出MOVP3,A;B的值送P3口,輸出LCALLDELAY;調(diào)用延時子程序,大約250毫秒LCALLDELAY;調(diào)用延時子程序LCALLDELAY;調(diào)用延時子程序,大約250毫秒LCALLDELAY;調(diào)用延時子程序RRADJNZR3,MOVER1RET;----------以下P1口按鍵輸入,并行口P0、P2、P3輸出----------RDKEYOUT:PUSHACCMOVA,P1;讀入P1口的值CPLA;A的值取反JZRDKEYOUTE;A的值為0就轉(zhuǎn)移到RDKEYOUTECPLA;A的值取反MOVP0,A;A的值
8、送P0口,輸出MOVP2,A;A的值送P2口,輸出MOVP3,A;A的值送P3口,輸出SJMPRDKEYOUT;無條件轉(zhuǎn)移到RDKEYOUTRDKEYOUTE:POPACCRET;----------以下延時子程序----------