数字钟课程设计报告_第1页
数字钟课程设计报告_第2页
数字钟课程设计报告_第3页
数字钟课程设计报告_第4页
数字钟课程设计报告_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1天津职业技术师范大学天津职业技术师范大学Tianjin University of Technology and Education课课 程程 设设 计计专业班级:应电专业班级:应电 09110911学生姓名学生姓名:张要可张要可 李艳春李艳春 武培培武培培指导教师:指导教师:于万霞(副教授)张威(讲师)于万霞(副教授)张威(讲师)系系 别别:电子工程学院电子工程学院2目录目录1 1 多功能数字钟多功能数字钟 .4 41.1 引言 .41.2 主要技术指标 .41.2.1 设计的目的.41.2.2 要求.51.3 方案论证及选择 .51.3.1 多功能数字钟的总体设计思路.51.3.2 多功

2、能数字钟系统方案论证.51.3.2.1 多功能数字钟系统方案选择.51.3.2.2 单片机的选择 .51.3.2.3 显示系统的方案比较 .51.3.2.4 温度系统方案选择 .61.4 仿真与总电路图 .61.4.1 仿真.61.4.2 总体电路图.71.5 多功能数字钟系统的总体设计 .71.6 单元电路设计 .831.6.2 单片机最小系统电路设计.81.6.2.1 单片机芯片选择 .81.6.2.21.6.2.2 复位电路复位电路 .111.6.2.3 晶振电路.111.6.3 时钟系统电路设计.121.6.3.1 时钟芯片选择 .121.6.3.2 DS1302 管脚及寄存器说明 .

3、123) 、DS1302 时钟电路如下图 8 所示: .131.6.4 温度系统电路.141.6.4.1 温度芯片的选择 .141.6.4.2 DS18B20 内部结构描述 .141.6.4.3 DS18b20 温度系统电路 .141.6.5 LCD1602 液晶显示电路.151.6.5.1 LCD12864 简介.151.6.5.2 液晶 12864 引脚说明.161.6.7 按键电路.171.6.8 元件列表.171.6.9 报警电路.171.7 软件设计 .181.7.1 软件流程图.191.7.2 软件程序.191.8 调试过程及结果.3041.9 参考文献 .301.10 参考文献

4、.301.11 总结 .30各人总结.31 张要可 18.31李艳春 22 .32武培培 28 .3351 1 多功能数字钟多功能数字钟1.11.1 引言引言单片机自 1976 年由 Intel 公司推出 MCS-48 开始,迄今已有二十多年了。由于单片机集成度高、功能强、可靠性高、体积小、功耗地、使用方便、价格低廉 等一系列优点,近几年来,随着单片机制造技术的飞速发展及其开发条件的普及,单片机开发的产品广泛的应用到了家电、通信、工商业航空、航天以及军事方面。MCS-51 系列的单片机通用性很强,价廉,设计灵活且能满足大多数用户的需求,单片机的软硬件结合增加了人对单片机的抽象感。单片机的应用领

5、域已从面向工业控制、通讯、交通、智能仪表等迅速发展到家用消费产品、办公自动化、汽车电子、PC 机外围以及网络通讯等广大领域。单片机有两种基本结构形式:一种是在通用微型计算机中广泛采用的,将程序存储器和数据存储器合用一个存储器空间的结构,称为普林斯顿结构。另一种是将程序存储器和数据存储器截然分开,分别寻址的结构,一般需要较大的程序存储器,目前的单片机以采用程序存储器和数据存储器截然分开的结构为多。本文讨论的单片机多功能定时器的核心是目前应用极为广泛的 51 系列单片机,配置了外围设备,构成了一个可编程的计时定时系统,具有体积小,可靠性高,功能强等特点。不仅能满足所需要求而且还有很多功能可供开发,

6、有着广泛的应用领域。1.21.2 主要技术指标主要技术指标1.2.11.2.1 设计的目的设计的目的数字钟是一种用数字电路技术实现时、分、秒计时的装置。我们设计数字钟就是为了了解数字钟的原理,从而学会制作数字钟.而且通过数字钟的制作进一步的了解各种在制作中用到的中小规模集成电路的作用及实用方法。数字钟的构成数字钟实际上是一个对标准频率进行计数的计数电路。由于计数的起始时间不可能与标准时间一致,故需要在电路上加一个校时电路,通常使用石英晶体振荡器电路构成数字钟。1.2.21.2.2 要求要求1 、能够以数字加汉字的形式在 LCD12864 上显示当前时间的时和分和秒,年月日,还有闹钟。2 、键盘

