帮看个程序问题

[复制链接]
1910|10
 楼主| zhuhuis 发表于 2013-5-15 20:20 | 显示全部楼层 |阅读模式
TE, AI, AN, TI, timer
开机按键不管用
MAIN:                        
               NOP
                NOP                     
                ADI F_TIMER,0001B
                BA0 HALTMODE ;未到5ms, 跳转
                ANDIM F_TIMER,1110B ;清"5ms 到"标志            
               NOP                           
               LDA PORTD,00H
                STA TEMP,00H
                SBI TEMP,0FH;=0,没有按键动作跳走               
                BAZ YS_4                                             
                ADIM TEMP5,01H
                SBI TEMP5,01H;是否是第一次按键按下是的话存起来初次按键值
                BAZ YS_5
                LDA KEY_OLD,00H
                SUB TEMP,00H
                BNZ YS_4
                SBI TEMP5,03H;扫描8次按键未完成继续扫描
                BNZ MAIN
                ANDIM TEMP5,00H
                LDA T0M_1,00H;判断开机标志位
                BA0 YS_8
                LDA TEMP,00H
                BA0 YS_4
AS_1:                                         
                ORIM T0M_1,01H;设置开机标志
                JMP MAIN
YS_8:                                          
               LDA KEY_OLD,00H
                BA1 YS_4
                JMP YS_7                                          
HALTMODE:
                 NOP
                 HALT
                 NOP
                 NOP
                 JMP MAIN
YS_4:                             
                ANDIM F_TIMER,1110B
                ANDIM TEMP5,00H               
                JMP MAIN               
YS_5:
                LDA TEMP,00H
                STA KEY_OLD,00H                              
               RTNI
YS_7:                                               
               LDI PORTC,0FH
               ADI F_TIMER,0010B
               BA1 YS_7
               ANDIM F_TIMER,1101B
               LDI PORTC,00H
                JMP
    MAIN                                                                                                                                                   
                END
tian111 发表于 2013-5-15 20:27 | 显示全部楼层
没看出来有啥
宋倩2010 发表于 2013-5-15 20:27 | 显示全部楼层
问题出在
SBI TEMP5,01H;是否是第一次按键按下是的话存起来初次按键值
                BAZ YS_5
YS_5:
                LDA TEMP,00H
                STA KEY_OLD,00H                              
               RTNI
 楼主| zhuhuis 发表于 2013-5-15 20:29 | 显示全部楼层
哦,解决了
 楼主| zhuhuis 发表于 2013-5-15 20:29 | 显示全部楼层
现在的问题是时时监控按键有点问题
 楼主| zhuhuis 发表于 2013-5-15 20:35 | 显示全部楼层
我该找找那个历程看看呢
gongche 发表于 2013-5-15 20:36 | 显示全部楼层
例5.2.1
huanghuac 发表于 2013-5-15 20:39 | 显示全部楼层
LDA PORTD,00H
                STA TEMP,00H
                SBI TEMP,0FH;=0,没有按键动作跳走               
                BAZ YS_4      
如果你只是使用了PD的某一个口为什么使用这种判断方法呢?为什么不使用位判断指令(BA3,BA2,BA1,BA0)?如果你只使用一个按键用的是PD0口,或者这样写应该更好:
               LDA PORTD,00H
               BA0 JMP**    ;//高电平跳走
                                      ;//低电平有效
happy_10 发表于 2013-5-15 20:40 | 显示全部楼层
看全部程序,在确认按键后将FLAG1的BIT0位置1
冰清玉洁 发表于 2013-5-15 20:42 | 显示全部楼层
嗯,在没有按键的时候将FLAG1的BIT0位清零
 楼主| zhuhuis 发表于 2013-5-15 20:45 | 显示全部楼层
嗯,真是非常感谢大家
您需要登录后才可以回帖 登录 | 注册

本版积分规则

728

主题

8464

帖子

6

粉丝
快速回复 在线客服 返回列表 返回顶部