单片机自动打铃系统设计毕业论文(编辑修改稿)内容摘要:
SOIC 150mil 图三 DS1302 单元电路的设计 时钟电路 设计 ( 2) 工作原理 DS1302 在任何数据传送时必须先初始化,把 RST 引脚置为高电平,然 后把 8位地址和命令装入移位寄存器,数据在 SCLK 的上升沿被输入,无论是读周期还是写周期开始 8 位指定 40 个寄存器中哪个将被访问到,在开始 8 个时钟周期,把命令字节装入揿位寄存器之后,另外的时钟周期在闱时操作时输出数据,在写操作时写入数据,时钟脉冲的个数在单位字节下为 8 加 8,在多字节方式下为 8 加字节数,最大可达 248 字节数。 为了提高对 32 个地址的寻址能力,可以把时钟或 RAM 寄存器规定为多字节方自动打铃系统设计 11 式,在多字节方式中,读或写从地址 0 的位 0 开始,必须管按数据传送的次序电先的 8 个寄存器。 但是当以多个字节写 RAM 时,为了传 送数据不必写所有 31 字节,不管是否写了全部 31 字节,所写的每个字节都将传送至 RAM。 时钟暂停:秒寄存器的位 7 定义位时钟暂停位,当它为 1 时, DS1302 停止振荡,进入低功耗的备份方式,通常在对 DS1302 进行写操作时,停止振荡,当它为 0 时时钟将开始启动。 8051 通过串口向 DS1302 写数据的程序框图如图 ,其中 ,Px 可以是 8051 单片机的任何一位 I/O 口 ,注意因为 DS1302 的数据发送或接收时序和 8051 的串行口不完全一致 ,因此 ,需要在 TXD 的输出端加反相器 ,另外 ,接收数据时 ,不能以串行口的接收方式接 收 ,必须将串行口当作普通 I/O 口进行数据接收 . DS1302 的晶振选用 ,电容推荐值为 6PF,因为振荡频率较低,也可以不接电容, 对计时精度影响不大。 图 DS1302 写数据的程序框图 显示电路设计 显示部分采用普通的共阳数码管显示,采用动态扫描,以减少硬件电路,数码管分别为十时,时,十分,分,十秒,秒显示,显示时采用串行口输出段码,用 74LS164 来驱动数码管扫描只需 7ms。 4LS164 内部位 8 个 D 触发器,用以实现数据的串行移位, 74LS164 位 TTL 单向 8 位移位寄存器,可实现串行输入并行输出, CPU 位时钟输入端,可接到串行口TXD 端。 每个时钟信号的上升沿加到 CP 端时,移位寄存器移一位, 8 个时钟脉冲过后, 8 为二进制数个部移入 74LS164 中, MR 为复位端,当该位为低电平时,移位寄存器各位复 O。 当它为高电平时时钟脉冲才起作用。 8051 PX TXD RXD Vcc1 Vcc2 DS1302 RST SCLK I/O X2 江苏信息职业技术学院毕业设计(论文) 12 图 四 显示电路 键盘接口电路设计 由于键盘只有四个,采用独立式按钮,分别与 8051 的 , , 相连 ,用普通按钮 10K 上拉电阻,用查询法完成读健功能。 图 五 按键电路 响铃电路设计 响铃电路用到了蜂鸣器、三极管、 1K 电阻。 蜂鸣器两端分别接地和三极管。 三极管一段电源另一端与电阻相连并接入 AT89C51 的 接口。 自动打铃系统设计 13 图 六 响铃电路 总体运行进程 首先实现 24 小时制电子钟,在 8 位数码 管显示,显示为时分秒,实现的格式为:235959。 到达预定时间启动蜂鸣器开始打铃,打铃的方式分为起床、熄灯和上下课铃两种。 系统使用了 4 个按键, 3 只按键用来调整时间,另一只为强制打铃按钮。 通过选择键选择调整位,选中位闪烁,按增加键为选中位加 1,按减少键为选中位减 1。 按强制打铃按钮是实现强制打铃或者强制关闭打铃。 第三章 软件电路设计及流程图 基本原理概述 主程序首先是初始化部分,主要是计时单元清零,中断初始化,堆栈指针初始化,启动定时器工作,然后是调用显示子程序。 主程序的起始存 储地址是 0000H 单江苏信息职业技术学院毕业设计(论文) 14 元,但由于本系统用了定时器 T0 的中断,中断服务程序入口地址为 000BH,因此从0000H 单元起存放一条短调转指令 AJMP,使真正的主程序从 0300H 单元开始存放。 中断服务程序设计 单片机内部的定时 /计数器 T0 定时 100ms,即 , 10 次中断即为 1 秒, 60 秒为 1 分, 60 分为 1 小时, 24 小时为一天,如此循环,从而实现计时功能。 编写中断服务程序关键要注意: ,本系统中是累加器 A 和程序状态字 PSW 值的保护。 ,因此时,分,秒单元加 1 后要进行十进制调整,即要执行 DAA 指令,还要注意的是时计到 24 就回零,分和秒计到60 就回零。 显示程序设计和按键判断与按键处理程序设计 显示采用的是动态显示,段控和位控都经过反相器,显示的字形代码是共阳的显示代码,位控信号输出时是高电平有效,在校时时,采用的是点亮小数点信位调节器标志,哪位小数点亮表示调整的是该为的值。 显示子程序的第一部分是拆字,显示缓冲区是 2FH—2AH;第二部分是查字型码,输出段控和位控信号,由于采用 的是动态显示,所以每出输出一位的段控和位控信号要延时一定的时间,使 LED 显示器显示的字符时稳定的。 按键判断程序有编写时应注意按键的去抖动,该系统采用的是延时去抖动的方法,延时是通过调用子程序来实现的,每个按键按下后都要等待释放后再返回。 按键处理程序中的按键式校时的,所以进入按键处理程序后就关闭定时中断,对于动能键注意设置显示标志。 自动打铃系统设计 15 流程图 系统主程序流程图 江苏信息职业技术学院毕业设计(论文) 16 系统定时中断流程图 自动打铃系统设计 17 第四章 系统程序设计 程序设计概要 程序名称: 51 单片机自动扫铃机控制系统 说 明:实现 24 小时制电子钟, 8 位数码管显示,显示时分秒显示格式: 235959(小时十位如果为 0 则不显示)。 到预定时问启动蜂鸣器模拟打铃,蜂鸣器 BEEP:。 打铃方式分起床、熄幻铃和上、下课铃两种。 系统使用 4 只按键, 3 只按键用来调整时间,另一只为闹钟按钮即定时扫铃。 键 SET_KFY: ;通过选择键选择调整位,选中位闪烁。 增加键 ADD_KEY: ;按一次使选中位加 1。 减少键 DEC_KEY: ;按一次使选中位位。 1 如果长按 ADD_KEY 或 DEC_KEY,识 别后则进行调时快进,此时停止闪烁。 如果选中位是秒,则按增加键或减少键都是将秒清零。 定时扫铃键 DALING_KEY: ;用来强制打铃或强制关闭铃声 PO 口输出数码管段选信号, P2 口输出数码管位选信号。 晶振 12M 江苏信息职业技术学院毕业设计(论文) 18 源程序清单 根据以上流程图思想,现设计系统程序思路描写如下系统的主程序如下所示: BEEP EQU ;定义蜂 l 鸣器(电铃)控制信号输出口 ORG 0000H ;程序入日地址 LJMP START ORG 000BH ;定时器 0 中断入日地址 LJMP TIMER_O ORG 0300H / * * * * *程序开始,初始化* * * * * / START : SETB BEEP ;关闭蜂鸣器(电铃) SETB 48H ;使用一个 bit 位用于调时闪烁标志 SETB 47H ;使用一个 bit 位用十产生脉冲用十调时快进时基 CLR 45H ;关闭响铃方式标志 MOV RI, 0 调整选择键功能标志: 0 正常走时、 1 调时、 2 调分、 3 调秒 MOV 20H, 00H;用于控制秒基准时钟源的产生 MOV 21H, 00H;清零秒寄存器 MOV 22H, 00H;清零分寄存器 MOV 23H, 00H;清零时寄存器 MOV 24H, 00H;用于控制调时闪烁的基准时钟的产生 MOV IP, 02H。 IP,IE 初始化 MOV IE, 82H MOV TMOD, olH;设定定时器 01 作方式 1 MOV THO, 3CH 自动打铃系统设计 19 MOV TLO, oBoH;赋定时初值,定时 50ms SETB TRO;启动定时器 0 MOV SP, 4OH;重设堆栈指针 / * * * * *主程序* * * * * / MAIN : CJNE R1, 00H, MAINl; 是否为正常走时状态 LCALL BIJIAO1;调用起床、熄灯打铃比较子程序 LCALL BIJIAO2;调用上、下课少打铃比较子程序 LCALL DALING ;调用响铃方式执行子程序 MAIN1 : LCALL DlSPLAY;调用显示子程序 LCALL KEY_SCAN;调用按键检测子程序 JZ MAIN;无键按下则返回重新循环 LCALL SET_KEY;调用选择键处理子程序 JB 46H, MAIN ;如果已进行长按调招(调时快进),则不再执行下面的单步调整 LCALL ADD_KEY;调用增加键 处理子程序 LCALL DEC_KEY; 躺用减少键处理子程序 LCALL DALING_KEY;处理强制打铃 /强制关闭铃声键 LJMP MAIN;重新循环 程序结束 (主程序中引用到的字程序如下) / * * * * *定时中断服务程序 * * * * * /。单片机自动打铃系统设计毕业论文(编辑修改稿)
相关推荐
1000uFC50.1uFR6 5.6KD0 LEDS12345678J2C0 C1 C2 C3 C4 C5 C6 C7C0 C1C2C3 C4C5 C6C7VCCB6 B71011U1E74ALS06A0 A1 A2 A3 A4 A5 A6 A7B41213U1F74ALS06A0 A1 A2 A3 A4 A5 A6 A7B51 6 2 7 3 8 4 9 5J3串口输出D0 D1 D2 D3
0m,刷新计费一次。 3. 255 计数程序流程图 图 2 255 计数程序流程图 图 3 50000 计数程序流程图 开始 调用显示子程序 初始化堆栈,定时器初始化 脉冲数计数到 255后重新计数,硬件自动清零 计算脉冲数的个、十、百 位 脉冲数加 1,即 T0 加 1 说明: 1. 采用 T0 工作在工作方式2 计数,在 T0 计数的同时,在数码管上显示相应的 T0 数值 TL0
一个乐谱转换为一定长度的代码数据表。 (2) 在程序执行时顺序查此表,取出音阶代码,并根据音阶代码查频率表,以得到该音阶对应的频率,随后将对应的定时初值送定时器 T0,使定时器 T0 产生该音阶对应的频率,并通过 ,驱动外接扬声器发声。 (3) 取出节拍代码 N,由定时器 T1 控制延 时,通过定时中断 N 次,产生 N*50ms 的定时。 T0、 T1 启动后,根据乐谱表
observed. Idle Mode In idle mode, the CPU puts itself to sleep while all the onchip peripherals remain active. The mode is invoked by software. The content of the onchip RAM and all the special
算,得到日波动。 开机特性 在规定的预热时间内 ,振荡器频率值的最大变化,用 V=( fmaxfmin)/f0表示。 相位噪声 短期稳定度的频域量度。 用单边带噪声与载波噪声之比 163。 ( f)表示, amp。 pound;( f)与噪声起伏的频谱密度 Sφ ( f)和频率起伏的频谱密度 Sy( f)直接相关,由下式表示: f2S( f) =f02Sy( f) =2f2amp。 pound
℃ 0000 0000 0000 1000 0008H 0℃ 0000 0000 0000 0000 0000H - ℃ 1111 1111 1111 1000 FFF8H - ℃ 1111 1111 0101 1110 FF5EH - ℃ 1111 1110 0110 1111 FF6FH - 55 ℃ 1111 1100 1001 0000 FC90H 单片机水温控制电路设计 第 17 页