如图2。4所示:
图2。4 八段数码管
2。4。2 数码管驱动原理
驱动电路可以驱动数码管的各个段码从而让数码管正常显示,就会有我们要的数字。但是在有些时候可能就需要制作一个简单的显示系统,那么可以直接用单片机的I/O口来驱动数码管只要单片机的I/O资源足够用,也可以由数码管驱动方式的不一样,把它们分为静态式和动态式两类。
(1)静态显示驱动:静态驱动也叫作直流驱动。静态驱动指的是每个数码管的每一个段码都通过一个单片机的I/O端口来进行驱动,或者也可以用像BCD码二-十进制译码器译码的方式来进行驱动。静态驱动有编写程序简单,显示的亮度高的优点,而占用I/O端口多是它的缺点,所以实际使用的时候一定要增加译码驱动器来进行驱动,这样就会增加硬件电路复杂性[6]。 文献综述
(2)动态显示驱动:动态驱动是把所有数码管的8个显示笔划“a,b,c,d,e,f,g,dp”的同名端都连在一起,此外增加位选通控制电路给每个数码管的公共极COM,位选通是通过各自独立的I/O线来控制的,当单片机输出字形码的时候,所有的数码管都能收到相同字形码,但到底是哪个数码管会显示字形,这就取决在单片机对位选通COM端电路的控制上,因此只要把需要显示的数码管的选通控制打开,这一位就可以显示出字形来,而没有选通的数码管就不会亮[7]。根据分时轮流来控制每个数码管的COM端,就能让各个数码管轮流受到控制并显示出来,这个就是动态驱动。动态显示和静态显示效果是一样的,都能够节省大量I/O端口,而且功耗会更加低[8]。
静态驱动方式简单且不易错,如果电路的设计合适,也是可以用相对少的线来完成多个数码管驱动。但是动态驱动方式能够节省单片机的资源,如今已经有了非常多这样成熟的基于动态扫描的芯片。
所以数码管能满足本文的显示设计的要求,采用DLED-4数码管做为显示电路,数码管显示电路用的是4位共阳LED数码管,从P0口串口输出段码。
3 系统硬件电路设计
3。1 整体方案设计
3。1。1 系统概述
该系统电路主要包括:单片机最小系统、DS18B20温度传感器系统、报警系统、LED数码管显示模块电路及键盘输入等电路。
该系统中有四个独立按键可以用来设置温度计的上下限报警还有一个复位键,系统中蜂鸣器可以在被测温度不在上下限范围内时,发出报警鸣叫声音,同时2个发光二极管开始点亮并且指示是高温还是低温在报警,这时可以调整报警上下限,使蜂鸣器不报警。
3。1。2 总体设计框图
温度计的电路设计总体设计方框图如图3。1所示,它由六部分组成。主控制器是用单片机AT89S52,温度传感器是用DS18B20,还有用4位LED数码管以串口传送数据来实现温度的显示。