文档详情

单片机应用系统开发及实例详解.ppt

发布:2016-03-23约7.79千字共52页下载文档
文本预览下载声明
/**********定时器T0初始化********/ void init_timer0( ) { TMOD=0x11; TH0=-(1150/256) ; /*1ms初值 */ TL0=-(1150%256) ; TR0=0; ET0=1; EA=1; } * /*********定时器T1初始化*************/ void init_timerl( ) { TH1=-(5000/256) ; /*5ms初值 */ TL1=-(5000%256) ; TR1=1; ET1=1; EA= 1; } * 3. 调宽脉冲输出子程序模块 AT89S51内部没有集成PWM部件,这里利用了内部定时 器,与软件配合产生出调宽脉冲波。 * if(pwm_val=50) pwm_val=0; } else out=OFF; } void pwm_out(void) { if(out_flag) { if(pwm_val=(push_val+30)) { out=ON; /* 输出有效 */ } else { out=OFF; /*输出关闭 */ } 4.主程序(略) * 11.3 基于实时操作系统RTX51的万年历设计 11.3.1电路原理图 1. LED点阵显示器电路及和单片机的接口 * 图11-4 万年历组成方框图 图11-5 万年历的LED点阵显示器 * 图11-6 LED点阵显示器列驱动电路 * 图11-7 万年历LED点阵显示器行驱动 * 图11-8时钟芯片DS1302 和单片机接口电路 * 图11-9 AT89S52单片机和外部电路接口 * 11.3.2实时时钟DS1302 图11-10 实时时钟DS1302引脚图 * 其中VCC1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由VCC1或VCC2两者中的较大者供电。当VCC2大于VCC1+0.2V时,VCC2给DS1302供电。当VCC2小于VCC1时,DS1302由VCC1供电。 X1和X2是振荡源,外接32.768kHz晶振。 RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传输。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在VCC2.0V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向)。SCLK为时钟输入端。 * DS1302有12个寄存器,其中有7个寄存器与日历、时钟有关,数据格式为BCD,其日历、时间寄存器及其控制字如表11-1所示。 DS1302 与微处理器进行数据交换时,首先由微处理器向电路发送命令字节,命令字节最高位Write Protect(D7)必须为逻辑1,如果D7=0,则禁止写DS1302,即写保护;D6=0,指定时钟数据,D6=1,指定RAM数据;D5~D1指定输入或输出的特定寄存器;最低位LSB(D0)为逻辑0,指定写操作(输入), D0=1,指定读操作(输出)。 * * 读寄存器 写寄存器 BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 范围 81h 80h CH 10秒 秒 00-59 83h 82h 0 10分 分 00-59 85h 84h 0 10 时 时 1-12 0-23 AM/PM 87h 86h 0 0 10日 日 1-31 89h 88h 0 0 0 10月 月 1-12 8Bh 8Ah 0 0 0 0 0 周日 1-7 8Dh 8Ch 10年 年 00-99 8Fh 8Eh WP 0 0 0 0 0 0 0 -- 表11-1 DS1302的日期和时间寄存器 7 6 5 4 3 2 1 0 1 RAM A4 A3 A2 A1 A0 RD CK WR * 表11-2 控制字(即地址与命令字节) DS130
显示全部
相似文档