1
电子说
首先应该确认电源电压是否正常。用电压表测量接地引脚跟电源弓|脚之间的电压,看是否是电源电压,例如常用的5V。接下来就是检查复位引脚电压是否正常。分别测量按下复位按钮和放开复位按钮的电压值,看是否正确。然后再检查晶振是否起振了,一 般用示波器来看晶振引|脚的波形,注意应该使用示波器探头的“X10”档。另一个办法是测量复位状态下的I0口电平,按住复位键不放,然后测量I0口(没接外部上拉的P0口除外)的电压,看是否是高电平,如果不是高电平,则多半是因为晶振没有起振。另外还要注意的地方是,如果使用片内ROM的话(大部分情况下如此,现在已经很少有用外部扩ROM的了),- 定要将EA弓|脚拉高,否则会出现程序乱跑的情况。有时用仿真器可以,而烧入片子不行,往往是因为EA引脚。没拉高的缘故(当然,晶振没起振也是原因之一)。经过上面几点的检查, -般即可排除故障了。如果系统不稳定的话,有时是因为电源滤波不好导致的。在单片机的电源弓|脚跟地弓|脚之间接上一个0.1uF的电容会有所改善。如果电源没有滤波电容的话,则需要再接一个更大滤波电容 ,例如220uF的。遇到系统不稳定时,就可以并上电容试试(越靠近芯片越好)。
另外,调试系统时一定要有耐性,静下心来-点点的调,千万不要着急。
复位电路:
当MCS- 5|系列单片机的复位引|脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST持续为高电平,单片机就处于循环复 位状态。
根据应用的要求,复位操作通常有两种基本形式:上电复位和上电或开关复位。
上电复位要求接通电源后,自动实现复位操作。常用的上电复位电路如下图A中左图所示。图中电容C1和电阻R1对电源十5V来说构成微分电路。上电后 ,保持RST一段高电平时间,于单片机内的等效电阻的作用,不用图中电阻R1 ;也能达到上电复位的操作功能
单片机复位后的状态:
单片机的复位操作使单片机进入初始化状态,其中包括使程序计数器PC= 0000H ,这表明程序从0000H地址单元开始执行。单片机冷启动后,片内RAM为随机值,运行中的复 位操作不改变片内RAM区中的内容, 21个特殊功能寄存器复位后的状态为确定值,见下表。
值得指出的是,记住一些特殊功能寄存器复位后的主要状态,对于了解单片机的初态,减少应用程序中的韧始化部分是十分必要的。
说明:表中符号*为随机状态;
A= 00H ,表明累加器已被清零;
特殊功能寄存器初始状态特殊功能寄存器初始状态
单片机最小系统调试方法
A 00H TMOD 00H
B 00H TCON 00H 。
PSW 00H THO 00H
SP 07H TLO 00H
DPL
00H TH1 00H
DPH 00H TL1 00H
PO~P3 FFH SBUF不定
IP ***00000B SCON 00H
IE 0**00000B PCON *******B
PSW = 00H ,表明选寄存器0组为工作寄存器组;
SP =07H ,表明堆栈指针指向片内RAM 07H字节单元,根据堆栈操作的先加后压法则,第-个被压入的内容写入到08H单元中;
Po-P3= FFH ,表明已向各端口线写入1 ,此时,各端口既可用于输入又可用于输出;IP= xx x00000B ,表明各个中断源处于低优先级;
IE = 0x x00000B ,表明各个中断均被关断;
系统复位是任何微机系统执行的第一步,使整个控制芯片回到默认的硬件状态下。51单片机的复位是由RESET引脚来控制的,此弓|脚与融平相接超过24个振荡周期后, 51单片机即进入芯片内部复位状态,而且一直在此状态下等待,直到RESET引脚转为低电平后,才检查EA弓脚是高电平或低电平,若为高电平则执行芯片内部的程序代码,若为低电平便会执行外部程序。
51单片机在系统复位时,将其内部的一些重要寄存器设置为特定的值,( 在特殊寄存器介绍时再做详细说明)至于内部RAM内部的数据则不变。
1.用万用表确定是否正常供电。
2.用示波器确定晶振是否起振。
3.单片机的是否工作。比如,有些单片机一上电,它的有些管脚会输出脉冲,可以通过示波器查看。
在电子设计中,单片机作为系统的控制核心广泛应用。通过对单片机最小系统硬件的设计制作,可以加深对单片机的了解,最小系统也是初学单片机要求掌握的最基本的知识和实践内容。当初,轩酷电子就是通过自己焊接第一块最小系统开启自己的单片机学习生涯的。
单片机最小系统电路板可选用stc89C51、stc89C52等DIP-40封装的单片机作为MCU。最小系统包括时钟电路,复位电路,由此再拓展到各类制作。
单片机时钟信电路原理图如图所示。在引脚XTAL1和XTAL2跨接晶振Y1和微调电容C5,C6就构成了内部振荡方式,由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。其中Y1是可插拔更换的,默认值是11.0592MHz
系统板采用上电自动复位或按键手动复位方式。上电复位要求接通电源后,自动实现复位操作。手动复位要求在电源接通的条件下,在单片机运行期间,用按钮开关操作使单片机复位。
附带一个最简单的拓展例程:单片机驱动发光二极管的设计:
首先做设计呢我们需要电路原理图,这个可以上网查找,也可以自己去画,我们给出这个设计的电路原理图:
然后就是软件设计了,这个例程很简单,我们贴出程序,对于比较复杂的例程,就需要好好查阅资料,学习元器件的相关协议和使用规则,然后进行编程,如果遇到实在没有头绪的问题,可以借鉴前人的经验,好好地分析程序,弄明白程序的原理,然后自己再去尝试着书写,如此才能够学有所成。
程序:
#include 《reg51.h》 //包含头文件,在“reg51.h”上右键单击,并打开,可以看到它里面的定义
//当然也可以改成 reg52.h STC.H 功能一样的,只是定义的IO口有一点区别,51单片机可以通用。
sbit led=P1^0; //定义一个LED 为P1.0 IO口
void main() //C语言主函数
{
led=0; //单片机IO P1.0脚输出一个低电平,点亮发光管。 高电平为5V 低电平为0。
while(1);
}
最后呢,我们将硬件连接好,焊接好,将程序下载到单片机中,就实现了我们的功能,当然,对于复杂的例程也可能不会一次成功,这时候就需要我们查找原因,分析。
小编推荐阅读:
全部0条评论
快来发表一下你的评论吧 !