打印

满月菜鸟求解:独立按键不定义也能用么??

[复制链接]
2141|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jimmychen|  楼主 | 2011-8-30 16:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天有一个人发了这样一个程序,没有定义独立按键 。他告诉我是默认的, 我觉得很神奇,试了一下 ,真的起作用,按下按键后计时就开始??、我觉得不可思议,求高手指点,我是一个满月的菜鸟




#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit d1=P2^0;
sbit d2=P2^1;
sbit d3=P2^2;
uint num,aa,ms,mg,cc;
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void delay(uint z);
void main()
{
        P0=table[0];
P2=1;
delay(5);
P0=table[0];
P2=2;
delay(5);
P0=table[0];
P2=4;
delay(5);

EA=1;
EX0=1;
EX1=1;
IT0=1;
IT1=1;
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
ET0=1;
TR0=0;

while(1)
{
  while(aa==2)
{
aa=0;
num++;
cc=num%10;
mg=num/10%10;
ms=num/100;
}
P0=table[ms];
P2=1;
delay(5);
P0=table[mg];
P2=2;
delay(5);
P0=0x40;
P2=3;
delay(5);
P0=table[cc];
P2=4;
delay(5);


}



}
void kaiguan() interrupt 0 using 1
{
TR0=~TR0;
}
void guiling() interrupt 2 using 1
{
while(TR0==0)
{

num=0;
        P0=table[0];
P2=1;
delay(5);
P0=table[0];
P2=2;
delay(5);
P0=0x40;
P2=3;
delay(5);
P0=table[0];
P2=4;
delay(5);
}
}
void jishi() interrupt 1
{
    TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
aa++;
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}

相关帖子

沙发
NE5532| | 2011-8-30 22:05 | 只看该作者
楼主没有描述你到底想问这个程序里的什么问题。

使用特权

评论回复
板凳
jimmychen|  楼主 | 2011-8-31 09:12 | 只看该作者
这是一个秒表的程序,没有定义独立按键,但是却按下一个独立按键才能开始计时,按另外一个就复位了

使用特权

评论回复
地板
jimmychen|  楼主 | 2011-8-31 09:12 | 只看该作者
这到底是什么原因呢

使用特权

评论回复
5
lyjian| | 2011-8-31 12:20 | 只看该作者
这是一个秒表的程序,没有定义独立按键,但是却按下一个独立按键才能开始计时,按另外一个就复位了
**********************
你这说的不是矛盾吗?
“没有定义独立按键”,那哪来“按下一个独立按键”,又哪来“按另外一个”。
建议你学技术前先把中文学好,学会怎么描述清楚一个问题,别就只会问为什么?

使用特权

评论回复
6
jimmychen|  楼主 | 2011-8-31 13:03 | 只看该作者
大哥,这就是问题的所在,我就是问为什么没有定义的独立按键会有功能,麻烦你看清楚,是你自己太急了吧!谢谢你的回答

使用特权

评论回复
7
NE5532| | 2011-8-31 13:43 | 只看该作者
大哥,这就是问题的所在,我就是问为什么没有定义的独立按键会有功能,麻烦你看清楚,是你自己太急了吧!谢谢你的回答
jimmychen 发表于 2011-8-31 13:03


那我只能告诉你,程序就是这样写的。

使用特权

评论回复
8
ZRL700424| | 2011-8-31 13:55 | 只看该作者
不明白楼主想要问什么(没心情看程序)

使用特权

评论回复
9
zxcscm| | 2011-8-31 15:43 | 只看该作者
本帖最后由 zxcscm 于 2011-8-31 15:45 编辑

楼主的意思是不是看到程序里并没有针对按键的处理程序,而按键却能起作用?
要是这样,楼主是真的还没入门呐。

按键1接P3.2,控制计时开关
按键2接P3.3,复位,而且只能是停止计时后才能复位。楼主的硬件是不是这样连接的?
要是这样,给你个关键词:中断
这个程序没错,也不奇怪,再仔细研究研究程序吧

如果还不明白再告诉你为什么

使用特权

评论回复
10
jimmychen|  楼主 | 2011-8-31 16:52 | 只看该作者
谢谢 9楼得 zxcscm ,我确实是学了没几天的,硬件连接也像你说的这样。我再仔细琢磨一下,万分感谢指出问题所在,而且这么有耐心地看,新人需要你这样的人。谢谢

使用特权

评论回复
11
NE5532| | 2011-8-31 16:59 | 只看该作者
谢谢 9楼得 zxcscm ,我确实是学了没几天的,硬件连接也像你说的这样。我再仔细琢磨一下,万分感谢指出问题所在,而且这么有耐心地看,新人需要你这样的人。谢谢 ...
jimmychen 发表于 2011-8-31 16:52


新人要的是静下心来从能看懂的部分开始,世界上只能靠自己。

使用特权

评论回复
12
zbb564833642| | 2011-8-31 17:04 | 只看该作者
好好学,,楼主,,,加油

使用特权

评论回复
13
sgj245609615| | 2011-9-1 08:03 | 只看该作者
你这不是利用了外部中断的独立按键吗

使用特权

评论回复
14
hjs1618| | 2011-9-1 10:13 | 只看该作者
这是由外部独立按键触发中断的。

使用特权

评论回复
15
369761094| | 2011-9-3 21:15 | 只看该作者
用了2个外部中断嘛

使用特权

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

本版积分规则

3

主题

117

帖子

1

粉丝