ImageVerifierCode 换一换
格式:DOCX , 页数:42 ,大小:626.56KB ,
资源ID:20644388      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20644388.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(温度显示闹钟功能的电子日历设计文档格式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

温度显示闹钟功能的电子日历设计文档格式.docx

1、最下边的一个按键是闹钟的设置按键。硬件设计 DS1302简介: DS1302是美国DALLAS公司推出的一种高性能、低功耗的实不时钟芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。实不时钟可提供秒、分、时、日、礼拜、月和年,一个月小与31天时能够自动调整,且具有闰年补偿功能。工作电压宽达。采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后背电源进行涓细电流充电的能力。各引脚的功能为:Vcc1:主电源;Vcc2:备份电源。当Vcc2Vcc1+时,由Vcc2向DS1302供电,当Vcc2 Vcc1时,

2、由Vcc1向DS1302供电。SCLK:串行时钟,输入,控制数据的输入与输出;I/O:三线接口时的双向数据线;CE:输入信号,在读、写数据期间,必需为高。该引脚有两个功能:第一,CE开始控制字访问移位寄放器的控制逻辑;第二CE提供结束单字节或多字节数据传输的方式。DS1302有下列几组寄放器:DS1302有关日历、时刻的寄放器共有12个,其中有7个寄放器(读时81h8Dh,写时80h8Ch),寄存的数据格式为BCD码形式,DS1302有关日历、时刻的寄放器DS1302的寄放器和控制命令日历、时刻寄放器及控制字如下表所示:寄存器名称7 6 5 4 3 2 1 0 RAM/CK A4 A3 A2A

3、1 A0 RD/W 秒寄存器分寄存器 小时寄存器 日寄存器 月寄存器 DS18B20简介:DALLAS最新单线数字温度传感器DS18B20简介新的一线器件体积更小、适用电压更宽、更经济 Dallas 半导体公司的数字化温度传感器DS1820是世界上第一片支持 一线总线接口的温度传感器。一线总线独特而且经济的特点,利用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。测量温度范围为 -55C+125C,在-10+85C范围内,精度为C。DS1822的精度较差为 2C 。现场温度直接以的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或进程控制、测温类

4、消费电子产品等。DS18B20的特性:DS18B20能够程序设定912位的分辨率,精度为可选更小的封装方式,更宽的电压适用范围。分辨率设定,及用户设定的报警温度存储在EEPROM中,掉电后仍然保留。1. DS18B20的新性能 (1)可用数据线供电,电压范围:; (2)测温范围:-55+125,在-10+85时精度为; (3)可编程的分辨率为912位,对应的可分辨温度别离为、和; (4)12位分辨率时最多在750ms内把温度值转换为数字; (5)负压特性:电源极性接反时,温度计不会因发烧而烧毁,但不能正常工作。2. DS18B20的外形和内部结构DS18B20内部结构主要由四部分组成:64位光

5、刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的管脚排列如下:引脚概念:(1)DQ为数字信号输入/输出端;(2)GND为电源地;(3)VDD为外接供电电源输入端(在寄生电源接线方式时接地)。有4个主要的数据部件:(1)光刻ROM中的64位序列号是出厂前被光刻好的,它能够看做是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DS18B20都各不相同,如此就可以够实现一根总线上挂接多

6、个DS18B20的目的。按照DS18B20的通信协议,主机控制DS18B20完成温度转换必需通过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,如此才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待1660微秒左右,后发出60240微秒的存在低脉冲,主CPU收到此信号表示复位成功。ROM指令表:指 令约定代码功 能读ROM33H读DS1820ROM中的编码(即64位地址)符合ROM55H发出此命令之后,接着发出64位ROM编码,访问单总线上与该编码相对应的DS1820使之作出

7、响应,为下一步对该DS1820的读写作准备。搜索ROM0F0H用于确定挂接在同一总线上DS1820的个数和识别64位ROM地址。为操作各器件作好准备。跳过ROM0CCH忽略64位ROM地址,直接向DS1820发温度变换命令。适用于单片工作。告警搜索命令0ECH执行后只有温度超过设定值上限或下限的片子才做出响应。RAM指令表:温度变换44H启动DS1820进行温度转换,转换时最长为500ms(典型为200ms)。结果存入内部9字节RAM中。读暂存器0BEH内部RAM中9字节的内容写暂存器4EH发出向内部RAM的3、4字节写上、下限温度数据命令,紧跟该命令之后,是传送两字节的数据。复制暂存器48H

8、将RAM中第3、4字节的内容复制到EEPROM中。重调EEPROM0B8H将EEPROM中内容恢复到RAM中的第3、4字节。读供电方式0B4H读DS1820的供电模式。寄生供电时DS1820发送“0”,外接电源供电DS1820发送“1”。4. DS18B20工作原理DS18B20的读写时序和测温原理与DS1820相同,只是取得的温度值的位数因分辨率不同而不同,且温度转换时的延不时刻由2s减为750ms。 24C02简介:管脚配置管脚描述管脚名称 功能A0 A1 A2 器件地址选择SDA 串行数据/地址SCL 串行时钟WP 写保护Vcc + 工作电压Vss 地24C02串行时钟输入管脚用于产生器

9、件所有数据发送或接收的时钟这是一个输入管脚。24C02双向串行数据/地址管脚用于器件所有数据的发送或接收SDA 是一个开漏输出管脚可与其它开漏输出或集电极开路输出进行线或wire-ORA0 A1 A2 器件地址输入端这些输入脚用于多个器件级联时设置器件地址当这些脚悬空时默许值为0当利用24WC01 或24WC02 时最大可级联8 个器件若是只有一个24WC02 被总线寻址这三个地址输入脚A0 A1 A2 可悬空或连接到Vss 若是只有一个24WC01 被总线寻址这三个地址输入脚A0 A1 A2 必需连接到Vss,当利用24WC04 时最多可连接4 个器件该器件仅利用A1 A2 地址管脚A0 管

10、脚未用能够连接到Vss 或悬空若是只有一个24WC04 被总线寻址A1 和A2 地址管脚可悬空或连接到Vss,当利用24WC08 时最多可连接2 个器件且仅利用地址管脚A2 A0 A1 管脚未用能够连接到Vss 或悬空若是只有一个24WC08 被总线寻址A2 管脚可悬空或连接到Vss,当利用24WC16 时最多只可连接1 个器件所有地址管脚A0 A1 A2 都未用管脚能够连接到Vss 或悬空。若是WP 管脚连接到Vcc 所有的内容都被写保护只能读当WP 管脚连接到Vss 或悬空允许器件进行正常的读/写操作I2器件寻址主器件通过发送一个起始信号启动发送进程然后发送它所要寻址的从器件的地址8 位从

11、器件地址的高4 位固定为1010 见图5 接下来的3 位A2 A1 A0 为器件的地址位用来概念哪个器件和器件的哪个部份被主器件访问上述8 个CAT24WC01/02 4 个CAT24WC04 2 个 LCD1602简介:1.字符型LCD的引脚概念2.常常利用指令(1)清屏指令功能: 清除液晶显示器,即将DDRAM 的内容全数填入空白的ASCII码20H;2 光标归位,即将光标撤回液晶显示屏的左上方;3 将地址计数器(AC)的值设为0。(2)光标归位指令 把光标撤回到显示器的左上方; 把地址计数器(AC)的值设置为0; 维持DDRAM的内容不变。(3)进入模式设置指令设定每次定入1位数据后光标

12、的移位方向,而且设定每次写入的一个字符是不是移动。参数设定的情形如下所示:位名设置I/D 0=写入新数据后光标左移1=写入新数据后光标右移S 0=写入新数据后显示屏不移动1=写入新数据后显示屏整体右移1个字符(4)显示开关控制指令控制显示器开/关、光标显示/关闭和光标是不是闪烁。参数设定的情况如下:D 0=显示功能关 1=显示功能开C 0=无光标 1=有光标B 0=光标闪烁 1=光标不闪烁(5)设定显示屏或光标移动方向指令使光标移位或使整个显示屏幕移位。参数设定的情形如下:S/C R/L 设定情形0 0 光标左移1格,且AC值减10 1 光标右移1格,且AC值加11 0 显示器上字符全数左移一

13、格,但光标不动1 1 显示器上字符全数右移一格,但光标不动(6)功能设定指令设定数据总线位数、显示的行数及字型。DL 0=数据总线为4位 1=数据总线为8位N 0=显示1行 1=显示2行F 0=57点阵/每字符 1=510点阵/每字符整体软件设计2.3.1、存储单元的分派、标志位的概念 各个所用端口的肯定:sbit DQ = P10; /ds18b20温度传送数据IO口sbit ds1302_rst = P11; /1302复位sbit ds1302_io = P12; /数据输入输出sbit ds1302_sclk= P13; /串行时钟sbit alarm_out = P36;sbit l

14、cd1602_rs = P20; / 1602命令、数据选择sbit lcd1602_rw = P21; / 1602写sbit lcd1602_e = P22; / 1602使能sbit set = P24; /选择按键sbit up = P25; /加sbit down= P26; /减sbit nao = P27; main() lcd1602_init(); ds18b20_init(); ds1302_init(); c02_init(); while(1) if(done=1) keyjpress(); if(done=0) xianshi(); /取得并显示日历和时刻 key_s

15、et_alarm(); alarm_ring(); 整体设计流程图如下具体程序流程图三,结束语在这次课程设计中确实对单片机的理解有了专门大的提高,从纯的理论中能联系到实际中来。专门是对I2C总线的理解有了专门大的进步,在验收中老师提到一个最困扰的问题就是地址问题,咱们的数据是怎么写进去的,写到哪里了,自己对地址的概念有了一个加倍清楚的熟悉。另外,对数据手册的运用也有了必然的熟悉,以前所学的知识大部份只局限到讲义,可是咱们要用到一个芯片,咱们必需要明白它的特性,那么数据手册,就是一个不可缺少的资料。再次,就是这次咱们小组三个人表现出来的合作意识超级不错,也很感想老师所提出的问题,在解决问题进程中

16、也是提高专门快的。四,系统原理图五,程序清单 #include #include #define uchar unsigned char#define uint unsigned intuchar code tabe1=20 - -; /液晶一直显示的字符uchar code tabe2= : uchar code tabe3=Alarm set:uchar miao,fen,shi,nian,yue,ri,week,wendu_shi,wendu_ge,wendu_shu,variate,alarm_shi,alarm_fen,alarm_miao;uchar flag=1,count=0,

17、flag_up=0,flag_down=0,flag_alarm=0,alarm_on,alarm_count=0,done=0;uint wendu;/概念IOsbit ACC0=ACC0;sbit ACC7=ACC7;/延时void delay(uchar x) uchar y,z; for(z=x;z0;z-) for(y=110;yy-);void delay1() _nop_();ds18b20_delay(uchar xus) /延时xus while(xus-);/*ds18b20*/void ds18b20_init() /DS18B20初始化 uchar x=0; DQ=1;

18、 ds18b20_delay(8); DQ=0; ds18b20_delay(80); ds18b20_delay(14); x=DQ; ds18b20_delay(20);void write_onechar(uchar dat) /写一字节 uchar i; for(i=8;ii-) DQ=0; if(dat&0x01=0x01) DQ=1; else DQ=0; ds18b20_delay(5); DQ=1; ds18b20_delay(1); dat=1;uchar read_onechar() /读一字节 uchar value=0,i; value DQ=0; ds18b20_de

19、lay(1); DQ=1; if(DQ=1) value|=0x80; else value&=0x7f; ds18b20_delay(4); return value;uint read_wendu() /DS18B20读温度 uchar a=0,b=0; uint wen=0x0000; /初始化 write_onechar(0xcc); / 跳过读序号列号的操作 write_onechar(0x44); / 启动温度转换 ds18b20_delay(150); /跳过读序号列号的操作 write_onechar(0xbe); /读取温度寄存器等(共可读9个寄存器) 前两个就是温度 b=r

20、ead_onechar(); /读取温度值低位 a=read_onechar(); /读取温度值高位 wen=a; wen=(wenk-) ds1302_io=ACC0; ds1302_sclk=0; /拉低sclk ds1302_sclk=1; /拉高sclk ACC uchar read_byte() ACC7=ds1302_io; return ACC;void ds1302_write(uchar add,uchar date) ds1302_rst=0; ds1302_sclk=0; /在rst没拉高之前先把sclk置0 ds1302_rst=1; write_byte(add);

21、write_byte(date); ds1302_sclk=1;uchar ds1302_read(uchar add) uchar temp; temp=read_byte(); return temp;void ds1302_init() /ds1302初始化 ds1302_write(0x8e,0x00); /写允许 ds1302_write(0x80,0x58); ds1302_write(0x82,0x56); ds1302_write(0x84,0x23); ds1302_write(0x86,0x21); ds1302_write(0x88,0x12); ds1302_write(0x8a,0x02); ds1302_write(0x8c,0x10); ds1302_write(0x8e,0x80); /写保护 /*lcd1602*/void lcd_write_com(uchar com) /命令字写入lcd单元中 lcd1602_rw=0; delay1(); lcd1602_rs=0; / RW=1,RS=0,写LCD命令字 P0=com; /将com中的命令字写入LCD数据口 lcd1602_e=1; /E端时序

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1