您可以添加到网摘 让更多人关注此文章:
************************************************ * FileName: ex8.asm * * Description: 急救车与交通灯实验 * * Copyright(C) SanZhi Electronic, Author Zpin * ************************************************
.title "ex8" .global _c_int00 .mmregs
LED_ADDR .set 5008h
STATUS0 .set 00h STATUS1 .set 01h STATUS2 .set 02h STATUS3 .set 03h STATUS4 .set 04h STA2_PRE_0 .set 05h STA2_PRE_1 .set 06h STA4_PRE_0 .set 07h STA4_PRE_1 .set 08h
CURRENT_STA .set 60h
.data ;东西、南北 红红 绿红 黄红 红绿 红黄 空红 绿红 红空 红绿 ;.word 0f00h,5a00h,5f00h,0a500h,0af00h,0a00h,5a00h,0500h,0a500h .word 0f000h,0a500h,0f500h,5a00h,0fa00h,0a000h,0a500h,5000h,05a00h ;.word 0C300h,9600h,0D700h,6900h,0EB00h,08200h,9600h,04100h,06900h DELAY .macro sec_tenth ;延时 sec_tenth/10 秒 STM sec_tenth-1,AR5 loop1? STM #09h,AR6 loop0? STM #49999,AR7 BANZ $,*AR7- BANZ loop0?,*AR6- BANZ loop1?,*AR5- .endm
.sect ".vectors" rst: B _c_int00 NOP NOP .space 15*4*16 int0: b bus_come NOP NOP int1: nop nop nop nop int2: ;b bus_come nop nop nop nop .space 13*4*16
.text _c_int00
LD #0h,DP STM #3000h,SP SSBX INTM SSBX SXM STM #07FFFh,SWWSR ;IO总线外部等待时间14个周期 STM #01h,2Bh
STM #0h,CLKMD ;20MHz工作 tst BITF CLKMD,#1h BC tst,TC STM #1087h,CLKMD RPT #0FFh NOP ST #0FFFFh,IFR ORM #0001h,IMR RSBX INTM LD #40h,DP LD STATUS0,T PORTW STATUS0,LED_ADDR ;全部红灯 DELAY #10 ;延时1秒
circle LD STATUS1,T ;nop ;nop ;nop ;nop PORTW STATUS1,LED_ADDR ;南北红灯、东西绿灯 ;nop ;nop ;nop ;nop DELAY #200 ;延时20秒 STM #2h,BRC ;nop ;nop ;nop ;nop RPTB flash1 ;nop ;nop ;nop ;nop LD STA2_PRE_0,T ;nop ;nop ;nop ;nop PORTW STA2_PRE_0,LED_ADDR ;nop ;nop ;nop ;nop DELAY #3 LD STA2_PRE_1,T ;nop ;nop ;nop ;nop PORTW STA2_PRE_1,LED_ADDR ;nop ;nop ;nop ;nop DELAY #3 flash1 NOP ;南北绿灯闪3次、东西红灯 LD STATUS2,T PORTW STATUS2,LED_ADDR ;南北黄灯、东西红灯 DELAY #30 ;延时3秒 LD STATUS3,T PORTW STATUS3,LED_ADDR ;南北红灯、东西绿灯 DELAY #200 ;延时20秒
STM #2h,BRC RPTB flash2 LD STA4_PRE_0,T PORTW STA4_PRE_0,LED_ADDR DELAY #3 LD STA4_PRE_1,T PORTW STA4_PRE_1,LED_ADDR DELAY #3 ;南北红灯、东西绿灯闪3次 flash2 NOP LD STATUS4,T PORTW STATUS4,LED_ADDR ;南北红灯、东西黄灯 DELAY #30 ;延时3秒
B circle
bus_come PSHM AR5 PSHM AR6 PSHM AR7 PORTW STATUS0,LED_ADDR ;急救车来,全部红灯 DELAY #100 ;延时10秒 ST T,CURRENT_STA PORTW CURRENT_STA,LED_ADDR ;恢复现场 POPM AR7 POPM AR6 POPM AR5 RETE
|