7、可以控制电子钟的启停、时钟预置和闹钟设置等。3 、蜂鸣器用作报警,整点报时和闹钟。64 、采用 DS18B20 温度传感器检测当前温度。5 、所有功能在 LCD12864 当中同步显示。6 、采用 AT89S52 单片机控制。1.31.3 方案论证及选择方案论证及选择1.3.11.3.1 多功能数字钟的总体设计思路多功能数字钟的总体设计思路按照要求设计,本多功能数字钟系统的设计采用单片机软件系统实现,用单片机 AT89S52 的自动控制能力配合 ds1302 和 ds18b20 来控制时钟和温度的调整显示。获得多功能数字钟的数据信息,单片机对其进行一系列的处理,最后通过液晶 lcd12864

8、显示出来。1.3.21.3.2 多功能数字钟系统方案论证多功能数字钟系统方案论证1.3.2.11.3.2.1 多功能数字钟系统方案选择多功能数字钟系统方案选择方案 1 : 通过单片机内部的定时器 / 计数器,用软件实现,直接用单片机的定时器编程以实现时钟;方案 2 : 用专门的时钟芯片 ( DS1302 ) 实现时钟的记时 , 再把时间数据送入单片机,由单片机控制显示。虽然用软件实现时钟硬件线路简单,但是程序运行的每一步都需要时间,多一步或少一步程序都会影响记时的准确度,对定时器定时也不是十分准确,时钟精度很低,对于我们实现所需要的功能造成软件编程非常复杂。用专用时钟芯片硬件成本相对较高,但它

9、的精度很高,软件编程很简单。综上所述,选择方案 2 。1.3.2.21.3.2.2 单片机的选择单片机的选择方案 1 : 51 系列单片机的 ROM 为 4K,对于我们设计的系统有点小 。 方案 2 : 52 系列单片机与 51 系列的结构一样 ,而 ROM 扩大为 8K ,对我们设计系统提供充足的空间进行功能的扩展 。再有 51 系列单片机与 52 系列的单片机价格差不多。因此,我们选择 52 系列的单片机。1.3.2.31.3.2.3 显示系统的方案比较显示系统的方案比较方案 1 : 用数码管或点阵 LED 显示。方案 2 : 用液晶 1602 显示。方案 3 : 用液晶 12864 显示

10、。时钟和温度的显示可以用数码管或 LED ,而且价格便宜。但是数码管的只能显示简单的设计的系统,与我们设计要求也不相符。有很多东西需要显示,还是用显示功能更好的液晶显示器比较好,它能显示更多的数据,用 1602 液晶显示数据7有限, 1602 不能够显示指针时钟,只能够显示一些基本的西文字符,显示数据的可读性不好,用可以显示汉字的 12864 液晶显示器还可以增加显示信息的可读性,用 12864 的绘图功能即可绘制出大字体数字,让人看起来会很方便 。虽然它们在价格上差距很大 ,但是 1602 不能够实现我们的要求,12864.是我们唯一的选择。1.3.2.41.3.2.4 温度系统方案选择温度

11、系统方案选择方案 1 :用热敏电阻等测温元件测出电压,再转换成对应的温度。需要比较多的外部元件 ( A/D 转换 ) 支持 , 且硬件电路复杂 , 制作成本相对较高 。方案 2 :用 DS18B20 直接测温。 DS18B20 温度传感器是美国 DALLAS 半导体公司最新推出的一种改进型智能温度传感器 , 它能直接读出被测温度,并且可根据实际要求通过简单的编程实现 912 位的数字值读数方式。经比较,我们选择方案 2 。温度实现只能通过外部的温度传感器来实现。经上网查阅及市场考察, DS18b20 体积小,只有 3 只脚,电路接法简单。内部含有寄存器为我们设计实现上下限报警功能提供保障。精度

12、为 0.5 C ,也符合我们设计的要求。 DS18B20 也是我们通常使用的型号,因此温度传感器 用 DS18B20 。81.41.4 仿真与总电路图仿真与总电路图1.4.11.4.1 仿真仿真图 1 11.4.21.4.2 总体电路图总体电路图9图 21.51.5 多功能数字钟系统的总体设计多功能数字钟系统的总体设计初步确定设计系统由单片机 AT89S52 主控模块、时钟模块 ds1302 、测温模块 ds18b20 、显示模块 12864 、按键扫描模块、ISP 在线编程模块、复位模块、晶振模块共八个模块组成。下图是总体的电路图:报警模块报警模块复位模块复位模块晶振模块晶振模块按键扫描模块

13、按键扫描模块ISPISP 在线编程在线编程主控模块主控模块AT89S52AT89S52测温模块测温模块时钟模块时钟模块10LED12864LED12864 显示模块显示模块图 31.61.6 单元电路设计单元电路设计1. 6. 1 基本原理基本原理 本设计采用一块单片机(AT89S52)作为多功能数字钟的控制核心,加以温度传感(DS18B20) 、液晶显示屏(12864) 、复位电路、晶振电路、按键电路等构成。系统的结构框架最主要的部分是中间的主控模块部分,时间的计算由编写的时钟程序代替时钟芯片(DS1302)完成,通过简单的串行接口与单片机进行通信。温度测量由温度传感器(DS18B20)完成

