基于单片机的校园作息时间控制系统实现Word文件下载.docx
- 文档编号:20317715
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:27
- 大小:499.54KB
基于单片机的校园作息时间控制系统实现Word文件下载.docx
《基于单片机的校园作息时间控制系统实现Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于单片机的校园作息时间控制系统实现Word文件下载.docx(27页珍藏版)》请在冰豆网上搜索。
第一节下课铃响
50
第二节上课铃响
9:
第二节下课铃响
第三节上课铃响
10:
20
第三节下课铃响
第四节上课铃响
11:
10
第四节下课铃响
教室灯关,宿舍灯开
D1灭、D2亮
12:
第五节课预备铃响
宿舍灯关、教室灯开
D2灭、D1亮
13:
第五节课上课铃响
第五节课下课铃响
第六节课上课铃响
14:
第六节课下课铃响
第七节课上课铃响
15:
第七节课下课铃响
第八节课上课铃响
16:
第八节课下课铃响
教室灯关、宿舍灯开
18:
晚自习预备铃响;
路灯开、
D1亮、D2灭、D3亮
上晚自习铃响
20:
下晚自习铃响、宿舍灯开
21:
教室灯关
D1灭
22:
学生宿舍灯关、路灯关
D2灭、D3灭
2、硬件设计
按系统框图分三个部分设计如下:
2.1系统部分
单片机采用片内带有4KBE2PROM的AT89C52,这样就不需要再扩展片外程序存储器,可以简化线路;
用一片74LS138译码器提供5个外部地址(CS0、CS1、CS2、CS3、CS4),分别对于6个七段码显示器、1个时钟芯片和1个锁存器地址;
采用一片时钟芯片DS12887为系统提供准确时间。
该芯片内部自带锂电池,计时精确,不受系统电源影响;
AT89S52的T0与T1相连,利用单片机内部的定时/计数器完成15秒打铃控制。
如图2所示。
图2系统部分原理图
2.2键盘接口电路
键盘是由若干按键组成的开关矩阵,它是微型计算机最常用的输入设备,用户可以通过键盘向计算机输入指令、地址和数据。
本系统中采用
独立式按键结构,如图3所示,各按键相互独立地接通一条输入数据线,当任何一个键按下时,与之相连的输入数据线即被置0,而平时该线置1。
独立式按键电路配置灵活,软件结构简单。
当功能键不很多时,采用该种方式比较合适。
图3键盘接口原理图
2.3显示部分
选用6个七段数码管分别显示时、分、秒,数码管的驱动选用具有译码、锁存、驱动功能的CD4511芯片,显示数据来自DS12887的时单元、分单元、秒单元,经P0口(BCD码)送到CD4511芯片,译码后再送到显示器显示。
如图4所示。
图4显示部分原理图
2.4输出控制部分
输出控制信号由P2口送到锁存器锁存,经74LS04芯片驱动相应的输出部分动作。
例如:
要开路灯执行指令MOVP2,#02H即可,而若执行指令MOVP2,#E0H,则是路灯、学生宿舍灯和教室灯全部打开。
P2口各位所控制的对象见表2,输出部分原理图如图5所示。
表2位控表
P2口的位控制,“0”控制发光二极管或三极管截止、“1”控制发光二极管或三极管导通
P2.7
P2.6
P2.5
P2.4
P2.3
P2.2
P2.1
P2.0
教室灯
宿舍灯
路灯
电铃
X
片选信号输出端
图5输出部分原理图
3、DS12887的功能及工作原理
DS12887是一个DALLAS公司生产的实时时钟芯片,它把时钟芯片所需的晶振电路和外部锂电池等相关电路都集成与芯片内部,具有低功耗、工作稳定、功能集成度高、计时精确、与各种微处理器接口简便、在没有外接电源情况下可正常工作10年等一系列优点。
它主要由振荡电路、分频电路、周期中断、方波选择电路14字节时钟和控制单元、114字节非易失RAM、十进制、二进制加法器、总线接口电路、电源和写保护单元、内部锂电池等部分组成。
图6DS12887的引线端子排列图
各引线端子功能分配如下:
Ucc、GND——直流电源(+5V)电压,当Ucc低与4.25V时读写禁止,当Ucc低与3V时,电源切换至内部锂电池。
MOT——(模式选择):
MOT接Ucc为MOTROLA方式,MOT接GND为INTEL方式。
SQW——方波输出。
AD0~AD7——双向数据/地址复用线。
AS——(地址选通输入)用于实现信号分离,在AS信号的下降沿把地址锁入DS12887。
DS——数据选通或读输入。
R/W——读写输入。
CS——片选输入。
IRQ——中断申请输入。
RESET——复位输入。
DS12887利用AS(地址选通信号),可以对总线分时复用的微处理器实现简便的接口。
从00H—09H10个单元为时钟、日历及闹钟单元,其内容可由程序写入或读出。
其初始值在芯片初始化时由程序写入,其值可用BIN值(二进制数,编程时写作16进制数)或BCD值,这由寄存器B的DM位(b2)决定。
时钟初始化时,寄存器B的SET位(b7)必须置1,采用每天12H或24h制有寄存器B的24/12位(b1)决定。
在12h制时,时字节的最高位为1表示下午(PM)。
在各单元的内容写完之后,将寄存器B的SET位清0,时钟即开始运行。
这三个闹钟单元有两种
用法。
①根据写入到三个闹钟单元的时分秒值,每天产生闹中断一次;
②在各闹钟单元写入“自由”码=0C0~0FFH,即最高两位为“1”时为“自由”状态。
如时钟单元写入0C0~0FFH,则每小时闹一次,在时闹和分闹两单元写入0C0~0FFH,则每分闹一次,在三个闹钟单元均写入0C0~0FFH,则每秒闹一次。
DS12887内部的4个可由程序访问的寄存器。
寄存器A
b7
b6
b5
b4
b3
b2
b1
b0
UIP
DV2
DV1
DV0
RS3
RS2
RS1
RS0
UIP(b7)——时间的更新正在进行位。
UIP=1,表示正在进行。
UIP=0不更新,此时读写时钟日历字节有效。
DV2、DV1、DV0——这三位用于震荡器开关和复位计数器链,当他们为010组合时将打开震荡器并允许RTC保持时间;
为11X(X为0或1)组合时将使能震荡器并保持计数器链为复位状态。
在把010写到DV0、DV1、DV2之后500ms将发生新的数据更新。
RS3、RS2、RS1、RS0——速率选择位,用于选择周期中断的速率和SQW输出的方波速率,如RS3~RS0全为0,则禁止分频器输出,如表4所示。
表9DS12887方波输出频率的选择
寄存器A选择位
时基4.194304MHz或1.048576MHz
时基32.768KHz
周期中断速率
SQW方波输出频率
1
30.517us
32.768kHz
3.90625ms
256Hz
61.035us
16.384kHz
7.8125ms
128Hz
122.07us
8.192kHz
244.141us
4.096kHz
488.281us
2.048kHz
976.562us
1.024kHz
1.0234kHz
1.953125us
512Hz
3.90625us
15.625ms
64Hz
31.25ms
32Hz
6.25ms
16Hz
125ms
8Hz
250ms
4Hz
500ms
2Hz
寄存器B
SET
PIE
AIE
UIE
SQWE
DM
24/12
DSE
SET——设置位。
时钟不更新,SET=1用于时钟初始化。
SET=0时钟每秒更新一次。
PIE——周期中断允许位,RESET使PIE=0。
AIE——闹钟中断允许位,RESET使AIE=0。
UIE——更新结束中断允许位,RESET使UIE=0。
SQWE——方波输出允许位,RESET使SQWE=0。
DM——数据模式位。
DM=1,时间用BIN值;
DM=0,时间用BCD值。
24/12——该位=1时,时间为24h模式。
该位=0时,时间为12h模式。
DSE——夏时制允许位。
DSE=1,自动执行夏时制制作。
寄存器C
IRQF
PF
AF
UF
IRQF——中断请求标志。
当下例事件之一或多件同时出现时IRQF=1
1PF=PIF=1。
2AF=AIE=1。
3UF=UIE=1。
4即:
IRQF=PF*PIE+AF*AIE+UF*UIE
当IRQF=1时,IRQ端子变为低电平,发出中断请求。
PF——周期中断标志。
当由RS3~RS0决定的周期中断时间到时,
PF置1。
AF——闹钟中断标志。
当设置的闹钟时间到时,AF置1。
UF——更新结束中断标志。
每个时间更新周期结束时,UF=1。
B3、b2、b1、b0——无用位,读时为0。
寄存器D
VRT
4、程序框图
软件设计以时钟显示、键盘扫描、为主程序。
在设计中利用单片机时钟计时集成电路完成计时的任务,并500ms向单片机发一个中断,中断子程序有时钟显示及时间比较,如比较相等,则说明作息时间已到,发出指令控制电铃或照明电路的开、关操作。
4.1程序流程图(见图7)
图7程序流程图
4.2源程序清单
ORG0000H
LJMPMAIN
ORG0030H
MAIN:
MOVSP,#70H
CLRP2.4;
电铃控制脚
CLRP2.5;
宿舍灯控制脚
CLRP2.6;
路灯控制脚
CLRP2.7;
教学灯控制脚
CLRP2.3;
DS12887选通脚
MOVR0,#0AH;
指向寄存器A
MOVA,#2FH;
初始化寄存器A,启动DS12887,中断速率500ms
MOVX@R0,A
指向寄存器B
MOVR0,#0BH
MOVA,#42H;
初始化寄存器B,周期中断允许,选择BCD码,24小时模式
CLRP2.3
MOVR0,#04H
MOVA,#06H
MOVX@R0,A
CLRP2.3
MOVR0,#02H
MOVA,#29H
MOVR0,#00H
MOVA,#55H
MODIFY:
LCALLREAD
LCALLDISP
LCALLADJUST
LCALLINT887
SJMPMODIFY
ADJUST:
JBP1.0,AJT1
JNBP1.0,$
LCALLADHOUR
AJT1:
JBP1.1,AJT2
JNBP1.1,$
LCALLDEHOUR
AJT2:
JBP1.2,AJT3
JNBP1.2,$
LCALLADMIN
AJT3:
JBP1.3,AJT4
JNBP1.3,$
LCALLDEMIN
AJT4:
RET
ADHOUR:
MOVA,20H;
小时加1子程序
ADDA,#01H
DAA
CJNEA,#24H,INCH2
MOVA,#00H
INCH2:
JCINCH3
INCH3:
MOV20H,A
LCALLWRHOUR
MOVA,#42H
DEHOUR:
MOVA,20H;
小时减1子程序
CJNEA,#00H,DECH2
MOVA,#23H
SJMPDECH3
DECH2:
ANLA,#0FH
CJNEA,#00H,DECH4
MOVA,20H
SWAPA
DECA
ORLA,#09H
AJMPDECH3
DECH4:
MOVA,20H
DECH3:
LCALLWRHOUR
MOVA,#42H
WRHOUR:
MOVA,#82H
MOVR0,#04H
RET
ADMIN:
MOVA,21H;
分钟加1子程序
DAA
CJNEA,#60H,INCH4
INCH4:
JCINCH5
INCH5:
MOV21H,A
LCALLWRMIN
DEMIN:
MOVA,21H;
分钟减1子程序
CJNEA,#00H,DECH6
MOVA,#59H
SJMPDECH7
DECH6:
CJNEA,#00H,DECH8
MOVA,21H
AJMPDECH7
DECH8:
DECH7:
MOVR0,#0BH
WRMIN:
MOVA,#82H
MOVA,21H
;
从DS12887读取时间,并将时间写入20H到22H
READ:
LCALLJUDGE;
判断芯片状态
读时信息
MOVR0,#04H
MOVXA,@R0
MOV20H,A
读分信息
MOVR0,#02H
MOV21H,A
读秒信息
MOVR0,#00H
MOV22H,A
送显示程序
DISP:
MOVR0,#20H;
时显示
SETBP2.3
CLRP2.2
CLRP2.1
SETBP2.0
MOVA,@R0
MOVP0,A
INCR0;
分显示
SETBP2.1
CLRP2.0
INCR0
SETBP2.3;
秒显示
SETBP2.0
判断芯片状态子程序
JUDGE:
MOVR0,#0AH
JBACC.7,JUDGE;
实质是判断寄存器A的最高位UIP
中断程序开始
INT887:
PUSH00H
PUSH0E0H
比较作息时间程序
BJCX:
MOVA,22H;
将秒信息放入寄存器R2
MOVR1,21H;
将分信息放入寄存器R1
MOVR0,20H;
将时信息放入寄存器R0
CJNEA,#15H,BJMIAO;
判断秒是否为"
00"
,是就关电铃
CLRP2.4
BJMIAO:
CJNEA,#00H,RET_INT;
判断秒是否为"
,是就执行小时值比较
小时比较程序
BJHOUR1:
CJNER0,#06H,BJHOUR2;
判断时不为6点,比较下个时值
LJMPBJS1;
判断时为6点,去比较分钟
BJHOUR2:
CJNER0,#07H,BJHOUR3;
判断时不为7点,比较下个时值
LJMPBJS2;
判断时为7点,去比较分钟
BJHOUR3:
CJNER0,#08H,BJHOUR4;
判断时不为8点,比较下个时值
LJMPBJS3;
判断时为8点,去比较分钟
BJHOUR4:
CJNER4,#09H,BJHOUR5;
判断时不为9点,比较下个时值
LJMPBJS4;
判断时为9点,去比较分钟
BJHOUR5:
CJNER0,#10H,BJHOUR6;
判断时不为10点,比较下个时值
LJMPBJS5;
判断时为
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 校园 作息 时间 控制系统 实现