论文首页哲学论文经济论文法学论文教育论文文学论文历史论文理学论文工学论文医学论文管理论文艺术论文 |
1-3-2 DS12C887时钟芯片
DS12C887的特性:DS12C887实时时钟芯片功能丰富,可以用来直接代替IBM PC上的时钟日历芯片DS12C887,同时,它的管脚也和MC146818B、DS12887相兼容。
由于DS12C887能够自动产生世纪、年、月、日、时、分、秒等时间信息,其内部又增加了世纪寄存器,从而利用硬件电路解决子“千年”问题; DS12C887中自带有锂电池,外部掉电时,其内部时间信息还能够保持10年之久;对于一天内的时间记录,有12小时制和24小时制两种模式。在12小时制模式中,用AM和PM区分上午和下午;时间的表示方法也有两种,一种用二进制数表示,一种是用BCD码表示;DS12C887中带有128字节 RAM,其中有11字节RAM用来存储时间信息,4字节RAM用来存储DS12C887的控制信息,称为控制寄存器,113字节通用RAM使用户使用;此外用户还可对DS12C887进行编程以实现多种方波输出,并可对其内部的三路中断通过软件进行屏蔽。
DS12C887的引脚功能:DS12C887的引脚排列如图1所示,各管脚的功能说明如下:
GND、 VCC:直流电源,其中VCC接+5V输入,GND接地,当VCC输入为+5V时,用户可以访问DS12C887内RAM中的数据,并可对其进行读、写操作;当VCC的输入小于+4.25V时,禁止用户对内部RAM进行读、写操作,此时用户不能正确获取芯片内的时间信息;当VCC的输入小于+3V时, DS12C887会自动将电源发换到内部自带的锂电池上,以保证内部的电路能够正常工作。 (科教作文网http://zw.ΝsΕAc.Com编辑整理)
MOT:模式选择脚,DA12C887有两种工作模式,即Motorola模式和Intel模式,当MOT接VCC时,选用的工作模式是Motorola模式,当MOT接GND时,选用的是Intel模式。本文主要讨论Intel模式。
SQW:方波输出脚,当供电电压VCC大于4.25V时,SQW脚可进行方波输出,此时用户可以通过对控制寄存器编程来得到13种方波信号的输出。
AD0~AD7:复用地址数据总线,该总线采用时分复用技术,在总线周期的前半部分,出现在AD0~AD7上的是地址信息,可用以选通DS12C887内的RAM,总线周期的后半部分出现在AD0~AD7上的数据信息。
AS:地址选通输入脚,在进行读写操作时,AS的上升沿将AD0~AD7上出现的地址信息锁存到DS12C887上,而下一个下降沿清除AD0~AD7上的地址信息,不论是否有效,DS12C887都将执行该操作。
DS/RD:数据选择或读输入脚,该引脚有两种工作模式,当MOT接VCC时,选用Motorola工作模式,在这种工作模式中,每个总线周期的后一部分的DS为高电平,被称为数据选通。在读操作中,DS的上升沿使DS12C887将内部数据送往总线AD0~AD7上,以供外部读取。在写操作中,DS的下降沿将使总线 AD0~AD7上的数据锁存在DS12C887中;当MOT接GND时,选用Intel工作模式,在该模式中,该引脚是读允许输入脚,即Read Enable。
R/W:读/写输入端,该管脚也有2种工作模式,当MOT接VCC时,R/W工作在Motorola模式。此时,该引脚的作用是区分进行的是读操作还是写操作,当R/W为高电平时为读操作,R/W为低电平时为写操作;当MOT接GND时,该脚工作在Intle模式,此时该作为写允许输入,即Write Enable。
CS:片选输入,低电平有效。
IRQ:中断请求输入,低电平有效,该脚有效对DS12C887内的时钟、日历和RAM中的内容没有任何影响,仅对内部的控制寄存器有影响,在典型的应用中,RESET可以直接接VCC,这样可以保证DS12C887在掉电时,其内部控制寄存器不受影响。
时间、日历和闹钟的数据格式
地址 功能 十进制范围 范 围
二进制数据模式 BCD数据模式
0 秒 0-59 00-3B 00-59
1 秒闹钟 0-59 00-3B 00-59
2 分钟 0-59 00-3B 00-59
3 分钟闹钟 0-59 00-3B 00-59
4 小时(12进制) 1-12 01-0CAM,81-8CPM 01-12AM,81-92PM
小时(24进制) 0-23 00-17 00-23
5 时闹钟(12时制) 1-12 01-0CAM,81-8CPM 01-12AM,81-92PM
时闹钟(24时制) 0-23 00-17 00-23
6 星期(星期天=1) 1-7 00-07 00-07
7 日期 1-31 01-0F 1-31
8 月份 1-12 01-0C 1-12
9 年 0-99 00-63 00-99
DS12887有四个控制寄存器,它们可以在任何时候读写。
寄存器A
最高位 最低位
BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0
UIP DV2 DV1 DV0 RS3 RS2 RS1 RS0
UIP更新(UIP)位用来标志芯片是否即将进行更新。当UIP位为1时,更新即将开始;当它为0时,表示在至少244μs内芯片不会更新,此时,时钟、日历和闹钟信息可以通过读写相应的字节获得和设置。UIP位为只读位并且不受复位信号(RESET)的影响。通过把寄存器B中的SET位设置为1可以禁止更新并将UIP位清0。
(科教作文网http://zw.ΝsΕac.cOM编辑)
2-2-5 ULN2003A
ULN2003A是内含7个达林顿管的驱动芯片,输入电压与TTL电平兼容。每个上达林顿管的集电极可吸收最大500mA的电流,耐压30V,因此可以用来驱动四相步进电机。ULN2003A电路具有以下特点: ●电流增益高(大于1000); ●带负载能力强(输出电流大于500mA); ●温度范围宽(-40~85℃); ●工作电压高(大于50V)。 ULN2003电路主要用于如下领域: ●伺服电机; ●步进电机; ●电磁阀; ●可控照明灯。
第二章、系统软件设计
2-1 KEIL51软件的应用 (转载自科教范文网http://fw.nseac.com)
因此苏老师购见意我用C语言进行编程。还好时间尚早,我开始利用空闲时间进行C语言对单片机编程的学习。
首先我对KEIL51软件进行了学习,软件是苏老师发给我的,在平日的时间里就自己捉摸着怎么用,在周日的时间我就回学校找苏老师问一周累积的问题。KEIL51跟MEDWIN不同的是:KEIL51需要新建项目(new project),之后选择单片机,这里难住了我好久,怎么选择单片机的型号也没选对,后来学校问老师应选择Ateml的AT89C51。这个就新建好了一个项目了。
新建一个程序文件(File-New),建好后保存新建的程序,如果是用C语言进行编程的话扩展名应为(.c),如果是用汇编语言进行编程的话扩展名应为(.a或.asm),建好保存该文件,然后还需要将程序加到项目中,如图所示右键点击Source Group1文件夹弹出菜单,选择"Add File to Group 'Source Group 1'"就会弹出文件窗口,选择刚刚保存的文件,按ADD按钮,关闭文件窗,程序文件已加到项目中了。
用KEIL51进得软件调试,在硬件没焊好的情况下,我都是直接用KEIL51进行仿真调试。图片由左到右分别编译单个文件、是编译当前项目及重新编译。此键为停止编译按钮,这个键只有在点击了前三个中的任一个后才会生效。这就是开启\关闭调试模式的按钮,它也存在于菜单Debug-Start\Stop Debug Session中。为运行按钮,当程序处于停止状态时才有效。为模拟芯片的复位,程序回到最开头处执行。为停止按钮,程序处于运行状态时才有效。
后来硬件板焊好后就需要芯片烧写成HEX文件。
2-2 C语言编程单片机的学习
设计中所用到的运算符
关系和逻辑运算符 含义
> 大于
>= 大于等于
< 小于
<= 小于等于
== 等于