用户名: 密码: 免费注册 免费试用 简体中文 | ENGLISH
中国·芯片交易在线  
www.ic112.com
IC72论坛
广告服务
网页制作
用户帮助
首页 供应信息 求购信息 库存查询 新闻中心 展会资讯 IC厂商 技术资料 自由区域
当前位置:首页>> 技术资料 >> 正文
基于P87LPC762单片机的电子计时牌设计
时间:2007/11/22 14:41:00  作者:  来源:IC72  浏览人数:848
 
 

    基于P87LPC762单片机的电子计时牌设计   
   
     0引言
      随着电子信息技术的飞速发展,电子计时牌已成为电子设备发展的一个标志性功能。顾名思义,计时牌主要用来完成计时功能,即显示实时时钟的时间,这是计时牌的首要任务。但是,现代的电子计时牌也可以集成多种功能于一身,它不仅可以实时显示当前的具体时间,而且还可以显示年、月、日、星期。此外,还有许多特殊的计时牌,它们可以把安全生产天数、倒计时天数、工作环境温度、万年历等等都设计到其中,从而大大扩展了计时牌的应用范围。

      1系统设计原理
      本设计采用飞利浦公司的P87LPC762做为微处理器,温度传感器芯片选用LM70,时钟芯片采用DS1302芯片,它们与单片机全部采用串行通信方式。该电子计时牌系统的硬件原理图如图1所示。图中,数据的串行输出显示分成三部分,分别为:安全天数与温度、年月日与星期、时钟数据。系统首先通过单片机读人温度传感器芯片LM70测得的二进制温度数据,然后进行处理计算以得出相应的BCD温度数据,最后与安全天数数据一同通过单片机扩展的串口送到数码管显示。同时通过单片机与时钟芯片DS1302的通信读入日历时钟数据,再把得到的年月日、星期数据通过单片机扩展的另一个串口输出送到数码管显示,同时把时钟数据通过单片机本身自带的串口输出送至显示。数据的设置与修改可通过与单片机相连的三个按键来完成。显示部分采用74HC164N串行输入并行输出移位寄存器来驱动数码管。秒信号和天气信号则采用发光二极管来显示。综上所述,本设计采用的串行通信方式可有效地节省硬件电路设计的空间,从而使设计更为简捷,具有一定的实用性。

      2温度检测

      要完成环境温度的检测与显示,首先要用到温度传感器。本设计选用的是LM70温度传感器芯片,由于LM70采用的是串行通信方式,因此只需三根线与单片机相连即可完成数据的读写。

IC72新闻中心

      温度传感芯片的作用就是测取外界的温度值。它首先是把通过热敏电阻从外界感应的模拟温度送入内部的A/D转换器,转换成相应的数字温度值(即二进制温度数据)存放到温度寄存器中,温度传感器LM70所测的温度可通过对其温度寄存器数据的读取来最终将其转化成相应的模拟数据,也就是把二进制数据转换成BCD码数据存放到单片机中。

      这里需要注意的是,如果外界环境温度在零度以下(即负温度),那么,同相应温度值的正温度相比,转换后的温度寄存器数据D5~D15位则是正温度的补码。所以,在读出温度寄存器数据后,一定要判断数据的符号位,如果是负温度数据,则要先求补码才能最终将其转换成相应的正确温度值。

      3日历时钟数据的读取

      3.1写程序分析

      首先来分析对DS1302的写程序。本设计设置计时的初始时间是2005年1月1日星期六1时0分0秒,即时钟芯片上电后即从这个时间开始走时。那么,要完成初始化时钟,就应当把初始时间写入DS1302芯片中去。图2所示是其写时钟数据流程图。

IC72新闻中心

      从图2所示的流程图可以看出,要想把时钟数据写入时钟芯片,首先要写入相应数据的地址,在写入一字节地址后,即可写入一字节相应的数据,依此类推。其具体步骤是首先写入时钟多字节控制寄存器,它的命令字格式如下

      当写入时钟芯片08EH时,同样还要写入允许写操作的命令字00H。写完这两个命令字后,就可以开始写入每个字节时钟数据的地址和相应的时钟数据了。这里需要注意的是:写秒数据地址为80H,分地址为82H,小时地址为84H,依次类推。也就是说,每写完一个字节数据的地址后,其地址应相应加2,以准备下一个字节地址的写入。整个程序可实现七个字节数据的写入,即写一次地址,写一次数据,直到循环计数值为0,便完成了时钟数据的写入。

      写入一字节数据时,首先要置循环计数值(这里设为8),一共要串行输入8位数据,每次移入数据前,应先使数据再移一位到C,然后执行以下几条指令:

IC72新闻中心

      这几条指令的目的是为了给串行时钟端口输入一个时钟下降沿。只有在下降沿后,一位数据才能写人时钟芯片。这样,循环8次后,一字节的数据就写入到了时钟芯片。整个初始时钟数据写入后,就可以让DS1302自动运行并走时了。

      3.2读程序分析

      读一字节子程序同写一字节子程序是一个道理,首先可设置循环计数值为8,以便为读取一个8位字节数据做准备,然后在串行时钟下降沿从P0.2端口读取一位时钟数据到C,以进行带进位的累加器循环右移,这样,循环8次后,即完成了一个字节时钟数据的读取。其结果存放到累加器ACC中。具体读取一字节数据的程序如下:

IC72新闻中心

      3.3安全生产天数的计算

      本系统中的一项功能就是显示当前的安全生产天数。要得出安全生产天数值,首先应在单片机的内存单元中设定好安全生产天数的起点日期,同时设定一个基准时间,这样就可以计算出设置的安全生产天数起点日期到这个基准时间的天数,也就是起点的累计天数。然后,当每次读取时钟芯片日历时钟数据时,系统就会计算出当前读到的日期到基准时间的天数,也就是当前日期的累计天数,两个累计天数之差即是要显示的安全生产天数。

      4实时监控系统的设计

      本系统的主程序用于完成数据的初始化以及T0定时器的设置等,其它任务均放到定时中断程序中来执行。图3所示为其中断服务程序流程图。中断服务程序首先要判断是否有按键按下,即是否进人数据设置状态?如果不是在设置状态,就要从时钟芯片读取要显示的数据,以及把每一项显示缓冲区的数据送数码管显示。如果是在设置状态下,则设置每0.25s刷新显示一次数据。

IC72新闻中心

      若在设置状态下,则意味着有按键按下,那么就要读取相应的按键。本设计中如果按键在设置状态下,不进行相应的数据调整操作,则保存设置的数据,并退出设置状态。读键时,首先读出其键码并保存。然后判断键码稳定否,如果不稳定,说明按键已经响应,则不进行数据调整。如果键码稳定,则再判断是否是调整键,如果是调整键,则调整修改指针,即每按一次调整键,修改指针加一,并进行下一项数据的修改。修改指针一般从安全天数的千、百、十、个到年、月、日、星期再到小时、分。如果一开始按下的按键不是调整键,则不会进入设置状态。在调整键已经响应的情况下,如果再读到有键按下的信号,那么,当其不是调整键时,进入数据修改状态,以进行相应数据的调整。注意:在设置状态下,每次操作均清除时钟,以便计时退出。调整好相应数据后,即可保存数据并进行数据的显示。

      5数据的显示

      本设计中采用16片8位串行输入/并行输出74HC164N和数码管来进行串行移位显示。所用数码管是共阳极的8段数码管。由于分成三组输出来显示数据,因此,设计时把安全生产天数和温度显示部分的74HC164N时钟线连在一起接到单片机的P0.5,而把年月日星期显示部分的74HC164N时钟线连在一起接到单片机的P0.7,另外,把时钟显示部分的74HC164N时钟线连在一起接到单片机的P1.0。

      6结束语

      本设计在完成过程中进行了多次的试验,尤其是在对温度的读取方面,得到了很多老师的指导,在此一并感谢。

 
【相关文章】
·基于P87LPC762单片机的电子计时牌设计
 
 
新闻搜索
 
新闻热点
基于红外超声光电编码器的室内移动小车定位系
基于闪烁存储器的TMS320VC5409DSP并行引导装载方法
非移动市场需求飙升,ARM预计2010年出货量超50亿片
一种快速响应的电容式湿度传感器感湿薄膜设计
利用特殊应用模拟开关改进便携式设计
无线传感器网络跨层通信协议的设计
基于GSM技术的汽车防盗系统的设计
热电阻在烟叶初烤炕房温度控制中的应用
高速数据转换系统对时钟和数据传输的性能要求
Zetex迷你晶体管功率达1.25W
友情连接
 关于我们  IC论坛  意见反馈  设置首页  广告服务  用户帮助  联系我们
copyright:(1998-2005) IC72 中国·芯片交易在线
(北京)联系电话:(010)82614113、82614123 传真:(010)82614123 客户服务:service@IC72.com 库存上载:IC72@IC72.com
在线MSN咨询:ic72sale8@hotmail.com 通信地址:北京市西城区西直门内大街2号大厦15层 邮政编码:100013
(深圳)联系方式: 在线MSN咨询:ic72sale6@hotmail.com 在线QQ咨询:191232636 通信地址:深圳市福田区振华路
注 册 号: 1101081318959(1-1)

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9