14、。传感器的测量结果由于是以数字信号形式输出,可以直接送给单片机处理。单片机在接到数据后,一方面将时间日期通过液晶显示屏显示出来,另一方面通过对键盘的扫描来确定哪个键按下,随即跳转到该键对应功能。 1.6.21.6.2 单片机最小系统电路设计单片机最小系统电路设计主要由复位电路,晶振电路,电源等几部分组成。1.6.2.1 单片机芯片选择单片机采用 52 系列单片机。由 ATMEL 公司生产的 AT89S52 是一种低功耗、高性能 CMOS8 位微控制器,具有 8K 在系统可编程 Flash 存储器 。使用 Atmel 公司高密度非易失性存储器技术制造,与工业 80C51 产品指令和引脚完全兼容

15、。 在单芯片上 , 拥有灵巧的 8 位 CPU 和在线系统可编程 Flash ,使得 AT89S52 为众多嵌入式控制应用系统提供高灵活、有效的解决方案。 AT89S52 具有以下标准功能: 8k 字节 Flash , 256 字节 RAM ,32 位 I/O 口线,看门狗定时器, 2 个数据指针,三个 16 位定时器 / 计数器,一个 6 向量 2 级中断结构,全双工串行口,片内晶振及时钟电路。空闲模式下 , CPU 停止工作 , 允许 RAM 、 定时器 / 计数器 、 串口 、 中断继续工作 。 掉电保护方式下 , RAM 内容被保存 , 振荡器被冻结 , 单片机一切工作停止,直到下一个

16、中断或硬件复位为止。而且,它还具有一个看门狗 ( WDT ) 定时 / 计数器 , 如果程序没有正常工作 , 就会强制整个系统复位,还可以在程序陷入死循环的时候,让单片机复位而不用整个系统断电,从而保护11你的硬件电路。AT89S52 有 40 个引脚, 32 个外部双向输入 / 输出( I/O )端口,同时内含 2 个外中断口, 2 个 16 位可编程定时计数器 ,2 个全双工串行通信口,片上 Flash 允许程序存储器在系统可编程,亦适于常规编程器。其将通用的微处理器和 Flash 存储器结合在一起,特别是可反复擦写的 Flash 存储器可有效地降低开发成本。单片机管脚图及说明:单片机管脚

17、图及说明: 图 4VCC :供电电压。GND :接地。P0 口: P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门流 。当 P1 口的管脚第一次写 1 时 , 被定义为高阻输入 。 P0 能够用于外部程序数据存储器,它可以被定义为数据 / 地址的第八位 。 在 FIASH 编程时 , P0 口作为原码输入口,当 FIASH 进行校验时, P0 输出原码,此时 P0 外部必须被拉高。P1 口: P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口, P1 口缓冲器能接收输出 4TTL 门电流。 P1 口管脚写入 1 后,被内部上拉为高,可用作输入, P1 口被外部下拉

18、为低电平时,将输出电流,这是由于内部上拉的缘故。在 FLASH 编程和校验时, P1 口作为第八位地址接收。P2 口: P2 口为一个内部上拉电阻的 8 位双向 I/O 口, P2 口缓冲器可接收,输出 4 个 TTL 门电流,当 P2 口被写 “ 1 ” 时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时, P2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。 P2 口当用于外部程序存储器或 16 位地址外部数据存储器进行存取时, P2 口输出地址的高八位。在给出地址“ 1 ” 时 , 它利用内部上拉优势 , 当对外部八位地址数据存储器进行读写时 , P2 口输出其特殊功能

19、寄存器的内容 。 P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号。P3 口 : P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口 , 可接收输出 4 12个 TTL 门电流 。 当 P3 口写入 “ 1 ” 后 , 它们被内部上拉为高电平 , 并用作输入 。 作为输入 , 由于外部下拉为低电平 , P3 口将输出电流 ( ILL ) 这是由于上拉的缘故。P3 口也可作为 AT89S52 的一些特殊功能口,如下表所示:P3 口同时为闪烁编程和编程校验接收一些控制信号。RST : 复位输入 。 当振荡器复位器件时 , 要保持 RST 脚两个机器周期的高电平时间。ALE/PR

20、OG :当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在 FLASH 编程期间,此引脚用于输入编程脉冲。在平时, ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6 。 因此它可用作对外部输出的脉冲或用于定时目的 。 然而要注意的是 :每当用作外部数据存储器时,将跳过一个 ALE 脉冲。如想禁止 ALE 的输出可在 SFR8EH 地址上置 0 。 此时 , ALE 只有在执行 MOVX , MOVC 指令是 ALE 才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态 ALE 禁止,置位无效。/PSEN :外部程序存储器的选通信号。在由外部程序存

