1、基于51单片机的自动打铃机设计 单片机系统课 程 设 计课程设计名称: 自动打铃器设计 专 业 班 级 : XXXX 学 生 姓 名 : XXXX 学 号 : XXXXXXXX 指 导 教 师 : XXX 课程设计地点: XXXX 课程设计时间: XXXXXXXXXX 单片机系统 课程设计任务书学生姓名 专业班级自动化学号 题 目 自动打铃器设计课题性质工程设计 课题来源老师拟定指导老师 XXX 主要内容(参数)基于89c51单片机可以实现以下功能: 1、根据自己需要设计打铃时间,到定时时间自动打铃。2、8位LED动态显示,实现表24小时制计时和显示功能。3、能设置当前时间4、可以随时更改打铃
2、时间任务要求(进度)1、查阅有关资料,熟悉设计任务要求,确定设计方案,大概需要12天。2、按照确定的方案设计单元电路,画出单元电路图,元件及元件参数的选择有依据,大概需要12天的时间3、软件设计及编写程序,大概需要12天的时间。4、实验室调试,需要12天。5、撰写课程设计报告。要求内容完整、图表清晰、文理流畅、格式规范、方案合理设计正确。主要参考 资料1张迎新.单片机原理、应用及接口技术M.北京:国防工业出版社,20042李光飞.单片机课程设计实例M.北京:北京航天航空大学出版社,20043周润景,袁伟婷,景晓松.Proteus在MCS-51系统中的应用M.北京:电子工业出版社,2006 4
3、邓兴成单片机原理与实践指导北京:机械工业出版社,2010 5 阎石.数字电子技术基础.北京:高等教育出版社,2009 审查意见 系(教研室)主任签字: 年 月 日 目录 1概述5 1.1研究背景51.2设计思想及基本功能.52总体设计52.1模块设计52.2程序流程图5 3硬件单元设计6 3.1电路设计总原理图7 3.2各模块电路设计7 3.2.1键盘扫描模块7 3.2.2时钟与复位模块8 3.2.3显示模块8 3.2.4响铃模块9 4软件设计94.1键盘扫描程序9 4.2主程序10 4.3显示程序13 4.4响铃程序14 5 总结17 6参考文献177附录18 1 概述1.1研究背景现代社会
4、的发展越来越快,人们的时间观念也越来越强。所以有准确的时间提醒是很重要的,比如学校 工厂等都要有个准时的时间来提醒人们。所以打铃器运用很广泛。我们可以利用所学单片机知识制作一个自动打铃器可以实现学校到点打铃的工作。 1.2设计思想及基本功能利用51单片机设计以实现以下功能1 根据自己需要设计打铃时间,到定时时间自动打铃。2 8位LED动态显示,实现表24小时制计时和显示功能。3 能设置当前时间。4可以随时更改打铃时间。2 总体设计 2.1 模块设计 教学用电子打铃器主要由80C51单片机、键盘扫描模块、时钟和复位模块、打铃器模块、八段数码管显示模块等组成。运用汇编语言来控制单片机80C51来实
5、现、动态数码显示等功能。且本设计中的80C51单片机是整个工作过程的核心,是整个设计灵魂,它控制了脉冲时序的产生,显示信号的发送控制显示LED的选择。所用到的芯片元器件:80C51单片机, 3个按键,1个蜂鸣器,4个八段LED数码管80C51是一种带4K字节存储器(的低电压、高性能CMOS 8位微处理器,俗称单片机。 2.2程序流程图 、 第一个图是主程序流程图 第二的图是定时中断流程图3 硬件单元设计3.1电路设计总原理图3.2各模块设计3.2.1键盘扫描模块利用四个按键进行校时,按键K1是调整时间选择,按键K2进行小时加1,按键K3进行分钟加,按键K4则调整时间结束返回主程序, K1接P1
6、.1,K2接P1.2,K3接P1.3,K4接P1.4。3.2.2时钟和复位模块3.2.3显示模块根据设计要求系统需要4个共阳,数码管显示电路使用0的动态显示功能。4个八段(、),数码管分别显示: “时”、“分”,用二极管的“点”作为时、分的间隔。该系统采用共阳极数码管,对于共阳极数码管,其公共端必须接高电平。当打铃的时候四个数码管中前三个不显示数据,最后一个显示课程节数。3.2.4响铃模块 打铃电路(接P3.7):当前时间与程序设定时间相同时,P3.7端输出高电平的方波,即打铃。每次响铃时间是60S。4软件设计 中断服务程序通过定时器T0(工作方式为1),实现一日的24小时,首先得初始化,正常
7、工作,主函数调用数码管显示程序显示当前时间,然后调用打铃对比函数,若当前时间与系统设定打铃时间相同是,响应打铃程序。当需要对时间校正时,可以通过按键扫描处理程序进行校时。 /程序初始化/ ALB EQU 20H /打铃设置标志 BUF EQU 30H /30-33h连续四个字节存放显示器数据 HOUR EQU 34H /存放小时变量 MIN EQU 35H / 存放分钟变量 SEC EQU 36H /存放秒钟变量 DEDA EQU 37H / 存放5ms计数值 HH EQU 38H / 打铃设置小时变量 MM EQU 39H /打铃设置分钟变量 ;按键输入引脚 K1 EQU P1.1 K2 E
8、QU P1.2 K3 EQU P1.3 K4 EQU P1.4 ;蜂鸣器和指示灯引脚定义 SPK EQU P1.5 WLED EQU P1.0 /工作指示灯引脚定义 ORG 00H lJMP MAIN ORG 0BH lJMP T0_SRV/主程序入口/ MAIN: CLR ALB /清除闹铃标志 MOV A,#80H /加载显示器初始值数据 MOV P0,A ACALL BZ ;ACALL BZ ACALL LED_BL ACALL DELAY1 ;定时器T0的初始化 ACALL INITLOOP: ACALL CONV ACALL DISPLOOP2: ACALL CONV ACALL L
9、D1 /查询打铃时间MOV A,MIN CJNE A,#10,AGN JMP LOOP2 AGN: CJNE A,#55,LOOP3 JMP LOOP2 LOOP3: JB K1,M1JNB K1,$ ACALL SETTIMEM1: JMP LOOP jmp loop ACALL DISP LD1:MOV A,HOURCLR CSUBB A,#8MOV DPTR,#TALEMOVC A,A+DPTRCJNE A,HOUR,LLMOV A,MINCJNE A,#10,LACALL BZMOV A,HOURCLR CSUBB A,#8MOV DPTR,#TABLE2MOVC A,A+DPTRMO
10、V P0,AACALL DELAY L: CJNE A,#55,LLACALL BZ MOV A,HOUR CLR C SUBB A,#8 MOV DPTR,#TABLE2MOVC A,A+DPTR MOV P0,AACALL DELAYLL: RETTALE:DB 08H,09H,0AH,0BHTABLE2:DB 0F9H,0A4H,0B0H,99H;中断服务程序 T0_SRV: /定时器T0计时中断程序每隔5ms中断一次 PUSH ACC MOV TL0,#LOW(65536-5000) /直接带公式法设置T0的初值,此方法为简便方法 MOV TH0,#HIGH(65536-5000) /
11、MOV TL0,#(8192-5000)MOD 32 /重加载初始值 /MOV TH0,#(8192-50000)/32 INC DEDA ;秒输出 MOV A,DEDA CJNE A,#200,TT1 MOV DEDA,#0 CPL WLED /LED灯亮灭变换 INC SEC MOV A,SEC CJNE A,#60,TT1 /是否1分钟到了 ;分输出 INC MIN /分计数加一 MOV SEC,#0 /秒计数清零 MOV A,MIN CJNE A,#60,TT1 /看是否一小时到了 ;时输出 INC HOUR MOV MIN,#0 MOV A,HOUR CJNE A,#24,TT1 M
12、OV SEC,#0 MOV MIN,#0 MOV HOUR,#0 TT1: POP ACCRETI/实现显示功能的子程序/CONV:;转换小时数据 /通过DIV指令进行十进制计时处理,并将中断程序处理后的数据分别存放入数码管显示内存中 /其中BUF,BUF+1存放小时;BUF+2,BUF+3存放分钟 、 MOV A,HOURMOV B,#10DIV AB /将HOUR内的值转换为十位和个位分别表示的十进制数字,便于用两位数码管显示出来小时值MOV DPTR,#TABLE /DPTR指针指向表的首地址MOVC A,A+DPTRMOV BUF,AMOV A,BMOVC A,A+DPTRMOV BU
13、F+1,AMOV A,MIN /开始转换分钟MOV B,#10DIV ABMOV DPTR,#TABLEMOVC A,A+DPTRMOV BUF+2,AMOV A,BMOVC A,A+DPTRMOV BUF+3,A RET /扫描显示子程序/实际四个数码管是在轮流显示的,每一刻都只有一个数码管亮,利用人的视觉暂留来使人感觉是在同时显示DISP:MOV R0,#BUF /指向显示器缓冲区起始地址,即存入十位上小时地址MOV R2,#4 /扫描四次MOV A,#00001000B /扫描初值,只是使p2.3口打开S1:MOV P2,AMOV A,R0MOV P0,AMOV A,P2MOV R5,#
14、2ACALL DELAY /延时,以便显示字符稳定;EX:XXXX1011 RR A /A向右移动一位 INC R0 /指向BUF+1 DJNZ R2,S1 /判断是否执行了四次扫描 RET/设置打铃时间子程序/SET_ATIME: ACALL CONVA NO: ACALL DISP ;K2调整小时 JB K2,N1 JNB K2,$ INC HH MOV A,HH CJNE A,#24,N11 MOV HH,#0 N11: ACALL CONVA ACALL DISP JMP NO ;K3调整分钟时间 N1:JB K3,N2 JNB K3,$ INC MM MOV A,MM CJNE A,
15、#60,N21 MOV MM,#0 N21:ACALL CONVA /加载打铃时间数据 ACALL DISP JMP NO;K4设置完成N2:JB K1,NO JNB K1,$ ;设置完成 ACALL LED_BL ACALL CONV /加载现在时间数据CPL ALB /此处为判断是否启用闹铃JNB ALB,M31ACALL BZACALL BZACALL BZ /连鸣三声为启用闹铃JMP LOOPM31:ACALL BZ /闹铃停止,发出一声JMP LOOP RET /执行闹铃时间处理子程序/ TIME_OUT: X1:ACALL LED_BL ACALL BZ JB K4,X1 JNB
16、K4,$ ACALL LED_BL CLR ALB /清除闹铃位 RET/检查打铃时间子程序/TIME_PRO: JB ALB,TI3 RETTI3:MOV A,HOURMOV B,HHCJNE A,B,BK MOV A,MINMOV B,MMCJNE A,B,BKACALL TIME_OUT /执行检查时间处理BK:RETTAL: DB 0C6H,80H,90H,88H,83H TAL1: DB 0F9HEND5 总结刚拿到设计题目时,由于对设计相关知识的不熟悉,使得对此题目的无从入手,感觉挺难。最后,在资料与同学的帮助下,对设计有了大概的了解,并在组员的合作下有了初步设计。在接下来的两天里
17、,不停的对设计进行修改完善,得出最终方案,并开始着手硬件与软件的同步设计。伴随实物初成,对相关功能进行测试,再次修改设计软硬件,完善功能。通过这次的课程设计,巩固了课本知识,加深了对单片机的了解。最后,感谢同学的配合,感谢老师悉心的指导帮助!6 参考文献1张迎新.单片机原理、应用及接口技术M.北京:国防工业出版社,20042李光飞.单片机课程设计实例M.北京:北京航天航空大学出版社,20043周润景,袁伟婷,景晓松.Proteus在MCS-51系统中的应用M.北京:电子工业出版社,2006 4 邓兴成单片机原理与实践指导北京:机械工业出版社,2010 5 阎石.数字电子技术基础.北京:高等教育出版社,20097 附录 系统原理图
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1