基于单片机的数字时钟系统毕业设计

上传人:仙*** 文档编号:30431435 上传时间:2021-10-10 格式:DOC 页数:34 大小:216KB
收藏 版权申诉 举报 下载
基于单片机的数字时钟系统毕业设计_第1页
第1页 / 共34页
基于单片机的数字时钟系统毕业设计_第2页
第2页 / 共34页
基于单片机的数字时钟系统毕业设计_第3页
第3页 / 共34页
资源描述:

《基于单片机的数字时钟系统毕业设计》由会员分享,可在线阅读,更多相关《基于单片机的数字时钟系统毕业设计(34页珍藏版)》请在装配图网上搜索。

1、辽东学院毕业论文基于单片机的数字时钟系统学生姓名: 学 号: 0943100223 班 级: Z1002 专 业: 计算机应用控制 指导教师: 【摘要】 目前,单片机在朝着高性能和多品种的方向发展的同时也进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。 单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛地使用。 数字钟是采用数字电路实现对时、分、秒,数字显示的计时装置,广泛用于个人家庭,车站,码头、办公室等公共场所,成为人们日常生

2、活中不可少的必需品,由于数字集成电路的发展和石英振荡器的广泛应用,使得数字钟的精度远远超过老式钟表,钟表的数字化给人们生产生活带来了极大地方便,而且大大地扩展了钟表原先的报时功能。诸如定温自动报警、校温度自动打铃、时间程序自动控制、定温度大小限度、自动启闭路灯、定时开关烘箱、通断动力设备,甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用有着非常现实的意义。关键词:单片机 DS1302 LCD1602 数字钟 温度传感器 【Abstract】At present, the monolithic integrated circuit while is

3、further also turning toward CMOS, the low power loss and small volume, the large capacity and high performance, the low price and peripheral circuit internal installation toward the directions of high performance and multi-production develop and other aspects develops.What in the monolithic integrat

4、ed circuit module is most common is the digital clock, when the digital clock is one kind with digital circuitry technical actualization, divides, the installment of second time , compared to have a higher accuracy and intuitive with the mechanical clock, and not mechanism, has longer service life,

5、therefore obtained widely has used. When the digital clock is uses the digital circuitry realizes, divides, second, the timing unit of digital, widely is used in the individual household, the station, the wharf, office and so on public places, become in the people daily life the necessary essential

6、item, as a result of the development and widespread application of quartz of oscillator digital integrated circuit, making the precision of digital clock go far beyond the old style clock and watch, the digitization of clock and watch the livelihood to bring enormously conveniently to the people, mo

7、reover significantly expanded the clock and watch original reporting time function. Such as constant temperature auto-alarm and school temperature hit the bell and time sequencing automatic control, to decide the temperature big or medium limit, automatically opening and closing the street light and

8、 time cut-out drying oven and make-and-break power equipment automatically, even various fixed time electricities begins using and so on automatically, all these, take the clock and watch digitization as the foundation. Therefore, studies the digital clock and expands its application to have very re

9、alistic significance.Keywords:Single-chip DS1302 digital temperature sensor2 目 录绪论1第一章 AT89C51单片机的基本结构和工作原理21.1 AT89C51单片机的主要工作特性2第二章 原理、结果与分析52.1设计方案原理与设计特点分析52.2 DS1302时钟采集模块5 2.2.1 电路原理图与DS1302 分析5 2.3 按键处理模块62.4 LCD显示模块72.4.1 LCD显示模块电路原理图72.4.2 LCD1602的指令说明及时序92.5温度采集模块122.5.1 温度采集显示模块子程序流程图13 2

10、.5.2 DS18B20与微处理器的接口技术14第三章 系统原理图和系统程序流程图173.1 系统原理图173.2 系统程序流程图18第四章 性能分析194.1性能分析19第五章 设计结论以及体会215.1 设计结论215.2 设计心得21第六章 系统程序23参考文献323绪论时间在我们生活中有着不可替代的作用,它可以为我们清晰的记录下制作从开始到结束所需要的时间。时间对人们来说总是宝贵的,工作的忙碌性和繁荣性容易使人忘记当前时间,忘记了要做的事情。当事情不重要的时候,这种遗忘无伤大雅,但是一旦事情重要,一时的耽误可能酿成大祸。例如,许多火灾都是由于人们遗忘而发生的,而时间和温度的重要性在医院