21、储器取指期间,每个机器周期两次 /PSEN 有效。但在访问外部数据存储器时,这两次有效的 /PSEN 信号将不出现。/EA/VPP :当 /EA 保持低电平时,则在此期间外部程序存储器( 0000H-FFFFH ) , 不管是否有内部程序存储器 。 注意加密方式 1 时 , /EA 将内部锁定为 RESET ;当 /EA 端保持高电平时,此间内部程序存储器 。 在 FLASH 编程期间,此引脚也用于施加 12V 编程电源( VPP ) 。XTAL1 :反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2 :来自反向振荡器的输出。13EA :非 /Vpp 脚我们没有用外部扩展 ROM, 因此

22、 EA 非 /Vpp 为高电平,即接 +5V 电源。1.6.2.2 复位电路复位操作有两种基本形式:一种是上电复位,另一种是按键复位。按键复位具有上电复位功能外,若要复位,只要按图中的 RESET 键,电源 VCC 经电阻R1、R2 分压,在 RESET 端产生一个复位高电平。上电复位电路要求接通电源后,通过外部电容充电来实现单片机自动复位操作。上电瞬间 RESET 引脚获得高电平,随着电容的充电,RERST 引脚的高电平将逐渐下降。RERST 引脚的高电平只要能保持足够的时间(2 个机器周期),单片机就可以进行复位操作。按键复位电路图如图 1.4.2 所示。图 1.4.2 复位电路1.6.2

23、.3 晶振电路电路中,在 XTAL1 和 XTAL2 之间连接晶体震荡器与电容构成稳定的自激震荡器,电容器 C3 和 C4 对振荡器具有微调作用。如下图 6 所示:14图6 选取原则:电容选取 30pF ,晶振为 12MHz 。1.6.31.6.3 温度系统电路温度系统电路1.6.3.1 温度芯片的选择温度实现只能通过外部的温度传感器来实现 。 经上网查阅资料及市场考察 , DS18b20 体积小 , 只有 3 只脚,电路接法简单 。 它能够直接读出被测温度 。 内部含有寄存器为我们设计实现上下限报警功能提供保障 。 用户可定义的非易失性温度报警设置 ; 报警搜索命令识别并标志超过程序限定温度

24、 ( 温度报警条件 ) 的器件 ; 精度为 0.5C,也符合我们设计的要求。DS18B20 也是我们通常使用的型号 , 因此温度传感器用 DS18B20 。1.6.3.2 DS18B20 内部结构描述DS18B20 温度传感器的内部存储器还包括一个高速暂存 RAM 和一个非易失性的可电擦除的 EERAM 。 高速暂存 RAM 的结构为 8 个字节的存储器,结构如图 4.1 所示。头两个字节包含测得的温度信息,第三和第四字节是 TH 和 TL 的拷贝 , 是易失的 , 每次上电复位时被刷新 。 第五个字节为配置寄存器,它的内容用于确定温度值的数字转换分辨率。DS18B20 工作时按此寄存器中的分

25、辨率将温度转换为相应精度的数值。该字节各位的定义如图 4.2 所示。低 5 位一直为 1 , TM 是测试模式位 ,用于设置 DS18B20 在工作模式还是在测试模式。图 9151.6.3.3 DS18b20 温度系统电路DS18B20 有两种接法:一是单线接法即只接 QT 。这种方法应用它内部的寄生电源 , 因此在 QT 上要用一个 MOSFET 把 I/O 线只接拉到电源上 。二是从 vdd 脚加上电源。方法一适合于远距离温度监控,不需要本地电源 。 而我们只是设计测温系统 , 选择方法二就行了 , 还有 MOSFET 极容易烧,我们不用它。 Vdd 接 5V 电源, vss 接地, QT

26、 与 P3.1 相连。因 为DS18B20 的工作电流约为 1MA ,因此 Qt 端还要加上拉电阻为其提供电流。若用 5V 电源,则 R=5/1MA=5k 。 R 取 4.7K 。DS18B20 温度系统电路图 10 如下:图 101 16 64 4 LED12864LED12864 液晶显示电路液晶显示电路1.6.4.11.6.4.1 LED12864LED12864 简介简介带中文字库的 128X64 是一种具有 4 位 /8 位并行 、 2 线或 3 线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块 ;其显示分辨率为 128 64, 内置 8192 个 16*

27、16 点汉字,和 128 个 16*8 点 ASCII 字符集 . 利用该模块灵活的接口方式和简单 、 方便的操作指令,可构成全中文人机交互图形界面。可以显示 8 4 行 16 16 点阵的汉字 . 也可完成图形显示 . 低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。1.6.4.21.6.4.2 液晶液晶 1286412864 引脚说明引脚说明管脚号管脚名称、电平管脚功能描述如 1.4.4.2 表所示:16表 1.4.4.2 显示电路1、VSS 0V 电源地2 、

