在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
芯片精品文章合集(500篇!) 创芯人才网--重磅上线啦!
查看: 2432|回复: 6

新手请教小问题

[复制链接]
发表于 2005-11-9 07:38:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
    我初学单片机,想实验在按下p1.0口后每一秒改变p0/p2口输出状态,用伟福6000绿色版模拟似乎没问题,但是将它烧到单片机后运行好象就不行的,输出口状态不会改变,请教师傅下面是哪个地方出问题了?谢谢!
KEY_CHANG    EQU    20H
KEY_OK       EQU    20H.0       ;按键成功标志位
SEC_OK       EQU    20H.1       ;秒到标志
LONG_TIME    EQU    7FH
SHORT_TIME   EQU    7EH
;
;p1/p3是输入口;p0/p2是输出口
        ORG  000H
        LJMP START
        ORG  00BH
        LJMP  TIME
START:
        MOV  P0,#00H            ;关闭所有口
        MOV  P1,#00H
        MOV  P2,#00H
        MOV  P3,#00H
        MOV  P0,#0AAH
        MOV  P2,#55H
        MOV  TH0,#0D8H
        MOV  TL0,#0F0H
        MOV  TMOD,#01H          ;16位定时器,开始定时
        CLR  KEY_OK             ;
        SETB EA                 ;开中断
        SETB ET0                ;允许定时器1
        SETB TR0                ;开定时器1
CYC:    LJMP CYC
TIME:   MOV  TH0,#0F0H
        MOV  TL0,#0D6H
        INC  LONG_TIME          ;长定时加1FT
        MOV  A,LONG_TIME
        CJNE A,#64H,LOOP1        ;
        MOV  LONG_TIME,#00H      ;
        SETB SEC_OK              ;
LOOP1:
        JBC  P1.0,KEY_EST       ;有键按下吗
        RETI                    ;没有按下键,返回
;如果P0.0按下,输出状态取反,否则推出
PART_CHANG:
        MOV  A,LONG_TIME
        JBC  SEC_OK,PART_OK     ;到1秒?
        RETI
PART_OK:
        CLR  KEY_OK             ;到,改变输出口状态
        MOV  A,P0               ;将输出口取反
        CPL  A                  ;
        MOV  P0,A
        MOV  A,P2               ;
        CPL  A
        MOV  P2,A               ;
        MOV  LONG_TIME,#00H     ;清掉当前计时
        RETI
KEY_EST:
        JBC  KEY_OK,PART_CHANG  ;有,原来按下过?
        SETB KEY_OK             ;没有,设置标志
PART_SUCC:                      ;
        RETI
发表于 2005-11-9 09:39:01 | 显示全部楼层

新手请教小问题

怎么没有清除SEC_OK的标准位呀.那样只是在一秒前正常.之后一直为一秒到的标志
 楼主| 发表于 2005-11-9 21:53:43 | 显示全部楼层

新手请教小问题

用JBC  SEC_OK,PART_OK已经清除掉了SEC_OK标志位的啊!我又试了下,好象是没有进入中断,TCON中的TF0始终不会溢出进入中断,请问为何啊?哪里出错了?
发表于 2005-11-10 14:36:11 | 显示全部楼层

新手请教小问题

可能是晶体振荡频率和您的仿真设置平率不对
 楼主| 发表于 2005-11-10 20:15:59 | 显示全部楼层

新手请教小问题

在模拟中用的就是12M的时钟,没错啊,为什么不进中断的呢?请问在设置中断中还需要设其它更多的寄存器吗?谢谢各位了!
发表于 2005-11-11 13:48:28 | 显示全部楼层

新手请教小问题

单片机跑起来了没有
发表于 2005-11-12 12:18:44 | 显示全部楼层

新手请教小问题

程序中间好像没有什么问题的,你的硬件的设置是不是正确阿?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-16 15:36 , Processed in 0.058315 second(s), 10 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表