11、、冶金、化工、食品、机械、石油等工业中,更是去足轻重。而现在钟表数字化给人们的生活带来了极大的方便,成为了人们必不可少的必需品。广泛用于个人家庭、车站、码头、剧场办公室等公共场所,给人们的生活、学习、工作、娱乐带来了极大方便。第一章 AT89C51单片机的基本结构和工作原理1.1 AT89C51单片机的主要工作特性:内含4KB的FLASH存储器,擦写次数1000次;内含28字节的RAM;具有32根可编程I/O线;具有2个16位可编程定时器;具有6个中断源、5个中断矢量、2级优先权的中断结构;具有1个全双工的可编程串行通信接口;具有一个数据指针DPTR;两种低功耗工作模式,即空闲模式和掉电模式;

12、具有可编程的3级程序锁定定位;AT89C51的工作电源电压为5(10.2)V且典型值为5V,最高工作频率为24MHz.AT89C51各部分的组成及功能如图1:P0 P1 P2 P3TXD外部中断RXD扩展控制振荡器和时钟电路数据存储器128字节程序存储器14KBCPU两个16位定时器计数器中断控制总线扩展控制器并行可编程I/O口可编程串行口内部总线图1 AT89C51各部分的组成AT89C51的工作原理:1. 引脚排列及功能AT89C51的封装形式有PDIP,TQFP,PLCC等,现以PDIP为例。 (1)I/O口线 P0口 8位、漏极开路的双向I/O口。当使用片外存储器及外扩I/O口时,P0

13、口作为低字节地址/数据复用线。在编程时,P0口可用于接收指令代码字节;程序校验时,可输出指令字节。P0口也可做通用I/O口使用,但需加上拉电阻。作为普通输入时,应输出锁存器配置1。P0口可驱动8个TTL负载。P1口 8位、准双向I/O口,具有内部上拉电阻。 P1口是为用户准备的I/O双向口。在编程和校验时,可用作输入低8位地址。用作输入时,应先将输出锁存器置1。P1口可驱动4个TTL负载。P2 8位、准双向I/O口,具有内部上拉电阻。 当使用外存储器或外扩I/O口时,P2口输出高8位地址。在编程和校验时,P2口接收高字节地址和某些控制信号。P3 8位、准双向I/O口,具有内部上拉电阻。 P3口

14、可作为普通I/O口。用作输入时,应先将输出锁存器置1。在编程校验时,P3口接收某些控制信号。它可驱动4个TTL负载。(2)控制信号线 RST 复位输入信号,高电平有效。在振荡器稳定工作时,在RST脚施加两个机器周期以上的高电平,将器件复位。 EA/VPP 外部程序存储器访问允许信号EA.当EA信号接地时,对ROM的读操作限定在外部程序存储器,地址为0000H-FFFFH;当EA接VCC时,对ROM的读操作从内部程序存储器开始,并可延续至外部程序存储器。在编程时,该引脚可接编程电压5V或12V。在编程校验时,该引脚可接VCC。 PSEN 片外程序存储器读选通信号PSEN,低电平有效。在片外程序存

15、储器取指期间,当PSEN有效时,程序存储器的内容被送至P0口;在访问外部RAM时,PSEN 无效。 ALE/PROG 低字节锁存信号ALE.在系统扩展时,ALE的下降沿将P0口输出的低8位地址锁存在外接的地址锁存器中,实现低字节地址和数据分时传送。 (3)外部晶振引线 XTAL1 片内振荡器反向放大器和时钟发生线路的输入端。使用片内振荡器时,连接外部石英晶体和微调电容。XTAL2 片内振荡器反相放大器的输出端。当使用片内振荡器时,外接石英晶体和微调电容。2. 存储器组织和特殊功能寄存器AT89C51的存储器将程序存储器和数据存储器分开,并有各自的存储空间和访问指令。它有4个存储空间:片内存储器