28、VCC 3.0+5V 电源正3、 V0 - 对比度(亮度)调整4、RS(CS ) H/LRS= “ H ” , 表示 DB7 DB0 为显示数据RS= “ L ” , 表示 DB7 DB0 为显示指令数据5 、R/W(SID H/L R/W= “ H ” ,E= “ H ” , 数据被读到 DB7 DB0) R/W= “ L ” ,E= “ H L ” , DB7 DB0 的数据被写到 IR 或 DR6 、E(SCLK) H/L 使能信号7 、DB0 H/L 三态 数据线8 、DB1 H/L 三态数据线9 、DB2 H/L 三态数据线10、 DB3 H/L 三态数据线11 、DB4 H/L 三

29、态数据线12、 DB5 H/L 三态数据线13 、DB6 H/L 三态数据线14 、DB7 H/L 三态数据线15、 PSB H/L H : 8 位或 4 位并口方式 , L : 串口方式 16、 NC - 空脚17 、/RESET H/L 复位端,低电平有效18、 VOUT - LCD 驱动电压输出端19 、A VDD 背光源正端( +5V ) 20 、K VSS 背光源负端LED12864 液晶显示电路设计中采用 LCD12864 液晶显示 。 它一般串口 、 并口两种方式显示 ,而我们在这里采用串口显示。LCD12864 显示电路如图 1.4.4 所示:17 图 1.4.4 显示电路1.

30、71.7 软件设计软件设计为利于该设计的多功能的实现和更高的编程效率,采用c语言进行编程。为实现编程结构清晰,采用各个模块单独编程,最后实现各个模块的综合连接。主程序的框架由键盘扫描程序构成,各个功能模块程序嵌入到各个按键的子程序中,通过对按键的不断扫描来确定跳转到哪个功能。对于键盘模块,采用扫描法循环扫描。181.7.11.7.1 软件流程图软件流程图1.7.21.7.2 软件程序软件程序#include #define uint unsigned int#define uchar unsigned char#define x 0 x80#define y 0 x80#define comm

31、 0#define dat 1sbit rs = P10; /H=data; L=command;sbit rw = P11; /H=read; L=write;sbit e = P12; /input enable;sbit SS = P20; /时sbit FF = P21; /分sbit MM = P22; /秒sbit NL = P23; /闹铃sbit NN = P24; /年sbit YY = P25; /月sbit RR = P26; /日sbit XQ = P27; /星期sbit busy=P07; /lcd busy bitsbit bj=P37; /报警控制位sbit D

32、Q=P31; /DS18B20 端口sbit FW=P35; /按键复位键19/sbit LED=P36; / /LED1sbit psb=P16;uchar dispn4;uchar dispy2;uchar dispr2;uchar disps2;uchar dispf2;uchar dispm2;uchar dispx2;uchar dispw2;uchar dispns2;uchar dispnf2;uchar dispnm2;uchar display2;uchar temp_data2;void wr_lcd (uchar dat_comm,uchar content);void

33、chk_busy (void);void delay (uint us);bit presence ;uchar aaa;char wendu,xingqi;int nian;char yue,ri,shi,fen,miao,ns,nf,nm;uchar code tab= 年 月 日 /1闹铃 时 分 秒 /3时间 时 分 秒 /2星期 温度 度 /4;/*-初始化-*/void init_lcd (void) psb=1; wr_lcd (comm,0 x30); /*30-基本指令动作*/ wr_lcd (comm,0 x01); /*清屏,地址指针指向 00H*/ wr_lcd (co

34、mm,0 x06); /*光标的移动方向*/ wr_lcd (comm,0 x0c); /*开显示,关游标*/*-显示汉字或字符-*/void chn_disp (uchar code *chn) uchar i,j; wr_lcd (comm,0 x30); wr_lcd (comm,0 x80);20 for (j=0;j4;j+) for (i=0;i16;i+) wr_lcd (dat,chnj*16+i); /在指定位置显示指定的内容/void chn_disp1 (uchar *chn) /显示年 uchar i,j=0; wr_lcd (comm,0 x30); wr_lcd (

35、comm,0 x80); /设定显示的位置(地址) for (i=0;i4;i+) wr_lcd (dat,chnj*16+i);void chn_disp2 (uchar *chn) /显示月 uchar i,j=0; wr_lcd (comm,0 x30); wr_lcd (comm,0 x83); /设定显示的位置(地址) for (i=0;i2;i+) wr_lcd (dat,chnj*16+i);void chn_disp3 (uchar *chn) /显示日 uchar i,j=0; wr_lcd (comm,0 x30); wr_lcd (comm,0 x85); /设定显示的位

