mc9rs08的一个小项目和代码

这是老师分给我的一个项目.

  要求:

  1:8脚上电时6脚出现400毫秒高电平,上电初始时向外的延时尽量短.以后准时在出现高电平;

  2:8脚掉电时5脚出现2.8秒高电平,6脚在5脚转化为高电平后延时1秒6脚再出现20毫秒高电平.结束!

 

昨天晚上终于完成了,并通过了检测.可以用,已经给外面的工程师了.

 

 

   Include derivative-specific definitions
            INCLUDE 'derivative.inc'
;
; export symbols
;
            XDEF _Startup
            ABSENTRY _Startup

;
; variable/data section
            ORG    RAMStart        
; Insert your data definition here  
time:         DS.B        1
count:        DS.B        1
num:          DS.B        1       

;=================================================
;
;=================================================
;code section
      ORG    ROMStart
_Startup:
;CONFIGURES SYSTEM CONTROL
      mov #HIGH_6_13(SOPT), PAGESEL 
      mov #$03, MAP_ADDR_6(SOPT)        ; Disables COP and enables BKGD (PTA3) and RESET (PTA2) pins                                 
;CONFIGURES CLOCK (FEI Operation Mode),ICSOUT = DCO output frequency 
      clr      ICSC1
      mov    #$c8,ICSC2    ;8 分频;低功率
      clr  ICSSC         ;out of fll       
 ;ACMP
      bclr ACMPSC_ACBGS,ACMPSC
;wait_clock:
      ;brclr ICSSC_CLKST,ICSSC,wait_clock      ; Waits until FLL is engaged ,CLKST是0时选择FLL,1时选择内部参考时钟
;=================================================
;全局变量初始化
      clr     time
      clr     count    
      clr     num
;=================================================
;端口初始化
;7脚输出,指示等亮
      bset PTADD_PTADD1,PTADD
      bset PTAD_PTAD1,PTAD
;5脚输出,打开大功率管
      mov  #HIGH_6_13(PTAPE),PAGESEL
      bset PTAPE_PTAPE5,MAP_ADDR_6(PTAPE) ;因为是大功率管,所以上拉
      bset PTADD_PTADD5,PTADD
      bset PTAD_PTAD5,PTAD
;6脚输出,关闭小继电器
      bset PTADD_PTADD4,PTADD
      bclr PTAD_PTAD4,PTAD
;8脚输入,电源检测,acmp     
      mov  #HIGH_6_13(PTAPE),PAGESEL
      bset PTAPE_PTAPE0,MAP_ADDR_6(PTAPE)
      bclr PTADD_PTADD0,PTADD

pta400ms_loop:
      mov  #$13,time        ;0~19,20 loops
pta400ms:
      JSR  relay_20ms
      dbnz time,pta400ms    ;7

      bclr PTAD_PTAD5,PTAD
;=================================================                           
;测8脚
hv_loop:
      brset  PTAD_PTAD0,PTAD,hv_loop
      JSR  relay_20ms
      brset  PTAD_PTAD0,PTAD,hv_loop
      bset PTAD_PTAD4,PTAD        

pta1s:
      mov  #$18,time   ;0~49
pta1s1:
      JSR  relay_20ms
      dbnz  time,pta1s1

      bset PTAD_PTAD5,PTAD

      JSR  relay_20ms
     
      bclr PTAD_PTAD5,PTAD
     

      wait

;=================================================
; DELAY 20MS
;=================================================
relay_20ms: mov  #$36,count                ;4
  
re_cycle:   mov  #100,num                ;4 cycle
            dbnz num,*                   ;7           
           
            dbnz count,re_cycle               ;7
            rts                            ;3


;=================================================

;**************************************************************
;*                 Startup Vector                             *
;**************************************************************
            ORG   $3FFD

            JMP _Startup          ; Reset

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值