标题: [求助]高人指点这个中断程序应怎样改 [打印本页]

作者: DEMO    时间: 2009-11-27 20:23
标题: [求助]高人指点这个中断程序应怎样改

请教:想自己用stc89c52写个小程序  按下P1^0口开关后P0^0口的灯亮起,延时10秒后P0^1口的灯常亮,在延时过程中和延时后只要按下P1^1都可以随时中断程序从头重新执行。以下是自己写的总是有错越改越乱,求高人给该一下或帮忙写个参考参考,最好每一条语句给解释一下,谢谢了!

#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uint aa;
sbit s1=P1^0;
sbit s2=P1^1;
sbit d=P1^7;
void init()
{
 TMOD=0x01;
 aa=0;
 TH0=(65536-5000)/256;
 TL0=(65536-5000)%256;
 EA=1;
 ET0=1;
}
void main ()
{
 init();
 d=0;
 while(1)
 {
  if(s1==0)
  {  
   TR0=1;
   P0=0xfe; 
  }
  if(aa==200)
  {
   aa=0;
   P0=0xfd;  
  } 
 }
}
void timer0() interrupt 1
{
 TH0=(65536-50000)/256;
 TL0=(65536-50000)%256;
 aa++;
 if(s2==0)
 {
  aa=0;
  P0=0xff;
 }
}

[此贴子已经被作者于2009-12-16 9:08:23编辑过]

作者: xiaoxiaoxiao    时间: 2009-12-19 12:34
你没有进入计时 没有启动定时器。。。
作者: long05931    时间: 2010-1-5 13:05

在S2==0 时关闭 定时器






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1