本帖最后由 nwjjdwx 于 2015-7-28 12:23 编辑
请教各位老师,这个问题应该怎样解决,问题如下,用8脚的STC15F104E做了一个小东西,程序下载后运行正常,就是按键反应稍有迟缓,后来看到STC15F102W这款单片机价格便宜一些,便想使用15F102W来做这个东西,可是下载后却不能正常运行,以为芯片的问题,换了好几片,现象一个样,芯片是从STC南通公司买的,请各位老师帮忙指点一下:
//程序功能说明:利用定时器0产生一个频率838Hz的信号,通过7脚输出;有两种占空比输出,利用3脚外接的对地微动按钮来切换,1脚驱动外接发光管来指示输出占空比类型;5脚6脚8脚用来对电路输出负载进行监测:主要实现开机负载不短路、不开路时8脚输出驱动一个蜂鸣器,发出一长声表示正常,开路三短声连续响,短路两短声连续响并停止信号驱动输出。利用5脚电压高低变化来进行监测。6脚为开机自检时对负载状态进行辅助控制以配合5脚进行自检。//
//(遇到的问题:这个程序在15F104E上运行正常,只是按键功能执行感觉稍有迟缓,其它正常,把它下载到15F102W上出现两个问题:1、蜂鸣器一工作,程序功能彻底混乱,在104E上应用时8脚加4.7k上拉,再用10欧电阻限流驱动三极管来驱动蜂鸣器,后我将10欧限流改为2k限流,应用在102w上,蜂鸣器干扰问题解决。2、第二个问题:开机先不正常短响一下才开始进入自检程序,这个短响在程序里是没有的,不知道为什么会短响一下,这时示波器测了一下信号输出正常,按动3脚按键切换输出脉冲占空比,切换成功,示波器测试证实也是正常的。可是再次按动按键想切换回来却不能了,这时发现自检监测程序也失灵了,好像除了定时器和它的中断程序外,其他的都失灵了,只有断电再次启动才正常,不过按键只能按动1次,按了之后又失灵了。)//
#include <reg52.h> //52系列单片机头文件
#define uint unsigned int //宏定义
sbit out1=P3^3; //声明蜂鸣器输出为p1的0引脚(蜂鸣器)
sbit out2=P3^2; //(信号输出)
sbit out3=P3^1; //声明状态监测辅助输出脚为p1的第1脚
sbit key1=P3^5; //声明功能转换按钮为p1的第5脚
sbit key2=P3^0; //声明状态监测脚(包括过流)为p1的第0脚
sbit led1=P3^4; //声明功能状态指示灯为p3的第4脚
uint i,j; //定义数据类型
uint num1; //定义数据类型
void delayms(uint xms) //延时子程序
{
for(i=xms;i>0;i--)
for(j=400;j>0;j--);
}
void init()
{
out1=0; //蜂鸣器
out2=0; //信号输出
out3=1; //监测辅助控制
delayms(60);
out3=1; //监测辅助控制打开
delayms(60);
while(key2==1) //判断状态监测脚状况
{
out1=1;
delayms(400);
out1=0;
delayms(200);
out1=1;
delayms(400);
out1=0;
delayms(200);
out1=1;
delayms(400);
out1=0;
delayms(1500);
}
out3=0; //监测辅助控制关闭
num1=310;
TMOD=0x01; //设置定时器0为工作方式1(M1M0为01)
TH0=(65536-1116)/256; //装初值11.0592M晶振定时50ms数为45872.(1116为1.2ms)
TL0=(65536-1116)%256;
EA=1; //开总中断
ET0=1; //开定时器0中断
TR0=1; //开定时器0
delayms(50);
if(key2==1)
{
TR0=0;
out1=1; //蜂鸣器开
delayms(1500);
out1=0; //蜂鸣器关
TR0=1;
}
}
void keyscan() //键扫描子程序
{
if(key1==0)
TR0=0;
delayms(10);
if(key1==0)
led1=~led1;
while(key1==0);
delayms(30);
TR0=1;
if(key2==0)
{
TR0=0;
while(1)
{
out1=1;
delayms(400);
out1=0;
delayms(200);
out1=1;
delayms(400);
out1=0;
delayms(1000);
}
}
}
void main() //主程序
{
init(); //执行初始化
while(1)
{
keyscan();
}
}
中断程序省略....................................................
|