2.3.1 STC89C52单片机简介
STC89C52是T种低功耗、高性能CMOS8位微控制器,具有8K可编程Flash存储器。使用高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在线可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。STC89C52具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。这一模块以单片机为中心把程序代码烧进去然后外围接上复位电路、振荡电路、键盘控制、LED显示电路、报警电路等子模块。
2.3.2 单片机的引脚功能描述
下面对STC89C52各引脚的功能进行较为详细的介绍: 1)电源引脚Vcc和Vss
Vcc引脚可以表示为电源端为+5V,该引脚一共有40脚;
Vss引脚可以表示为接地端引脚,该引脚一共有20脚; 2)引脚XTAL1和XTAL2
XTAL2可以表示为时钟电路引脚,该引脚与外部晶体的一端相连接。该引脚在单片机的内部可以表示为电路反向放大器的输出端,而该电路的频率可以表示为晶体固有的频率。如果需要使用到外部时针电路的时候,该引脚的输入脉冲表示为外时钟脉冲。如果需要检查该单片机中的振荡电路是否工作正常,则可以用到示波器来针对XTAL2时钟电路引脚是否有脉冲信号输出进行查看。该引脚一共有18脚。
XTAL1也表示为时钟电路引脚,与XTAL2不同之处在于该引脚可以接到外部晶体和微调电容的另一端。在单片机工作之中,它可以表示为电路反向放大器的输入端。如果我们使用外部时钟的时候,这个引脚就必须接到地,该引脚一共有19脚。
RST可以表示为复位信号输入端引脚,该引脚在输入为高电平时才有效果,在低电平时无效。所以只有在RST引脚的输入端的机器周期为高电平的时候,RST引脚才能够完成复位操作。该引脚一共有9脚。
ALE/PROG引脚可以表示为地址锁存允许信号端。该脉冲信号的值为正值。当STC89C52单片机访问片外RAM的时候,引脚ALE的输出信号为空之锁存地址低八位的信号。在STC89C52单片机访问片外ROM的时候,每当STC89C52单片机取值一次就会失去一个脉冲。通常情况下人们如果想知道该芯片是否损坏,就可以使用示波器查看ALE引脚有没有输出脉冲信号,如果没有输出信号的,则STC89C52芯片基本上来说是没有问题的。该引脚一共有30脚。
PSEN引脚我们可以表示为程序存储允许输出信号,在访问片外RAM时,这个引脚的输出脉冲可以作为片外ERROM/ROM的选通信号,该输出脉冲信号值为负值。STC89C52单片机在从外部ERROM/ROM读取指令的期间中,在一个周期的过程之中PSEN可以有效两次。但是STC89C52单片机在访问片外RAM时,则需要少生成两次脉冲信号,该信号的值为负值。通常的情况下我们如果要知道AT89C52系统上电后单片机到ERROM/ROM中能不能正常的读取指令码,就可以从示波器看PSEN端有没有脉冲的输出。如果有脉冲输出的话那么就基本上能够说明AT89C52系统工作是正常。该引脚一共有29脚。
EA/VPP可以分别表示为外部程序存储器地址允许输入端的引脚和固化编程电压输入端引脚。当外部程序RAM地址允许输入端的引脚接高电平的时候,STC89C52单片机只会访问片内ERROM/ROM并执行指令。但是当STC89C52单片机的数值超过OFFFH值的时候,STC89C52单片机就将会自动转向执行片外RAM的程序。当输入的信号存储器地址允许输入端的引脚接低电平时,那么STC89C52单片机就会只访问外部ERROM/ROM并且也会执行外部程序RAM中的指令,而且并不用管单片机中是否有片内RAM程序。然而如果对于对于ROM的8031或8032单片机,因为ROM的8031或8032单片机之中没有芯片,那么我们就必须向外扩展
ERROM,那么在这个时候我们就必须将EA引脚接到地。但是如果我们使用的是有片内ROM的STC89C52单片机时,也要使EA引脚接地。该引脚一共有31脚。 I/O引脚可以表示为输入/出端口引脚,该引脚中包括P0,P1,P2,P3四个端口。 P0口可以表示为一个漏极开路的八位双向输入/输出端口。 P1口可以表示为一个八位准双向输入/输出端口。
P2口不仅可以表示为地址总线输出地址高八位,而且也可以做为平常的输入/输出端口使用。
P3口可以表示为一个双功能口,该引脚不仅可以做为平常的输入/输出口用而且该输入/输出端口也可以按每位定义实现第二功能操作。详情可以从以下的表中看出来。
表1 P3口的第二功能表
我们在测量温度的时候,需要设计测温电路,那么我们就需要用到温度传感器,对于温度传感器的选择是非常之重要的,在如今的社会,人们已经研发出了很多种的温度传感器,而每种温度传感器在不同的系统之中都有其不同的优点和缺点,以下我们针对两种温度传感器进行比较,其中一种为PT100温度传感器,另一种为DS18B20温度传感器,然后我们选择一种适用于本文设计的温度传感器。
方案1:
方案一我们选择PT100温度传感器。PT100温度传感器测量温度的时候我们通常是利用铂电阻的阻值随温度改变而变化的思路,而且稳定性也非常的好、精确度也非常的精确,并且这种传感器可以忍受高压。但是缺点就是这种温度传感器使用起来非常的复杂。 方案2:
方案二我们选择DS18B20温度传感器。DS18B20温度传感器的输出总线的方式是通过 “ 一线 ” 总线这种独特的方式。这种独特的输出总线的方式不仅可以使多个 DS18B20温度传感器可以方便地形成一个传感器网络,而且DS18B20温度传感器在测温时候的精度方面、转换时候的时间等方面相对于其他的温度传感器都有了非常大的进步。
综上所述,我们通过两种温度传感器的比较,DS18B20温度传感器不仅可以直接输出温度值,而且不需要进行过多的校正,因此,对于温度传感器的选择,我们选择DS18B20温度传感器。
3 系统的硬件电路
3.1 单片机最小系统
如果要使单片机进行正常的工作,那么构成单片机电路最基础的的就是单片机最小系统,单片机最小系统如下图所示。
单片机最小系统的电路包括单片机电路、复位电路和时钟电路。
STC89C52 单片机的正常的工作电压为4V-5.5V,因此我们通常在给单片机接入电源时一般接入的为5V的直流电源。我们通常会通过单片机的电源端的VCC引脚接入+5V电源,而单片机中的接地端的VSS引脚在通常情况下则会接地。