36、置(地址) for (i=0;i2;i+) wr_lcd (dat,chnj*16+i);void chn_disp4 (uchar *chn) /显示时 uchar i,j=0; wr_lcd (comm,0 x30); wr_lcd (comm,0 x92); /设定显示的位置(地址) for (i=0;i2;i+) wr_lcd (dat,chnj*16+i);void chn_disp5 (uchar *chn) /显示分 uchar i,j=0; wr_lcd (comm,0 x30); wr_lcd (comm,0 x94); /设定显示的位置(地址)21 for (i=0;i2;

37、i+) wr_lcd (dat,chnj*16+i);void chn_disp6 (uchar *chn) /显示秒 uchar i,j=0; wr_lcd (comm,0 x30); wr_lcd (comm,0 x96); /设定显示的位置(地址) for (i=0;i2;i+) wr_lcd (dat,chnj*16+i);void chn_disp9 (uchar *chn) /显示闹铃时 uchar i,j=0; wr_lcd (comm,0 x30); wr_lcd (comm,0 x8A); /设定显示的位置(地址) for (i=0;i2;i+) wr_lcd (dat,ch

38、nj*16+i);void chn_disp10 (uchar *chn) /显示闹铃分 uchar i,j=0; wr_lcd (comm,0 x30); wr_lcd (comm,0 x8C); /设定显示的位置(地址) for (i=0;i2;i+) wr_lcd (dat,chnj*16+i);void chn_disp11 (uchar *chn) /显示闹铃秒 uchar i,j=0; wr_lcd (comm,0 x30); wr_lcd (comm,0 x8E); /设定显示的位置(地址) for (i=0;i2;i+) wr_lcd (dat,chnj*16+i);void

39、chn_disp7 (uchar *chn) /显示星期 uchar i,j=0; wr_lcd (comm,0 x30); wr_lcd (comm,0 x9A); /设定显示的位置(地址) for (i=0;i2;i+) wr_lcd (dat,chnj*16+i);void chn_disp8 (uchar *chn) /显示温度22 uchar i,j=0; wr_lcd (comm,0 x30); wr_lcd (comm,0 x9E); /设定显示的位置(地址) for (i=0;i 0 ; i-) DQ = 0 ; / 给脉冲信号 datx = 1 ; DQ = 1 ; / 给脉

40、冲信号 if(DQ) datx |= 0 x80 ; delay(4) ; return (datx) ;/* 写一个字节*/*/ WriteOneChar(unsigned char datx) unsigned char i = 0 ; for (i = 8 ; i 0 ; i-) DQ = 0 ; DQ = datx&0 x01 ; delay(5) ;24 DQ = 1 ; datx=1 ; /* 读取温度*/*/ Read_Temperature(void) Init_DS18B20() ; WriteOneChar(0 xCC) ; / 跳过读序号列号的操作 WriteOn

41、eChar(0 x44) ; / 启动温度转换 Init_DS18B20() ; WriteOneChar(0 xCC) ; /跳过读序号列号的操作 WriteOneChar(0 xBE) ; /读取温度寄存器 temp_data0 = ReadOneChar() ; /温度低 8 位 temp_data1 = ReadOneChar() ; /温度高 8 位 /anjian()if(SS=0) /时调整 / LED1=0; while(1) / LED2=0; xianshi(); if(XQ=0) while(XQ=0) / xianshi(); shi+; if(shi=24)shi=0

42、;/ if(NL=0) while(NL=0) xianshi(); shi-; if(shi0)shi=23; if(FW=0) while(FW=0)25 xianshi(); break; if(FF=0) /分调整 while(1) xianshi(); if(XQ=0) while(XQ=0) xianshi(); fen+; if(fen=60)fen=0; if(NL=0) while(NL=0) xianshi(); fen-; if(fen0)fen=59; if(FW=0) while(FW=0) xianshi(); break; if(MM=0) /秒调整 while(

43、1) xianshi(); if(XQ=0) while(XQ=0) xianshi(); miao+; if(miao=60)miao=0; if(NL=0) while(NL=0) xianshi(); miao-; if(miao0)miao=59; if(FW=0)26 while(FW=0) xianshi(); break; if(NN=0) /年调整 while(1) xianshi(); if(XQ=0) while(XQ=0) xianshi(); nian+; if(nian=10000)nian=0; if(NL=0) while(NL=0) xianshi(); nia

44、n-; if(nian0)nian=9999; if(FW=0) while(FW=0) xianshi(); break; if(YY=0) /月调整 while(1) xianshi(); if(XQ=0) while(XQ=0) xianshi(); yue+; if(yue=13)yue=0;nian+; if(nian=10000)nian=0; if(NL=0) while(NL=0) xianshi(); yue-; if(yue0)yue=12;nian-; if(nian0)nian=9999;27 if(FW=0) while(FW=0) xianshi(); break;

