精编时间管理毕业设计基于单片机的作息时间控制器Word下载.docx
- 文档编号:17480644
- 上传时间:2022-12-06
- 格式:DOCX
- 页数:18
- 大小:121.74KB
精编时间管理毕业设计基于单片机的作息时间控制器Word下载.docx
《精编时间管理毕业设计基于单片机的作息时间控制器Word下载.docx》由会员分享,可在线阅读,更多相关《精编时间管理毕业设计基于单片机的作息时间控制器Word下载.docx(18页珍藏版)》请在冰豆网上搜索。
此种响铃器实际为一种可编程时间控制器,它提供定时控制输出接口,可方便地用于各种定时控制。
2作息时间控制器的整体设计
根据设计要求,画出系统框图,如图1所示。
该控制系统由单片机,音乐电路,数码显示部分以及键盘部分组成。
该控制系统设有6位数码管,可以实时显示时间和定时时间等,系统还设有输入键盘,用以修改实时时钟和定时等操作。
软件方面,通过晶振电路和软件设计,实现时钟设计。
作息时间表有2套可选择,一套为冬季作息时间,另一套为夏季作息时间。
图1设计的系统框图
3作息时间控制器的硬件设计
3.1单片机芯片介绍
设计选用了8031单片机,其引脚图,如图2所示。
(1)电源引脚VCC和GND
VCC:
电源端,接+5V
GND:
接地
(2)外接晶振引脚XTAL1和XTAL2
XTAL1:
片内反相放大器的输入端,接外部晶振的一个引脚。
当单片机采用外部时钟信号时,此引脚应接地。
XTAL2:
片内反相放大器的输出端,接外部晶振的另一个引脚。
当单片机采用外部时钟信号时,外部信号由此引脚接入。
(3)输入输出引脚
P0:
是双向8位三态I/O端口,在不接外存储器与不扩展I/O接口时,可作为准双向口。
在访问外存储器时,它分时用于低八位地址总线和8位双向数据总线。
P1:
是8位双向静态I/O端口。
P2:
是8位准双向I/O端口,在访问外部存储器时,它作为扩展电路的高8位地址总线,送出高8位。
P3:
是8位准双向I/O端口。
一般只用P0和P2作为输入输出引脚。
图28031引脚图
(4)其他引脚
RESET/VPD:
复位信号输入端。
Vcc掉电后,此引脚可接备用电源,以保持内部RAM的数据不丢失。
复位电路用了手动复位,VCC掉电期间,此脚可接上备用电源,以保证单片机内部RAM的数据不丢失。
ALE/PROG:
地址锁存允许端。
当单片机访问外部存储器时,该隐脚输出的信号用于锁存P0端口送出的8位地址。
其输出信号的频率为时钟震荡的频率的1/6。
PSEN:
外部程序存储器的读选通信号输出端,或称为片外取指信号输出端。
从外部程序存储器取指令期间,PSEN在每个机器周期两次有效,其频率为振荡周期的1/6;
但若此期间有访问外部数据存储器,则两次有效的PSEN信号将不出现。
EA/Vpp:
当其保持低电平时单片机只访问外部程序存储器,而不管片内是否有程序存储器。
3.2扩展电路
3.2.1程序存储器(2764)
由于8031没有程序存储器,所以扩展了一个8K的程序存储器2764。
2764引脚图如图3所示。
图32764引脚图
其主要引脚功能如下:
D0~D7:
8条双向数据总线,用于读出数据或编程时写入的编程代码。
A0~A7:
地址输入线,扩展时与单片机的P2口和P0口相连,用于传送单片机送来的地址编码信号。
CE:
片选端,低电平有效。
OE:
输出允许端数据输出允许信号线(低电平时,数据处于读出状态)。
Vcc:
电源端(+5V)。
GND:
接地端。
3.2.2数据存储器(6264)
由于8031数据存储器仅为128B,程序运行过程中需要调用大量的数据,所以扩展了一个8K数据存储器6264。
6264引脚图如图4所示。
A0~A12:
地址线,扩展时与单片机的P2口和P0口相连,用于传送单片机送来的地址编码信号。
WE:
写选通信号线,低电平是数据处于写入状态。
图46264引脚图
3.2.3扩展电路部分接线
这部分主要是用来存储数据、程序,是整个系统的存储器。
将P0口的低8位地址锁存后,在接到6264和2764的A0~A7上。
地址锁存信号ALE接锁存器控制端G,当ALE发生负跳变时,将低8位地址锁存于74LS138中,这时P0口就可以做数据线使用了。
当PSEN向OE输出低电平时,2764才可以和单片机之间进行数据交换。
同样的只有OE片选端输入低电平时,6264才可以进行写信号,只有PSEN和RD同时输出低电平时,读信号才有效。
这样2764、6264和单片机之间可以相互读数据,进行工作。
该部分电路接线图如图5所示[6]。
图5扩展电路图
3.3键盘显示电路
单片机扩展了一个并行I/O口8155,用来连接键盘显示电路。
8155其内部包含两个8位并行口(A口和B口),一个6位并行C口和一个14位计数器。
其电路图如图6所示[2]。
图6键盘显示电路连接图
通过键盘的外部输入,利用软件编程改变时分秒,并通过显示电路显示出来。
矩阵键盘12个键如图7所示,功能如表1。
图7键盘编号
S1
S2
1
S3
2
S4
3
S5
4
S6
5
S7
6
S8
7
S9
8
S10
9
S11
模式选择
S12
移位
表1按键功能
模式选择(S11)键包括:
校时,定时,时令选择,显示当前时间。
与移位(S12)键配合使用,完成相关功能。
3.4音乐播放电路
音乐播放电路部分,选用了美国ISD公司出品的ISD1400系列优质单片语音录放集成电路。
其引脚图,如图8所示。
图8ISD1400引脚图
ISD1400电气特性如下:
工作电压VDD:
5V
A0~A7:
地址输入端;
VCCD:
数字电路源;
VCCA:
模拟电路源;
SP+:
喇叭(+);
SP-:
喇叭(-);
SCLK:
外接时钟可选;
ANAIN:
模拟量输入;
ANAOUT:
模拟量输出;
AGC:
自动增益控制;
MIC:
驻极体话筒输入;
MICREF:
驻极体话筒参考输入;
PLAYE:
边沿触发放音;
PLAYL:
电平触发放音;
REC:
录音触发;
RECLED:
发光二极管接口;
NC:
空脚。
ISD1400系列有下列型号:
ISD1408、ISD1410、ISD1412、ISD1416、ISD1420。
录放时间分别为:
8秒、10秒、12秒、16秒、20秒(ISD14XX——其中型号的后两位表示其录音的时间长度,单位是秒)[4]。
图9ISD1410连接图
设计选用ISD1410(录音时间20秒),该芯片与主电路的连接图,如图9所示。
在该电路中,当P1.0输出一个低电平时,播放音乐,放音时先由软件给出一个地址,74LS377用来实现地址锁存,就是一个语音段首址,在这一放音过程中地址是不能变化的,故需要一个锁存器。
3.5复位电路
8031的复位方式可以是自动复位,也可以是手动复位,如图10。
此外,RESET/Vpd还是一复用脚,Vcc掉电其间,此脚可接上备用电源,以保证单片机内部RAM的数据不丢失。
本设计采用手动复位。
图10复位电路
3.6晶振电路
用一个12MHz晶振和两个30Pf瓷片电容组成,为单片机提供标准时钟,其中两个瓷片电容起微调作用.其电路图如图11。
图11晶振电路
3.7电源电路
依系统需要提供+5V直流电源。
在此我们引入220V交流电源通过电源变压器变换成交流低压,再经过桥式整流电路D1~D4和滤波电容C1的整流和滤波,在固定式三端稳压器7805的Vin和GND两端形成一个并不十分稳定的直流电压(该电压常常会因为市电电压的波动或负载的变化等原因而发生变化)。
此直流电压经过7805的稳压和C3的滤波便在稳压电源的输出端产生了精度高、稳定度好的直流输出电压。
本稳压电源可作为TTL电路或单片机电路的电源。
三端稳压器是一种标准化、系列化的通用线性稳压电源集成电路,以其体积小、成本低、性能好、工作可靠性高、使用简捷方便等特点,成为目前稳压电源中应用最为广泛的一种单片式集成稳压器件。
电路图如图12。
图12电源电路
3.8作息时间控制器的硬件原理图
综上所述,做出本设计的硬件原理图,如图13所示。
图13作息时间控制器的硬件原理图
4作息时间控制器的软件设计设计
利用单片机的定时器设计一个时钟,在每次秒加1的计时过程中都与规定的作息时间比较,如果相等,就进行播放音乐的操作,不相等则返回。
4.1定时中断服务程序
程序设计中,以单片机定时器/计数器T0工作在模式1,定时50ms,允许中断。
在中断服务程序中重赋T0计数初值,开中断返回
设:
20H为中断计数单元,计满20次为1秒
21H为秒的计数单元,计满60次为1分钟
22H为分的计数单元,计满60次为1小时
23H为时的计数单元,计满24次为1天
4.1.1定时流程
如图14所示。
图14计时流程图
4.1.2定时中断服务程序设计
选择定时/计数器作为定时器,工作方式为方式1。
计数器的加1信号由振荡器(晶振)的12分频产生,即每经过1个机器周期,计数器增1,直至计数溢出为止。
晶振频率为12MHz,则计数周期Tcy为1μs
定时器的方式1为16位计数器,计数最大值为216=65536,定时50MS,需要计数50000个1μs(计数周期)。
计数初值=65536-50000=15536
15536转换为十六进制即为3CB0
计数器从3CB0开始计数,计数到65536溢出,产生定时中断。
系统晶振为12MHZ,设定定时器每隔50MS溢出中断1次,则循环中断20次延时时间为1秒,上述过程重复60次为1分钟,分计时60次为1小时,小时计时24次则时间重新回到00:
00:
00[5]。
汇编程序如下:
ORG0000H;
程序执行开始地址
LJMPMAIN;
跳转主程序
ORG000BH;
T0中断入口地址
LJMPINT0;
跳至INT0执行
ORG0100H
COUNTEQU20H
SECONDEQU21H
MINUTEEQU22H
HOUREQU23H
MAIN:
MOVTMOF,#01H;
定时器工作方式1
MOVTL0,#0B0H;
设定初值
MOVTH0,#3CH
SETBEA;
总中断开放
SETBET0;
允许T0中断
SETBTR0;
开启T0定时器
INT0:
PUSHACC;
累加器入栈保护
PUSHPSW;
状态字入栈保护
重装初值
开启定时器T0
ADDC:
INCCOUNT
MOVA,TCOUNT
CJNEA,#14H,OUTT0;
20次中断未到中断退出
MOVCOUNT,#00H
ADDS:
INCSECOND
LCALLTIME;
调用时钟比较子程序(见4.2.2)
MOVA,SECOND
CJNEA,#60,OUTT0
MOVSECOND,#00H
ADDM:
INCMINUTE
MOVA,MINUTE
MOVMINTUE,#00H
ADDH:
INCHOUR
MOVA,HOUR;
时数据放入A
CJNEA,#24,OUTT0
MOVHOUR,#00H
OUTT0:
POPPSW;
恢复状态字(出栈)
POPACC;
恢复累加器
开放T0中断
RETI;
中断返回
4.2时钟比较程序
作息时间预先制成表格存入EPROM数据区,利用软件每过一秒,将当前时间与数据区时间相比较,相等说明要进行控制,完成播放音乐的操作。
通过模式选择键,和移位键,完成时间表的切换。
由INT1端口状态来选择夏季作息时间或是冬季作息时间。
4.2.1作息时间数据区
数据区每一项时间控制字需要占8个存储单元:
控制码1
时
分
秒
启动装置时间
控制码2
关闭装置时间
8031单片机的P1.0用作语音芯片的开启和关闭。
控制码定义表,如表2所示
控制码
功能
对应输出码
FEH
启动语音芯片
P1.0控制播放
FFH
关闭语音芯片
P1.0输出关闭
00H
数据区结束
表4-1控制码定义
作息时间如表3(冬季),表4(夏季)所示,以及与根据作息时间编制的数据区如表5(冬季),表6(夏季)所示
时间
作息
8:
00~8:
45
第一节
55~9:
40
第二节
10:
20~11:
05
第三节
11:
15~12:
00
第四节
14:
00~14:
第五节
55~15:
第六节
15:
50~16:
35
第七节
16:
45~17:
30
第八节
19:
00~21:
晚自习
30~15:
15
25~16:
10
20~17:
17:
15~18:
30~22:
20
表3冬季作息时间表4夏季作息时间
地址
数据(时间控制字)
1110H~1117H
FE080000~FF080010
1118H~111FH
FE084500~FF084510
1120H~1127H
FE085500~FF085510
1128H~112FH
FE094000~FF094010
1130H~1137H
FE102000~FF102010
1138H~113FH
FE110500~FF110510
1140H~1147H
FE111500~FF111510
1148H~114FH
FE120000~FF120010
1150H~1157H
FE143000~FF143010
1158H~115FH
FE151500~FF151510
1160H~1167H
FE152500~FF152510
1168H~116FH
FE161000~FF161010
1170H~1177H
FE162000~FF120610
1178H~117FH
FE170500~FF170510
1180H~1187H
FE172500~FF172510
1188H~118FH
FE180000~FF180010
1190H~1197H
FE193000~FF193010
1198H~119FH
FE220000~FF220010
11A0H~11A7H
1010H~1017H
1018H~101FH
1020H~1027H
1028H~102FH
1030H~1037H
1038H~103FH
1040H~1047H
1048H~104FH
1050H~1057H
FE140000~FF140010
1058H~105FH
FE144500~FF144510
1060H~1067H
FE145500~FF145510
1068H~106FH
FE154000~FF154010
1070H~1077H
FE155000~FF155010
1078H~107FH
FE163500~FF163510
1080H~1087H
FE164500~FF164510
1088H~108FH
FE173000~FF173010
1090H~1097H
FE190000~FF190010
1098H~109FH
FE213000~FF213010
10A0H~10A7H
表5冬季作息时间数据区表6夏季作息时间数据区
程序所用到的片外RAM数据存储单元安排如下:
2EH为控制字存储区地址指针暂存单元
R0为控制字存储区的指针
6AH为暂存控制字的开关操作码单元
6BH~6DH依次为控制字预设的秒,分,时的数值单元
4.2.2控制流程图及程序
如图15所示。
图15定时比较流程图
TIME:
SETBP1.7
JBP1.7,SUMMER;
P1.7低电平,跳转SUMMER
WINTER:
MOVDPTR,#TABLE1
SJMPCOMP
SUMM:
MOVDPTR,#TABLE2
COMP:
SETBRS0;
指向第一组工作寄存器
PUSHPSW
PUSHACC;
堆栈
MOVR0,2EH;
控制字首地址送R0
MOVXA,@R0;
取控制字开关操作码
MOV6AH,A;
暂存6AH
INCR0;
修改指针
取出控制字预设时值
MOV6DH,A;
暂存6DH单元
INCR0
取出控制字预设分值
MOV6CH,A;
暂存6CH单元
取出控制字预设秒值
MOV6BH,A;
暂存6BH单元
MOV2EH,R0;
存入2EH单元
MOVA,SECOND;
取当前秒值
CJNEA,6BH,OUT1;
当前秒值与预设秒值,不等跳转
MOVA,MINUTE;
取当前分值
CJNEA,6CH,OUT1;
当前分值与预设分值,不等跳转
MOVA,HOUR;
取当前时值
CJNEA,6DH,OUT1;
当前时值与预设时值,不等跳转
MOVA,6AH;
时分秒都相等,取开关操作码
CJNEA,#00H,OUT0;
开关操作码不为00H,跳转
SJMPEXIT;
00H,跳转
OUT0:
MOVP1.0,A;
开关操作由P1.0输出控制
EXIT:
POPPSW
POPACC;
出栈
CLRRS0
OUT1:
CLRC;
进位清零
MOVA,2EH
SUBBA,#04H;
回复原控制字指针
MOV2EH,A
SJMPEXIT
RET
控制码:
冬时令
ORG1010H
TABLE1:
DBFEH,08H,00H,00H,0FFH,08H,00H,10H
DBFEH,08H,45H,00H,0FFH,08H,45H,10H
DBFEH,08H,55H,00H,0FFH,08H,55H,10H
DBFEH,09H,40H,00H,0FFH,09H,40H,10H
DBFEH,10H,20H,00H,0FFH,10H,20H,10H
DBFEH,11H,05H,00H,0FF
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精编 时间 管理 毕业设计 基于 单片机 作息 控制器