找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6055|回复: 2
打印 上一主题 下一主题
收起左侧

[求助]高人指点这个中断程序应怎样改

[复制链接]
跳转到指定楼层
楼主
ID:15970 发表于 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编辑过]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:20158 发表于 2009-12-19 12:34 | 只看该作者
你没有进入计时 没有启动定时器。。。
回复

使用道具 举报

板凳
ID:20780 发表于 2010-1-5 13:05 | 只看该作者

在S2==0 时关闭 定时器

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表