45、 if(RR=0) /日调整 while(1) xianshi(); if(XQ=0) while(XQ=0) xianshi(); ri+; if(yue=1)|(yue=3)|(yue=5)|(yue=7)|(yue=8)|(yue=10)|(yue=11)|(yue=12) if(ri=32)ri=0;if(ri0)ri=31; if(yue=2)if(ri=29)ri=0;if(ri0)ri=28; if(yue=4)|(yue=6)|(yue=9)if(ri=31)ri=0;if(ri0)ri=30; if(NL=0) while(NL=0) xianshi(); ri-; if(y

46、ue=1)|(yue=3)|(yue=5)|(yue=7)|(yue=8)|(yue=10)|(yue=11)|(yue=12) if(ri=32)ri=0;if(ri0)ri=31; if(yue=2)if(ri=29)ri=0;if(ri0)ri=28; if(yue=4)|(yue=6)|(yue=9)if(ri=31)ri=0;if(ri0)ri=30; if(FW=0) while(FW=0) xianshi(); break; if(XQ=0) /星期调整 while(1) xianshi(); if(NN=0) while(NN=0) xianshi();28 xingqi+;

47、if(xingqi=8)xingqi=0; if(SS=0) while(SS=0) xianshi(); xingqi-; if(xingqi0)xingqi=7; if(FW=0) while(FW=0) xianshi(); break; if(NL=0)/闹铃 while(1)xianshi();if(SS=0) / 时调整 while(1) xianshi(); if(NN=0) while(NN=0) xianshi(); ns+; if(ns=24)ns=0; if(YY=0) while(YY=0) xianshi(); ns-; if(ns0)ns=23; if(FW=0)

48、while(FW=0) xianshi(); break; if(FF=0) /闹铃分调整 while(1)29 xianshi(); if(NN=0) while(NN=0) xianshi(); nf+; if(nf=60)nf=0; if(YY=0) while(YY=0) xianshi(); nf-; if(nf0)nf=59; if(FW=0) while(FW=0) xianshi(); break; if(MM=0) /闹铃秒调整 while(1) xianshi(); if(NN=0) while(NN=0) xianshi(); nm+; if(nm=60)nm=0; if

49、(FF=0) while(FF=0) xianshi(); nm-; if(nm4)|(temp_data1&0 x0f)7)xingqi=0;if(xingqi0)xingqi=7;/限制星期 if(yue=1)|(yue=3)|(yue=5)|(yue=7)|(yue=8)|(yue=10)|(yue=11)|(yue=12)/限制日 if(ri=32)ri=0;yue+;if(ri0)ri=31;yue-; if(nian/4=0)&(nian/100=0)if(yue=2)if(ri=30)ri=0;yue+;if(ri0)ri=29;yue-;/考虑闰年 else i

50、f(yue=2)if(ri=29)ri=0;yue+;if(ri0)ri=28;yue-; /平年 2 月28 天,闰年 29 天 if(yue=4)|(yue=6)|(yue=9)if(ri=31)ri=0;yue+;if(ri0)ri=30;yue-; if(yue=13)yue=0;nian+;if(yue0)yue=12;nian-; /限制月 if(nian=10000)nian=0;if(nian0)nian=9999; /限制年 1.81.8 参考文献参考文献1 张专成 赵怀勋.单片机测控系统中的监视定时器.武警技术学院.Mar 19972 张景元.基于单片机的多用途定时器的设计

51、与实现.电子工程师 2000 年第 8期3 何业军 李超.基于单片机控制的高精度定时打铃器的设计.电子技 术.2001 年第 7 期 4 关宗安 仲丛久.基于单片机实现的多路定时控制器的设计.沈阳航空工业 学院学报.2004 年 6 月.第 21 卷第 3 期 5 范立南.单片微机接口与控制技术.沈阳:辽宁大学出版社.1996 6 张友德.单片微型机原理、应用与实践.上海:复旦大学出版社.19927李华.MCS-51 系列单片机实用接口技术,北京:北京航空航天大学出版 社.1993 8何希庆,高伟.MCS-51 单片机原理、实验、实例M.山东:山东大学出版 社.1989 9胡汉才.单片机原理及

52、接口技术M,北京:清华大学出版社.1996341.91.9 总结总结通过三周的课程设计的学习,作品的完成已经接近尾声,关于多功能数字钟的学习以及应用有了基本的大概。对于89S52、DS1302、18B20、LCD1302、等芯片的硬件以及软件编程的使用,有了一个整体大概的全面认识。数字钟的完成,不仅在硬件上有了更好的了解,在软件编程方面更是有了较大的学习突破,程序的编写、修改、完善。通过此次课程设计加强了团队的合作精神,我们彼此之间配合的很默契,彼此鼓励,很好的处理我们在过程中遇到的问题,同时也还有其他同学的帮助,经过不懈的努力,虽然没有理想中的完美,但是我们在过程中学到了东西,最终还是完成的

