文档详情

课程设计基于单片机的教学用电子打铃器电路设计.doc

发布:2017-08-22约7.62千字共20页下载文档
文本预览下载声明
目 录 1、课程设计目的 2 2、总体设计 2 2.1 模块设计 2 2.2 程序流程图 2 3、硬件单元设计 4 3.1电路设计总原理图 4 3.2各模块电路设计 4 3.2.1 键盘扫描模块 4 3.2.2 时钟和复位模块 4 3.2.3 显示模块 5 3.2.4 响铃模块 6 4、软件设计 7 4.1 键盘扫描程序 8 4.2 数码管显示程序 10 4.3 主程序 11 4.4 响铃程序 12 5、课程设计总结 15 6、参考文献 16 2.总体设计 2.1 模块设计 教学用电子打铃器主要由AT89S51单片机、键盘扫描模块、时钟和复位模块、打铃器模块、八段数码管显示模块等组成。运用汇编语言来控制单片机80C51来实现、动态数码显示等功能。且本设计中的80C51单片机是整个工作过程的核心,是整个设计灵魂,它控制了脉冲时序的产生,显示信号的发送控制显示LED的选择。 所用到的芯片元器件:80C51单片机, 3个按键,1个蜂鸣器,4个八段LED数码管 80C51是一种带4K字节(的低电压、高性能CMOS 8位微处理器,俗称。 图2.2(1) 主程序流 图2.2(1) 主程序程序流程图 图2.2(2) 定时中断程序流程图 3.硬件单元设计 3.1 电路设计总原理图 图3.1 总体原理图 3.2 各模块电路设计 3.2.1 键盘扫描模块 利用四个按键进行校时,按键K1是调整时间选择,按键K2进行小时加1,按键K3进行分钟加1,按键K4则调整时间结束返回主程序, K1接P1.1,K2接P1.2,K3接P1.3,K4接P1.4。 3.2.2 时钟和复位模块 图3.2.2 时钟和复位模块 3.2.3显示模块及芯片说明 根据设计要求系统需要4个共阳LED,数码管显示电路使用80C51的动态显示功能。4个LED八段(a、b、c、d、e、f、g、dp),数码管分别显示: “时”、“分”,用二极管的“点”作为时、分的间隔。该系统采用共阳极数码管,对于共阳极数码管,其公共端必须接高电平。当打铃的时候四个数码管中前三个不显示数据,最后一个显示课程节数。 图3.2.3 显示模块 3.2.4 响铃模块 打铃电路(接P3.7):当前时间与程序设定时间相同时,P3.7端输出高电平的方波,即打铃。每次响铃时间是60S。 图3.2.4 响铃模块 4.软件设计 中断服务程序通过定时器T0(工作方式为1),实现一日的24小时,首先得初始化,正常工作,主函数调用数码管显示程序显示当前时间,然后调用打铃对比函数,若当前时间与系统设定打铃时间相同是,响应打铃程序。当需要对时间校正时,可以通过按键扫描处理程序进行校时。 //////////程序初始化////////// 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 EQU 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 INIT LOOP: ACALL CONV ACALL DISP LOOP2: ACALL CONV ACALL LD1 //查询打铃时间 MOV A,MIN CJNE A,#10,AGN JMP LOOP2 AGN: CJNE A,#55,LOOP3 JMP LOOP2 LOOP3: JB K1,M
显示全部
相似文档