16、、片外存储器、片内数据存储器及片外存储器。第二章 原理、结果及分析2.1、设计方案原理与设计特点分析电子钟总的设计模块:温度采集模块按键处理模块89C51CPU控制模块DS1302时钟采集模块LCD显示模块图2 系统硬件设计框图主控芯片使用51系列STC89C52单片机,时钟芯片使用美国DALLAS公司推出的一种高性能、低功耗、带RAM和内置电池的实时时钟DS12887。采用DS12887作为主要计时芯片,可以做到计时准确。更重要的是,DS12887可以在外部电源断电的情况下继续计时,在没有外部供电的情况下,DS12887可以连续计时10年以上。系统由主控制器STC89C52、时钟芯片DS13

17、02、LCD液晶显示电路、键扫描电路和通信系统模块电路组成。系统硬件设计框图如图2所示。2.2 DS1302时钟采集模块:2.2.1电路原理图与DS1302分析:图3 电路原理图首先DS1302是DALLAS公司推出的涓流充电时钟芯片。内含有一个实时时钟/日历和31字节静态RAM通过简单的串行接口与单片机进行通信实时时钟/日历电路提供秒分时日日期月年的信息每月的天数和闰年的天数可自动调整时钟操作。DS1302芯片广脚介绍:X1、X2为32.768KHz晶振管脚。GND 为地。RST复位脚。I/O数据输入/输出引脚。SCLK串行时钟。Vcc1,Vcc2电源供电管脚。与单片机连接的信号线为: DS

18、1302_SCLK 接P20; 实时时钟时钟线引脚 DS1302_IO 接P24; 实时时钟数据线引脚 DS1302_RST 接P21; 实时时钟复位线引脚特别注意DS1302芯片在读取或写入数据时,都是一位一位传送的,并且每传送一位,SCLK信号线要有一个负跳变。即单片机对SCLK咬先送高电平,再送低电平。数据时通过IO进行传送的。因为DS1302芯片在读取或写入数据时,都是一位一位传送的,并且每传送一位,SCLK信号线要有一个负跳变。所以在对DS1302具体某地址进行一字节数据的写入或读取时,都要调用实时时钟写入一字节(内部函数) DS1302InputByte和实时时钟读取一字节(内部函

19、数) DS1302OutputByte两个函数。2.3按键处理模块图4 按键连线图其中按键1为模式键,按键2为加1键,按键3为减1键。与单片机连线如下:key0连接P10; /设定修改位数 key1连接P11; /加键key2连接P12; /减键Key0键是否按下将key0按键次数存放于变量key0_num中Key0_num=5?Key0_num=1?Key0_num=2?Key0_num=4?Key0_num=3? 否 否 否 否 是 是 是 是 是Key0_num=6? 否 移动光标,并返回 是图5 按键扫描子程序流程图按键调整程序模块是用来调整时间的,当P10按键按下时进入温度调整界面,

20、再按P11和P12就会依次改变要调整的参量,依次调整的参量为温度最大值和最小值的加减。当选择好了要调整的位后再按传感器上的温度值就会实现相应位的加一操作,按减值就会实现相应位的减一操作。当调整完毕之后,再按P14键就会返回时间显示界面,从刚才调整好的时间开始显示、计时。其流程图如图5所示。2.4 LCD显示模块2.4.1 LCD显示模块电路原理图图6 LCD1602图6分析:1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表1所示:表1:引脚接口说明表编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数

21、据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高

22、电平R/W为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极。2.4.2 LCD1602的指令说明及时序1602液晶模块内部的控制器共有11条控制指令,如表2所示:表2:控制命令表序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L*6置功能00001DLNF*7置字符发生存贮器地址0001字符发生存贮器地

23、址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01BF计数器地址10写数到CGRAM或DDRAM)10要写的数据内容11从CGRAM或DDRAM读数11读出的数据内容1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)指令1:清显示,指令码01H,光标复位到地址00H位置。指令2:光标复位,光标返回到地址00H。指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显

24、示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标。指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。指令7:字符发生器RAM地址设置。指令8:DDRAM地址设置。指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令10:写数据。指令11:读数据。与HD44780相兼容的芯片

