打印

请各大师帮忙用78P153K写一个用一个按键控制两个输出口的汇编程序啊

[复制链接]
9720|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Jimmy_zjd|  楼主 | 2013-6-19 17:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  本人刚接触义隆单片机,现在要用中断方式写一个P62轻触按钮按一下P60输出低电平,再按一下P61口输出低电平(P60此时转高电平),再按一下关掉(P60,P61均转高电平)的程序。不工作时进入睡眠状态。用电池供电的,进入睡眠后电流要小于5UA.搞了好几天搞不出来,烦啊。也可发到我邮箱kindomzhang1123@163.com,如得帮忙万分感谢。

相关帖子

沙发
Jimmy_zjd|  楼主 | 2013-6-20 08:47 | 只看该作者
:(没人弄过这个吗?

使用特权

评论回复
板凳
dirtwillfly| | 2013-6-20 09:26 | 只看该作者
大家都很忙,没人闲的免费给你写的。楼主还是自己努力吧
或者去创业|外包|承接板块花钱找人写

使用特权

评论回复
地板
ansile| | 2013-6-20 09:31 | 只看该作者
这是比较容易的了,多想想吧。

使用特权

评论回复
5
black黑土| | 2013-6-20 09:51 | 只看该作者
需要芯片倒可以效劳!

使用特权

评论回复
6
garymg| | 2013-6-20 10:04 | 只看该作者
:推荐用我们的比义隆的便宜 而且还可以提供技术支持 QQ:95166837

使用特权

评论回复
7
garymg| | 2013-6-20 10:18 | 只看该作者
78P153 同类产品中不便宜

使用特权

评论回复
8
Jimmy_zjd|  楼主 | 2013-6-20 11:31 | 只看该作者
ansile 发表于 2013-6-20 09:31
这是比较容易的了,多想想吧。

要是弄过也不至于向你们请教了,不过我相信自己会搞定的。

使用特权

评论回复
9
Jimmy_zjd|  楼主 | 2013-6-20 12:55 | 只看该作者
dirtwillfly 发表于 2013-6-20 09:26
大家都很忙,没人闲的免费给你写的。楼主还是自己努力吧
或者去创业|外包|承接板块花钱找人写 ...

常言到,求人求大人,对于眼里只有利益和钱的人,只能是一笑而过。

使用特权

评论回复
10
dirtwillfly| | 2013-6-20 13:16 | 只看该作者
Jimmy_zjd 发表于 2013-6-20 12:55
常言到,求人求大人,对于眼里只有利益和钱的人,只能是一笑而过。

所以求人不如求己

使用特权

评论回复
11
hopewise| | 2013-6-20 16:19 | 只看该作者
给你思路,下面是我用合泰搞的产品部分程序(因商业原因,没给出完整程序).里面有睡眠功能,要在主程序里判断要不要进入sleep等
                #include                        "ht48R063.inc"       
                #define             wenkong      pa.4       
                #define             baojing      pa.5            ;报警输出脚
                #define             shuiyin      pa.3            ;水银检测脚      
            #define             open         pa.2            ;开门行程检测
            #define             openac       pac.2
                                            
                sysdata                                .section                'data'
                acc_bak                                db            ?
                keydwn_t            db            ?
                status_bak                        db                    ?               
                t_125us                                db                    ?                                                                                       
                buz_len                                db                    ?                       
                sec2_halt           db                    ?
                t_second            db                    ?
                baojing_time        db            ?
                tem1                db            ?
                f_baojing           equ                   tem1.0          ;报警标志位                                              
                position_close      equ          tem1.1          ;close行程开关标志位
                position_open       equ          tem1.2          ;open行程开关标志位
                halt_b              equ          tem1.3          ;进入睡眠状态的标志位
                f_shuiyin_press                equ          tem1.4
                shuiyin_time        db            ?       
                time_1sec           db            ?
                door_open_time            db            ?
                n_baojing           db            ?
;*****************程序开始*****************
;******************************************

code                                .section                        'code'
                org                000h
                  jmp                reset
                org                004h                ;外部中断0
                jmp     ext0_interrupt
                org            008h                ;定时器0中断
                jmp                t0_isr
                org            0ch                 ;定时器1中断
                reti
                org                10h                 ;A/D中断,没用到,返回
                reti      
;*****************************************                                                      
reset:
        snz      STATUS.4           ;PD位(位4)=0,则是系统上电或执行CLR WDT, 执行HALT则置1.
        jmp      INITIAL            ;是上电,则执行初始化操作
        mov      a,00000111b                  
        mov      wdts,a
        mov      A,00000000B        ;晶振采用内部的RC(4MHZ)---HIRC,定时器timer0
        mov      CTRL0,A               
        mov      a,10000101b        ;允许WDT中断---WDT时钟来源于内部的RC振荡器,下降沿触发中断
        mov      CTRL1,A
        mov      a,00011100b
        mov      PAC,A  
        mov      a,00011100b        
        mov      PAPU,A   
        mov      a,00011000b            
        mov      PAWK,a                                             
        
        mov      a,00000000b
        mov      PBPU,A
        mov      a,00000000b
        mov      pbc,a                                   
        jmp      OKWORK             ;执行halt指令后,还要判断是WDT是在sleep模式溢出(STATUS.5=1)还是正常模式溢出(STATUS.5不定)
INITIAL:         
        mov      a,00000111b                  
        mov      wdts,a
        mov      A,00000000B        ;晶振采用内部的RC(4MHZ)---HIRC,定时器timer0
        mov      CTRL0,A               
        mov      a,10000101b        ;允许WDT中断---WDT时钟来源于内部的RC振荡器,下降沿触发中断
        mov      CTRL1,A
        mov      a,00011100b
        mov      PAC,A  
        mov      a,00011100b        
        mov      PAPU,A   
        mov      a,00011000b            
        mov      PAWK,a                                             
        mov      a,00011100b
        mov      PA,A
        
        mov      a,00000000b
        mov      PBPU,A
        mov      a,00000000b
        mov      pbc,a  
        mov      a,00000000b
        mov      pb,a  
OKWORK:  
       snz      status.5           ;PD位(位5)=0,则是系统上电或执行CLR WDT, 执行HALT则置1.
       jmp      inital_ram         ;为0,则执行初始化
       jmp      sleep_man                        
inital_ram:            
                mov          a,40h              ;清ram变量
                  mov          mp0,a
clrram_loop:        
                clr          iar0
                   siz                mp0
            jmp          clrram_loop               ;clr ram                   
                   
                mov            a,256-125          ;125uS中断一次(4MZH,分频率为4)
                mov     tmr0,a
                mov                a,92h
                mov                tmr0c,a       
                                       
                mov     a,00000111b               ;定时0中断,外中断,全局中断                                                                                                                                                           
                mov                intc0,a
                mov                a,1
                mov     sec2_halt,a          
;****************主程序区*************
;*************************************
main:          
                mov      a,t_125us
                sub      a,40
                snz      c                                           ;到了5mS吗                       
                jmp             main                      ;没到,则跳到main
main1:
                clr      t_125us                       ;到了,则清t_125us变量       
            snz      halt_b                    ;halt_b 等于1则进入睡眠状态
            jmp      $+2                           ;为0则正常执行指令
                jmp             sleep_man                       ;睡眠管理
            clr      wdt                       ;喂狗                
                call     key_scan_man              ;按键扫描管理   
                call     open_inspection_man       ;开门行程开关检测管理
                call         time_man                  ;时间管理                                 
                call     baojing_man               ;报警输出管理
                call     sleep_test
                jmp          main
;***************************************
;**************睡眠管理*****************
sleep_man:
        clr    baojing_time
        clr    baojing
        clr    halt_b
        
        mov      a,00011000b
        mov      PAC,A  
        mov      a,00011000b        
        mov      PAPU,A   
        mov      a,00011000b            
        mov      PAWK,a                                             
        mov      a,00011000b
        mov      PA,A
        
        halt                           ;进入睡眠状态.                                 
sleep_man1:
        nop
        nop  
               
        mov      a,00011100b
        mov      PAC,A  
        mov      a,00011100b        
        mov      PAPU,A   
        mov      a,00011000b            
        mov      PAWK,a                                             
        mov      a,00011100b
        mov      PA,A
        
                mov     a,10                              
                mov     sec2_halt,a               ;唤醒后,键灯点亮10S
                jmp     main1                      ;返回到主程序       

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
Jimmy_zjd + 1 虽然不是想要的答案,但还是很感谢.
12
Jimmy_zjd|  楼主 | 2013-6-21 08:33 | 只看该作者
hopewise 发表于 2013-6-20 16:19
给你思路,下面是我用合泰搞的产品部分程序(因商业原因,没给出完整程序).里面有睡眠功能,要在主程序里判断要 ...

虽然不是想要的答案,但还是很感谢,希望以后用到合泰时能得到大师指点一二。:handshake

使用特权

评论回复
13
Jimmy_zjd|  楼主 | 2013-7-2 17:01 | 只看该作者
还好,在好心网友的帮助下搞定了,也算免强跨进了单片机的大门吧。

使用特权

评论回复
14
peijianzhang| | 2015-9-3 09:02 | 只看该作者
也有相关的问题可以帮忙一下吗?多谢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

15

帖子

0

粉丝