基于单片机的时钟设计_毕业论文(编辑修改稿)内容摘要:
2 键切换到分钟位,按 K1 键进行分钟调整,分位设置好后,再按 K2 键保存时间设定值,并返回显示时间,按所设定的时间值进行计时。 ( 3)连续按 K3 键显示 3路定时及其开关状态,当显示某一路定时时, 3 秒后自动返回时间显示, 3 秒内按 K2 键进入定时设置,设置同日期( 6位显示00 为当路定时关,显示 01为当路定时开)。 当路定时设置完后按 K2 键保存定时设定值并返回时间显示。 ( 4)按 K4 键显示实时温度和湿度, 5 秒后自动返回时间显示。 4 系统硬件设计 芯片的选择 本设计选用 AT89S52 芯片,它是一种低功耗、高性能 CMOS 8 位微控制器,具有 8K( 0000H~ 1FFFH)在线系统可编程 Flash 存储器。 片上 Flash 允许程序存储器在线编程,也适于常规编程器。 在单芯片上,拥有灵巧的 8 位 CPU 和在线系统可编程 Flash,使得 AT89S52 为众多嵌入式控制应用系统提供灵活、高效的解决方案。 AT89S52 具有以下标准功能: 8K( 0000H~ 1FFFH) Flash, 256 字节( 00H~FFH)数据存储器( RAM), 64K( 0000H~ FFFFH)程序存储器( ROM), 32 位 I/O口线,看门狗 定时器, 2 个数据指针,三个 16 位定时器 /计数器,一个 6 向量 2级中断结构,全双工串行口内晶振及时钟电路。 其中,数据存储器( RAM)用于存放各种运算的中间结果,作缓存和数据暂存,以及设置特征标志等。 AT89S52 的片内数据存储器用位寻址方式,最大寻址范围为 256 字节( 00H~ FFH)。 按使用情况不同可分成低 128 字节( 00H~ 7FH)和高 128 字节( 80H~ FFH)。 其中低 128 字节为真正的 RAM 存储器,高 128 字节为特殊功能寄存器( SFR)区,如累加器 ACC、程序状态字 PSW、数据指针 DPTR、程序计数器 PC等。 整个片内 RAM 区分布如图 41所示。 7 图 41 片内 RAM 区 实验板电路原理图 实验板电路结构框图如图 42所示,原理电路图如图 43 所示。 图 42 实验板结构框图 图 43 实验板原理图 8 功能电路分析 时钟电路 实验板的时钟振荡源电路如图 44 所示。 其中 JT 为 的晶振,改变两电容 CB 的值即可对此晶振频率进行调节。 该电路提供单片机工作所需的振荡频率,计算定时器初值即需此晶振频率,在通信时也需知道晶振频率,以对波特率进行计算。 图 44 时钟电路 复位电路 如图 45 所示为实验板的复位电路,当 RESET 信号为低电平时,实验板为工作状态,当 RESET 信号为高电平时,实验板为复位或下载程序状态。 由于AT89S52 具有 ISP 的功能,即可以通过并口线直接将程序下载到单片机内,因此, AT89S52 具有两种状态,下载程序状态和运行状态。 该复位电路能实现上电自动复位,也能手动复位,一般复位时 RESET 应保持 20毫秒以上高电平,此复位时间由接地电容控制。 图 45 复位电路 键盘电路 如图 46所示为阵列按键电路, 各设置及转换信号由此电路输入,实验板提供了 16 个按键,由 P1口经 SN74F244(驱动芯片)输出扩展成 4 4的阵列按键,~ 为行线, ~ 为列线。 SN74F244 有一片选信号线 G ,当此口线为低电平时, A1~ A4 与 Y1~ Y4接通,反之, A1~ A4 与 Y1~ Y4 断开。 此键盘用扫描工作方式,若有键按下,则相应位端口被拉低为低电平,由于本系统只用了 4 个按键,所以只需对 4 个按键进行扫描。 扫描时,先置 口为高电平,向 P1 口送 0EFH( MOV P1, 0EFH),再置 口为低电平,读 P1口( MOV A, P1),最后判断 P1 口低 4 位哪位是低电平,若某位为低电平,则相应按键被按下,如 为低电平( =0),则 K1键被按下。 9 图 46 阵列按键 数码显示电路 如图 47 所示为数码显示电路,实验板使用了 6 个共阳数码管, P0 口为段码信号线, B1~ B6为位控线,是 P1 口经 SN74F573(反向驱动芯片,即输入为高电平,则输出为低电平,反之则输出为高电平,该芯片也有一片选信号 C,当此信号为高电平时有效)反向得到,再 由 B1~ B6 控制晶体管 Q1~ Q6,以达到控制每位数码管的目的。 系统采用动态显示,先向 P0 口送第一位数码管需要显示的段码值,再给 P1口送 0FEH,延时 1毫秒使第一位数码管显示,又向 P0 口送第二位数码管需要显示的段码值, P1 口送 0FDH,延时 1 毫秒,使第二位数码管显示。 依次递推,直到最后一位数码管,然后再循环。 改变延时时长可以调节数码管显示的亮度,由于单片机执行速度很快(微秒级),所以看上去数码管一直亮着。 图 47 数码显示电路 蜂鸣器电路 其硬件原理图如图 48所示。 此电路用于定时时发出 提示音。 SPEAKER与 口相连,当 SPEAKER 输出高电平时蜂鸣器不响,而 SPEAKER 输出低电平时蜂鸣器发出响声。 只需控制 SPEAKER 输出高低电平的时间和变化频率,就可以让蜂鸣器发出不同的声音。 此电路用于产生定时器提示音。 图 48 蜂鸣器电路 10 5 系统软件设计 系统的软件设计也是工具系统功能的设计。 单片机软件的设计主要包括执行软件(完成各种实质性功能)的设计和监控软件的设计。 单片机的软件设计通常要考虑以下几个方面的问题: ( 1)根据软件功能要求,将系统软件划分为若干个相对独立的部分,设 计出合理的总体结构,使软件开发清晰、简洁和流程合理; ( 2)培养良好的编程风格,如考虑结构化程序设计、实行模块化、子程序化。 既便于调试、链接,又便于移植和修改; ( 3)建立正确的数学模型,通过仿真提高系统的性能,并选取合适的参数; ( 4)绘制程序流程图; ( 5)合理分配系统资源 ; ( 6)为程序加入注释,提高可读性,实施软件工程; ( 7)注意软件的抗干扰设计,提高系统的可靠性。 数据单元分配 数据存储单元分配 数据存储单元分配如下表所示: 项目 秒 分 时 日 月 年 存储单元 30H 31H 32H 33H 34H 35H 项目 定时1:开关 定时 1:分 定时 1:时 定时2:开关 定时 2:分 定时 2:时 存储单元 36H 37H 38H 39H 3AH 3BH 项目 定时3:开关 定时 3:分 定时 3:时 存显示首地址 堆栈起始单元 存储单元 3CH 3DH 3EH 3FH 50H 标志位单元分配 标志位单元( 20H)分配如下表所示: 位单元 项目 位单元 项目 01H 2 位数码管闪烁标志位 08H 定时 1 显示标志位 02H 09H 定时 2 显示标志位 03H 4 位数码管闪烁标志位 0AH 定时 3 显示标志位 04H 0BH 定时 1 响铃标志位 05H 6 位数码管显示标志位 0CH 定时 2 响铃标志位 06H 0DH 定时 3 响铃标志位 07H 日期显示标志位 0EH 总响铃标志位 计时时钟实现的基本方法 时钟的最小计时单位是秒,使用定时器的方式 1,最大的定时时间也只能达 11 到 131 毫秒。 可把定时器的定时时间定为 50 毫秒,这样,计数溢出 20 次即可得到时钟的最小计时单位─秒。 计数 20 次可以用软件实现,对定时器溢出次数进行计数,计满 20 次 即为 1秒。 从秒到分,从分到时,以及日、月、年都是通过软件累加并进行比较的方法实现的。 实现时钟程序设计步骤 系统采用模块化结构,主程序只需调用各个子程序模块即可实现相应功能。 其模块结构图如图 51所示。 图 51 程序各模块方框图 主程序模块设计 整个程序进行模块化设计,主程序只需调用相应的程序即可。 主程序流程如图 52所示。 图 52 主程序流程图 计时子程序模块的实现 当 T0 中断时,执行本程序,因 T0 设为 50 毫秒中断,故中断 20次为 1秒。 中断程序分别有 20 次计数( 1秒), 60 次计数( 1 分), 60 次计数( 1 小时), 24次计数( 1 天), 2 2 31 次计数( 1 个月), 12 次计数( 1 年)。 当前位到设定数值时写 0 或 1,下一位加 1。 由于本世纪是 21 世纪,年位前两位是 4的倍数,故判断闰年时只需对年的后两位进行计算,能被 4 整除为闰年,否则为平年,年位只进行加 1,大于 99 时又重新开始。 计时中断流程图如图 53 所示。 12 图 53 计时子程序流程图 图 54 显示子程序流程图 显示子程序模块的实现 显示原理在前面已给予了说明,流程图如图 54所示。 时钟设定子程序模块的实现 当设定时间时,断开 T0 中断,秒单元清 0,进入时、分单元设定。 设定好后重装 T0 初值,开 T0中断。 流程图如图 55所示。 图 55 时钟设定子程流程图 日期、定时设定子程序模块的实现 日期、定时的设定同时钟设定。 定时设定时,把时钟的秒位换成定时标志位,“ 00”为当路定时关,“ 01”为当路定时开 ,流程图与时钟设定程序相似。 程序说明 定时器初值计算 因定时器工作于方式 1,需要 50ms 的中断,所以计数初值 : 13 χ =216 t fosc/ 12=65536 50 103 106/ 12=19456 表示成十六进制为χ =4C00H,故( TH0) =4CH,( TL0) =00H。 程序初始化 程序初始化时,清相应内存单元( 20H~ 4FH 共 48 个单元),送时间( 00 时00 分 00 秒)、日期( 07 年 10 月 01 日)初值,送定时器 T0、 T1 初值, TH0= TH1=4CH,TL0= TL1=00H,特殊寄存器( SP=50H、 TMOD=11H)值等。 误差分析及校正 当 T0 中断时,需重装定时初值,且要加上从断开 T0中断到允许 T0中断共有 13 个周期,以减小误差,故理论重装定时初值为( TH0) =4CH,( TL0) =13H。 但该外接晶振电路的晶振频率可调,可能出现误差,所以实际不是这个值。 经调试,当定时初值为( TH0) =4CH,( TL0) =06H 时, 24小时约慢 2秒,所以每当计时 24 小时之后,给秒单元( 30H)送 02H,使秒累加时从 2 加起, 24小时就少加 2秒,即可使 时间得到校正。 实现闪动设定 闪动可选用段码送 00H 实现,也可禁止当前位显示,选通位送 0实现。 本设计选用后者实现闪动,用定时器 T1 进行控制。 实现连续加 1 先判断键是否松开,若松开,则只执行一次加 1程序段,进行单次加 1;若未松开则连续执行加 1程序段,实现连续加 1。 每执行一次加 1程序段就调用显示子程序进行延时,以对调节速度进行控制。 本系统以 5Hz 的速度连续加 1,这样能快速对时间、日期、定时进行设定。 定时音与显示相冲突问题及解决方案 由于蜂鸣器响时 口的电平呈高频变化 ,频率 1K~ 2K,其间隙时间为~ 1毫秒,小于 6 毫秒,因显示时每个数码管显示 1毫秒,至少需要 6 毫秒,故蜂鸣器响时无法进行显示。 为解决此问题,可增加锁存器,采用静态显示;也可增加一语音芯片,既可解决此问题,也可把定时音换成音乐或语音提示,或增加其它功能,使系统功能更强。 6 设计程序 ORG 0000H LJMP START ORG 000BH LJMP INTT0。基于单片机的时钟设计_毕业论文(编辑修改稿)
相关推荐
MOV 38H,01H MOV 39H,00H MOV 50H,00H。 按键次数 MOV TMOD,01H。 16 位计数器 MOV TH0, 03CH。 赋初值 MOV TL0, 0B0H MOV IE, 87H。 中断允许 SETB TR0。 启动 T0 MOV R2,14H MOV P2,0FFH。 *********主程序 ********** MAIN: JB ,GB LCALL
采用 的是8 位 共阴数码管, 因此 要 点亮 数码管,就必须 先将 位选选通, 接下来就给段选输入数据,最后便可以显示相应的字符。 其电路 接线图 如图 7所示。 实物连线时 , 由 STC89C52 的 P0口送入初值, 即是送入段码值 ,P3 口 送入位码值。 图 数码管显示电路 有关 8位共阴数码管 的位 码和段码 , 分别 见 表 2和表 3. 上海海事大学本科生毕业设计(论文) 8
先进系统的基础上,融合了大量交警实际控制经验,以开放性为前提,增加了符合国情的特殊功能。 但还不成熟,控制效果也不是非常好,没有得到广泛应用。 因此,结合我国国民经济,建立一个相对廉价、获取信息多且准确、工作可靠、具有智能交通控制系统势在必行。 我国交通灯现状 随着城市机动车增长速度的加快, 1994年我国城市机动车保有量已接近 500万辆。 20世纪 90年代以来,经济的发展加快,从
WOMAN 沸腾女人心在 12个市场中举办了 198场小组座谈会 访问时间超过 500小时,收集共1200篇生活日记 主要访问对象为“未独立子女”的母亲22 个亚洲城市庞大的对象: 6 本 台湾 南韩马来西亚泰国印度尼西亚中国菲律宾斯里兰卡印度人口规模,妇女 20位:万)of 1998贫富不均28, 78025, 50023, 84016, 61013, 99011, 7006, 9403,
安联大众保险度代理人颁奖典礼创意简报 夺 放 安联大众保险2005年度代理人和颁奖典礼广州市声色第栅次将服务有限公司2005年12月SINGSHINE20 22016/11/20 Singshine Group SINGS| SS 来自客户的信息 2四超寺全丰。 背景目的:二安联大众保险公司广东分公司成立一周年,举行周年庆典村在过去的一年里,通过全体员工的努力,公司取得了骄人的成绩。
写入,信息显示的控制芯片, MCU1和 MCU2 之间进行串口通信,传输呼叫信息。 使用拾音器为主体搭建语音采集电路,日本新泻精工专业 NS73 作为 FM 发射芯片搭建语音发送平台, RDA5807为主体接收语音信息, 通过耳机或音响播放语音。 以 NRF24L01+为主体搭建无线收发模块, AT24C02 为主体搭建信息存储模块, DS1302 为主体搭建实时时间模块, LCD12864