基于at89c51单片机的多功能电子万年历的设计的所有专业(编辑修改稿)内容摘要:
且可以关闭充电功能。 采用普通 晶振。 DS1302 是美国 DALLAS 公司推出的一种高性 能、低功耗、带 RAM 的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为 ~。 采用三线接口与 CPU 进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或 RAM 数据。 DS1302 内部有一个 318 的用于临时性存放数据的 RAM 寄存器。 DS1302是 DS1202 的升级产品,与 DS1202 兼容,但增加了主电源 /后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。 本科 毕业设计 (论文 ) 12 DS1302 的引脚排列 ,其中 Vcc1 为后备电源, Vcc2 为主电源。 在主电源关闭的情况 下,也能保持时钟的连续运行。 DS1302 由 Vcc1 或 Vcc2 两者中的较大者供电。 当 Vcc2 大于 Vcc1+ 时, Vcc2 给 DS1302 供电。 当 Vcc2 小于 Vcc1 时, DS1302 由 Vcc1 供电。 X1 和 X2是振荡源,外接 晶振。 RST 是复位 /片选线,通过把 RST 输入驱动置高电平来启动所有的数据传送。 RST 输入有两种功能:首先, RST 接通控制逻辑,允许地址 /命令序列送入移位寄存器;其次, RST 提供终止单字节或多字节数据的传送手段。 当 RST 为高电平时,所有的数据传送被初始化,允许对 DS1302 进行操作。 如果在传送过程中 RST 置为低电平,则会终止此次数据传送, I/O 引脚变为高阻态。 上电运行时,在 Vcc≥ 之前,RST 必须保持低电平。 只有在 SCLK 为低电平时,才能将 RST 置为高电平。 I/O 为串行数据输入输出端 (双向 ),后面有详细说明。 SCLK 始终是输入端。 DS1302 的控制字节的最高有效位 (位 7)必须是逻辑 1,如果它为 0,则不能把数据写入 DS1302中,位 6如果为 0,则表示存取日历时钟数据,为 1表示存取 RAM数据。 位 5 至位 1指示操作单元的地址。 最低有效位 (位 0)如为 0表示要进行写 操作,为 1表示进行读操作,控制字节总是从最低位开始输出。 在控制指令字输入后的下一个 SCLK 时钟的上升沿时,数据被写入 DS1902,数据输入从低位即位 0 开始。 同样,在紧跟 8 位的控制指令字后的下一个 SCLK 脉冲的下降沿读出DS1302 的数据,读出数据时从低位 0位到高位 7。 DS1302 有 12 个寄存器,其中有 7 个寄存器与日历、时钟相关,存放的数据位为 BCD码形式 ,其日历、时间寄存器及其控制字见表 1。 此外, DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与 RAM相关的寄存器等。 时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。 DS1302 与 RAM 相关的寄存器分为两类:一类是单个 RAM 单元,共 31 个,每个单元组态为一个 8位的字节,其命令控制字为 C0H~ FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的 RAM 寄存器,此方式下可一次性读写所有的 RAM 的 31 个字节, 命令控制字为 FEH(写 )、 FFH(读 )。 DS1302 与 CPU 的连接需要三条线,即 SCLK(7)、 I/O(6)、 RST(5)。 DS1902 与 89C2051的连接图,其中,时钟的 显示用 LED。 DS1302 与 CPU 的连接 , 实际上,在调试程序时可以不加电容器,只加一个 的晶振即可。 只是选择晶振时,不同的晶振,误差也较大。 另外,还可以在上面的电路中加入 DS18B20,同时显示实时温度。 只要占用 CPU 一个口线即可。 LED 还可以换成 LCD,还可以使用北京卫信杰科技发展有限公司生产的 10 位多功能 8 段液晶显示模块 LCM101,内含看门狗 (WDT)/时钟发生器及两种频率的蜂鸣器驱动电路,并有内置显示 RAM,可显示任意字段笔划,具有 3- 4 线串行接口,可与任何单片机、 IC 接口。 功耗低,显示状态时电流为 2μA ( 典型值 ),省电模式时小于 1μA ,工作电压为 ~ ,显示清晰。 DS1302 的实时时间流程。 根据 流程框图,不难采集实时时间。 下面对 DS1302 的基本本科 毕业设计 (论文 ) 13 操作进行编程: 根据本人在调试中遇到的问题,特作如下说明: DS1302 与微处理器进行数据交换时,首先由微处理器向电路发送命令字节,命令字节最高位 MSB(D7)必须为逻辑 1,如果 D7=0,则禁止写 DS1302,即写保护; D6=0,指定时钟数据, D6=1,指定 RAM数据; D5~ D1指定输入或输出的特 定寄存器;最低位 LSB(D0)为逻辑 0,指定写操作 (输入 ), D0=1,指定读操作 (输出 )。 在 DS1302 的时钟日历或 RAM 进行数据传送时, DS1302 必须首先发送命令字节。 若进行单字节传送, 8 位命令字节传送结束之后,在下 2个 SCLK 周期的上升沿输入数据字节,或在下 8个 SCLK 周期的下降沿输出数据字节。 DS1302 与 RAM 相关的寄存器分为两类 :一类是单个 RAM 单元,共 31个,每个单元组态为一个 8位的字节,其命令控制字为 C0H~ FDH,其中奇数为读操作,偶数为写操作;再一类为突发方式下 的 RAM 寄存器,在此方式下可一次性读、写所有的 RAM 的 31 个字节。 要特别说明的是备用电源 B1,可以用电池或者超级电容器 ( 以上 )。 虽然 DS1302在主电源掉电后的耗电很小,但是,如果要长时间保证时钟正常,最好选用小型充电电池。 可以用老式电脑主板上的 充电电池。 如果断电时间较短 (几小时或几天 )时,就可以用漏电较小的普通电解电容器代替。 100 μF 就可以保证 1 小时的正常走时。 DS1302在第一次加电后,必须进行初始化操作。 初始化后就可以按正常方法调整时间。 DS1302 存在时 钟精度不高,易受环境影响,出现时钟混乱等缺点。 DS1302 可以用于数据记录,特别是对某些具有特殊意义的数据点的记录,能实现数据与出现该数据的时间同时记录。 这种记录对长时间的连续测控系统结果的分析及对异常数据出现的原因的查找具有重要意义。 传统的数据记录方式是隔时采样或定时采样,没有具体的时间记录,因此,只能记录数据而无法准确记录其出现的时间;若采用单片机计时,一方面需要采用计数器,占用硬件资源,另一方面需要设置中断、查询等,同样耗费单片机的资源,而且,某些测控系统可能不允许。 但是,如果在系统中采用时钟芯片 DS1302,则能很好地解决这个问题。 本科 毕业设计 (论文 ) 14 第四章 系统的软件设计 主程序 主程序 如图 41所示: 图 41 主程序图 开始 读年、月、日 送第一块 LED 显示 读星期、闰、年、日 送第二块 LED 显示 读时、分、秒 送第三块 LED 显示 返回 本科 毕业设计 (论文 ) 15 从 1302 读取 日期和时间 程序 图 42 从 1302读取程序 系统源代码 DELAY. C define DELAY_C include”includes. h” define XTAL 12 void delay_lus(void) { asm(”nop”): } void delay_nus(unsigned int n) { unsigned int i=0; for(i=0; in; i++) delay_lus(); } void delay_ims(void) { unsigned int i; for(i=0: i(unsigned int)(XTAL*1432)。 i++)。 } void delay_nms(unsigned int n) { unsigned int i=0。 for(i=0; in; i++) 读 1302 日期和时间 调整时间和日期 Y N 系统初始化 开 始 需要调整时间吗。 本科 毕业设计 (论文 ) 16 { delay_ims()。 } } DSl302. C include”includes. h” define DSl302_C unsigned char bflag; unsigned char bpm; unsigned char get_hours(void) { unsigned char i; unsigned char R_Byte; unsigned char TmpByte; reset(); write(0x85); ddr_set_io(); R_Byte=0x00; Prt_clear_io(); ddr_clear_io(); for(i: 0; i4; i++) } TmpByte=0。 if((pinpamp。 (1io))) TmpByte=1; TmpByte=7。 R_Byte=1。 R_Byte I=TmpByte; Prt_set_clk(); delay_nus(2); prt_clear_clk(); delay_nus(2); } bflag=0; if((pinpamp。 (1io))) bflag=l。 prt_set_clk(); delay_nus(2); prt_clear_clk(); delay_nus(2); bpm=0。 if((pinpamp。 (1io))) bpm=1; prt_set_clk(); delay_nus(2); prt_clear_clk(); 本科 毕业设计 (论文 ) 17 delay_nus(2); prt_clear_rst(); prt_clear_clk(); R_Byte =4; return R_Byte; } unsigned char readbyte(unsigned char w_byte) { unsigned char temp; reset(); write(w_byte); temp=read(); prt_clear_rst(); prt_clear_clk(); return temp; } void writebyte(unsigned char w_byte, unsigned char w_2_byte) { reset(); write(w_byte)。 write(w_2_byte); prt_clear_rst(); prt_clear_clk(); } void reset(void) { ddr_set_rst(); prt_clear_clk(); prt_clear_rst(); prt_set_rst(); } void write(unsigned char W_Byte) { unsigned char i; DDRC=0xFF。 for(i=0; i8; i++) { Prt_clear_io(); if(W_Byte amp。 0x01) { prt_set_io(); } Prt_set_clk(); delay_nus(1);// delay_nus(2); prt_clear_clk(); delay_nus(1);// delay_nus(2); 本科 毕业设计 (论文 ) 18 W_Byte=1; } } unslgned char read(void) { unsigned char i; unsigned char R_Byte; unsigned char R_Byte2; unsigned char TmpByte; ddr_set_io(); R_Byte=0x00。 R_Byte2=0x00; prt_clear_io(); ddr_clear_io(); for(i=0。 i4; i++)// get t。基于at89c51单片机的多功能电子万年历的设计的所有专业(编辑修改稿)
相关推荐
traditional architectures of Client/Server does not have , and is close to have bined the technology of Inter/Intra, is that the tendency of technical development tends to , it application system
S3C44B0X 片上的主要功能 Samsung S3C44B0X 微处理器片内集成 ARM7TDMI 核,采用 m CMOS 工艺制造,并在 ARM7TDMI 核基本功能的基础上集成了丰富的外围功能模块,便于低成本设计嵌入式应用系统。 片上集成的主要功能如下: 在 ARM7TDMI 基础上增加 8KB 的 Cache; 外部扩充存储器控制器( FP/EDO/SDRAM 控制,片选逻辑);
图 电源方框及波形图 A、 整流和滤波电路:整流作用是将交流电压 U2变换成脉动电压 U3。 滤波电路一般由电容组成,其作用是脉动电压 U3中的大部分纹波加以滤除,以得到较平滑 的直流电压 U4。 B、 稳压电路:由于得到的输出电压 U4受负载、输入电 压 和 温度的影响不稳定,为了得到更为稳定电压添加了稳压电路,从而得到稳定的电压 U0。 电源电路图 集成三端稳压芯片 LM7805
行ASP页面的编码,并使用。 ASP技术访问 WEB数据库 访问 WEB数据库的多种方案 目前在 WINDOWS环境下有多种访问 WEB数据库的技术,主要有: 公共网关接口 CGI(Common Gateway Interface) CGI是较早实现的技术。 适用于多种服务器平台,如 UNIX、 WINDOWS等 ,但 CGI的开发成本高、维护困难、功能有限、不具备事务处理功能
83。 12 毕业设计(论文) 搭建游戏基本骨架 12 SurfaceView框架 12 Wele类 13 Menu类 13 Option类 13 Help类 13 Select类 13 游戏 model包 14 TouchAble接口 14 Plant接口 14 BaseModel类 15 Config类 15 游戏具体实现及相关的实体类 15 太阳花种植及产生阳光实现 15
8 年做了进一步修改, 它能在 32Kbit/ s 的码率,也就是一般PCM 一半码率的速度下达到接近普通 PCM 的话音质量,其抗误码性能优于 PCM。 ADPCM 算法思路清晰,软件编程实现方便,具有良好的语音跟踪性能,能够很好地压缩语音信号,从而大大缩减数据存储空间,并且提高数据的传输速度。 与其它编码方式相比, ADPCM 能提供跟高的压缩比,提高了频率利用率