丢人呀,STC11F02E单片机进不了timer0中断,大家帮忙看看
如题,是帮一个朋友写的一个小转换程序,总共就这么几行,用KEIL编译,程序也是按照STC11FXX的官方手册第243页来写的。本来以为就那么几分钟的事,结果呢,搞了几个小时了。
注:LED为低电平点亮,如果直接执行LED=0是亮的,说明单片机已经正常在运行。但是这里,LED是不亮的,说明一次中断都没进来
#include "reg51.h"
//#include "intrins.h"
sbit RED_TX = P1^0;
sbit RED_RX= P3^3;
sbit LED1=P3^4;
bit redx=1;
bit redx2=1;
sfr AUXR=0X8E;
void timer0rupt() interrupt 1
{
redx2=0;
if(RXD==0)
{
redx=~redx;
RED_TX=redx;
}
else
{
RED_TX=0;
redx=0;
}
}
void main()
{
AUXR=0X80;;
TMOD=0X06;
TL0=TH0=207;
ET0=1;
EA=1;
TR0=1;
while(1)
{
TXD=RED_RX;
LED1=redx2;
}
} 看来用51的不多了,我才看到,把模式弄错了,这么多年没用,找了以前的书看了才知道,用的是定时,写成计数模式了。 TR0=1;挪到ET0=1;的上面。 TMOD = 0x02; 直接对着手册抄啊,功能实现了再去理解。有时候要粗暴一点 本帖最后由 WM_CH 于 2018-5-18 17:24 编辑
是不是中断的太快,看不到灯亮 使用新版的isp软件,里面的有定时器的配置选项。新版的sp软件还是很强大的。可能下载要用老版的isp软件。 mii 发表于 2018-5-18 17:08
直接对着手册抄啊,功能实现了再去理解。有时候要粗暴一点
嗯,就是这样想的,结果出问题了. 请看4楼就知道了 楼主,不是不帮忙啊,现在大部分都用ARM了,用51的都不好意思出来{:titter:} 这个真的丢人了
页:
[1]