1.1 典型单片机实验开发板简介
1.1.1 单片机概述
单片机是把一个计算机系统集成到一块芯片上,主要包括微处理器(CPU)、存储器(随机访问存储器RAM、只读存储器ROM)和各种输入/输出接口(包括定时器/计数器、并行I/O接口、串口、A/D转换器以及脉冲宽度调制(PWM)等,如图1-1所示。
图1-1 单片机组成框图
单片机主要用于嵌入式应用,故又被称为嵌入式微控制器,国际上常把单片机称为微控制器(MCU),而国内则比较习惯称为单片机。
单片机从用途上可分成专用型单片机和通用型单片机两大类。专用型单片机是为某种专门用途而设计的,如DVD控制器和数码摄像机控制器芯片等。在用量不大的情况下,设计和制造这样的专用芯片成本很高,而且设计和制造的周期也很长。我们通常所用的都是通用型单片机,通用型单片机把所有资源(如ROM、I/O等)全部提供给用户使用。当今通用型单片机的生产厂家已不下几十家,种类有几百种之多。
自20世纪80年代以来,单片机产品如雨后春笋般大量涌现。GI公司、Rochwell公司、Intel公司、Zilog公司、Motorola公司、NEC公司等世界上几大计算机公司都纷纷推出了自己的单片机系列。据统计,现在市场上的单片机产品有50多个系列,数百个品种。
虽然单片机的品种很多,但在我国使用最多的还是Intel公司的MCS-51系列单片机。MCS-51系列单片机是在MCS-48系列的基础上于20世纪80年代初发展起来的,虽然它仍然是8位的单片机,但它品种齐全、兼容性强、性价比高,且软硬件应用设计资料丰富,已为广大工程技术人员所熟悉,因此在我国得到了广泛的应用。
宏晶公司生产的STC89C5lRC单片机为低电压、高性能的CMOS 8位单片机,片内含2 KB的可反复擦写的只读程序存储器(PEROM)和128 B的随机存取数据存储器(RAM),工作电压为2.7~6 V,还含有两个16位的定时器,6个内部中断源,可编程的串口UART,兼容标准MCS-51指令系统。
STC89C5lRC单片机可以利用STC-ISP软件方便地实现在线烧写程序。开发单片机系统可采用汇编语言和C语言。采用汇编语言编程必须对单片机的内部资源和外围电路非常熟悉,尤其是对指令系统的使用必须非常熟练,故对程序开发者的要求是比较高的。用汇编语言开发软件是比较辛苦的,这是因为程序量通常比较大,方方面面均需要考虑,一切问题都需要由程序设计者安排,其实时性和可靠性完全取决于程序设计人员的水平。采用汇编语言编程主要适用于功能比较简单的中小型应用系统。
采用C语言编程时,只须对单片机的内部结构基本了解,对外围电路比较熟悉,而对指令系统则不必非常熟悉。用C语言开发软件相对比较轻松,很多细节问题无须考虑,编译软件会替设计者安排好。因此C语言在单片机软件开发中的应用越来越广,使用者越来越多。当开发环境为基于操作系统编程时,编程语言通常采用C语言。
单纯采用C语言编程也有不足之处,在一些对时序要求非常苛刻或对运行效率要求非常高的场合,只有汇编语言能够很好地胜任。因此在很多情况下,采用C语言和汇编语言混合编程是最佳选择。
从编程难度来看,汇编语言比C语言要难得多,但作为一个立志从事单片机系统开发的科技人员,必须熟练掌握汇编语言程序设计方法。在熟练掌握汇编语言编程之后,学习C语言编程将是一件比较轻松的事情,并且能够将C语言和汇编语言非常恰当地融合在一起,以最短的时间和最低的代价,开发出高质量的软件。
单片机由于具有高可靠性、高集成度,价格低廉和容易产品化等特点,因此在智能仪器仪表、工业实时控制、智能终端、通信设备、医疗器械、汽车电器和家用电器等领域得到了广泛的应用。
1.1.2 单片机实验开发板B的组成
单片机实验开发板B是电子开发网专为单片机初学者设计并开发的一种实验兼开发板,开发这个产品的目的就是为了帮助单片机初学者快速学会单片机技术。在自学单片机的过程中,通过做一系列的实验,从而比较容易地领会单片机那些枯燥、难懂的专业术语,而且这款实验开发板弥补了市场上常见的单片机实验板的一些不足,有针对性地面向最终的实用控制功能,包括模拟量输入与输出接口、开关量输入与输出接口,增加了实用的继电器接口,可以使实验板能够直接用于控制各种负载,成为一个实用化的嵌入式控制系统。
图1-2是单片机实验开发板B的实物图。
图1-2 单片机实验开发板实物图
单片机实验开发板主要元件清单:
(1)专门设计的全工艺电路板一块。
(2)电源部分元件:9 V左右直流插头式小电源,带插头(空载12 V),电源插座1个,7805稳压芯片1个,470 µF/16 V电源滤波电容2个,0.1 µF独石电容2个,电源指示绿色LED 1个,LED 560 Ω限流电阻1个。
(3)单片机最小系统部分的元件:STC89C51单片机芯片1片,40引脚零拔插力ZIF插座1个,复位用电容22 µF/16 V电容1个,复位用电阻1 kΩ 1个,30 pF小电容2个,12 MHz晶振1个。
(4)实验部分元件:8个小红色长方形LED,8位1 kΩ 数码管限流排阻,1个共阴两位一体化的数码管,1个3 V电磁型蜂鸣器,1个8550驱动三极管,3个1 kΩ 三极管基极驱动电阻,4个微型轻触开关,1个4位的红色拨码开关,2个12 V JQC-3F继电器(一组动合转动开),2个1N4007防反峰二极管,2个8050驱动三极管(e/b/c),2个继电器状态指示红色发光二极管,MAX232芯片1片,5.1 kΩ 上拉电阻2个,10 µF电容4个,塑封一体化红外线接收头1个,AT24C02存储器芯片1片,220 µF滤波电容1个,0.1 µF电容1个,32个按键的红外遥控手柄1个,串口通信电缆1根,4.7 kΩ 上拉电阻1个。
单片机实验开发板可以做很多实验,如红外线遥控器编码分析仪、通用频率计、温度自控板等。
1.1.3 单片机实验开发板的主要电路
单片机实验开发板的电路主要包括电源电路、单片机电路、数码管显示电路、串口驱动电路和继电器驱动电路等。
1.电源电路
选型的单片机、温度传感器和数码管均支持5 V电源工作,因此电源只需要单一5 V供电即可,并且功率很小,不到1 W。电源为直流12 V的,采用芯片7805进行稳压,芯片7805的作用是把大于5 V的直流电压降为比较稳定的5 V直流电压,电源电路如图1-3所示。
图1-3 电源电路
在图1-3中,+12 V是指实验板直流电源出来的12 V电压,C8是低频滤波电容,C16是高频滤波电容。通过这两个电容的进一步滤波,最后得到的是纯净的直流,这对数字电路起到很好的保护作用。C8的容量为470 µF,C16的容量为0.1 µF。
2.单片机电路
要使STC89C51RC单片机工作,就要给单片机增加上电复位电路和外接一个晶振。给STC89C51RC加电时,需要对STC89C51RC进行一次复位操作。复位操作将STC89C51RC的工作环境置成初始状态,并从程序的开始进行运行。根据STC89C51RC的引脚定义,上电复位是通过给STC89C51RC的1脚发一个瞬时高电平来完成的,电路如图1-4所示。
图1-4 复位电路
上电的瞬间,电流有一个突发的向上尖峰脉冲,因此电流能通过C1电容到达STC89C51RC的复位端口RESET对STC89C51RC进行复位。尖峰过后,电流平稳,电容C1阻止电流的通过,这样可以防止对STC89C51RC反复进行复位。电阻R3是用于给Cl放电的,并将1号引脚拉低,防止RESET端口上持续高电平。
给STC89C51RC提供一定的时钟频率以后,STC89C51RC才能开始工作,如图1-5所示的电路提供时钟频率。
图1-5 晶振电路
这个振荡电路与STC89C51RC内部的时钟振荡器一起组成完整的时钟频率发生电路,XTAL1为STC89C51RC内部时钟振荡器的输入端,XTAL2为STC89C51RC内部时钟振荡器的输出端,X1为晶振,起到选择振荡频率的作用。这里使用的时钟频率为11.0592 MHz。C6、C7为振荡补偿电容,起到放大起振频率,让时钟容易起振的作用。
3.数码管显示电路
单片机驱动LED数码管有很多方法,按显示方法可以分为静态显示和动态显示。静态显示的数据稳定,占用的CPU时间较少。动态显示要CPU时刻对显示器件进行数据刷新,显示数据有闪烁感,占用CPU时间较多。
这两种显示方法各有利弊:静态显示虽然数据稳定,占用较少的CPU时间,但每个显示单元都需要单独的锁存驱动电路,使用的电路硬件较多;动态显示虽然有闪烁感,占用的CPU时间较多,但使用的硬件少,能节省线路板空间。
动态显示具备较强的实用性,也是目前单片机应用中数码管显示较为常用的一种方式,所以在本设计中采用动态显示方案。
从电路上,数码管又可分为共阴极和共阳极两种,8个发光二极管的阳极都连在一起的,称为共阳极LED数码管;8个发光二极管的阴极都连在一起的,称为共阴极LED数码管。对于共阴极LED数码管,当公共阴极接地(为零电平),而阳极各段为高电平时,点亮数码管。
数码管选通电路起到只让某个数码管发光的作用,电路如图1-6所示。
图1-6 数码管显示电路
本设计使用的是模拟译码,即用三极管的导通与截止来实现译码。所有发光二极管都采用共阳极接法,P3口作为数码管的选通线,当给P3口相应位置低电平时,连接着P3口相应位的三极管导通,即相应的数码管选通。P0口作为数码管的数据线,从P0口输出相应的字形码即可显示数字。
在本设计中,将P0口作为字形码输出控制口,P1.0~P1.6分别与各数码管的笔画段a~g连接。排阻RB1作为P0口输出的上拉电阻,阻值设定为1 kΩ,作用是使数码管的默认状态为不点亮。排阻 RB1起限流作用,对数码管进行保护。如果没有加这个电阻,数码管有可能因电流较大而被烧坏。
需要注意的是,显示小数点的位置是固定的,因此让显示个位数的数码管的小数点为恒亮,其他数码管的小数点位均灭。
4.串口驱动电路
单片机STC89C51RC支持串口通信,它提供的是CMOS电平的串口数据,但PC进行串口通信时其COM口出来的信号是RS-232协议的串口数据电平,同时由于串口数据传输距离较远,需要加驱动电路,因此需要在两者之间加转换芯片。电路如图1-7所示。
图1-7 RS-232协议转换电路
5.继电器驱动电路
单片机收到数字温度传感器DS18B20测量到的温度值后,与初始设置的上下限值比较,当温度大于或小于某一温度时,单片机发出信号控制继电器动作。继电器驱动电路如图1-8所示。
图1-8 继电器驱动电路