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会自动将电源发换到内部自带的锂电池上,以保证内部的电路能够正常工作。 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在掉电时,其内部控制寄存器不受影响。 DS12C887的地址分布 附图1是DS12877的地址分布图。所有的地址包括114字节通用RAM、10字节用于记录时间、日历、闹钟和RAM以及4字节的控制、状态RAM。所有字节都可以在除以下的情况下直接读写。
时间、日历和闹钟的数据格式 地址 功能 十进制范围 范 围 二进制数据模式 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。 DV0,DV1,DV2 这3位是用来开关晶体振荡器和复位分频器。当[DV0 DV1 DV2]=[010]时,晶体振荡器开启并且保持时钟运行;当[DV0 DV1 DV2]=[11X]时,晶体振荡器开启,但分频保持复位状态。 RS3,RS2,RS1,RS0作用:1.设置周期中断允许位(PIE);2.设置方波输出允许位(SQWE);3.两位同时设置为有效并且设置频率;4.全部禁止。周期性中断率和方波中断频率表列出了可通过RS寄存器选择的周期中断的频率和方波的频率。这四个可读写的位不受复位信号的影响。 最高位 最低位 BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 SET PIE AIE UIE SQWE DM 24/12 DSE 寄存器B SET当SET=0,芯片更新正常进行;当SET=1,芯片更新被禁止。SET位可读写,并不会受复位信号的影响。 PIE当PIE=0,禁止周期中断输出到IRQ;当PIE=1,允许周期中断输出到IRQ。 AIE当AIE=0,禁止闹钟中断输出到IRQ;当AIE=1,允许闹钟中断输出到IRQ。 UIE当UIE=0,禁止更新结束中断输出到IRQ;当UIE=1,允许更新结束中断输出到IRQ。此位在复位或设置SET为高时清0. SQWE当SQWE=0,SQW脚为低;当SQWE=1,SQW输出设定频率的方波。 DMDM=0,BCDDM=1,二进制,此位不受复位信号影响。 24/12此位为1,24时制;为0,12小时制 DSE夏令时允许标志。在四月的第一个星期日的1∶59∶59AM,时钟调到3∶00∶00AM;在十月的最后一个星期日的1∶59∶59AM,时钟调到1∶00∶00AM。 寄存器C 最高位 最低位 BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 IRQF PF AF UF 0 0 0 0 IRQF当有以下情况中的一种或几种发生时,中断请求标志位(IRQF)置高;PF=PIE=1AF=AIE=1UF=UIE=1IRQF=PF·PIE+AF·AIE+UF·UIEIRQF-且为高IRQ脚输出低。所有标志位在读寄存器C或复位后清0。 PF 周期中断标志。AF 闹钟中断标志。UF 更新中断标志。 BIT 0 THROUGH BIT3第0位到第3位无用,不能写入,只读且读出的值恒为0。 寄存器D 最高位 最低位 BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 VRT 0 0 0 0 0 0 0 VRT当VRT=0时表示内置电池能量耗尽,此时RAM中的数据的正确性就不能保证了。 BIT6 THROUGH BIT0第0位到第6位无用,只读,且读出的值恒为0。 2-2-3 74C922 我们采用专用键盘管理芯片74C922。74C922为CMOS工艺技术制造,工作电压为3—15V,“二键锁定”功能,编码输出为三芯输出,可直接与微处理器数据线相连,内部振荡器完成4×4矩形键盘扫描,有 按键时,DA变高,通过非门接到AT89C51的INT1口,并且设INT0为边沿触发方式,当DA变高时,经过非门变为低电平跳变产生INT1外部中断,通知AT89C51从数据总线读键值,判断键值从而完成相应的散转程序功能。 系统中共用了16个键盘按钮形状,当时图纸设计时以矩阵型4X4行之安排,后由于板的大小和实际等问题,便以每行八个,排做两行处理。 2-2-4 SN74LS04N 如下图所示,SN74LS04N的引脚如下,7脚接地,14脚接VCC正电源,并且形象的体现出了SN74LS04N的作用,SN74LS04N作用就是反相器,SN74LS04N内部形成了六个非门,分别是1与2、3与4、5与6、8与9、10与11、12与13构成六个非门,起到一个反相的作用。
2-2-5 ULN2003A ULN2003A是内含7个达林顿管的驱动芯片,输入电压与TTL电平兼容。每个上达林顿管的集电极可吸收最大500mA的电流,耐压30V,因此可以用来驱动四相步进电机。ULN2003A电路具有以下特点: ●电流增益高(大于1000); ●带负载能力强(输出电流大于500mA); ●温度范围宽(-40~85℃); ●工作电压高(大于50V)。 ULN2003电路主要用于如下领域: ●伺服电机; ●步进电机; ●电磁阀; ●可控照明灯。
第二章、系统软件设计
2-1 KEIL51软件的应用 因此苏老师购见意我用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语言编程单片机的学习 设计中所用到的运算符 关系和逻辑运算符 含义 > 大于 >= 大于等于 < 小于 <= 小于等于 == 等于 != 不等于 && 与 ‖ 或 ! 非 相对的优先级:最高为!运算再进行>=、<=运算,接着运行==、!=运算,后&&运算,最后执行‖运算。 运算符 作用 + 加法 - 减法 * 乘法 / 除法 ++ 自加 -- 自减 首页 上一页 1 2 3 下一页 尾页 2/3/3 WORD格式全文下载链接(充值:元) 四路多段定时开关(二)......
首页 上一页 1 2 3 下一页 尾页 2/3/3
WORD格式全文下载链接(充值:元)