求助简单程序

[复制链接]
2298|7
 楼主| wwfjj1987 发表于 2010-12-5 11:29 | 显示全部楼层 |阅读模式
se, des, DM, IDMA, ui
本人新手,写了个程序,用p1.0和p1.1分别控制p1.2和p1.3的状态,
#include <reg52.h>
sbit key1=P1^0;
sbit key2=P1^1;
sbit P12=P1^2;
sbit P13=P1^3;
void main(void)
{
uint n=0;
while(1)
{
  if (key1==0)
  {
   P12=0;
  }
    else P12=1;
  if (key2==0)
  {
   P13=0;
  }
    else P13=1;
}
}
用keil调试运行时,点p1.0或p1.1几次程序就跑飞了,我也没有点快啊,有谁能知道什么原因啊??大家帮我看看啊
 楼主| wwfjj1987 发表于 2010-12-5 11:31 | 显示全部楼层
我点出来一个错误来,下面是错误提示
*** error 65: access violation at C:0x07F6 : no 'execute/read' permission
liang7143 发表于 2010-12-5 18:16 | 显示全部楼层
加延时处理
topfei123 发表于 2010-12-5 22:57 | 显示全部楼层
延时消抖,还有每次可以多采样几次,每次都一样才判断确实按下了
 楼主| wwfjj1987 发表于 2010-12-6 23:54 | 显示全部楼层
我是用KEIL外设端口P1口来模拟按键的,就是说我模拟的按键是没有抖动的,应该不是没有延时消抖程序产生的。我用KEIL软件里面P1寄存器状态仿真是理想情况,这种情况出现类似程序跑飞的现象的,搞不清楚啊
 楼主| wwfjj1987 发表于 2010-12-6 23:55 | 显示全部楼层
我是用KEIL外设端口P1口来模拟按键的,就是说我模拟的按键是没有抖动的,应该不是没有延时消抖程序产生的。我用KEIL软件里面P1寄存器状态仿真是理想情况,这种情况出现类似程序跑飞的现象的,搞不清楚啊
shiwilson 发表于 2010-12-13 16:22 | 显示全部楼层
使用void delay()吧,这样试试看
ok2879121 发表于 2010-12-14 17:48 | 显示全部楼层
我仿真过了,对的啊。。就提示uint n=0;不对,改了就好了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:真实的不完美。引擎是为平直柏油马路设计的,人亦如此。谨此悼念一路走过又无暇顾及的风景。

0

主题

92

帖子

1

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