求助帖~~~~~~~~~~希望大神解答

2019-07-15 13:53发布

本人新手,正在学习C51单片机基础,自己用定时器写了个程序,p1.0接个发光二极管,然后让它亮一秒之后熄灭,但是仿真的时候一直是亮的,不知道为什么,求解答
[td]#include<reg52.h>#define uint unsigned int#define uchar unsigned charuchar aa;sbit p10=P1^0;void init();
void main(){        init();        p10=0;        if(aa==20)        {                aa=0;                p10=1;        }

}void init(){                TMOD=0x01;        TH0=(65536-50000)/256;        TL0=(65536-50000)%256;        EA=1;        ET0=1;        TR0=1;        }
void timer0() interrupt 1{        TH0=(65536-50000)/256;        TL0=(65536-50000)%256;        aa++;       
[/td]
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
share阳光
1楼-- · 2019-07-16 13:57
chenwei6991627 发表于 2016-5-21 20:50
加个while(1);试试

好的,谢谢~~~~~~~~~~~~
share阳光
2楼-- · 2019-07-16 16:31
chenwei6991627 发表于 2016-5-21 20:50
加个while(1);试试

是我写错了,在定时器后面加while(1),就可以了,非常感谢你的回答
share阳光
3楼-- · 2019-07-16 16:59
share阳光 发表于 2016-5-21 20:53
好的,谢谢~~~~~~~~~~~~

能不能再请教一下,要是输出为高低电平相互交替,周期为2S我应该怎么改呢?
share阳光
4楼-- · 2019-07-16 21:44
 精彩回答 2  元偷偷看……
RobinGod
5楼-- · 2019-07-17 01:19
把判断放到中断里面试试,高低交换可以用取反 P10=~P10
融稔
6楼-- · 2019-07-17 06:08
while(1)
     {      
        if(aa==20)
        {
                aa=0;
                p10=~p10;
        }
     }

一周热门 更多>