收藏 分销(赏)

毕业设计基于单片机的作息时间控制器.doc

上传人:二*** 文档编号:4484863 上传时间:2024-09-24 格式:DOC 页数:31 大小:988KB 下载积分:5 金币
下载 相关 举报
毕业设计基于单片机的作息时间控制器.doc_第1页
第1页 / 共31页
本文档共31页,全文阅读请下载到手机保存,查看更方便
资源描述
. 摘要 校园作息时间控制系统主要用于学校,对一些以24小时为周期的开关量进行自动控制。 该控制系统是采用8031单片机来实现对上述开关量的控制,利用内部时钟来提供时钟信息,设有六位数码管、可以实时显示时间、系统还设有输入键盘,用以修改实时时钟,体现了系统简单、工作稳定可靠、价廉、控制时间精确及系统体积小等优点。 关键词作息时间控制 定时器 语音芯片 8031 Abstract The campus the daily timetable control system which is mainly used in the campus, it auto-control some switches which have periods of 24 hours. This control system carries out the switch parameter controls all above by SCM 8031.It uses the InternalClock to provide the clock information. It could show the real time with 6 bit digital tube. And it could modify the real time clock with the input keyboard. The system is simple, the running is steady and dependable, the controlled time is exact, and the physical volume of the system is small, all the advantages above can be incarnated in this system. Key words:THE DAILY TIMETABLE CONTROL,TIMER,DELAYED ACTION,8031 目录 1 引言5 1.1 概述5 1.2 本文研究内容5 2 作息时间控制器的整体设计5 3 作息时间控制器的硬件设计5 3.1 单片机芯片介绍6 3.2 扩展电路7 3.2.1 程序存储器(2764)7 3.2.2 数据存储器(6264)8 3.2.3 扩展电路部分接线9 3.3 键盘显示电路10 3.4 音乐播放电路12 3.5 复位电路14 3.6 晶振电路15 3.7 电源电路15 3.8 作息时间控制器的硬件原理图16 4 作息时间控制器的软件设计设计17 4.1 定时中断服务程序18 4.1.1 定时流程18 4.1.2 定时中断服务程序设计18 4.2 时钟比较程序20 4.2.2 控制流程图及程序22 4.3 其他部分流程25 4.3.1 主程序流程图25 4.3.2 动态显示流程图25 4.3.3 键盘扫描流程图26 致谢28 参考文献29 1 引言 随着计算机技术的发展和在控制系统中的广泛应用,以及设备向小型化,智能化发展,作为高新技术之一的单片机以其体积小,功能强,价格低廉,使用灵活等优势,显示出很强的生命力。其功耗低,超高型,低成本,功能完整,在国内越来越受到用户的重视和广泛使用。 1.1 概述 基于单片机的作息时间控制,充分发挥它体积小,价格便宜,功耗低,可靠性高的优点。可用于学校作息,方便广大师生。同时也可以作为各种时钟控制电路的报警装置使用,用途广泛,原理简单,便于操作和维护等优点。总体上,单片机设计方案在现实生活中也比较容易实现设计。 1.2 本文研究内容 通过对一个能实现时钟显示及定时功能的时间系统的设计学习,达到单片机应用中的数据转换显示,数码管显示原理,动态扫描显示原理,单片机的定时中断原理、及单片机相关指令在各方面的应用。以8031单片机为核心,由LED数码管、按键、二极管等部分构成,由软件实现打铃时刻表的预置与修改,实现实时时间的显示、校正和铃响控制。此种响铃器实际为一种可编程时间控制器,它提供定时控制输出接口,可方便地用于各种定时控制。 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作为输入输出引脚。 图2 8031引脚图 (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所示。 图3 2764引脚图 其主要引脚功能如下: D0~D7:8条双向数据总线,用于读出数据或编程时写入的编程代码。 A0~A7:地址输入线,扩展时与单片机的P2口和P0口相连,用于传送单片机送来的地址编码信号。 CE:片选端,低电平有效。 OE:输出允许端数据输出允许信号线(低电平时,数据处于读出状态)。 Vcc:电源端(+5V)。 GND:接地端。 3.2.2 数据存储器(6264) 由于8031数据存储器仅为128B,程序运行过程中需要调用大量的数据,所以扩展了一个8K数据存储器6264。 6264引脚图如图4所示。 其主要引脚功能如下: D0~D7:8条双向数据总线,用于读出数据或编程时写入的编程代码。 A0~A12:地址线,扩展时与单片机的P2口和P0口相连,用于传送单片机送来的地址编码信号。 CE:片选端,低电平有效。 OE:输出允许端数据输出允许信号线(低电平时,数据处于读出状态)。 WE:写选通信号线,低电平是数据处于写入状态。 Vcc:电源端(+5V)。 GND:接地端。 图4 6264引脚图 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 0 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所示。 图8 ISD1400引脚图 ISD1400电气特性如下: 工作电压VDD:5V A0~A7:地址输入端; VCCD:数字电路源; VCCA:模拟电路源; SP+:喇叭(+); SP-:喇叭(-); SCLK:外接时钟可选; ANA IN:模拟量输入; ANA OUT:模拟量输出; AGC:自动增益控制; MIC:驻极体话筒输入; MIC REF:驻极体话筒参考输入; PLAYE:边沿触发放音; PLAYL:电平触发放音; REC:录音触发; RECLED:发光二极管接口; NC:空脚。 ISD1400系列有下列型号:ISD1408、ISD1410、ISD1412、ISD1416、ISD1420。录放时间分别为:8秒、10秒、12秒、16秒、20 秒(ISD14##——其中型号的后两位表示其录音的时间长度,单位是秒)[4]。 图9 ISD1410连接图 设计选用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]。 汇编程序如下: ORG 0000H;程序执行开始地址 LJMP MAIN; 跳转主程序 ORG 000BH;T0中断入口地址 LJMP INT0;跳至INT0执行 ORG 0100H COUNT EQU 20H SECOND EQU 21H MINUTEEQU 22H HOUR EQU 23H MAIN: MOV TMOF,#01H;定时器工作方式1 MOV TL0,#0B0H;设定初值 MOV TH0,#3CH SETB EA;总中断开放 SETB ET0;允许T0中断 SETB TR0;开启T0定时器 INT0: PUSH ACC;累加器入栈保护 PUSH PSW;状态字入栈保护 MOV TL0,#0B0H;重装初值 MOV TH0,#3CH SETB TR0;开启定时器T0 ADDC: INC COUNT MOV A,TCOUNT CJNEA,#14H,OUTT0;20次中断未到中断退出 MOVCOUNT,#00H ADDS: INC SECOND LCALL TIME;调用时钟比较子程序(见4.2.2) MOV A,SECOND CJNE A,#60,OUTT0 MOVSECOND,#00H ADDM: INC MINUTE MOV A,MINUTE CJNE A,#60,OUTT0 MOV MINTUE,#00H ADDH: INC HOUR MOV A,HOUR;时数据放入A CJNE A,#24,OUTT0 MOV HOUR,#00H OUTT0: POP PSW;恢复状态字(出栈) POP ACC ;恢复累加器 SETB ET0;开放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 第一节 8:55~9:40 第二节 10:20~11:05 第三节 11:15~12:00 第四节 14:00~14:45 第五节 14:55~15:40 第六节 15:50~16:35 第七节 16:45~17:30 第八节 19:00~21:30 晚自习 时间 作息 8:00~8:45 第一节 8:55~9:40 第二节 10:20~11:05 第三节 11:15~12:00 第四节 14:30~15:15 第五节 15:25~16:10 第六节 16:20~17:05 第七节 17:15~18:00 第八节 19: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 00H 地址 数据(时间控制字) 1010H~1017H FE080000~FF080010 1018H~101FH FE084500~FF084510 1020H~1027H FE085500~FF085510 1028H~102FH FE094000~FF094010 1030H~1037H FE102000~FF102010 1038H~103FH FE110500~FF110510 1040H~1047H FE111500~FF111510 1048H~104FH FE120000~FF120010 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 00H 表5 冬季作息时间数据区表6 夏季作息时间数据区 程序所用到的片外RAM数据存储单元安排如下: 2EH为控制字存储区地址指针暂存单元 R0为控制字存储区的指针 6AH为暂存控制字的开关操作码单元 6BH~6DH依次为控制字预设的秒,分,时的数值单元 4.2.2控制流程图及程序 如图15所示。 图15 定时比较流程图 汇编程序如下: TIME: SETB P1.7 P1.7,SUMMER;P1.7低电平,跳转SUMMER WINTER: MOV DPTR,#TABLE1 SJMP P SUMM: MOV DPTR,#TABLE2 P: SETB RS0;指向第一组工作寄存器 PUSH PSW PUSH ACC;堆栈 MOV R0,2EH;控制字首地址送R0 MOVX A,R0;取控制字开关操作码 MOV 6AH,A;暂存6AH INC R0;修改指针 MOVX A,R0;取出控制字预设时值 MOV 6DH,A;暂存6DH单元 INC R0 MOVX A,R0;取出控制字预设分值 MOV 6CH,A;暂存6CH单元 INC R0 MOVX A,R0;取出控制字预设秒值 MOV 6BH,A;暂存6BH单元 INC R0 MOV 2EH,R0;存入2EH单元 MOV A,SECOND;取当前秒值 CJNE A,6BH,OUT1;当前秒值与预设秒值,不等跳转 MOV A,MINUTE;取当前分值 CJNE A,6CH,OUT1;当前分值与预设分值,不等跳转 MOV A,HOUR;取当前时值 CJNE A,6DH,OUT1;当前时值与预设时值,不等跳转 MOV A,6AH;时分秒都相等,取开关操作码 CJNE A,#00H,OUT0;开关操作码不为00H,跳转 SJMP EXIT;00H,跳转 OUT0: MOV P1.0,A;开关操作由P1.0输出控制 EXIT: POP PSW POP ACC;出栈 CLR RS0 OUT1: CLR C;进位清零 MOV A,2EH SUBB A,#04H;回复原控制字指针 MOV 2EH,A SJMP EXIT RET 控制码: 冬时令 ORG 1010H TABLE1: DB FEH,08H,00H,00H,0FFH,08H,00H,10H DB FEH,08H,45H,00H,0FFH,08H,45H,10H DB FEH,08H,55H,00H,0FFH,08H,55H,10H DB FEH,09H,40H,00H,0FFH,09H,40H,10H DB FEH,10H,20H,00H,0FFH,10H,20H,10H DB FEH,11H,05H,00H,0FFH,11H,05H,10H DB FEH,11H,15H,00H,0FFH,11H,15H,10H DB FEH,12H,00H,00H,0FFH,12H,00H,10H DB FEH,14H,00H,00H,0FFH,14H,00H,10H DB FEH,14H,45H,00H,0FFH,14H,45H,10H DB FEH,14H,55H,00H,0FFH,14H,55H,10H DB FEH,15H,40H,00H,0FFH,15H,40H,10H DB FEH,15H,50H,00H,0FFH,15H,50H,10H DB FEH,16H,35H,00H,0FFH,16H,35H,10H DB FEH,16H,45H,00H,0FFH,16H,45H,10H DB FEH,17H,30H,00H,0FFH,17H,30H,10H DB FEH,19H,00H,00H,0FFH,19H,00H,10H DB FEH,21H,30H,00H,0FFH,21H,30H,10H DB 00H 夏时令 ORG 1110H TABLE2: DB FEH,08H,00H,00H,0FFH,08H,00H,10H DB FEH,08H,45H,00H,0FFH,08H,45H,10H DB FEH,08H,55H,00H,0FFH,08H,55H,10H DB FEH,09H,40H,00H,0FFH,09H,40H,10H DB FEH,10H,20H,00H,0FFH,10H,20H,10H DB FEH,11H,05H,00H,0FFH,11H,05H,10H DB FEH,11H,15H,00H,0FFH,11H,15H,10H DB FEH,12H,00H,00H,0FFH,12H,00H,10H DB FEH,14H,30H,00H,0FFH,14H,30H,10H DB FEH,15H,15H,00H,0FFH,15H,15H,10H DB FEH,15H,25H,00H,0FFH,15H,25H,10H DB FEH,16H,10H,00H,0FFH,16H,10H,10H DB FEH,16H,20H,00H,0FFH,16H,20H,10H DB FEH,17H,05H,00H,0FFH,17H,05H,10H DB FEH,17H,15H,00H,0FFH,17H,15H,10H DB FEH,18H,80H,00H,0FFH,18H,80H,10H DB FEH,19H,30H,00H,0FFH,19H,30H,10H DB FEH,22H,00H,00H,0FFH,22H,00H,10H DB 00H 4.3其他部分流程 4.3.1主程序流程图 如图16所示。 图16 主程序流程图 4.3.2动态显示流程图 如图17所示。 图17 动态显示流程图 4.3.3 键盘扫描流程图 如图18所示。 图18键盘扫描流程图 参 考 文 献 [1]李叶紫,王喜斌.胡辉.孙东辉.MCS_51单片机应用教程.清华大学.2008.6. [2] 辛友顺,胡永生,薛小玲.单片机应用系统设计与实现.##科学技术(184-186页 LED显示接口,190-193页键盘接口). [3]耿文静,钱珊珠.单片机原理与接口技术.国防工业.2007年. [4]翟玉文,徐宏亮,艾学忠,王庆伟,赵岩.实用多功能电子时钟设计. ##化工学院学报.2001年(音乐电路部分). [5] 石从刚.MCS-51单片机原理与应用实验实训教程.北航大学.2007.2.1(90~99页,自动打铃装置设计). [6] 李建忠.单片机原理及应用.##电子科技大学.2007.2.1(第四章,扩展部分) [7]王爽.汇编语言(第二版).清华大学.2008.4. [8] 李华.MCS-51系列单片机实用接口技术.航空航天大学.2003. [9] X沛.基于ISD 1420 的语言报警器设计.##理工学院,电气工程与自动化.2004年. Word.
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 初中其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服