计算机应用 | 古代文学 | 市场营销 | 生命科学 | 交通物流 | 财务管理 | 历史学 | 毕业 | 哲学 | 政治 | 财税 | 经济 | 金融 | 审计 | 法学 | 护理学 | 国际经济与贸易
计算机软件 | 新闻传播 | 电子商务 | 土木工程 | 临床医学 | 旅游管理 | 建筑学 | 文学 | 化学 | 数学 | 物理 | 地理 | 理工 | 生命 | 文化 | 企业管理 | 电子信息工程
计算机网络 | 语言文学 | 信息安全 | 工程力学 | 工商管理 | 经济管理 | 计算机 | 机电 | 材料 | 医学 | 药学 | 会计 | 硕士 | 法律 | MBA
现当代文学 | 英美文学 | 通讯工程 | 网络工程 | 行政管理 | 公共管理 | 自动化 | 艺术 | 音乐 | 舞蹈 | 美术 | 本科 | 教育 | 英语 |

四路多段定时开关(一)信息工程毕业论文(2)

2013-06-01 01:32
导读:· 兼容MCS51指令系统· 8k可反复擦写(1000次)Flash ROM · 32个双向I/O口· 256x8bit内部RAM · 3个16位可编程定时/计数器中断· 时钟频率0-24MHz · 2个串行中断· 可编程

  · 兼容MCS51指令系统 · 8k可反复擦写(>1000次)Flash ROM
  · 32个双向I/O口 · 256x8bit内部RAM
  · 3个16位可编程定时/计数器中断 · 时钟频率0-24MHz
  · 2个串行中断 · 可编程UART串行通道
  · 2个外部中断源 · 共6个中断源
  · 2个读写中断口线 · 3级加密位
  · 低功耗空闲和掉电模式 · 软件设置睡眠和唤醒功能

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在掉电时,其内部控制寄存器不受影响。

内容来自www.nseac.com

 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。

(科教作文网http://zw.ΝsΕac.cOM编辑)


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软件的应用 (转载自科教范文网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语言编程单片机的学习
设计中所用到的运算符
关系和逻辑运算符 含义
> 大于
>= 大于等于
< 小于
<= 小于等于
== 等于

(科教范文网http://fw.nseac.com)

!= 不等于
&& 与
‖ 或
! 非
相对的优先级:最高为!运算再进行>=、<=运算,接着运行==、!=运算,后&&运算,最后执行‖运算。
运算符 作用
+ 加法
- 减法
* 乘法
/ 除法
++ 自加
-- 自减