单片机bug求助

dyfxjtu 2015-08-28 10:26:53
我使用at89s52单片机,内烧计数器程序(程序后附),然后转接max232,接db9与上位机通信。单片机程序在proteus中模拟情况正常,现在问题是实际测试怎么也没信号。想请论坛里朋友们帮忙看看电路图或者程序有问题吗。



图中晶振22.1184MHz,(波特率是38400,用11.0092误差很大),起震电容30pf,无极性。max232部分电容0.1uf,无极性。
db9公头,y1接vcc和地线,vcc5v。y2接模拟信号,中断查询方式。

现测试方法为加电压,加周期0.1s方波信号,串口接入电脑,采用串口测试软件(可用无故障)接收计数率信息。无信号。经万用表测,db9输出端3v直流电压,输入端5v,晶振两端电压特别小,只有0.002v左右(几乎没有)。求论坛朋友帮忙看看有没有什么问题,或者可能有什么问题,怎么debug。万谢。后附程序代码及测试图。

#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar count=0;
int num=0;
void init1()
{
SCON=0x50;
TMOD=0x21;
TH1=0xFD;
TL1=0xFD;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ES=1;
ET0=1;
TR0=1;
TR1=1;
EX0=1;
IT0=1;
PCON=0x80;


}


void send(uchar temp)
{
SBUF=temp;
while(TI==0);
TI=0;
}




void maochong() interrupt 0
{

count++;
}

void timer() interrupt 1
{
TR0=0;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
num++;
if(num==20)
{



send(count);
count=0;
num=0;
}




TR0=1;
}

void main()
{

init1();
while(1);
}


...全文
171 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
worldy 2015-08-29
  • 打赏
  • 举报
回复
要用示波器测 晶振两端电压特别小,只有0.002v左右(几乎没有)是指对地测量吧,如果是这样,说明晶振没有起振
sprawling 2015-08-29
  • 打赏
  • 举报
回复
单片机有没有运行你置位一个IO口试试,看你P3口很多都是空的。 随便设一个口,】 晶振最好不要用万用表量,搞不好会导致停振

27,374

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