2.11.2.1静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个呢:),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。
2.11.2.2数码管动态显示接口是单片机中应用最为广泛的一种显示方式之
一,动态驱动是将所有数码管的8个显示笔划\的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。
2.11.3四位数码管的引脚图
2.11.4四位数码管的参数
17
8字高度:8字上沿与下沿的距离。比外型高度小。通常用英寸来表示。范围
一般为0.25-20英寸。长*宽*高:长——数码管正放时,水平方向的长度;宽——数码管正放时,垂直方向上的长度;高——数码管的厚度。时钟点:四位数码管中,第二位8与第三位8字中间的二个点。一般用于显示时钟中的秒。 2.11.5四位数码管区分共阴阳极的方法
首先数码管有共阴极和共阳极之分,区别他们的方法是若公共端接地,其他
端接电源,若各段测试能亮,说明是共阴的,反之共阳的;若公共端接电源,其他端分别接的,测得各端亮,则说明是共阳的,反之为共阴的。世面上的四位一体的数码管一般都没有datasheet,所以掌握他们管脚的分布是很重要的一个环节。下面是一张四位一体数码管引脚分布图
4位一体数码管,其内部段已连接好,引脚如图所示(正面朝自己,小数点在下方)。a、b、c、d、e、f、g、dP为段引脚,1、2、3、4分别表示四个数码管的位。
。 。 。 。 。 。
1 a f 2 3 b 。 。 。 。 。 。 e d dp c g 4
即:12-9-8-6为公共端,A-11 B-7 C-4 D-2 E-1 F-10 G-5 DP-3
3各元件参数的确定
3.1晶振电路
3.1.1晶振频率的选择
图2为本次设计所采用的晶振电路。石英晶体振荡器采用12MD的。实际上,单片机的晶振可以选择很多频率,从1MHZ到32MHZ的各种频率晶振都有。,11.0592MHZ的晶振在计算最大波特率及其误差的时候,其最大波特率达到了57600,几乎能满足绝大多数应用,其他晶振都达不到这个波特率或者误差太大;同时在波特率误差方面,11.0592MHZ晶振的误差为0。 3.1.2电容的选择
电容器C1、C2起稳定振荡频率、快速起振的作用,可在20—100PF之间取,这里取22PF。
3.2复位电路
电阻及电容的选择:图(3)为本次设计的复位电路,时间参数
18
??RC=30uf*1k=300ms满足要求。复位电路具有上电复位和手动复位的功能。
23
VCC上电时,C充电,在R1电阻上出现电压,使得单片机复位;几个毫秒后,C充满,R1电阻上电流降为0,电压也为0,使得单片机进入工作状态。工作期间,按下复位按钮,C放电。按钮松开,C又充电,在R1电阻上出现电压,使得单片机复位。几个毫秒后,单片机进入工作状态。 故R1选10k的。
3.3限流电阻的选择
报警电路和温度传感器中的限流电阻均选4.7K的,数码显示管中的电阻均
选470的。
4软件设计
4.1温度的传输与读取
DSl8820的主要数据元件有:64位激光Lasered ROM,温度灵敏元件和非易失性温度告警触发器TH和TL。DSBl820可以从单总线获取电源,当信号线为高电平时,将能量贮存在内部电容器中;当单信号线为低电平时,将该电源断开,直到信号线变为高电平重新接上寄生(电容)电源为止。此外,还可外接5 V电源,给DSl8820供电。DSl8820的供电方式灵活,利用外接电源还可增加系统的稳定性和可靠性。图6为读取数据流程图。
19
开始 DS18B20的初始化 跳过读序列号的操作 启动温度转换 DS18B20的初始化 跳过读序列号的操作 读取温度寄存器 LOW-低八位 HIGH-高八位
RET 图6 读取数据的流程图 读出温度数据后,LOW的低四位为温度的小数部分,可以精确到0.0625℃,LOW的高四位和HIGH的低四位为温度的整数部分,HIGH的高四位全部为1表示负数,全为0表示正数。所以先将数据提取出来,分为三个部分:小数部分、整数部分和符号部分。小数部分进行四舍五入处理:大于0.5℃的话,向个位进1;小于0.5℃的时候,舍去不要。当数据是个负数的时候,显示之前要进行数据转换,将其整数部分取反加一。还因为DS18B20最低温度只能为-55℃,所以可以将整数部分的最高位换成一个“-”,表示为负数。图10为温度数据处理程序的流程图。
20
相关推荐: