新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機匯編實驗二:定時器實驗

        單片機匯編實驗二:定時器實驗

        作者: 時間:2016-12-01 來源:網絡 收藏
        實驗要求:
        由AT89S52內部定時器0,按方式1工作,即作為16位定時器使用每0.05秒T1溢出中斷一次。P1口的P1.0~P1.8分別接8個發光二極管。要求編寫程序模擬一時序控制裝置。開機后第一秒鐘L1,L8亮,第二秒鐘L2,L7亮,第三秒鐘L3,L6亮,第四秒L4,L5亮,第五秒L3,L6亮,第六秒L2,L7亮,第七秒L1,L8亮,第八秒L1,L3,L5,L7亮,第九秒L2,L4,L6,L8亮,第十秒全亮,第十一秒全滅。然后再從頭循環。
        //This is the second program of the homework;
        //Name: WQ DATE: 201326
        //In thisprogramwe used the Intterput;
        ORG 0000H //無條件 轉移指令
        LJMP MAIN //LJMP 長轉移指令 65535 (雙字節)
        ORG 000BH //AJMP 絕對轉移 2K
        LJMP INTT0 // SJMP 短轉移 -128——127
        // JMP 變址轉移 JMP @A+DPTR
        //中斷程序可以放在前面和后面
        //另外只要程序段的空間能合理分配不沖突就能隨便調用
        ORG 0050H
        MAIN:MOV DPTR,#TABLE
        MOV R1,#11 //R1做一個計數器 查表用
        CLR A //將A清零,用來尋址
        MOV R2,A //另一個計數器用來加減
        MOV TMOD,#01H
        MOV TH0,#4CH
        MOV TL0,#00H
        MOV R3,#20 //R3做一個計數器
        SETB EA //開總中斷
        SETB ET0 //允許計時器
        SETB TR0 //開啟計時器
        OK: SJMP OK

        ORG 0150H
        INTT0:MOV TH0,#4CH
        MOV TL0,#00H
        DJNZ R3,RETN //1秒鐘到來了
        MOV R3,#20
        MOV A,R2
        MOVC A,@A+DPTR
        MOV P1,A
        INC R2 //指針加一
        DJNZ R1,RETN //不滿足調見返回主程序繼續計時
        MOV R1,#11 //循環之后置數
        MOV R2 ,#0 //循環之后清零
        RETN:RETI //中斷子程序的返回指令
        TABLE:DB 7EH,0BDH,0DBH,0E7H,0DBH,0BDH,7EH,0AAH,55H,00H,0FFH //十六進制數前面要加零
        END //主程序結束指令


        評論


        技術專區

        關閉
        主站蜘蛛池模板: 扶沟县| 鄂尔多斯市| 汶川县| 龙江县| 合阳县| 日照市| 永和县| 镇巴县| 阆中市| 东光县| 扶沟县| 宜昌市| 巴南区| 宣威市| 荥经县| 黎平县| 禄丰县| 佛坪县| 威远县| 五指山市| 镇雄县| 巨野县| 金湖县| 延庆县| 礼泉县| 兴安县| 太和县| 车致| 五华县| 台安县| 云梦县| 洱源县| 开平市| 遵化市| 古丈县| 吴忠市| 岳西县| 毕节市| 讷河市| 永泰县| 霍邱县|