25、时序表如下:表3:基本操作时序表读状态输入RS=L,R/W=H,E=H输出D0D7=状态字写指令输入RS=L,R/W=L,D0D7=指令码,E=高脉冲输出无读数据输入RS=H,R/W=H,E=H输出D0D7=数据写数据输入RS=H,R/W=L,D0D7=数据,E=高脉冲输出无读写操作时序如图7和8所示:图7 读操作时序图8 写操作时序在初始化过程中,要反复调用到write_com函数,此函数实现向lcd写入命令的功能。要特别注意写命令和写数据的RS、RW、EN时序问题。液晶显示器是一种功耗极低的被动式显示器件,1602广脚介绍:D0D7数据传送引脚,VSS为接地线,VDD为电源线,VEE为 L

26、CD驱动电压调节,由此可以调节显示亮度。RS(数据/命令选择端H/L)为寄存器选择信号,高电平选择数据寄存器,低电平选择指令寄存器。RW为读写控制信号,高电平读,低电平写。EN使能信号,读状态下高电平有效,写状态下下降沿有效。读状态 输入:RS=L,R/ W=H, E=H 输出:D0D7=状态字。读数据 输入:RS=H,R/W=H, E=H 输出:无。写数据 输入:RS=L,R/W=L,D0D7=指令码,E=高脉冲 输出:D0D7=数据:写数据 输入:RS=H, R/W=L, D0D7=数据, E=高脉冲 输出:无。 RS连接P25; 寄存器选择信号RW连接P26; 读写控制信号线EN连接P2

27、7; 使能信号线写指令0x38,显示模式设置 写指令,显示光标写指令,光标移动控制高低温度 图9 LCD初始化程序流程图2.5温度采集显示模块图10 DS182O温度传感器原理图DS182O数字温度计提供 9 位(二进制)温度读数,指示器件的温度、信息经过单线接口送入DSl820 或从DS182O送出。因此从主机CPU到DS182O仅需一条线(和地线) ,DSl820的电源可以由数据线本身提供而不需要外部电源。DS182O广脚说明:VCC为电源线,DQ为数据线,GND为地线。数据线DQ与单片机P23相连接。2.5.1温度采集显示模块子程序流程图:直接向18b20发送温度变换命令读取温度寄存器的

28、温度值读高八位读低八位进行读取数据处理,得出温度存放于变量temp中 图11 DS182O温度传感器流程图在图11流程图中,要特别注意初始化,写和读取数据时的时序处理。首先,初始化中,主机总线先发送一复位脉冲(最短为 480us 的低电平信号),接着刻释放总线并进入接收状态。 DSl8b20在检测到总线的上升沿之后,等待 15-60us,接着DS18b20发出存在脉冲(低电平 持续 60-240 us)。写数据时序:当主机总线先从高拉至低电平时,就产生写时间隙。读书序: 主机总线先从高拉至低电平时,总线只须保持低电平l7ts之后,再将总线拉高,产生读时间隙。每一片DSl8B20在其ROM中都存

29、有其唯一的64地址位序列号,在出厂前已写入片内ROM 中。主机在进入操作程序前必须用读ROM(33H)命令将该DSl8B20的序列号读出。 DS18B20的测温原理如图11所示。低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55 所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存

30、器被预置在-55 所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。2.5.2 DS18B20与微处理器的接口技术1.DS18B20与单片机的链接有两种方法,如图10所示:一种是VDD接外部电源,GND接地,I/O与单片机的任一条I/O线相连;另一种是用寄生电源供电,此时VDD、GND并联接地,I/O接单片机的任一条I/O。无论是内

31、部寄生电源供电还是外部供电,I/O接口都要接漏极开路或三态输出以提高负载驱动能力。本设计采用寄生电源供电模式,I/O口接5K左右的上拉电阻。实际应用中,DS18B20可以距单片机150m远,测量数据不会产生误差,在同一条数据总线上可以并接许多片DS18B20实现多路温度采集。2.DS18B20控制命令(1)暂存器命令 访问DS18B20的暂存器共有6条命令,如表4所示。表4 DS18B20暂存器命令指令约定代码操作说明温度变换44H启动DS18B20进行温度转换,转换时间最长为500MS,结果存入内部9字节RAM中读暂存器0BEH读内部RAM中9字节的内容写暂存器4EH发出向内部RAM的第3,

