基于51单片机的DS12C887时钟芯片的时钟电路设计 下载本文

表3.2 部分温度对应数据

3.2硬件电路设计

本课题涉及电路原理图和PCB图均由Altium Designer Summer 09绘制. (1)电源部分

图3.7 整机电源电路

由于电路微控器供电电压为5V,osyno6188供电电压为3V或4.5V,osyno6188对电源电压精度要求不高,决定整机采用5V电源供电,在电源处串联一只1N4003二极管,为osyno6188供电,1N4003为硅管,正向导通压降在0.7V左右,经过二极管后,得到约4.3V电压,为osyno6188供电.电源电路为普通稳压电源电路,由于不是本项目主要方面,不再赘述.

(2)AT89C52最小系统电路

图3.8 AT89C52单片机最小系统

电路由震荡电路,复位电路和单片机构成最小系统.震荡电路为单片机提供工作时钟,由石英晶体和补偿电容构成.由于语音部分需要1200bps波特率,石英晶体选取11.0592MHz,保证波特率零误差,补偿电容选取30pF瓷片电容.复位电路在上电时为单片机提供复位信号,由10uF电容和10K电阻构成的RC充电电路构成,当系统复位上电瞬间,电源通过电阻R为电容充电,在电阻上得到下降的指数充电电压,由高电平经过一段时间到达低电平,提供单片机需要的高脉冲复位信号.电源部分电容为去耦电容.EA拉高,MCU上电后,从内部程序存储器开始执行. (3)osyno6188及外围电路设计.

图3.9 osyno6188及外围电路

系统采用4.5V电源供电模式,电源VDD由电源电路中VCC串接二极管后获得.电源电路、复位电路以及时钟电路参考osyno6188用户手册.RXD、TXD为串行总线接口,分别连接主控MCU的TXD、RXD端.

(4)DS12C887与AT89C52接口电路设计.

图3.10 DS12C887接口电路

DS12C887的AD0-AD7为地址\\数据复用总线,与控制器地址\\数据总线(P0口)直接连接,R2为上拉电阻;MOT为总线模式选择引脚,接地选择INTEL总线连接方式;R/W在INTEL总线模式下位写使能,接控制器读信号WR(P3.6)端;DS在INTEL总线模式下为读使能信号,接控制器读信号RD(P3.6)端;AS为地址锁存,接控制器地址锁存信号ALE(30脚)端;RST接电源拉高,片选CS直接接地使能。

由于液晶显示器、DS18B20与控制器接口比较简单,不再分开论述。 整机电路图如图3.11所示.

电路板采用单面板制作,电路板图由Altium Designer Summer 09绘制.

将PCB文件底层打印到转印纸磨光面上,并按电路板大小留1cm左右边缘裁剪备用.把比电路板略大的覆铜板用细砂纸打磨干净,并将转印纸带墨一面覆盖到覆铜面上,一边用胶带粘牢,然后将粘胶带一边送入转印机转印,转印完成后打孔,放入三氯化铁溶液中腐蚀,大约15分钟左右腐蚀完成,用清水冲洗,将焊盘处用小刀将油墨小心刮开,其余部分油

墨不再处理,一是比较美观,二是对铜膜具有保护作用,防止氧化.焊接经过检测过的电子元件,制作完成. 3.3 软件设计 (1)功能分析

根据课题要求,软件应该能实现以下功能: 1)驱动LCD1602显示.

2)从DS12C887中读取时间数据,并写入调时信息和闹钟信息. 3)扫描键盘,实现人机交互,满足用户调时、定闹的需求. 4)实现控制器与DS18B20单总线接口,读取温度信息. (2)设计流程

本课题所有程序均由C语言编写.开发环境为keil uvision2. 1)主程序设计

主程序流程图如图所示

图3.13 主程序流程图

主程序作用是当系统上电后,首先对系统进行初始化(包括MCU的串行通信设置和LCD的初始化)然后读取时间信息和温度信息,检查是否需要更新时间缓冲存储区,如果系统处于正常显示模式,则更新时间缓存区,并同步显示,若系统处于调整时间模式下,则停止对时间缓冲区的更新,显示时间与时间缓存区同步,当退出调时模式时,更新到DS12C887的时标寄存器中.主程序还负责检测当前时间是否为整点或等于设定报时时间,在整点或定时时间调用报时函数,实现整点报时和定时 2)DS12C887接口程序.