




免费预览已结束,剩余40页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要摘要 电铃广泛运用于学校,机关及管理严格的企事业单位中,已成为各级学校、企事 业单位正常工作的指挥棒。 所以电铃在生活中占据着重要地位。电铃的控制已经从手 动发展到自动控制。 设计一个以 at89s52 单片机为核心的教室电铃控制装置,它结构简单容易实现。 该装置主要包括显示部分、 键盘输入部分和指示灯部分。 显示部分由六位数码管组成, 前两位显示小时,中间显示分钟,最后两位显示秒钟。该装置将实现时钟功能、校时 功能、定时打铃功能、手动与自动转换、关闭/开启定时点等功能。 本设计的软件编程采用 c 语言。软件由各个功能模块组成,主要包括定时器的初 始化,驱动芯片初始化,时钟的设定,闹铃时间的设定,定时器中断处理,按键判断, 响铃判断,定时点的开启与关闭等。 关键字关键字:自动控制;单片机;电铃 abstractabstractabstractabstract the bell to widely used in school, authority and strict management of enterprises and institutions, has become a schools at all levels, enterprise or business the unit normal work baton. so in the life the bell to occupy an important position. buzzers from manual control has to automatic control. design a at89s52 scm as the core to control the bell to the classroom device, it is simple in structure easy to implement. the device is mainly include display section, keyboard input part and indicator lights parts. display in part by the six digital tube composition, the first two hours, show that among minutes, the final two shows seconds. this device will realize the clock function, reset function, time function, the bell ring function, the manual and automatic conversion, closed/open time points, etc. function. the design of the software programming using c language. software from the various functional modules, this section includes the initialization of the timer, the drive chip initialization, the clock setting, alarm time set, the timer interrupt processing, key judgments, judging rings, timing point on and off and so on. keywordskeywordskeywordskeywords:automatic control; scm; bell i 目目 录录 1.绪论1 1.1 设计目的意义1 1.2 国内外研究现状.1 1.3 研究内容及方法1 2.方案选择3 2.1 基于单片机的电铃控制装置.3 2.2 基于 plc 的电铃控制装置的设计.3 3.硬件电路设计5 3.1 最小系统设计5 3.2 显示电路设计8 3.3 键盘模块电路设计11 3.4 报警模块电路设计12 3.5 总原理图13 3.6 元器件清单.13 4.软件设计14 4.1 软件主模块设计14 4.2 数码管显示驱动模块设计.17 4.3 校时功能模块设计.17 4.4 作息时间设置功能模块.19 4.5 自定义功能模块.20 4.6 手动/自动功能模块.21 5 系统调试.22 5.1 硬件系统的调试.22 5.2 软件系统的调试.24 6.结论26 谢 辞27 参考文献28 附录(一)29 附录(二)30 附录(三)40 909573362 毕业设计(论文) 1 1.1.绪论绪论 1.11.1 设计目的意义设计目的意义 电铃广泛运用于学校, 机关及管理严格的企事业单位中。 电铃已成为各级学校、 企事业单位正常工作的指挥棒,可提示人们正常的学习工作或休息,如不正常将会 造成学习工作秩序紊乱。传统的电铃控制系统有的采用电子电路进行自动控制,虽 然价格较低,但可靠性较差,响铃控制常常出错。 有的采用可编程序控制器进行自动 控制,其性能可靠,计时准确,使用方便。一般控制一只电铃或通过专线控制多个电 铃,但存在架线费用高,线路容易老化,线路维修困难等缺点。随着科学技术的不断 发展,电铃控制已从手动控制过渡到智能化、数字化控制。这些发展都要依赖于微 处理器的发展,单片机的发展使控制的智能化得以实现。 1.21.2 国内外研究现状国内外研究现状 随着智能控制的发展, 电铃从人工手动打铃变为自动控制的打铃装置, 在国内 外都随处可以看到电铃的使用。 现在电铃不但用于学校、 工厂等事业单位进行时间 的规律化安排, 还用到各种危险场所与各种监控装置一起构成了报警系统, 避免危 险事故的发生。 现在电铃控制装置多为plc、 dsp等智能控制器件所构成, 计时准确、 控制安全可靠并且使用方便。 然而基于单片机的电铃控制装置却不多, 应为单片机 的控制精度及抗干扰能力较差。但单片机的价格极低所以用单片机控制成本较低。 1.31.3 研究内容及方法研究内容及方法 本设计是以单片机为核心的控制装置,单片机通过i/o口与外围电路连接以实 现相应功能。 首先通过单片机的内部定时器和定时中断实现时钟功能。 再将时间信 号输出通过数码管显示,最后可通过按键校时、设置定时点等功能。 1)时钟显示 用六位数码管分别显示时、分、秒,软件编程实现时钟功能。显示形式为 00:00:00。 2)校时功能 电铃控制装置的设计与制作 2 本设计装置是通过准确定时实现打铃的, 所以需要时钟准确的计时, 因此必须 设置校时功能,校时功能的设置如下; 校时功能:按下校时键后,时钟停止计时并显示此时时刻,当按下移位键时可 以从第一位移动到要改变的位上,这时这位显示为“-“再恢复为原显示,这时可 以通过加一、减一键来改变该位的数据,来校正时间。校正完毕后按下确定键将保 存校时并返回到时钟显示。 3)作息时间设置 本设计是电铃控制系统,需要通过定时打铃,所以设置作息时间就是定时, 通 过与设置的时间比较在该时刻自动响铃。 设置功能: 设置键按下后将会跳转到设置功能显示状态, 该显示前两位为设置 作息时间点的编号,作息时间点共设定30个。中间两位显示为设置的小时位,最后 两位设置定时分钟位。 当按下移位键时可以从第一位移动到下一位上, 这时这位显 示为“-“再恢复为原显示,这时可以通过加一、减一键来改变该位的数据。作息 时间点设置完毕后,按下确定按键将会保存设置并返回到时钟显示状态。 4)作息时间关闭和开启 一周的工作日可能不是7天,所以可能需要关闭周末或其它几天的定时打铃功 能; 并且一天的作息时间点可能不会用到30个, 这时将会取消某几个点的定时设置 功能。 定时点的关闭/开启:首先按下自定义功能键,显示会自动跳转到自定义显示 状态,这时显示的第二位是当天的星期,可以通过加一、减一键来校正星期。在按 下取消键后, 显示会自动跳转到取消功能显示状态, 这是显示的第一位是取消某一 天的编号, 第二位是该编号对应的需要取消的那一天是星期几, 第四位是存放要关 闭的定时点数组编号,第五六位是显示需要关闭的定时点的编号。可以通过加一、 减一键来改变这些设置的数字。 最后可以通过确定键来保存数据并返回到时钟显示 状态。 5)手动自动切换 当在某些特殊情况下,如考试时可以切换到手动状态,由人控制打铃。 手动/自动切换功能:当按下该键后手动状态和自动状态相互切换。进入手动 状态时手动指示灯点亮,自动打铃状态关闭,这时按下打铃键开始响铃。当再按下 手动/自动键时退出手动状态,手动指示灯灭。此时手动状态关闭,自动状态开启。 909573362 毕业设计(论文) 3 2.2.方案选择方案选择 2.12.1 基于单片机的电铃控制装置基于单片机的电铃控制装置 复位、时钟电路 单片机 键盘 显示驱动 驱动电路蜂鸣器 六位数码管 图 2.1 基于单片机的方案设计框图 该方案是以单片机为核心设计的电铃控制装置, 时钟电路为单片机内部时序提供 时钟信号;键盘为该装置的输入设备,数码管为时钟的显示设备,蜂鸣器模拟电铃装 置。 该装置利用单片机的定时器及中断功能定时, 进行时钟功能设计, 准确定时打铃。 2.22.2 基于基于 plcplc 的电铃控制装置的设计的电铃控制装置的设计 plc led 数码管显示 电铃 开关按钮 自动/手动切换键 图 2.2 基于 plc 的方案设计框图 该方案用 plc 的定时功能实现控制打铃,并实现自动和手动的切换功能。基于 plc 的控制系统结构简单,编程容易实现,而且可以方便地修改程序。该装置计时准 确,使用方便,可靠性高,但 plc 的价格比较高,一般用于大型复杂的工业控制系统 中。 综上两种控制方案方案一基于单片机的控制虽然控制干扰较大但控制外围电路 电铃控制装置的设计与制作 4 及控制程序都较简单。方案二的控制精度较高,而且编程控制及外围电路都较简单, 但 plc 的价格较高而单片机的价格相对低很多。 而此处单片机的控制精度已经能够满 足控制要求,所以综上选择方案一基于单片机的控制。 909573362 毕业设计(论文) 5 3.3.硬件电路设计硬件电路设计 单片机电铃控制系统的总体设计分为硬件设计和软件设计两部分, 软件设计部分 在后面介绍。 现就单片机电铃控制系统的硬件设计进行阐述,主要内容包括单片机的 选择、显示电路、蜂鸣器指示电路、指示灯电路、系统复位电路和系统时钟电路。 3.13.1 最小系统设计最小系统设计 .1 at89s52at89s52 单片机介绍单片机介绍 图 3.1 单片机 at89s52 引脚图 at89s52 是一个与 mcs-51 兼容的、低功耗,高性能 cmos 8 位单片机,片内含 8k bytes isp(in-system programmable)的可反复擦写1000次的flash只读程序存储器。 at89s52 的引脚图见图 3.1 示。 at89s52 具有如下特点:40 个引脚,8k bytes flash 片内程序存储器,256bytes 的随机存取数据存储器(ram) ,32 个外部双向输入/输出(i/o)口,三个 16 位定时 器/计数器、八个中断源、全双工 uart 串行通道、低功耗空闲和掉电模式、掉电或中 断可唤醒、看门狗定时器、双数据指针、掉电标识符。 引脚功能如下: 电铃控制装置的设计与制作 6 p0 口:p0 口是一个 8 位漏极开路的双向 i/o 口。作为输出口,每位能驱动 8 个 ttl 逻辑电平。对 p0 端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据 存储器时,p0 口也被作为低 8 位地址/数据复用。在这种模式下,p0 具有内部上拉电 阻。 p1 口(3932 脚) :p1 口是一个具有内部上拉电阻的 8 位双向 i/o 口,p1 输 出缓冲器能驱动 4 个 ttl 逻辑电平。对 p1 端口写“1”时,内部上拉电阻把端口拉 高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的 原因,将输出电流(iil) 。在 flash 编程和校验时,p1 口接收低 8 位地址字节。 p2 口(18 脚) :p2 口是一个具有内部上拉电阻的 8 位双向 i/o 口,p2 输出 缓冲器能驱动 4 个 ttl 逻辑电平。对 p2 端口写“1”时,内部上拉电阻把端口拉高, 此时可以作为输入口使用。 作为输入使用时, 被外部拉低的引脚由于内部电阻的原因, 将输出电流(iil) 。 p3 口(2128 脚) :p3 口是一个具有内部上拉电阻的 8 位双向 i/o 口,p3 输 出缓冲器能驱动 4 个 ttl 逻辑电平。对 p3 端口写“1”时,内部上拉电阻把端口拉 高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的 原因,将输出电流(iil) 。p3 口亦作为 at89s52 特殊功能(第二功能)使用,如下 表所示。在 flash 编程和校验时,p3 口也接收一些控制信号。 引脚号第二功能: p3.0 rxd(串行输入) p3.1 txd(串行输出) p3.2 int0(外部中断 0) p3.3 int0(外部中断 0) p3.4 t0(定时器/计数器 0 计数脉冲输入端) p3.5 t1(定时器/计数器 1 计数脉冲输入端) p3.6 wr(外部数据存储器写选通输出端) p3.7 rd(外部数据存储器写选通输出端) rst: 复位输入。 晶振工作时,rst 脚持续 2 个机器周期高电平将使单片机复位。 ale/prog:地址锁存控制信号(ale)是访问外部程序存储器时,锁存低 8 位地 址的输出脉冲。在 flash 编程时,此引脚(prog)也用作编程输入脉冲。在一般情况 下,ale 以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。 然而,特别强调,在每次访问外部数据存储器时,ale 脉冲将会跳过。如果需要,通 909573362 毕业设计(论文) 7 过将地址为 8eh 的 sfr 的第 0 位置“1” ,ale 操作将无效。这一位置“1” ,ale 仅在 执行 movx 或 movc 指令时有效。 否则, ale 将被微弱拉高。 这个 ale 使能标志位 (地 址为 8eh 的 sfr 的第 0 位)的设置对微控制器处于外部执行模式下无效。 psen:外部程序存储器选通信号(psen)是外部程序存储器选通信号。 当 at89s52 从外部程序存储器执行外部代码时,psen 在每个机器周期被激活两次, 而在访问外部数据存储器时,psen 将不被激活。 ea/vpp:访问外部程序存储器控制信号。为使能从 0000h 到 ffffh 的外部程序存 储器读取指令,ea 必须接 gnd。为了执行内部程序指令,ea 应该接 vcc。 在 flash 编程期间,ea 也接收 12 伏 vpp 电压。 xtal1:振荡器反相放大器和内部时钟发生电路的输入端。 xtal2:振荡器反相放大器的输出端。 .2 最小系统电路设计最小系统电路设计 最小系统包括晶振电路、复位电路,是单片机的一个最基本系统。晶振电路的作 用是为系统提供基本的时钟信号; 复位电路产生复位信号,使单片机从固定的初始状 态开始工作,完成单片机的启机过程。最小系统电路如图 3.2 所示。 图 3.2 最小系统 电铃控制装置的设计与制作 8 本系统采用外部晶振电路,在单片机的 xtal1 与 xtal2 的引脚上并连一个 12mhz 的晶振,且在两脚与地之间分别加一个 30pf 的电容,这两个电容对振荡电路起到微 调和稳定的作用。由于晶振为 12mhz,这样就确定了单片机的周期分别是: 振荡周期=1/12us;机器周期=1us;指令周期=14us。 3.23.2 显示模块电路设计显示模块电路设计 .1 max7219max7219 介绍介绍 max7219 是一种集成化的串行输入/输出共阴极数码管显示驱动器,它连接处理 器与 8 位数字的 7 段数字 led 显示,也可以连接条线图显示器或者 64 个独立的 led。 其上包括一个片上的 b 型 bcd 码编码器、多路扫描回路、段字驱动器而且还有一个 8 8 的静态 ram 用来存储没一个数据。只有一个外部寄存器用来设置各个 led 的段电 流。max7219 与单片机只需要接三个 i/o 口,din 为串行数据输入接口,clk 为时钟 信号输入端口,load 为数据锁存输入端口。max7219 引脚图如图 3.3 所示。 图 3.3 max7219 引脚图 909573362 毕业设计(论文) 9 max7219 各个引脚的说明如下表所示。 表 3.1 引脚说明 管脚名称功能 1din 串行数据输入端口,在时钟上升沿是数据被载入内 部的 16 位寄存器 2,3,5-8,10, 11 dig0-dig7 八个数据驱动线路置低表示选中该数码管,为位选 信号 4,9gnd地线(4 和 9 必须同时接地) 12load 载入数据,连续数据的后 16 位在 load 的上升沿时 被锁定 13clk 时钟序列输入端。最大速率为 10mhz,在时钟的上升 沿,数据移入内部移位寄存器,下降沿时,数据从 dout 端输出。 14-17,20-23seg a-segg、dp 7 段和小数点驱动,为显示器提供电流。当一个段驱 动关闭时,7219 的此端呈低电平。数码管该段灭。 18set通过一个电阻连接到 vdd 来提高段电流。 19v+正极电压输入,+5v。 24dout 串行数据输出端口,从 din 输入的数据在 16.5 个时 钟周期后在此端有效。当使用多个 max7219 时方便 扩展 max7219 共有 5 个控制寄存器,功能如下: (1)译码控制寄存器(x9h) :max7219 有两种译码方式:b 译码方式和不译码方 式。本次设计由于使用单个数码管显示,所以采用不译码方式。 (2)扫描界限寄存器(xbh) :用来设定扫描显示器的个数,从 1 到 8 个。它们将 以 800hz 的扫描速率进行多路扫描显示。如果扫描位数不足 8 个则扫描速率为 8*fosc/n,n 是指扫描显示器的个数。扫描数据的个数影响显示的亮度,扫描位数越 少则显示亮度越亮,所以不能将扫描控制器设置为空扫描。 电铃控制装置的设计与制作 10 (3)亮度控制寄存器(xah) :max7219 通过加在 v+和 iset 之间的一个外部电阻 来控制显示亮度。其最小值为 9.53k,它设定段电流为 40ma。显示亮度也可以通过 亮度寄存器来控制。 (4) 关断模式寄存器 (xch) : 共有两种模式选择, 一是关断状态, (最低位 d0=0), 一是正常工作状态(d0=1) 。设计中选择正常模式。 (5)显示测试寄存器(xfh) :用于设置 led 是测试状态还是正常工作状态,当测 试状态时(最低位 d0=1)各位显示全亮,正常工作状态(d=0) 。 .2 max7219max7219 读写时序读写时序 max7219 是 spi 总线驱动方式。它不仅要向控制寄存器写入控制字,还需要读取 相应寄存器的数据。max7219 控制字的格式如下图 3.4 所示。 d15d14d13d12d11d10d9d8d7d6d5d4d3d2d1d0 addressdata 图 3.4 控制字格式图 如图,工作时 max7219 一次接收 16 位数据,在接收的 16 位数据中 d15d12 为 无效位,d11d8 为寄存器地址为,d7d0 为数据位。在时钟 clk 上升沿数据移入 16 位寄存器,然后在 load 上升沿被载入数据寄存器或控制寄存器。max7219 串行输 入时序图如图 3.5 所示。 图 3.5 max7219 串行输入时序图 .3 显示电路显示电路 显示电路由单片机、max7219、共阴极数码管组成。max7219 为共阴极数码管驱 动芯片。该显示电路如图 3.6 所示。 max7219 的串行输入端 din、片选信号端 load、时钟信号输入端 clk 分别与单 909573362 毕业设计(论文) 11 片机 p1.0、p1.1、p1.2 三个引脚相连;max7219 的段选端 seg aseg g 分别与数码 管的 ag 端口相连,位选端 dig 0dig 5 分别与数码管的公共端相连驱动六位共阴极 数码管。max7219 的 v+端与 iset 端接有一 10k 的电阻用于控制数码管的亮度,此处 也可以接一可调电阻用于调节数码管亮度。 图 3.6 显示电路 3.33.3 键盘模块电路设计键盘模块电路设计 该电铃控制装置的输入信号由按键控制,本次设计设置了 10 个按键,分别是设 置、校时、自定义、取消、开启/打铃、手动/自动、确定、移位、加一、减一等功能 键。 按键与单片机 i/o 口相接, 并接有上拉电阻, 上拉电阻限制单片机的灌电流大小, 电铃控制装置的设计与制作 12 并在按键弹起时拉高 i/o 口电平。按键电路如图 3.7 所示。 图 3.7 键盘模块电路 3.43.4 报警模块电路设计报警模块电路设计 蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电。由于蜂鸣器工作电 流较大,而单片机 i/o 口输出电流较小不能直接驱动所以一般采用三极管放大驱动。 该电路使用三极管为 8550,并且 i/o 口与三极管基极之间接一个 1k 的电阻用来限制 i/o 的输出电流。 图 3.8 报警模块电路 909573362 毕业设计(论文) 13 3.53.5 总原理图总原理图 系统硬件原理图见附录(一) 。 3.63.6 元器件清单元器件清单 根据电路图选定元器件,具体型号参数如下表 3.2 所示 表 3.2 元器件清单表 序号元件名型号单位数量 1单片机at89s52块1 2数码管驱动芯片max7219块1 3电阻 金属膜 10k只2 金属膜 5k只10 金属膜 1k只8 4电解电容10uf只1 5瓷片电容30pf只2 6pnp 三极管8550只1 7发光二极管只7 8共阴极数码管只6 9晶振12mhz只1 10蜂鸣器只1 11按键只11 12线路板块1 电铃控制装置的设计与制作 14 4.4.软件设计软件设计 4.14.1 软件主模块设计软件主模块设计 电铃控制装置的软件是以顺序执行方式编写。按照条件,顺序执行相应功能。 主 函数首先要将 cpu 初始化。 时钟功能是用单片机的定时器及中断实现,所以需要对单 片机的定时器初始化,及开中断,对定时中断进行设定。时钟数码管显示由 max7219 驱动所以还要调用驱动函数对 7219 进行初始化以及显示函数的调用实现时钟功能。 其次是对各个功能函数的调用,在不同功能条件输入下调用不同的功能函数, 并 实现相应功能。功能模块主要包括设置、校时、自定义、关闭/开启定时、自动/手动 切换、打铃等功能。 设计采用单片机的内部时钟寄存器, 并采用定时器的溢出中断来实现时钟的计时 功能。本设计采用定时器 t0 溢出中断方式,t0 初始值设置来确定计时的基数,再对 基数基数确定秒钟、分钟和小时。本设计采用定时方式 1。t0 为 16 为定时寄存器, th0 存放初始值的高 8 位,tl0 存放初始值的低 8 位,当 t0 的计数超过 65536 时 t0 溢出产生溢出中断信号,程序开始执行中断程序,中断中对 t0 继续初始化,并对基 数计数。 由于该装置采用 12mhz 晶振,一个机器周期为 tcy1us,所以定时范围为 1 65536us。 定时器的定时时间由下式确定: t=ntcy=(65536-x)tcy n 为定时器初值 tcy=12/fosc;fosc 即是晶振频率。若设定 x=10000 则初始值 n=55536,th0=(65536-10000)%256,tl0=(65536-10000)/256;中断一次计时 10ms 则 100 次中断为 1s。 本次设计使用一个定时器 t0,定时打铃点与实时时间比较用来实现定时打铃功 能。 本次设计将实现对电铃的控制, 主要功能模块包括时钟显示、 校时、 设置定时点、 开启、关闭定时点等功能。各个功能模块的配合实现该控制功能。 909573362 毕业设计(论文) 15 no no yes no no yes yes no yes no cpu 初始化 定时器t0初始化 max7219 初始化 时钟显示 校时键=0? yes 执行时钟校正程 自定义键=0? 自定义功能程序 禁止键=0? 禁止功能程序 启用键=0? 执行启用程序 响铃时间到? 执行响铃程序 yes 设置键=0? 图 4.1 总体设计框图 执行设置程序 电铃控制装置的设计与制作 16 本次设计中定时点设置 30 个存储在 302 的数组中,时、分、秒分别存储在设 置的变量中。打铃时间设置 5 秒钟,用变量 nm 控制,当为自动打铃状态时开时只要 nm 自加(nm 一秒加一次)到 5 时打铃停止。当为手动打铃状态时,nm 记下此时的 秒钟数值,在用实时的秒钟数值减 nm 当差为 5 时停止打铃,当秒钟大于 55 时需用 60-nm+秒钟数值=5 来判断。 本设计所用主要变量如表 4.1 所示。 表 4.1 变量说明 序号变量名变量说明 1key1-key10定义 p2.7-p2.1,p3.0,p3.1 引脚与按键连接 2beer定义引脚 p1.3 连接蜂鸣器 3led1定义引脚 p1.7 与指示灯连接 4led2定义引脚 p3.2 与指示灯连接 5ban定义引脚 p3.5 接禁止指示灯 6mual定义引脚 p3.4 接自动指示灯 7mmiao中断一次自加一,加 100 次清零 8miao秒 9fen分 10shi时 11dispbuf302存储定时点 12stop10存储关闭的定时点标号 13sweek3存储关闭的某一天的标号 14nm当打铃开始后 nm 自加到 5 次后打铃停止,控制打铃时间 909573362 毕业设计(论文) 17 4.2 数码管显示驱动模块设计数码管显示驱动模块设计 时钟是利用单片机内部的定时器实现,时间由六位数码管分别显示,数码管由 max7219 驱动。max7219 驱动程序流程如图 4.2 所示。 向掉电模式控制器(0ch) 写入 01h。选择正常模式 向译码模式寄存器(09h) 写 入 00h,选择不译码方式 向扫描控制寄存器(0bh) 写入 05h,选择扫描 6 位 向 亮 度 控 制 寄 存 器 写 入 09h,选择数码管亮度 向显示测试寄存器(0fh)写 入 00h,选择正常工作模式 数据载入端 load 置低 送位选信号到 max7219 送段选信号到 max7219 数据载入端 load 置高 图 4.2 max7219 初始化流程 4.34.3 校时功能模块设计校时功能模块设计 本设计控制装置要求时间较精确, 但由于单片机计时的累积误差需要有校时功能 电铃控制装置的设计与制作 18 在一定时间后, 手动将时间误差修正。在校时功能时关闭单片机的定时中断使计时停 止,通过加一、减一和移位键的配合使用来修正时间,修正完后开启定时中断返回计 状态。校时功能如图 4.3 所示。 yes no yes no yes no yes no 校时键=0 tr0=0,校时显示 加一键=0? 闪烁位数字加一显示 减一键=0? 闪烁位数字减一显示 移位键=0? 移位程序执行,移到的位闪烁 确定键=0? 开 始 返回 图 4.3 校时功能 909573362 毕业设计(论文) 19 4.44.4 作息时间设置功能模块作息时间设置功能模块 yes no yes yes no yes no yes no 设置键=0? 设置功能显示 加一键=0? 闪烁位加一,显示 减一键=0? 闪烁位减一,显示 移位键=0? 移位程序执行,移到的位 闪烁一下 确定键=0? 开始 返回 图 4.4 设置功能模块 设置功能是用来设置打铃定时点的,该功能通过加减一、移位按键来实现定时点 的输入。 电铃控制装置的设计与制作 20 4.54.5 自定义功能模块自定义功能模块 no yes yes no yes yes no yes no 自定义键=0? 自定义显示,校正星期 禁止键=0? 执行禁止功能程序 启用键=0? 执行启用功能程序 确定键=0? 禁止功能完成,返回自定 义显示状体 确定键=0? 开始 返回 图 4.5 自定义功能模块 自定义功能键按下后,显示为自定义状态,显示实时的星期,可以通过加一、 减 909573362 毕业设计(论文) 21 一键来校正星期。 如果再按下禁止功能键,则此时禁止指示灯亮并进入禁止功能显示 状态,此时可以通过移位、加一、减一键来输入需要关闭的定时点,及关闭一周内某 一天的打铃。如果按下启用键则这一定时点将被打开。 4.64.6 手动手动/ /自动功能模块自动功能模块 no yes yes 手动/自动键=0? flag=0flag=1 flag=1,进入手动打 铃状态,手动指示灯 亮 flag=0,进 入自 动打 铃状态,手动打铃指 示灯灭 打铃键=0? 响铃 开始 返回 图 4.6 自动/手动功能模块 电铃控制装置的设计与制作 22 5 5 系统调试系统调试 系统调试是检测各部分功能是否实现,及各部分是否由预期的效果及现象。如果 与预期效果不符就要通过调试将其错误修改或将误差减小。 系统调试分为硬件调试和 软件调试。 5.15.1 硬件系统的调试硬件系统的调试 硬件系统的调试主要是观察各个部分模块的原理电路是否正确。 在系统电路完全 正确的前提下再检查电路的接线是否有短路或断路的情况。 在以上都正确的情况下再 上电烧入测试程序后看各个部分模块是否按照预期效果运行, 如果运行正确则说明该 部分硬件正确。 如果没有预期的现象则表明硬件电路有一定问题需要修改。硬件调试 一般有断电调试和通电调试。 .1 断电调试断电调试 为了安全起见,首先必须进行断电调试,以免短路烧毁电路。断电调试的内容至 少应包含短路检测和原理正确性的判断。 1) 短路检测 系统电路焊接完成后, 或则是焊接过程中对已焊接的电路进行短路检测。检测方 法为用万用表二极管档,分别将万用表红、黑两只表笔放在两个结点上,若万用表发 出“吱”的声音,表示被检测两点间的电路为短路。如果该两点是需要接通的则表明 没有虚焊,如果此两点为需要断开的,则表明短路应该修改。 2) 原理正确性确认 关于这个问题, 各个功能模块电路有不同的工作原理,因此必须对具体的模块电 路进行分析。 对于响铃电路,首先检查 8550 的极性,不能将三极管的引脚接错,8550 的三个 引脚的确定方法是将三极管的平面正对自己,此时从左到右分别为发射极(e) 、基极 (b) 、集电极(c) 。如果接错 8550 将始终不能正向偏置而无法导通,蜂鸣器不能被 驱动因此不能在设置的作息时刻发声。 对于指示灯电路, 应考虑限流电阻的阻值, 阻值过小会使发光二极管因过流烧坏, 过大又会导致发光二极管发光效果不明显。发光二极管正向饱和电压为 1.6v-2.1v 正向工作电流为 5-10ma。 909573362 毕业设计(论文) 23 对于按键电路要检查按键接入电路的两个引脚是否在按下和弹起情况下分别对 应按键导通和断开状态,另外,按键电路需要接上拉电阻,上拉电阻的大小应该通过 与单片机对应接口的灌电流的最大 。 对于显示电路要检查数码管和驱动芯片引脚的连接是否对应。位选、片选线是否 连接正确。 对于单片机与外部电路的连接,首先检查最小系统是否连接正确,各个元件型号 是否正确。 单片机的特殊功能端口是否连接。通过各个 i/o 口的最大灌电流及拉电流 计算各 i/o 与外电路连接是需加的上拉电阻是否正确。 .2 通电调试通电调试 通电调试是在给系统加工作电压+5v 的情况下进行,主要是通过测试相关元器件 引脚数据进行分析,并通过烧入测试程序观察现象判断硬件。 1) 系统时钟是否起振 检测方法是用数字万用表的直流电压档(20v) ,分别测量单片机 18、19 引脚的 电压,其读数应在 2.5v 左右,并用示波器检测晶振一端与地之间的信号输出一般为 正弦波信号。见表 5.1 示,单片机 18、19 引脚的电压分别为 2.19v、2.07v,因此该 系统时钟能起振。 2)复位是否正常 复位不正常也会使系统无法正常工作,当复位键按下时系统复位,单片机 9 脚应 为高电平,当复位键弹起时,单片机 9 脚应为低电平。单片机 9 脚在复位键按下和弹 起的电压分别为 4.98v 和 0.00v,由此得系统复位功能正常。 3)关键点电压参数是否正常 vt1(9013)为 pnp 型三极管,pn 结导通电压为 0.66v。在蜂鸣器不工作时,测 得 e 极电压为 4.97v,b 极电压为 4.98v,c 极电压为 0.01v,此时三极管截止,与理 论相符。 在风鸣器工作时, 测得e极电压为4.97v, b极电压为4.23v, c极电压为4.94v, 此时三极管导通,与理论相符。 进行按键、按钮电路的通电检测时,可通过测量单片机与它们相连引脚的电压, 如果按键、按钮的弹起和按下状态下分别对应高、低电平,则所测电路连接正确。 4)显示模块是否正常显示 通过烧入测试程序观察显示是否正确,烧入程序显示“123456” ,如果正确显示 则该模块正确否者需要修改。 电铃控制装置的设计与制作 24 测试程序如下: #include “reg52.h“ #include #include void main() for(;) led_xianshi(1,2,3,4,5,6); 5)闹铃调试 将响铃控制引脚的电平置低如果蜂鸣器响则表明蜂鸣器正常。测试程序如下: #include “reg52.h“ #include sbit beer=p13; void main() beer=0; 5.25.2 软件系统的调试软件系统的调试 软件调试是在保证硬件电路正确的前提下通过 isis 7 professional 仿真调试, 或者直接将程序烧入单片机中调试。本次设计是先通过软件仿真调试,再将程序烧入 单片机进行硬件与软件的综合调试。 软件调试的分为显示调试, 闪烁调试, 闹铃调试, 按键调试和走时误差修整调试。 由于 isis 7 professional 仿真没有对时间的准确仿真所以对时钟的调试通过烧入单 片机程序调试。 ..1 显示调试显示调试 max7219 显示程序有两种译码方式,不译码方式、b 型 bcd 译码方式,所以显示 程序也有两种情况。测试时要求都显示 1、2、3、4、5、6。b 型译码方式显示简单, 所以首先写入 b 型译码方式程序, 但发现此时的显示会出现乱码。最后将程序改为不 译码方式显示正确。max7219 驱动由单个数码管组成的多位数码管显示时需用不译码 方式。调试程序见附录(三) 。 909573362 毕业设计(论文) 25 .2 时钟模块调试时钟模块调试 将时钟程序烧入单片机观察时钟是否计时并与计时准确的时钟进行比较看是否 有误差。通过观察比较该时钟程序正确。 .3 键盘输入模块调试键盘输入模块调试 分四组调试,分别将设置作息时间子程序,自定义子程序,校正时钟子程序和自 动/手动子程序烧入,观察按键后是否执行相应的结果。 按键程序需要消抖,此处通过软件消抖,在用软件消抖时可以通过延时程序, 或 者用等待按键释放程序进行消抖。但这些程序的使用都会使按键时显示会有闪烁。 此 时通过对显示的循环来延时可以消除该不足之处。 电铃控制装置的设计与制作 26 6.6.结论结论 本次设计以单片机为核心实现电铃的控制,设计中选用 max7219 芯片作为数码 管驱动使单片机接线简单并且大大节省了 i/o 口的使用。该设计实现了时钟的显示、 校时、作息时间点的设置关闭、开启、打铃和手动/自动的切换等功能。通过按键可 以实现以上操作,使该系统的操作方便。本设计使用 c 语言编程,程序简单易懂, 也 可以通过改变程序来调整定时点及部分功能。 本设计基本完成任务书要求,但还可以提高: 1)可以加入时钟芯片,通过时钟芯片可以方便的显示时间日期。 2)可以加入串口与计算机实现通信,通过计算机显示设置各个功能。 3)可以加入 eeprom 和自制电源,使断电时时钟继续计时。 909573362 毕业设计(论文) 27 谢谢 辞辞 参考文献参考文献 1 曹巧媛. 单片机原理及应用m . 北京:电子工业出版社,1997. 2 袁涛等.单片机的c语言应用程序设计及其应用 .北京:北京航空航天大学出 版,2001 . 3 沈红卫. 单片机应用系统设计实例与分析. 北京:北京航空航天大学出版 社,2003. 4 李华. 单片机实用接口技术. 北京:北京航空航天大学出版社, 1995. 5 谢宜仁. 单片机硬件接口电路及实例解析 . 北京:电子工业出版社,2009. 6 李建忠. 单片机原理及应用 . 西安:西安电子科技大学出版社, 2008. 7 王幸之,钟爱琴,王雷,王闪. at89 系列单片机原理与接口技术 . 北京:北京 航天航空大学出版社, 2004. 8 刘光斌,刘冬,姚志成. 单片机系统实用抗干扰技术 . 北京:人民邮电出版社, 电铃控制装置的设计与制作 28 2003. 9 求是科技. 单片机典型模块设计实例导航 . 北京:人民邮电出版社,2004. 10 陈涛. 单片机应用及 c 程序设计. 北京:机械工业出版社,2008. 附录(一)附录(一) 电铃控制装置总电路图: 909573362 毕业设计(论文) 29 附录(二)附录(二) #include “reg52.h“ #include 电铃控制装置的设计与制作 30 #include #include #define uchar unsigned char #define uint unsigned int uint mmiao=0; uchar s1=0,s2=0,f1=0,f2=0,m1=0,m2=0;/存储时、分、秒的十位个位 uchar flag=0,z=40; uchar shi=21; uchar fen=50; uchar miao=52; uchar dispbuf302=0;/定时点的存储数组 uchar flag1=0; void settime()/设置定时点函数 uchar i=1,j=0,k=0,time6=0,temp=0; time0=i/10; time1=i%10; time2=dispbuf00/10; time3=dispbuf00%10; time4=dispbuf01/10; time5=dispbuf01%10; for(;) if(key9=0) timej+; if(time03)time0=0; if(time19) if(time19 if(time22) time2=0; if(time39|(time2=2 if(time45) time4=0; if(time59) time5=0; if(j3)time0=0; if(time19) if(time19 if(time22) time2=0; if(time39|(time2=2 if(time45) time4=0; if(time59) time5=0; if(j5)j=0; temp=timej ; timej=10; while(z-) led_xianshi(time0,time1,time2,time3,time4,time5); z=40; timej=temp; led_xianshi(time0,time1,time2,time3,time4,time5); if(key7=0) cpu_delay(10); break; void main() uchar i=0,flag2=0,nm=0; tmod=0x01;/选择定时器及定时方式 th0=0xd8; tl0=0xf0; ea=1;/开全局中断 et0=1;/开定时器 t0 中断 tr0=1;/开定时器 t0 for(;) s1=shi/10; s2=shi%10; f1=fen/10; f2=fen%10; m1=miao/10; m2=miao%10; led_xianshi(s1,s2,f1,f2,m1,m2); if(led1=0)led1=led2=1; if(key1=0) cpu_delay(20); settime();/调用定时点设置函数 if(key3=0) cpu_delay(30); zdy();/调用自定义函数完成定时点的关闭开启等功能 909573362 毕业设计(论文) 33 if(key2=0)/校时键按下,开始执行校时功能 cpu_delay(30); for(;) tr0=0; if(key9=0)cpu_delay(10); if(i=0) s1+;if(s12) s1=0; if(i=1) s2+; if(s29|(s1=2 if(i=2)f1+;if(f15)f1=0; if(i=3)f2+;if(f29)f2=0; if(i=4)m1+;if(m15)m1=0; if(i=5)m2+;if(m29)m2=0; if(key10=0) cpu_delay(10); if(i=0)s1-;if(s12)s1=0; if(i=1)s2-;if(s29|(s1=2 if(i=2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 25年公司项目负责人安全培训考试试题B卷附答案
- 2024-2025工厂员工安全培训考试试题答案历年考题
- 2025年工业铝挤压材合作协议书
- 2025年医用X射线附属设备合作协议书
- 2025年美发师中级实操考核试卷:美发师美发沙龙客户服务试题
- 2025-2030中国数字双云服务行业市场发展趋势与前景展望战略研究报告
- 2025-2030中国抗感染药行业发展分析及投资风险预测研究报告
- 2025-2030中国安全监控设备行业市场现状供需分析及市场深度研究发展前景及规划可行性分析研究报告
- 2025-2030中国商用非IC卡气体智能仪表行业市场发展趋势与前景展望战略研究报告
- 2025-2030中国口服固体剂型(OSDF)和药物赋形剂行业市场发展趋势与前景展望战略研究报告
- 丁类厂房消防设计规范
- 英语PET考试固定搭配
- 立裁连衣裙方法
- 甘肃省兰州市成考专升本2023年英语真题及答案
- 人才培养模式与课程体系改革总结报告
- 《非暴力沟通》市公开课一等奖课件
- 07J902-3 医疗建筑(卫生间、淋浴间、洗池)
- 茶叶生物化学理论考试题库(100题)
- 推荐如果历史是一群喵读书分享会模板
- 急诊绿色通道管理考试及参考答案
- 全过程跟踪审计和结算审计服务方案技术标投标方案
评论
0/150
提交评论