《单片机自动打铃系统设计13801.pdf》由会员分享,可在线阅读,更多相关《单片机自动打铃系统设计13801.pdf(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、.1 .w d.自动打铃系统-学校上下课自动打铃设计 设计人:要求:1实现上下课的打铃,并通过语音提示上下课;2 按下开机键,显示当前年月日时间,在 LCD 液晶屏显示年,月,日,星期,时,分,秒,年-月-日-星期显示在第一行,格式*-*-*-星期*;时分秒显示在第二行,格式*-*-*24小时格式;3能够设置当前时间;4使用语音芯片提示上下课,上课时提示:亲爱的同学们,上课了,重复 2 遍,下课时提示:亲爱的同学们,下课了,重复 2 遍。5允许使用时钟芯片。摘要 单片机的外接石英晶体振荡器能提供稳定、准确的基准频率,并经 12 分频后向部定时器提供实时基准频率信号,设定定时器工作在中断方式下,
2、连续对此频率信号进展分频计数,便可得秒信号,再对秒信号进展计数便可得到分、时等实时时钟信息。如果石英晶体振荡器的频率信号为 6MHZ,设定定时器定时工作方式 1 下,定时器为 3CBOH,则定时器每 100ms 产生 1 次中断,在定时器的中断定时处理程序中,每 10 次中断,则向秒计数器加 1,秒计数器计数到60 则向分计数器进位并建立分进位标志,分计数器计数自动打.铃系统,是以一片 8 位单片机为核心的实时时钟及控制系统。我们知道到 60,则向时计数器进位,如此周而复始的连续计数,便可获得时、分、秒的信号,建立一个实时时钟。接下来便可以进展定时处理和打铃输出,当主程序检测到有分进位标志时,
3、便开场比拟当前时间 小时与分、存放在 RAM 中 与信息时间表上的作息时间 小时与分,存放在 ROM是否一样,如有一样者,则进展报时处理并控制打铃,如有不一样则返回主程序,如此便实现了报时控制的要求。关键词 单片机;时间设置电路;计时电路;显示电路;定时打铃控制电路 引言 始的无人问津到现在的随处可见,红绿灯,记分牌,电子秒表,遥控器,电饭煲,电视等只要是电子产随着科技的不断开展,各种芯片都得到了很好的开展,80C51 同样如此,从开品,都会和芯片有关,其实芯片并不是什么神秘的高科技,它只是里面装了一些己编好的程序而己 而这里要介绍的是用汇编语言来编程的一个系统,它能够让一个学校或企业集团实现
4、打铃自动化,总之,一个需要时间系统的机构实现自动提醒功能。当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未有的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、本钱低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。目前,一个学习与应用单片机的高*信息职业技术学院毕业设计论文-2-潮正在工厂、学校及企事业单位大规模地兴起。而本文是用 AT89C52单片机设计的一个自动打铃系统。第一章 设计方案论证 1.1 设计要求 它可以作为时钟电路来显示时间,进展设置,定时打铃。按照自顶向下设计方法划分自动打铃
5、系统的功能。可分为:时间设置电路,计时电路,显示电路和定时打铃控制电路等。以信息科学与技术学院的打铃情况设计 1.2 设计方案选择 方案一:数 字 电 路设 计 的 自动 打 铃 系统 利用函数信号发生器来进展脉冲信号输 出,利 用74160N 来 设置十进制和六进制的进位输出。利用数码显示器来显示时间,利用或容 时间 起床 8:10 早自习 7:30-8:10 第一节课 8:20-9:00 第二节课 9:10-9:50 第三节课 10:00-10:40 第四节课 10:50-11:30 第五节课 13:30-14:10 第六节课 14:20-15:00 第七节课 15:20-16:00 第八
6、节课 16:10-16:50 晚自习 19:00-20:30 熄灯 22:30 .门、与门、非门、与非门、等电路元件进展组合实现打铃的控制。方案二:基于单片机的自动打铃系统设计 单片机部存储器设三个字节分别存放时钟的时、分、秒信息。利用定时器与软件结合实现 1 秒定时中断,没产生一次中断,存储器相应的秒值加 1;假设秒值到达60,则将其清零,并将相应的分字节值加 1;假设分值到达 60,则清零分字节,并将时字节值加 1;假设时值到达 24,则将时字节清零。建立完一个实时时钟后接下来进展定时处理和打铃输出,当主程序检测到有分进位标志时,便开场比拟当前时间与信息时间表上的作息时间是否一样,一样者,
7、则进展报时处理并控制打铃,不一样则返回主程序。方案确定 方案一的设计只能事先设定打铃时间不能完全自动打铃,且在修改打铃时间上存在一定的困难。而方案二中的设计能完全实现自动化,诠释了我们这次毕业设计的主题。并在修改打铃时间上有了很大的方便,只需修改一局部程序便能实现不同的需要。因此我选择方案二进展设计。1.3 根本方案 1.3.1 设计课题简要概述 自动打铃装置用于工厂、学校等地的时间控制,本设计是按照学校作息时问设定的,模拟了电了钟显示时、分、秒。还根据学校的作息时间按时打铃,本系统有 4 个按钮,分别用来调时、调分、秒和强制打铃及强制关铃,以保证始终与标准时间相吻合。首先设计出本系统的硬件根
8、本框图,根据框图设计电气原理图,简要概述根本原理,按照设计技术参数设计出各局部程序。*信息职业技术学院毕业设计论文-4-1.3.2 系统软硬件划分 由于需要最小系统设计,因此,极介于系统的硬件本钱,所有能用软件实现的功能都用软件完成,如按键的去抖,采用延时,显示局部用动态显示等,这样硬件局部的设计可以采用单片机最小系统,所谓最小系统时仅有程序存储器和时钟及复位电路的单片机系统。1.3.3 单片机选型 根据课题的具体容,任务要求,计时、校时、定时、键盘显示等功能,经多方面考虑,所选系统选项用与MSC-51单片机完全兼容的AT89C52功耗单片机。1.4 总体设计框图 图一 整体框图 第二章 硬件
9、电路设计 2.1 根本原理概述 本系统主要由主控模块,时钟模块,显示模块,键盘接口模块等4 局部构成。通过部定时产生中断,从而使驱动电铃打铃。设定 51 单片机工作在定时器工作方式1,每 100ms 产生一次中断,利用软件将基准 100ms 单元进展累加,当定时器产生10 次中断就产生 lS 信号,这是秒单元加 1。同理,对分单元和时单元计数从而产生秒,分,时的值,通过六位七段显示器进展显示。由于动态显示法需要数据所存等硬件,接口较复杂,考虑显示只有六位,且系统没有其他急躁的处理程序,所有采用动态扫描 LED 的显示。本系统采用四个按键,当时钟时间和设置时间一直时,驱动程序动作,进展打铃,每次
10、打铃 30S.2.2 主要原件参数及功能简介 主控器 AT89C52 AT89C52 为 8 位通用微处理器,采用工业标准的 C51 核,在部功能及管脚排布上与通用的 8*c52 一样,其主要用于会聚调整时的功能控制。功能包括对会聚主 IC 部存放器、数据 RAM 及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号 IR 的接收解码及与主板 CPU 通信等。主要管脚有:*TAL119 脚和*TAL218 脚为振荡器输入输出端口,外接 12MHz 晶振。RST/Vpd9 脚为复位输入端口,外接电阻电容组成的复位电路。VCC40 脚和 VSS20 脚为供电端口,分别接+5V
11、电源的正负端。P0P3 为可编程通用 I/O 脚,其功能用途由软件定义,在本设计中,P0 端口3239 脚被定义为 N1 功能控制端口,分别与 N1 的相应功能管脚相连接,13 脚定义为 IR 输入端,10 脚和11 脚定义为 I2C 总线控制端口,分别连接 N1 的 SDAS18 脚和 SCLS19 脚端口,12 脚、27 脚及 28 脚定义为握手信号功能端口,连接主板 CPU 的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。DS1302 1性能特性 DS1302 与单片机之间能简单地采用同步串行的方式进展通信,仅需用到三个口线:1.RSE 复位,2.I/O 数据线,3.SCL
12、K 串行时钟。时钟/RAM 的读/写数据以一个字节或多达 31 个字节的字符组方式通信。DS1302 工作时功耗很低,保持数据和时钟信息时功率小十 1mW。提供秒分时日日期。月年的信息,每月的天数和闰年的天数可自动调整时钟,操作可通过 AM/PM 指示决定采用 24 或 12 小时格式。2管脚描述*I*Z 32.768KHz 晶振管脚 GND 接地 RST 复位脚 I/O 数据输入/输出引脚 SCLK 串行时钟 Vcc1,Vcc2 电源供电管脚 DS1302 串行时钟芯片 8 脚 DIP*信息职业技术学院毕业设计论文-6-DS1302S 串行时钟芯片 8 脚 SOIC 200mil DS130
13、2Z 串行时钟芯片 8 脚 SOIC 150mi 2.3 单元电路的设计 2.3.1 显示电路 显示局部采用 1602 采用标准的 16 脚接口,其中:第 1 脚:VSS 为电源地 第 2 脚:VCC 接 5V 电源正极 第 3 脚:V0 为液晶显示器比照度调整端,接正电源时比照度最弱,接地电源时比照度最高比照度过高时会 产生鬼影,使用时可以通过一个 10K 的电位器调整比照度。第 4 脚:RS 为存放器选择,高电平 1 时选择数据存放器、低电平 0 时选择指令存放器。第 5 脚:RW 为读写信号线,高电平(1)时进展读操作,低电平(0)时进展写操作。第 6 脚:E(或 EN)端为使能(ena
14、ble)端,高电平1时读取信息,负跳变时执行指令 普通的 LCD1602 显示 2.3.2 键盘接口电路设计 由于键盘只有四个,采用独立式按钮,用查询法完成读健功能。图五 按键电路 2.3.3 响铃电路设计.响铃电路用到了蜂鸣器、三极管、1K 电阻。蜂鸣器两端分别接地和三极管。三极管一段电源另一端与电阻相连并接入 AT89C51 的 P3.7 接口。电路原理图使用 SH69P43 为控制芯片,使用 4MHz 晶振作为主振荡器。PORTC.3/T0 作为 I/O 口通过三极管 Q2 来驱动蜂鸣器 LS1,而PORTC.2/PWM0 则作为 PWM 输出口通过三极管 Q1 来驱动蜂鸣器 LS2。另
15、外在 PORTA.3 和 PORTA.2 分别接了两个按键,一个是 PWM 按键,是用来控制 PWM 输出口驱动蜂鸣器使用的;另一个是 PORT 按键,是用来控制 I/O 口驱动蜂鸣器使用的。连接按键的 I/O 口开部上拉电阻。先分析一下蜂鸣器。所使用的蜂鸣器的工作频率是 2000Hz,也就是说蜂鸣器的驱动信号波形周期是 500s,由于是 1/2duty 的信号,所以一个周期的高电平和低电平的时间宽度都为 250s。软件设计上,将根据两种驱动方式来进展说明。a 蜂鸣器工作原理:PWM 输出口直接驱动蜂鸣器方式 由于 PWM 只控制固定频率的蜂鸣器,所以可以在程序的系统初始化时就对PWM 的输出
16、波形进展设置。首先根据 SH69P43 的 PWM 输出的周期宽度是 10 位数据来选择 PWM 时钟。系统使用 4MHz 的晶振作为主振荡器,一个 tosc 的时间就是 0.25s,假设是将 PWM 的时钟设置为 tosc 的话,则蜂鸣器要求的波形周期 500s 的计数值为500s/0.25s=200010=7D016,7D0H 为 11 位的数据,而 SH69P43 的 PWM 输出周期宽度只是 10 位数据,所以选择 PWM 的时钟为 tosc 是不能实现蜂鸣器所要的驱动波形的。这里将 PWM 的时钟设置为 4tosc,这样一个 PWM 的时钟周期就是 1s 了,由此可以算出 500s
17、对应的计数值为 500s/1s=50010=1F416,即分别在周期存放器的高 2 位、中 4 位和低 4 位三个存放器中填入 1、F 和 4,就完成了对输出周期的设置。再来设置占空比存放器,在 PWM 输出中占空比的实现是 通过设定一个周期电平的宽度来实现的。当输出模式选择为普通模式时,占空比存放器是用来设置高电平的宽度。250s 的宽度计数值为 250s/1s=*信息职业技术学院毕业设计论文-8-25010=0FA16。只需要在占空比存放器的高 2 位、中 4 位和低 4 位中分别填入 0、F 和 A 就可以完成对占空比的设置了,设置占空比为 1/2duty。以后只需要翻开 PWM 输出,
18、PWM 输出口自然就能输出频率为 2000Hz、占空比为 1/2duty 的方波。b 蜂鸣器工作原理:I/O 口定时翻转电平驱动蜂鸣器方式 使用 I/O 口定时翻转电平驱动蜂鸣器方式的设置比拟简单,只需要对波形分析一下。由于驱动的信号刚好为周期 500s,占空比为 1/2duty 的方波,只需要每 250s 进展一次电平翻转,就可以得到驱动蜂鸣器的方波信号。在程序上,可以使用 TIMER0 来定时,将 TIMER0 的预分频设置为/1,选择 TIMER0 的始终为系统时钟主振荡器时钟/4,在 TIMER0 的载入/计数存放器的高 4 位和低 4 位分别写入00H 和 06H,就能将 TIMER
19、0 的中断设置为 250s。当需要 I/O 口驱动的蜂鸣器鸣叫时,只需要在进入 TIMER0 中断的时候对该 I/O 口的电平进展翻转一次,直到蜂鸣器不需要鸣叫的时候,将 I/O 口的电平设置为低电平即可。不鸣叫时将 I/O 口的输出电平设置为低电平是为了防止漏电。2.4 总体运行进程 首先实现 24 小时制电子钟,在 8 位数码管显示,显示为时分秒,实现的格式为:23-59-59。到达预定时间启动蜂鸣器开场打铃,打铃的方式分为起床、熄灯和上下课铃两种。系统使用了4 个按键,3 只按键用来调整时间,另一只为强制打铃按钮。通过选择键选择调整位,选中位闪烁,按增加键为选中位加 1,按减少键为选中位
20、减1。按强制打铃按钮是实现强制打铃或者强制关闭打铃。第三章 软件电路设计及流程图 3.1 根本原理概述 主程序首先是初始化局部,主要是计时单元清零,中断初始化,堆栈指针初始化,启动定时器工作,然后是调用显示子程序。主程序的起始存储地址是0000H 单元,但由于本系统用了定时器T0 的中断,中断效劳程序入口地址为 000BH,因此从.0000H 单元起存放一条短调转指令 AJMP,使真正的主程序从 0300H 单元开场存放。中断效劳程序设计 单片机部的定时/计数器 T0 定时 100ms,即 0.1s,10 次中断即为 1 秒,60 秒为1 分,60 分为 1 小时,24 小时为一天,如此循环,
21、从而实现计时功能。编写中断效劳程序关键要注意:1.现场保护,本系统中是累加器A 和程序状态字 PSW 值的保护。2.计时处理时采用确实十进制,因此时,分,秒单元加1 后要进展十进制调整,即要执行 DAA 指令,还要注意的是时计到 24 就回零,分和秒计到 60就回零。3.中断返回前的现场恢复。显示程序设计和按键判断与按键处理程序设计 显示采用的是动态显示,段控和位控都经过反相器,显示的字形代码是共阳的显示代码,位控信号输出时是高电平有效,在校时时,采用的是点亮小数点信位调节器标志,哪位小数点亮表示调整的是该为的值。显示子程序的第一局部是拆字,显示缓冲区是 2FH2AH;第二局部是查字型码,输出
22、段控和位控信号,由于采用的是动态显示,所以每出输出一位的段控和位控信号要延时一定的时间,使LED 显示器显示的字符时稳定的。按键判断程序有编写时应注意按键的去抖动,该系统采用的是延时去抖动的方法,延时是通过调用子程序来实现的,每个按键按下后都要等待释放后再返回。按键处理程序中的按键式校时的,所以进入按键处理程序后就关闭定时中断,对于动能键注意设置显示标志。*信息职业技术学院毕业设计论文-10-3.2 流程图 系统主程序流程图 系统定时中断流程图 第四章 系统程序设计 4.1 程序设计概要 程序名称:51 单片机自动扫铃机控制系统 说明:实现 24 小时制电子钟,8 位数码管显示,显示时分秒显示
23、格式:23-59-59小时十位如果为 0 则不显示。到预定时问启动蜂鸣器模拟打铃,蜂鸣器BEEP:P3.7。打铃方式分起床、熄幻铃和上、下课铃两种。系统使用 4 只按键,3 只按键用来调整时间,另一只为闹钟按钮即定时扫铃。键 SET_KFY:PI.0;通过选择键选择调整位,选中位闪烁。增加键 ADD_KEY:PI.1;按一次使选中位加 1。减少键 DEC_KEY:PI.2;按一次使选中位位。1 如果长按 ADD_KEY 或 DEC_KEY,识别后则进展调时快进,此时停顿闪烁。如果选中位是秒,则按增加键或减少键都是将秒清零。定时扫铃键 DALING_KEY:P1.3;用来强制打铃或强制关闭铃声
24、PO 口输出数码管段选信号,P2 口输出数码管位选信号。晶振 12M 4.2 源程序清单#include/包含头文件,一般情况不需要改动,头文件包含特殊功能存放器的定义#include#include ds1302.h.#include delay.h#include 1602.h#include i2c.h/管脚定义 sbit SPEAK=P37;/蜂鸣器 sbit KEY_SET=P32;/设置 返回 sbit KEY_ENTER=P33;/确认 下一个参数 sbit KEY_UP=P34;/增加 sbit KEY_DOWN=P35;/减小 sbit KEY_SAVE=P36;/保存/按键
25、菜单的数据定义 bit bSet_Time_Flag=0;/进入设置时间的标志位 bit bShow_Time_Flag=1;/进入设置时间的标志位 unsigned char ucPage=0;/页面菜单 unsigned char ucMenu_Count =1;/菜单的数据 bit bSet_Model_Frash=0;/数据保存相关#define FLAG_ADDR 250#define FLAG_DAT 41#define MA*_LIST 15#define Start_Time_First 0/第一个保存的时间/设置的时间缓存 idata unsigned char ucSave
26、_Time_Set163=10,0,0,10,45,0,10,55,0,11,40,0,12,10,0,12,55,0,13,5,0,13,50,0,/16,0,0,16,45,0,16,55,0,17,40,0,18,10,0,18,55,0,19,5,0,19,50,0;/void Write_Time_Dat(unsigned char ucAddr,unsigned char*ucSet_Time)/数据定义 bit bRead_Time_Flag=1;bit bSave_Dat_Flag=0;/保存标志位 unsigned char time_use_Set8;unsigned ch
27、ar time_use_Set_Dis16;/*-*信息职业技术学院毕业设计论文-12-主函数-*/读取时间 void Read_Time_Once(void);/定时器初始化 void Init_Timer0(void);/按键扫描函数 void Key_Scan(void);void Del_Time(unsigned char ucPage,unsigned char ucPositon,unsigned char ucHang_Num,char ucDel_Fun);/主函数入口 void main(void)unsigned char ucGlobal_Dat=0;/临时使用的变量
28、SPEAK=1;LCD_Init();/初始化液晶 DelayMs(20);/延时有助于稳定 LCD_Clear();/清屏/Ds1302_Init();/ds1302 初始化 Ds1302_Read_Time();/首次读取时间 LCD_Write_String(0,0,OPEN SYSETM );/之前没有写入时间 就要写入时间 if(FLAG_DAT!=read_IIC(FLAG_ADDR)/标志位没有写入 Ds1302_Write_Time();write_IIC(FLAG_ADDR,FLAG_DAT);for(ucGlobal_Dat=Start_Time_First;ucGloba
29、l_Dat Start_Time_First+48;ucGlobal_Dat+=3)Write_Time_Dat(ucGlobal_Dat,ucSave_Time_SetucGlobal_Dat/3);DelayMs(2);else for(ucGlobal_Dat=Start_Time_First;ucGlobal_Dat /bit bSet_Time_Flag=0;/进入设置时间的标志位/unsigned char ucPage=0;/页面菜单/unsigned char ucMenu_Count =0;/菜单的数据/按键扫描函数 void Key_Scan(void)char cI=0;
30、if(KEY_SET=0)/设置 DelayMs(10);if(KEY_SET=0)LCD_Clear();ucMenu_Count=1;if(bSet_Time_Flag)/退出设置 bSet_Time_Flag=0;ucMenu_Count=0;bShow_Time_Flag=1;/不显示时间 ucPage=0;LCD_Write_(0*0c);/归位 bSave_Dat_Flag=0;else /进入设置 bSet_Time_Flag=1;/设置时间 bShow_Time_Flag=0;/不显示时间 ucPage=0;bSet_Model_Frash=1;while(KEY_SET=0)
31、;else if(KEY_ENTER=0)/enter DelayMs(10);if(KEY_ENTER=0)if(bSet_Time_Flag=0)return;ucMenu_Count+=3;if(ucMenu_Count 7)ucMenu_Count=1;ucPage+;if(ucPage=(MA*_LIST+1)/限值处理 ucPage=0;*信息职业技术学院毕业设计论文-14-bSet_Model_Frash=1;while(KEY_ENTER=0);else if(KEY_UP=0)/增加 DelayMs(10);if(KEY_UP=0)if(bSet_Time_Flag=0)re
32、turn;if(ucMenu_Count=1)Del_Time(ucPage,0,0,1);/减法 else if(ucMenu_Count=4)Del_Time(ucPage,1,0,1);/减法 else if(ucMenu_Count=4)Del_Time(ucPage,2,0,1);/减法 bSet_Model_Frash=1;bSave_Dat_Flag=1;while(KEY_UP=0);else if(KEY_DOWN=0)/减小 DelayMs(10);if(KEY_DOWN=0)if(bSet_Time_Flag=0)return;if(ucMenu_Count=1)Del_
33、Time(ucPage,0,0,0);/减法 else if(ucMenu_Count=4)Del_Time(ucPage,1,0,0);/减法 else if(ucMenu_Count=4)Del_Time(ucPage,2,0,0);/减法 bSet_Model_Frash=1;bSave_Dat_Flag=1;/数据发生改变 while(KEY_DOWN=0);else if(KEY_SAVE=0)/保存 DelayMs(10);if(KEY_SAVE=0)if(bSet_Time_Flag=0)return;.LCD_Clear();if(bSave_Dat_Flag=1)LCD_Wr
34、ite_String(0,0,SAVE TIME DATA OK);for(cI=Start_Time_First;cI Start_Time_First+48;cI+=3)Write_Time_Dat(cI,ucSave_Time_SetcI/3);for(cI=0;cI);DelayMs(200);DelayMs(200);DelayMs(200);bSave_Dat_Flag=0;else LCD_Write_String(0,0,TIME NOCHANGE );LCD_Write_String(0,1,SAVE TIME FAILRE );/保存失败 DelayMs(200);Dela
35、yMs(200);DelayMs(200);LCD_Clear();bSet_Model_Frash=1;while(KEY_SAVE=0);if(bSet_Model_Frash)/LCD_Write_(0*0c);/归位 bSet_Model_Frash=0;Show_Time(0,0,ucSave_Time_SetucPage,ucPage);LCD_Write_String(14,0,-);if(ucPage (MA*_LIST)Show_Time(0,1,ucSave_Time_SetucPage+1,ucPage+1);else Show_Time(0,1,ucSave_Time_
36、SetucPage-MA*_LIST,ucPage-MA*_LIST);/LCD_Write_(0*0f);LCD_Write_(0*80+ucMenu_Count);/读取一次时间 unsigned char ucTime_Old=0;*信息职业技术学院毕业设计论文-16-void Read_Time_Once(void)char cTime_Copy=0;if(bRead_Time_Flag)Ds1302_Read_Time();/读取时间参数 if(bShow_Time_Flag)/显示当前的时间 sprintf(time_use_Set_Dis,DATE%02d-%02d-%02d ,
37、(int)time_buf11,(int)time_buf12,(int)time_buf13);/年月日周/,(int)time_buf17 LCD_Write_String(0,0,time_use_Set_Dis);/显示第一行 sprintf(time_use_Set_Dis,TIME%02d:%02d:%02d,(int)time_buf14,(int)time_buf15,(int)time_buf16);/时分秒 LCD_Write_String(0,1,time_use_Set_Dis);/显示第二行 for(cTime_Copy=0;cTime_Copy 8;cTime_Co
38、py+)time_use_SetcTime_Copy=time_buf1cTime_Copy;/判断数据 if(ucTime_Old!=time_buf15)ucTime_Old=time_buf15;for(cTime_Copy=0;cTime_Copy (MA*_LIST+1);cTime_Copy+)if(time_buf14=ucSave_Time_SetcTime_Copy0)&(time_buf15=ucSave_Time_SetcTime_Copy1)for(cTime_Copy=0;cTime_Copy=24)ucTime0=0;.if(ucTime1=60)ucTime1=0
39、;if(ucTime2=60)ucTime2=0;/时间处理函数 /根据页面参数 选择对应的参数列表 void Del_Time(unsigned char ucPage,unsigned char ucPositon,unsigned char ucHang_Num,char ucDel_Fun)/if(ucDel_Fun=1)/增加 ucSave_Time_SetucPageucPositon+;else if(ucDel_Fun=0)/减小 if(ucSave_Time_SetucPageucPositon)ucSave_Time_SetucPageucPositon-;Time_Err
40、or(&ucSave_Time_SetucPageucPositon);程序完毕 自动打铃系统原理图 第六章 设计总结 完成自动打铃系统设计的毕业设计我能综合运用电子技术课程中的所学到的理论知识来完成自动打铃机的设计和分析电路,学会了在虚拟的环境下创立电路,计算和调整参数,我能灵活的应用 protcl99se 软件画图,并且掌握了一定的单片片机知识,通过这门课的设计我还有以下几点收获:1、有利于根底知识的掌握 通过这次设计我亲手做,自己思考,将理论知识上升到实践的高度,从而进一步打破了单片机的神秘面纱。2、有利于逻辑思维的锻炼。在许多常规可生的日常学习中我们不难发现这样一个现象,不少学生的思维
41、常处于混乱的状态,写作文来前言不搭后语,解起数学题来步骤混乱,这些都是缺乏*信息职业技术学院毕业设计论文-18-思维训练的结果,程序设计是公认的,最能直接有效的训练学生的创造思维,培养分析问题解决问题的能力的方法之一。即使见到陌生的程序,从任务分析,确定算法界面布局,缩写代码到调试运行,都能顺利完成。整个过程需要我们有条理的构思,这之间有猜想设计,判断思维的抽象思维训练,又有分析问题解决问题,预测日标等能力的培养。参考文献【1】红卫。基于单片机的智能系统设计与实现。电子工业。2005。【2】志良。单片机原理与控制技术。机械工业。2009。【3】涵芳,徐爱卿。MCS-51/96 系列单片机原理及引用。航空航天大学。1996。【4】光弟。单片机根底。航空航天大学。1992。【5】育才,学成。单片微型计算机应用系统设计与实现。东南大学。1990。【6】林毓梁。单片机原理及应用。机械工业。2009。【7】宏丽,王静霞。单片机根底教程。人民邮电。2009。【8】唐继贤。51 单片机工程引用实例。航空航天大学。2009。【9】星寒,小波,王庚兰。从 0 开场教你学单片机。航空航天大学。2008。