项目4
数码管驱动电路系统设计

设计任务

设计一个简单的数码管驱动电路,驱动一个数码管循环显示数字0~9。

基本要求

利用单片机I/O接口驱动一个共阳极数码管。当该数码管的某个字段阴极为低电平时,该字段就被点亮;当该数码管某个字段阴极为高电平时,该字段就不亮。要使这个数码管循环显示数字0~9,必须满足以下条件。

☺ 使用5V供电电压。

☺ 数码管的公共端(COM端)要接5V供电电压,而数码管的阴极接到单片机的I/O接口。只要单片机I/O接口的某个引脚输出低电平就能点亮数码管的相应字段。

☺ 数码管的每个字段都由单片机I/O接口的一个引脚驱动。

☺ 数码管的工作电流为5~10mA。

总体思路

首先为单片机设计一个最小系统,并设计一个串口下载模块,能从单片机内下载程序。由于单片机需要5V供电电压,所以设计一个5V供电电路。

系统组成

整个数码管驱动电路系统主要分为以下4个模块。

☺ 电源模块。

☺ 串口下载模块:将在计算机上编写好的程序下载到单片机中。

☺ 单片机模块:利用单片机I/O接口驱动数码管的各个段码。

☺ 数码管模块。

数码管驱动电路系统框图如图4-1所示。

图4-1 数码管驱动电路系统框图

电路原理图(见图4-2)

图4-2 电路原理图

模块详解

1. 电源模块

由于要给整个系统供电,所以必须设计一个直流稳压电源。这里为了设计方便,直接通过一个两引脚排针,外接5V电源对整个系统进行供电,并通过LED指示电源是否供电正常,如图4-3所示。

在图4-3中,J2外接5V电源和地,B2是开关,D1是LED。当外接5V电源后,闭合开关B2,如果D1亮了,就说明外接5V电源供电正常。

2. 串口下载模块

要把在计算机上编写好的程序下载到PCB上的单片机内,就必须设计串口下载模块。串口下载模块如图4-4所示。

图4-3 电源模块

图4-4 串口下载模块

在图4-4中,串口采用的是D9串口母座,与MAX232芯片共同构成串口下载模块。其中,MAX232芯片的12引脚和11引脚分别接AT89C52单片机的P3.0引脚和P3.1引脚,以便把程序下载到AT89C52单片机内。

AT89C52单片机提供的引脚电平与RS-232标准的不一样,必须对AT89C52单片机的引脚电平进行电平转换后才能使AT89C52单片机与计算机进行通信。本设计采用MAX232芯片进行这个电平转换。

MAX232芯片是具有RS-232标准串口的单电源电平转换芯片,使用正5V单电源供电。MAX232芯片的主要特点如下。

☺ 符合RS-232标准。

☺ 只需正5V单电源供电。

☺ 片载电荷泵具有升压、电压极性反转能力,能够产生正、负10V电压。

☺ 功耗低,典型供电电流为5mA。

☺ 内部集成两个RS-232C驱动器。

☺ 高集成度,片外只需4个电容即可工作。

☺ 内部集成2个RS-232C接收器。

3. 单片机模块

单片机模块采用AT89C52单片机,如图4-5所示。

图4-5 单片机模块

在图4-5中,电容C7、电阻R1及开关B1构成复位电路;X1、C5、C6构成时钟电路;AT89C52单片机的P2接口控制数码管。

4. 数码管模块

如图4-6所示,运用一个数码管来循环显示数字0~9,并通过电源模块对该数码管进行供电,该数码管的阴极分别接上470Ω电阻,然后接上AT89C52单片机的P2.0~P2.7引脚。

在图4-6中,用AT89C52单片机的P2.0~P2.7引脚驱动数码管,使其循环显示数字0~9。

数码管显示数字0的仿真如图4-7所示。数码管显示数字9的仿真如图4-8所示。

图4-6 数码管模块

图4-7 数码管显示数字0的仿真

图4-8 数码管显示数字9的仿真

软件设计

根据系统设计要求,首先画出程序流程图,如图4-9所示。

图4-9 程序流程图

按照程序流程图,编写程序如下:

调试与仿真

将程序下载到AT89C52单片机内,对数码管驱动电路系统进行仿真,如图4-10所示。从仿真结果来看,该系统满足设计要求。

图4-10 数码管驱动电路系统仿真

电路板布线图(见图4-11)

图4-11 电路板布线图

实物照片(见图4-12)

图4-12 实物照片

思考与练习

(1)简述数码管显示原理。

答:数码管的每个字段本质就是一个LED。当对这个LED加上适当的正向电压时,就能点亮数码管相应字段。

(2)为什么在电源模块中要设计LED?

答:因为设计了LED后,就能直观地确定外接电源是否供电正常。

(3)在单片机模块中,复位电路的作用是什么?

答:复位电路的主要作用是把特殊功能寄存器中的数据刷新为默认数据。单片机在运算过程中,干扰等外界原因会造成特殊功能寄存器中的数据混乱,从而使单片机不能正常继续执行程序或产生不正确的结果,这时均要通过复位电路进行相应的复位操作,以使程序重新开始运行。

特别提醒

(1)当完成数码管驱动电路系统各模块设计后,必须对各模块进行适当连接,并考虑元器件之间的相互影响。

(2)当完成数码管驱动电路系统设计后,要对数码管驱动电路进行测试,看接线、供电是否正常。

(3)当电路板上的元器件被焊好后,加电测试该电路板,看其能不能正常工作。