自动打铃器设计.docx
- 文档编号:10400201
- 上传时间:2023-02-10
- 格式:DOCX
- 页数:16
- 大小:136.10KB
自动打铃器设计.docx
《自动打铃器设计.docx》由会员分享,可在线阅读,更多相关《自动打铃器设计.docx(16页珍藏版)》请在冰豆网上搜索。
自动打铃器设计
引言与摘要
第1章设计方案论证
1.1设计的应用意义
1.2设计方案选择
1.3总体设计框图
第2章硬件电路设计
2.1单元电路设计与原理分析
第3章软件设计
3.1程序流程图
3.2源程序清单
第4章设计总结
参考文献
附录1
附录2
引言与摘要
为方便人们的日常生活,优化学校,机关等单位的计时系统,采用以单片机为基础设计了一种的自动打铃器。
本电路有电源,显示电路,按键控制电路,功放电路四部分组成。
这次设计利用了单片机AT89C51的定时和计数功能,来完成时间的计时,校时功能。
用LM12864液晶显示时,分,秒。
选用蜂窝器模拟现实的电铃实现打铃,其中计时和定时功能是软件为主,硬件为辅。
而校时功能是软件为辅,由外部按键控制,实现加一与减一的操作。
用单片机控制的自动打铃器,充分发挥单片机体积小,价格便宜,功耗低可靠性好等特点。
可用于学校作息,方便了广大师生
第1章设计方案论证
1.1设计的应用意义
“单片机与接口技术”课程设计是在教学及实验基础上,对课程所学理论知识的深化和提高。
因此,要求学生能综合应用所学知识,设计与制造出具有较复杂功能的小型单片机系统,并在实践的基本技能方面进行一次系统的训练。
能够较全面地巩固和应用“单片机”课程中所学的基本理论和基本方法,并初步掌握小型单片机系统设计的基本方法。
培养独立思考、独立收集资料、独立设计规定功能的单片机系统的能力;培养分析、总结及撰写技术报告的能力。
1.2设计方案选择
⑴设计课题简要概述
自动打铃装置用于工厂,学校等地的时间控制,本设计是按照学校作息时间设定的,模拟了电子钟显示时,分,秒。
还根据学校的作息时间按时打铃,本系统有两个按钮,分别用来调时,周分,以保证时钟与标准时间相吻合。
首先设计出本系统的硬件基本框图,根据框图设计电气原理图,简要概述基本原理,按照设计技术参数设计出各部分程序。
⑵系统软硬件划分
由于要依据最小系统设计,因此,极大地节约系统的硬件成本,所有能用软件实现的功能都用软件完成,如按键的去抖,采用延时,显示部分用动态显示等,这样硬件部分的设计可以采用单片机最小系统,所谓最小系统是仅有程序存储器和时钟及复位电路的为时过早片机系统。
⑶单片机选型
根据课题的具体内容,任务要求,计时,校时,定时,键盘显示等功能,经多方考虑,所以本系统选项用与MCS——51系统单片机完全兼容的AT89C51低功耗单片机。
1.3总体设计框图
整体框图
第2章硬件电路设计
2.1单元电路设计与原理分析
㈠基本原理概述
本系统主要由主控模块,时钟模块,显示模块,键盘接口模块等4部分组成。
通过内部定时产生中断,从而驱动电铃打铃。
设定51单片机工作在定时器工作方式1,每100ms产生一次中断,利用软件将基准100ms单元进行累加,当定时器产生10次中断就产生1S信号,这时秒单元加1。
同理,对分单元和时单元计数,从而产生秒,分,时的值,通过六位七段显示器进行显示。
由于动态显示法需要数据锁存等硬件,接口较复杂,考虑显示只有六位,且系统没有其他复杂的处理任务,所以采用动态扫描实现LED的显示。
本系统采用三个按键,1键为功能键,另外两个做控制键。
按一下1键进入时间设置,然后按2键进行时调整,按3键进行分调整,按两下1键进入打铃时间设定,在分别用2键3键进行调整,调整完后按下1键便退出调整,时钟继续走动。
当时钟时间与设置时间一致时,驱动电路动作进行打铃,每次打铃10秒。
㈡元件参数及功能简介
1.主控制器AT89C51
AT89C51分司生产的AT89C51单片机用高性能的静态80C51设计,由先进工艺制造,并带有非易失性FLASH程序存储器,它是一种高性能,低功耗的8位CMOS微处理芯片,市场应用最多,主要性特点有:
有4K的FLASH程序存储器,256字节内部RAM。
电源控制模式:
时钟可停止和恢复,空闲模式,掉电模式。
6个中断源。
4个中断优先级。
4个8位I/O口。
全双工增强型UART。
2个16位定时/计数器
2.时钟电路DS1302
1)性能特性
实时时钟可对秒,分,时等进行计数,存在高速数据暂存的31*8位RAM,最少引脚的串行I/O口;2.5~~5.5V电压工作范围;2.5V耗电小于300nA;用于时钟或RAM数据读/写的单字节或多字节数据传送方式;简单的3线接口;可选的慢速充电的能力。
DS1302时钟芯片包括实时时钟和31字节的静态RAM,它经过一个简单的串行接口与微处理器通信,实时时钟提供秒,分,时等信息,时钟运行可以采用24H,或带AM/PM的12H格式,采用三线接口与CPU进行同眇通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。
DS1302有主电源/后备电源双电源引脚;
2)工作原理
DS1302在任何数据传送时必须先初始化,把RST引脚置为高电平,然后把8位地址和命令装入移位寄存器,数据在SCLK的上升沿被输入,无论是读周期还是写周期开始8位指定40个寄存器中哪个将被访问到,在开始8个时钟周期,把命令字节装入揿位寄存器之后,另外的时钟周期在闱时操作时输出数据,在写操作时写入数据,时钟脉冲的个数在单位字节下为8加8,在多字节方式下为8加字节数,最大可达248字节数。
为了提高对32个地址的寻址能力,可以把时钟或RAM寄存器规定为多字节方式,在多字节方式中,读或写从地址0的位0开始,必须管按数据传送的次序电先的8个寄存器。
但是当以多个字节写RAM时,为了传送数据不必写所有31字节,不管是否写了全部31字节,所写的每个字节都将传送至RAM。
时钟暂停:
秒寄存器的位7定义位时钟暂停位,当它为1时,DS1302停止振荡,进入低功耗的备份方式,通常在对DS1302进行写操作时,停止振荡,当它为0时时钟将开始启动。
8051通过串口向DS1302写数据的程序框图如图:
其中,Px可以是8051单片机的任何一位I/O口,注意因为DS1302的数据发送或接收时序和8051的串行口不完全一致,因此,需要在TXD的输出端加反相器,另外,接收数据时,不能以串行口的接收方式接收,必须将串行口当作普通I/O口进行数据接收.
DS1302的晶振选用32.768KHZ,电容推荐值为6PF,因为振荡频率较低,也可以不接电容,对计时精度影响不大。
3.显示电路设计
显示部分采用普通的共阳数码管显示,采用动态扫描,以减少硬件电路,数码管分别为十时,时,十分,分,十秒,秒显示,显示时采用串行口输出段码,用74LS164来驱动数码管扫描只需7ms。
74LS164内部为8个D触发器,用以实现数据的串行移位,74LS164为TTL单向8位移位寄存器,可实现串行输入并行输出,CPU为时钟输入端,可连接到串行口TXD端。
每个时钟信号的上升沿加到CP端时,移位寄存器移一位,8个时钟脉冲过后8位二进制数全部移入74LS164中,MR脚为复位端,当该位为低电平时,移位寄存器各位复0。
当它为高电平时时钟脉冲才起作用。
Q1~~Q8并行输出分别接数码管的各段对应脚上,在给出8个脉冲后,最先进入74LS164的第一个字节数据到达最高位,再来1个脉冲,第一个脉冲就会从最高位移出,进入下一个74LS164的第一位。
4.键盘接口设计
由于按键盘只有3个,采用独立式按钮,分别与8051的P10.P11.P12相连,用普通按钮10K上拉电阻,用查询法完成读键功能。
第3章程序设计
3.1程序流程图
主程序流程图
定时中断程序流程图
显示程序流程图
3.2源程序清单
K-KEYEQUP1.0;控制按键
M-KEYEQUP1.1;分按键
H-KEYEQUP1.2;时按键
S-DATADATA50H;秒单元数据存储地址
M-DATADATD51H;分单元数据存储地址
H-DATADATA52H;时单元数据存储地址
MOVSP,#70H;堆栈区地址从70H开始
MOVDPTR,#0FB00H
MOVA,#03H;设8155的PA,PB口为输出方式
MOVX@DPTR,A
START:
LCALLKEY;调用键盘设置子程序
LCALLDIS;调用显示子程序
LCALLCONTROL;调用控制子程序
AJMPSTART;循环调用
KEY:
JBM-KEY,H-SET;分设置键压下吗?
如果没压下,则判断时设置键
LCALLDELL;调用键盘防抖动子程序
JBM-KEY,H-SET
INCM-DATA;如果分设置健压下,则分单元加1
MOVA,M-DATA
CJNZA,#60,M-DIS;分单元=60,则清0
MOVM-DATA,#00H
M-DIS:
MOVA,M-DATA
LCALLHEX-BCD;调用HEX至BCD码转换子程序
MOV69H,A
MOV6AH,B
M-REP:
LCALLDIS;调用显示子程序
JNBM-KEY,M-REP;等待分设置键释放
H-SET:
JBH-KEY,HEX-BCD;判断时设置键是否压下?
LCALLDELL;调用键盘防抖动子程序
JBH-KEY,HEX-BCD
INCH-DATA;如时设置键压下,则时单元加1
MOVA,H-DATA
CJNZA,#24,H-DIS;时单元=24,则清0
MOVH-DATA,#10H
H-DIS:
MOVA,H-DATA
LACLLHEX-BCD;调用HEX至BCD码转换子程序
MOV79H,A
MOV7AH,B
H-REP:
LCALLDIS;调用显示子程序
JNBH-KEY,H-REP;等待时设置键释放
HEX-BCD:
MOVB,#10
DIVAB
RET
DELL:
MOVR6,#20H;延迟10ms子程序
DEL1:
MOVR7,#0FFH
DJNZR7,$
DJNZR6,DEL1
RET
CLOCK:
PUSHACC;参数入栈保护
PUSHPSW
CLRTR0
MOVTL0,#0B0H;定时参数重新设置
MOVTH0,#03CH
SETBTR0
INC4FH;100ms单元内容加1
MOVA,4FH
CJNZA,#10,D0;100ms单元内容=10,则秒单元加1
MOV4FH,#00H;100ms单元清0
MOVA,S-DATA
ADDA,#01H;秒单元加1
MOVS-DATA,A
CJNEA,#60,D0;秒单元内容=60,则清0
MOVS-DATA,#00H
MOVA,M-DATA
ADDA,#01H;分单元加1
MOVM-DATA,A
CJNEA,#60,D0;分单元=60,则清0
MOVM-DATA,#00H
MOVA,H-DATA
ADDA,#01H;时单元加1
MOVH-DATA,A
CJNEA,#24,D0;时单元=24,则清0
MOVH-DATA,#00H
D0:
POPPSW;出栈,出中断程序
POPACC
RETI
DIS:
MOVR0,#4FH;准备向缓冲区放数
MOVA,27H
ACALLPTDS;放秒值
MOVA,28H
ACALLPTDS;放分值
MOVA,29H
ACALLPTDS;放时值
MOVR0,#4AH;指向缓冲区首地址
MOVR2,#0FFH;左边第一位开始显示
MOVDPTR,#SEGPT;指向字形码表首
DIS1:
MOVA,#00H
MOV20H,DPL
MOV21H,DPH;熄灭码
MOVDPTR,#4001H;取显示缓冲区中的数
MOVA,#0FFH
MOVX@DPTR,A
MOVDPL,20H
MOVDPH,21H
MOVA,@R0
MOVCA,@A+DPTR;查表,找字形码
CPLA
MOVDPTR,#4002H
MOVX@DPTR,A;送出字形码
MOVA,R2;取字位码
MOVDPTR,#4001H;字位口地址
MOVX@DPTR,A
MOVDPL,20H
MOVDPH,21H;显示一位数
MOVR3,#00H
DIS2:
DJNZR3,DIS2;延时一段时间
INCR0;修改显示缓冲区指针
CLR;为移位作准备
MOVA,R2;取字位码
RLA;右移一位,为显示下一位作准备
MOVR2,A;存位码
JBACC.7,DIS1;不到最后一位,则继续
RET
PTOS:
MOVR1,A;暂存
ACALLDIS1;低4位先放入缓冲区
MOVA,R1;取了原数
SWAPA;高4位放入低4位中
RTDS1:
ANLA,#0FH;放进显示缓冲区
MOV@R0,A
DELR0;缓冲区地址指针减1
RET
SEGPT:
DB3FH,06H,5BH,4FH,66H,DB6DH,7DH,07H,7FH,6FH;时间表
DL:
MOVDPTR,#P0
MOVXA,@DPTR
INCA
MOVCA,@A+PC
TAB:
DB320H,352H,384H,3B6H,
DB3F2H,44CH,47EH,4B0H,
DB532H,58CH,596H,5F0H,
DB604H,65EH,668H,6C2H,
DB76CH,79EH,7B0H,802H
第4章设计总结
经过一学期的学习,使我对单片机有了初步的认识,了解了一些软件编程的技巧。
通过本次课程设计,使我学会了课堂上学不到的知识。
对单片机又有了更深的认识,掌握单片机设计步骤,知道这门课程在工作中的重要性。
在课程设计过程中也遇到了许多困难,但在老师和同学们的同共努力下都得到解决,最终看到了成果.我感谢老师这半年来对我们细心的教导,使我熟悉了一些软件方面的知识,相信定会为日后工作打下坚实基础.
课程设计加深了学生对所学课程理论的理解,扩展了教学中的实验内容和要求,积累了实践体验和经验,让我们提前感受到毕业设计的大致过程,进而能顺利进入毕业设计,提高毕业设计质量和学生实际应用能力。
由于只是水平的局限和时间的仓促,设计中可能会存在着一些不足,我真诚地接受老师和同学的批评和指正。
最后由衷地感谢老师的悉心指导和同学的热心帮助!
元器件清单
AT89C51
1片
DS1302
1片
74LS164
1片
数码显示管
6个
晶振12MHZ
1个
按键
3个
电阻
若干
电容
若干
三极管
若干
二极管
若干
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 自动 打铃 设计