32、4字节写上、下限温度数据命令,紧跟读命令之后,是传送两字节的数据复制暂存器48H将E2PRAM中第3,4字节内容复制到E2PRAM中重调E2PRAM0BBH将E2PRAM中内容恢复到RAM中的第3,4字节读 供 电方 式0B4H读DS18B20的供电模式,寄生供电时DS18B20发送“0”,外接电源供电DS18B20发送“1”(2)对ROM的5种操作命令 。如表5所示:读ROM命令(代码为33H):该命令允许主CPU读取DS18B20中的8位产品序列编号、48位产品序列号及8位CRC值。该命令值适用于总线上只挂接一片DS18B20,对总线上挂有多片DS18B20时不适用。符合ROM命令(代码为

33、55H):该指令适合在一条总线上挂接多片DS18B20的情况。具体应用是这样的,主CPU先向总线发这条命令,然后再发64位的ROM数据。再总线上,只有符合所发的64位ROM的DS18B20才有操作权。寻找ROM命令(代码为F0H):命令用于对连在单总线上的多个DS18B20进行初始化操作。跳过ROM命令(代码为CCH):命令用于对总线上的报警器进行寻找,其用法与寻找ROM一样。寻找报警命令(代码为ECH):命令用于对总线上的报警器进行寻找ROM一样。表5 ROM操作命令指令约定代码操作说明读ROM33H读DS18B20 ROM中的编码符合ROM55H发出此命令之后,接着发出64位ROM编码,访

34、问单线总线上与该编码相对应的DS18B20 使之作出响应,为下一步对该DS18B20的读写作准备寻找ROM0F0H用于确定挂接在同一总线上DS18B20的个数和识别64位ROM地址,为操作各器件作好准备跳过ROM0CCH忽略64位ROM地址,直接向DS18B20发温度变换命令,适用于单片工作。寻找报警命令0ECH执行后,只有温度超过设定值上限或者下限的片子才做出响应 第三章 系统原理图以及系统流程图3.1.1系统原理图图12 系统原理图3.1.2 主程序流程图:初始化lcd重复进行按键扫描移动光标并显示温度low移动光标并显示温度hight移动光标并显示温度从DS1302读取日期和时间初始化D

35、S1302初始化内部定时器 图13 主程序流程图 开始初始化lcd18b02,在初始化内部定时器的数据,运行开始之前使ds1302的时间初始化,在从ds1302里面读出日期和时间,通过键盘键来控制光标的移动来显示温度,显示温度的最高值和最低值,重复按键来控制温度值和复位值,最后来实现本设计的功能。第四章 性能分析4.1性能分析:首先,lcd能够正确的显示DS18B20芯片上面的温度。显示质量高由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器(CRT)那样需要不断刷新新亮点。因此,液晶显示器画质高且不会闪烁。数字式接口液晶显示器都是数字式的,和单片机系

36、统的接口更加简单可靠,操作更加方便。体积小、重量轻液晶显示器通过显示屏上的电极控制液晶分子状态来达到显示的目的,在重量上比相同显示面积的传统显示器要轻得多。功耗低相对而言,液晶显示器的功耗主要消耗在其内部的电极和驱动IC上,因而耗电量比其它显示器要少得多。其次,可以通过三个按键: Key0,Key1,和Key2键对lcd进行温度和温度报警上下限的调整。按Key0键进行光标移动,可以分别对温度上下限的调动,使其达到自己想要报警的温度,调动时光标会跳动要修改的。按Key1键是对闪烁位进行加一的操作。按Key2键是对闪烁位进行减一的操作。多次按Key0键,当全部闪烁位全闪烁完毕时,就可以退出调整模式

37、。DS1820这一部分主要完成对温度信号的采集和转换工作,由DS18B20数字温度传感器及其与单片机的接口部分组成。DS18B20智能温度温度传感器进行温度采集和转换输出数字型的温度值,然后通过数据引脚传到单片机的P1.1口,单片机接受温度并存储。DS18B20是美国DALLAS半导体公司最新推出的一种单线智能温度传感器,属于新一代适配微处理器的智能温度传感器,它可将温度信号直接转换为数字信号,实现了与单片机的直接接口,从而省去了信号调理和A/D转换等复杂模/数转换电路。第五章 设计结论以及体会5.1设计结论:1、在该电子钟的设计中或调整温度时采用了闪烁,在编程上,首先进行了初始化定义了程序的

