打印

关于c51的一个小程序问一下大侠!

[复制链接]
1790|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhaigch|  楼主 | 2009-10-17 22:55 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
沙发
九天牧歌| | 2009-10-17 23:14 | 只看该作者
程序的思路是对的,采集按键然后将按键状态发给输出端,但是作为程序你需要做一个基本的大循环,即while(1)这样的语句来营造一个可以一直循环的运行环境.
可以写成
org 0030h
mov p2,#5ah
a:
mov A,p1
必要的延时放置抖动
mov p2,A
jump a

end
真是很久很久没有用汇编了,不知道jump语法写对没有,用这个思路走才能检测出程序有没有按照你的思路来运行.
用C来写
while(1)
{
      A = P1;
      IF(A != B)   按键计数 = 按键计数+1;
     ELSE  按键计数 = 0;
      IF(按键计数>10) {
          B = A;
         按键计数 = 0;
     }
    P2 = B;
}

使用特权

评论回复
板凳
zhaigch|  楼主 | 2009-10-17 23:21 | 只看该作者
谢谢指教呀!
但是我这样为什么在proteus中仿真时,也可以达到目的呢!不是程序运行到mov p2,r0
后就不知道运行到那里了么?循环指令是jmp

使用特权

评论回复
地板
zhaigch|  楼主 | 2009-10-17 23:23 | 只看该作者
我是一个初学者,c 我们还不学的

使用特权

评论回复
5
IC_99| | 2009-10-18 00:54 | 只看该作者
学C比较容易上手,汇编比较难

使用特权

评论回复
6
红金龙吸味| | 2009-10-18 09:15 | 只看该作者
ORG 0030H
            MOV P1, #0FFH
MAIN: MOV R0,  P1
             MOV P2, R0
             JMP MAIN
             END
试试看

使用特权

评论回复
7
zhaigch|  楼主 | 2009-10-18 12:15 | 只看该作者
谢谢!!

使用特权

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

本版积分规则

64

主题

158

帖子

1

粉丝