53、彼此都很满意,通过这次单片机课程设计,不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且还学会了如何去培养创新精神,从而不断地战胜自己,超越自己。创新可以是在原有的基础上进行改进,使之功能不断完善,成为真己的东西。26 参考文献 1丁跃军.单片机基础教程.北京:北航大学出版社,20042 张鑫、华臻、等单片机原理及应用M电子工业出版社,20053 李群芳,肖看.单片机原理接口与应用.北京:清华大学出版社,20054 高峰.单片微型应用系统设计及实用技术.北京:机械工业出版社,20045 丁元杰、吴大伟单片微机实题集与实验指导书M机械工业出版社, 20042.72.7 小结小结通过

54、这次课程设计,我们的最大的收获就是自己的动手能力和独立解决问题的能力得到了很大的提高,也充分体会到了自己设计东西的乐趣、学会查阅资料和对别人的东西融会变通的重要性,也明白了很多知识光靠趴在书本上学是学不到其中的精髓的,必须亲自试着实践,亲自经历才能对它有真正的掌握,凡是都要自己动手下,去实践一下,遇到困难,永远不要气馁。在动手过程中,不仅能增强实践能力,而且在理论上可以有更深的认识。我们的课题设计是一个单片机控制系统。开始时对课题很陌生,不知从何入手,只能通过查阅资料对其有所料解。通过队员之间的互相探讨,我们的思路逐渐清晰,开始向更深层次着手。首先根据任务要求设计出原理图,并使用 Protel

55、 DXP 软件进行绘图,认真修改之后,使其准确无误。以致最后我们的作品的完成。虽然不是很完美,但是在我们的能力范围之内还有了新的创意,这次设计给了我们团队极大的鼓舞与信心,相信在以后的学习中可以通过不断的摸索和实践来提高其他方面的知识,为以后的应用更加有认知。35各人总结各人总结张要可张要可 1818在本次课程设计开始时我就希望能通过这次课程设计学习到尽可能多的知识. 此次课程设计与之前一样有分组,一个课题,三个人完成。这应该是老师为了更好的锻炼我们提高我们的综合能力。所以在设计中遇到了很多的难题,首先就是电路的设计,我们小组初步自己定的设计要求一个 12 进制或 24 进制的具有时、分、秒计

56、时功能的数字钟,并要求能进行时、分、秒调整,设置闹铃功能。在方案的选择上就出难题了通过查资料找老师讲解自己实验后终于把总体模块电路图制出来写报告到没有多大的难题很顺利的完成,其实不管怎样,这些都是一种锻炼,一种知识的积累,能力的提高。经过这次设计,自己对电路设计有了一些体会。首先对各个原件就要有一定的了解,在设计电路的时候才能游刃有余。虽然我们用的芯片比较简单,但是我还学会了一些其他芯片的用法,更进一步地熟悉了芯片的结构及掌握了各芯片的工作原理和其具体的使用方法。 在连接十进制六十进制的进位及二十四进制的接法中要求熟悉逻辑电路及其芯片各引脚的功能那么在电路出错时便能准确地找出错误所在并及时纠正

57、了. 在设计电路的连接图中出错的主要原因都是接线和芯片的接触不良以及接线的错误所引起的. 而且焊接的时候要注意虚焊问题。 通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力。由于时间的紧缺,并没有做到最好,但是我已然在努力的学习了。相信以后我会以更加积极地态度对待学习、对待生活。我们的激情永远不会结束,相反,我们会更加努力,努力的去弥补自己的缺点,发展自己的优点,去充实自己,只有在了解了自己的长短之后,我们会更加珍惜拥有的,更加努力的去完善它,增进它。只有不断的测试自

58、己,挑战自己,才能拥有更多的成功和快乐!快乐至上,享受过程,而不是结果!认真对待每一个过程,珍惜每一分一秒,学到最多的知识和方法,锻炼自己的能力,这个是我在此次课程设计上学到的最重要的东西,也是以后的一笔宝贵的财富。总的来36说,这次的多功能数字钟设计还是比较成功的,在设计中遇到了很多问题,最后在同学之间的互相帮助下,终于游逆而解,有点小小的成就感,终于觉得平时所学的知识有了实用的价值,达到了理论与实际相结合的目的,不仅学到了不少知识,而且锻炼了自己的能力,使自己对以后的路有了更加清楚的认识,同时,对未来有了更多的信心。李艳春李艳春 2222经过三周的单片机课程设计,在老师的指导下我们成功的完成了多功能数字钟的设计。两个星期前我们对单片机是知之甚少,我们首先从任务要求出发,分析如何实现功能,然后分成几个模块,将每个模块设计好再进行整体设计,然后进行焊接和调试。虽然在整个设计过程中我们遇到了很多问题,但通过我们三个人的分工,查找资料,调试,不断的调整设计思路,最终完成了课程设计的所有要求。这次课程设计让我自己对于学习单片机有了更进一步的了解,通过实际的操作,将书上所学的理论知识与实物运用相结合,经过自己不断的摸索,改进,从中学到了很多实际知识。在本次设计的过程中,我们发现了很多问题,虽然以前还做过这样的设计但这次设

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论