專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機教程網(wǎng) >> MCU設(shè)計實例 >> 瀏覽文章

單片機匯編實驗八:查表+串口通信

作者:韓冰   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2013年11月30日   【字體:

 

實驗要求:P1口的P1.0~P1.8分別接8個發(fā)光二極管。要求編寫程序模擬一時序控制裝置。開機后第一秒鐘L4,L5亮,第二秒鐘L3,L6亮,第三秒鐘L2,L7亮,第四秒L1,L8亮,第五秒L2,L7亮,第六秒L3,L6亮,第七秒L4,L5亮,第八秒L1,L2,L7,L8亮,第九秒L3,L4,L5,L6亮,第十秒全亮,第十一秒全滅。然后再從頭循環(huán)。以鍵盤作為外部中斷輸入信號,有鍵按下時,將當(dāng)前LED狀態(tài)送PC機顯示。
//This is the nineth_5 program of homework
//This is made by WQ    Data:2013/3/18/
       ORG 0000H     
       AJMP MAIN
        ORG 0023H           //0023H 串口中斷程序的入口地址
        AJMP Communication  
       ORG 0003H           //0003H 外部中斷程序的入口地址     
       AJMP WT0       
       ORG 000BH          //000BH 定時器0程序的入口地址
       AJMP TT0
MAIN:
     MOV TMOD,#21H          //定時器工作方式
     SETB EA                //開總中斷
     SETB ET0               //允許計時器   
     SETB EX0               //開外部中斷
     SETB IT0               //邊沿觸發(fā)方式
     SETB TR0               //開啟計時器0
     MOV TH0,#4CH          //設(shè)置定時常數(shù) 
     MOV TL0,#00H    
     MOV TH1,0FDH         
     MOV R7,#20            //設(shè)置計數(shù)寄存器
     MOV R6,#00           //查表使用
     MOV SCON,#40H        //串口工作方式1,允許中斷接受
     MOV DPTR,#TABLE
     CLR A
OK1:    MOV C,P3.4
        JNC KAISHI
        MOV C,P3.5
     JNC KAISHI
        MOV C,P3.6
     JNC KAISHI
        MOV C,P3.7
     JNC KAISHI
        SJMP OK1

KAISHI:CLR P3.2
       SETB P3.2
      SJMP OK1
     
TT0:   MOV TH0,#4CH         //計時器0置數(shù)
       MOV TL0,#00H
    DJNZ R7,RETN            //1秒鐘到來了
    MOV R7,#20
    MOV A,R6
    MOVC A,@A+DPTR
    MOV P1,A
    INC R6
    CJNE R6,#11,RETN
    MOV R6,#00  
RETN:  RETI                //定時程序返回指令


WT0:   PUSH TH0
       PUSH TL0
    CLR TR0           //關(guān)閉定時器0
    SETB ES           //打開串口中斷
    SETB TR1           //啟動定時器1 
    MOV SBUF,P1         //將端口的數(shù)據(jù)傳送給計算機
    POP TL0
    POP TH0
    SETB TR0       //打開定時器0
    CLR ES          
    RETI
Communication:
       JNB TI,$
       CLR TI
    CLR ES        
       RETI
////延時10ms模塊////
DELAY: MOV R2,#20
D0:    MOV R1,#248
       DJNZ R1,$
       DJNZ R1,D0
/////////////////////
TABLE: DB 7EH,0BDH,0DBH,0E7H,0DBH,0BDH,7EH,0AAH,55H,00H,0FFH
       END
 
 

關(guān)閉窗口

相關(guān)文章