38、入口地址,在主程序的开始定义了一组固定单元用来存储计数的秒,分,时以及定时时间的序号等。其次,时,分,秒显示用了软件译码(查表)的方式,再用了一段固定的程序段进行进制转化。最后,用查询方式对按键进行判断,若有键按下,则进行软件延时消抖,避免了抖动引起的干扰,执行相应的定时,选时或调时程序段。对当前时间或定时时间修改后又返回到最初的显示程序段,如此循环下去。2、在硬件上,选用DS18B20,LCD1602相结合,首先DSB1820内含有一个实时温度传感器,通过简单的串行接口与单片机进行通信实时温度电路提供温度的信息每次的温数和闰年的天数可自动调整时钟操作,这样读取数据简单。其次,选用LCD160

39、2进行显示时,数据位串行输入,接口连线少,低功耗,显示清晰。3、proteus是一个非常好用的仿真软件,其具有强大的电路原理图绘制功能,且可以实现模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统仿真、键盘、LCD系统仿真等多种功能;和keil联合使用时可以检测所编写的程序的正确与否。5.2设计心得:1、通过本次实验,因为之前接触到的电子系统设计不多,所以一开始,感觉难以入手,就算上网载了很多程序,也看不懂。后来请求同学的帮助,了解了要对各种芯片编写程序时首先应找到该芯片的数据手册,根据数据手册上的说明、时序要求及流程图编写对应程序。2、其次,再次巩固了Keil C51工程文件的建立,程

40、序编写以及编译的掌握程度。最重要的是,因为只是水平有限,要自己编写C程序很难,但在此实验中,最大的收获莫过于看懂别人的程序,分析之后,自己拼凑编写以实现不同的功能。并且掌握了51C程序的编写过程。3、掌握了Proteus的使用方法,从实际操作中认识到Proteus在仿真方面的优越性,激发了自己学习Proteus的兴趣。第六章 系统程序#include#define uchar unsigned char#define uint unsigned intsbit DQ=P23;/ds18b20与单片机连接口sbit show=P24;sbit RS=P25;sbit RW=P26;sbit EN

41、=P27;/sbit beep=P07;sbit deng=P34;sbit key0=P30;sbit key1=P31;sbit key2=P32;uint h_temp=29;/定义温度上限值uint l_temp=10;/定义温度下限值uchar code table=temp: ;uchar code table1=high:;uchar code table2=low:;uchar data disdata5;uchar num,flag,k0,k1,k2;uchar flagdat;uint tvalue;/温度值uchar tflag;/温度正负标志/*延时程序*/void d

42、elay(uint x)uint i,j;for(i=x;i0;i-)for(j=110;j0;j-);/*lcd1602程序*/void w_com(uchar com) /写状态RW=0;RS=0;P0=com;delay(5);EN=1;delay(5);EN=0;void w_dat(uchar dat) /写数据RW=0;RS=1;P0=dat;delay(5);EN=1;delay(5);EN=0;void w_temp(uchar add,uchar dat)/写(调)温度值上下限uchar shi,ge;shi=dat/10;ge=dat%10;w_com(0x80+0x40+

43、add);w_dat(0x30+shi);w_dat(0x30+ge);void init_play() /显示初始化P0=0x00;EN=0;w_com(0x38); /设置显示模式w_com(0x0c); /开显示,关光标w_com(0x06); /数据指针自动加1w_com(0x01); /清屏w_com(0x80); /写第一行for(num=0;num11;num+) /写temp:w_dat(tablenum);delay(5); w_com(0x80+0x40); /写第二行for(num=0;num5;num+)w_dat(table1num); /写high:delay(5)

44、;w_com(0x80+0x40+8);for(num=0;num0;i-) DQ = 0; /给脉冲信号 dat=1; DQ = 1; /给脉冲信号 if(DQ) dat|=0x80; delay_18B20(10); return(dat);void ds1820wr(uchar wdata)/*写数据*/unsigned char i=0; for (i=8; i0; i-) DQ = 0; DQ = wdata&0x01; delay_18B20(10); DQ = 1; wdata=1; read_temp()/*读取温度值并转换*/uchar a,b;ds1820rst(); ds

