中断控制程序中加定时器延时子程序,外部中断后灯一直暗

2019-07-16 04:21发布

本帖最后由 松松德电子 于 2012-10-14 12:30 编辑

#include <reg51.h>
void delay(unsigned char x);/*延时x秒*/
void main()
{
  IT0=1;
  EA=1;
  EX0=1;
  for(;;)
    P1=0x00;
}
void f()interrupt 0
{
  P1=0xff;
  delay(1);
}
void delay(unsigned char x)
{
unsigned char i,j;
for(j=1;j<=x;j++)
  for(i=1;i<=20;i++)/*一秒*/
{
  TMOD=0x01;
  TH0=0x3c;
  TL0=0xB0;
  TR0=1;
  while(!TF0);
  TF0=0;
}
}



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
changjiang008
1楼-- · 2019-07-16 09:20
你把中断初始化TMOD=0x01;TH0=0x3c;TL0=0xB0; TR0=1;放MAIN里试试
lovezjf234
2楼-- · 2019-07-16 11:54
写的什么代码,想表达的是什么意思,延时函数还能写成这样?
松松德电子
3楼-- · 2019-07-16 17:09
lovezjf234 发表于 2012-10-14 11:04
写的什么代码,想表达的是什么意思,延时函数还能写成这样?

就是想在外部中断0中断后灯全暗一秒,然后用子程序delay(1)来达到延时一秒。
安静的天涯
4楼-- · 2019-07-16 21:55
直接用暂时函数就行了吧,不需要再加定时中断吧来自: Android客户端
东坡守月
5楼-- · 2019-07-16 23:11
 精彩回答 2  元偷偷看……
chenyue11
6楼-- · 2019-07-17 02:52
void delay(uchar a)
{
        uint x,y;
        for(x=a;x>0;x--)
                for(y=110;y>0;y--);
你试试把这个延时程序替代你的,然后那些中断指令要放在main里。

一周热门 更多>