45、1820wr(0xcc);/*跳过读序列号*/ds1820wr(0x44);/*启动温度转换*/ds1820rst(); ds1820wr(0xcc);/*跳过读序列号*/ds1820wr(0xbe);/*读取温度*/a=ds1820rd();b=ds1820rd();tvalue=b;tvalue=8;tvalue=tvalue|a; if(tvalue0x0fff) tflag=0; else tvalue=tvalue+1;tflag=1; tvalue=tvalue*(0.625);/温度值扩大10倍,精确到1位小数return(tvalue);/* 温度显示*/void ds1820

46、disp()/温度值显示 disdata0=tvalue/1000+0x30;/百位数 disdata1=tvalue%1000/100+0x30;/十位数 disdata2=tvalue%100/10+0x30;/个位数 disdata3=tvalue%10+0x30;/小数位 if(tflag=0) flagdat=0x20;/正温度不显示符号 else flagdat=0x2d;/负温度显示负号:- if(disdata0=0x30) disdata0=0x20;/如果百位为0,不显示 if(disdata1=0x30) disdata1=0x20;/如果百位为0,十位为0也不显示 w_

47、com(0x86); w_dat(flagdat);/显示符号位 w_com(0x87); w_dat(disdata0);/显示百位 w_com(0x88); w_dat(disdata1);/显示十位 w_com(0x89); w_dat(disdata2);/显示个位w_com(0x8a);w_dat(.);w_com(0x8b); w_dat(disdata3);/显示个位/*温度处理*/void deal(uint t)uchar i;if(t=h_temp) /判断温度值,大于上限时,声光报警/beep=1;deng=1;else i=40;while(i-)/beep=0; /关

48、蜂鸣器deng=0; /灯灭void keyscan() / uchar i=0;if(key0=0) /调上下限移位键delay(10);if(key0=0)k0+;while(key0=0);if(k0=0)deal(tvalue);switch(k0)case 1:flag=1;w_com(0x80+0x40+6);w_com(0x0f); /闪烁 break;case 2:flag=1;w_com(0x80+0x40+13);w_com(0x0f);/闪烁 break;case 3:k0=0;flag=0;w_com(0x0c);/关闪烁 break; if(k0=1)if(key1=

49、0) /加建delay(10);if(key1=0)h_temp+;if(h_temp=99)h_temp=29;w_temp(5,h_temp);w_com(0x10); /光标移动 while(key1=0);if(key2=0)delay(10);if(key2=0)h_temp-;if(h_temp=0)h_temp=29;w_temp(5,h_temp);w_com(0x10); while(key2=0);if(k0=2)if(key1=0) /减键delay(10);if(key1=0)l_temp+;if(l_temp=99)l_temp=23;w_temp(12,l_temp

50、);w_com(0x10); /光标移动 while(key1=0);if(key2=0)delay(10);if(key2=0)l_temp-;if(l_temp=0)l_temp=23;w_temp(12,l_temp);w_com(0x10); while(key2=0); void main()init_play();/初始化显示 while(1)show=0;read_temp();/读取温度if(k0=0)deal(tvalue/10);/温度处理/else/beep=1;if(flag=0) ds1820disp();/显示keyscan();/扫描按键 参考文献1杨素行,微型计算机系统原理及应用,清华大学出版社, 2004年2月2黄继昌,电子元器件应用手册,人民邮电出版社 ,2004年7月2 康华先,电子技术基础(数字部分) 第五版,北京, 高等教育出版社, 2006年1月4马家辰.MCS-51单片机原理及接口技术.哈尔滨工业大学出版社, 19975胡汉才.单片机原理与应用.清华大学出版社6何金田.传感器原理与应用课程设计指南.哈尔滨工业大学出版社 7 卢宝良.单片机系统的可靠性措施.微型机与应用M.1996:111235.8周继明 .传感技术与应用.中南大学出版社9黄贤斌 .传感器原理与应用(第二版). 高等教育出版社/电子科技大学出版社 10 大连理工

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!