第10章 综合实训_第1页
第10章 综合实训_第2页
第10章 综合实训_第3页
第10章 综合实训_第4页
第10章 综合实训_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

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

文档简介

1、一、实训目的一、实训目的 熟悉常用温度传感器熟悉常用温度传感器AD590的特性及接口电路的设计方法;的特性及接口电路的设计方法; 学会模块化程序设计方法学会模块化程序设计方法二、课题要求二、课题要求 制作一个水温自动控制系统,要求如下:制作一个水温自动控制系统,要求如下: 温度设定范围温度设定范围4090,最小区分度,最小区分度1,标定误差,标定误差1。 用十进制数码显示水的实际温度。用十进制数码显示水的实际温度。 环境温度降低时,温度控制的静态误差环境温度降低时,温度控制的静态误差1。 第第10章章 综合实训综合实训课题一课题一 水温控制系统设计水温控制系统设计三、背景知识三、背景知识1、A

2、D590温度传感器简介温度传感器简介 AD590是美国是美国AD公司生产的单片集成两端感温电流源。公司生产的单片集成两端感温电流源。它的测温范围为它的测温范围为-55+150,工作电压范围为,工作电压范围为4V30V,可以承受可以承受44V正向电压和正向电压和20V反向电压,输出电阻为反向电压,输出电阻为710M 。它产生的电流与绝对温度成正比,非线性误差为它产生的电流与绝对温度成正比,非线性误差为0.3。图。图101为为AD590的引脚图,表的引脚图,表101为为AD590温度与电流的温度与电流的关系表。关系表。 (a)引脚)引脚 (b)封装)封装 (c)图形符号)图形符号 图图101 AD

3、590引脚、封装及图形符号引脚、封装及图形符号表表101 各温度与电流、电压参考关系表各温度与电流、电压参考关系表温度值温度值AD590电流电流经经10k电压电压V放大器输出放大器输出V0(ADC0809的的VIN)ADC0809的的输出输出0C273.2A2.732V0V00H10C283.2A2.832V0.49V19H20C293.2A2.932 V0.98V32H30C303.2A3.032 V1.47 V4BH40C313.2A3.132 V1.96 V64H50C323.2A3.232 V2.45 V7DH60C333.2A3.332 V2.94 V96H70C343.2A3.43

4、2 V3.43 VAFH80C353.2A3.532 V3.92 VC8H90C363.2A3.632 V4.41 VE1H100C373.2A3.732 V4.90 VFAH AD590是电流输出型器件,必须利用接口电路将是电流输出型器件,必须利用接口电路将AD590输输出的电流信号转换成电压信号,再经出的电流信号转换成电压信号,再经A/D转换器转换成数字信转换器转换成数字信号,提供给单片机处理。在号,提供给单片机处理。在2、AD590接口电路接口电路表表101中,列出了在不同中,列出了在不同温度值下的温度值下的AD590的输出的输出电流,通过图电流,通过图102的放大的放大电路可将输出电流

5、转换成电路可将输出电流转换成05V的模拟电压。的模拟电压。图图102 温度采集电路温度采集电路四、硬件电路四、硬件电路 硬件电路由单片机、温度检测模块、加热控制模块、硬件电路由单片机、温度检测模块、加热控制模块、键盘设定模块及数据显示模块构成。键盘设定模块及数据显示模块构成。 1、单片机选择、单片机选择 由于系统对控制精度的要求不高,所以选用内部具有程由于系统对控制精度的要求不高,所以选用内部具有程序存储器芯片的序存储器芯片的AT89C51就可以满足要求了。就可以满足要求了。 2、温度检测模块、温度检测模块 温度检测模块由温度传感器、信号放大器及温度检测模块由温度传感器、信号放大器及A/D转换

6、器转换器组成。由组成。由AD590将温度转换成电流信号再经信号放大器得将温度转换成电流信号再经信号放大器得到对应的模拟电压,再经到对应的模拟电压,再经ADC0809转换后接入单片机。如转换后接入单片机。如图图103所示。所示。3、加热控制模块、加热控制模块 加热控制信号经反相器反相后,驱动固态继电器(加热控制信号经反相器反相后,驱动固态继电器(SSR)工作,从而接通或断开加热丝两端电源,实现对水的加热控工作,从而接通或断开加热丝两端电源,实现对水的加热控制。加热控制电路如图制。加热控制电路如图103所示。所示。 为了使加热控制更加精确,系统采用了三组加热电炉丝为了使加热控制更加精确,系统采用了

7、三组加热电炉丝组合实现,当温差小于组合实现,当温差小于5C时,仅时,仅A组加热丝工作;当温差在组加热丝工作;当温差在5C10C之间时,采用之间时,采用A、B两组加热控制;当温差大于两组加热控制;当温差大于10C时,采用时,采用A、B、C三组加热控制。三组加热控制。4、键盘设定及数据显示模块、键盘设定及数据显示模块 键盘扫描由键盘扫描由11个按键及个按键及3位位LED共阳极显示器组成。通过共阳极显示器组成。通过P1、P2口直接驱动键盘,为了简化显示接口,这里采用了串口直接驱动键盘,为了简化显示接口,这里采用了串行口扩展行口扩展LED显示器。如图显示器。如图103所示。所示。图图103 水温控制系

8、统硬件原理图水温控制系统硬件原理图五、软件设计五、软件设计1、程序结构设计、程序结构设计(1)主程序)主程序 用于进行初始化处理,包括各端口的初始化,定时用于进行初始化处理,包括各端口的初始化,定时/计计数器的设定、中断允许的设定等。同时进行键盘的扫描输数器的设定、中断允许的设定等。同时进行键盘的扫描输入。图入。图104为主程序流程图。为主程序流程图。(2)定时中断服务程序)定时中断服务程序 通过单片机内部的定时器通过单片机内部的定时器T0进行进行50ms定时,再通过寄定时,再通过寄存器存器R6进行计数,以实现进行计数,以实现1s定时中断的要求。进入中断定时中断的要求。进入中断服务程序后,可进

9、行当前温度的检测及显示,根据所测值服务程序后,可进行当前温度的检测及显示,根据所测值与设定值比较进行温度控制等。图与设定值比较进行温度控制等。图105为中断服务程序为中断服务程序流程图。流程图。图图104 主程序流程图主程序流程图 图图105 定时中断服务程序流程图定时中断服务程序流程图 (3)温度检测程序)温度检测程序 温度检测采用每温度检测采用每1s定时采样的方式,为了实现温度的准确定时采样的方式,为了实现温度的准确检测,采用了平均值滤波法抗干扰。即连续检测,采用了平均值滤波法抗干扰。即连续4次启动次启动ADC0809进行进行A/D转换,求取转换结果的平均值,存入指定单元,以得转换,求取转

10、换结果的平均值,存入指定单元,以得到检测温度值。图到检测温度值。图106为温度检测程序流程图。为温度检测程序流程图。(4)温度控制程序)温度控制程序 通过比较键盘设定值与温度检测值的差别,按照一定的控制通过比较键盘设定值与温度检测值的差别,按照一定的控制规律,控制输出口线的状态,实现三组加热丝的控制。图规律,控制输出口线的状态,实现三组加热丝的控制。图107为温度控制程序流程图。为温度控制程序流程图。(5)温度显示程序)温度显示程序 在每次温度检测后,进行一次温度显示刷新;在进行温度设在每次温度检测后,进行一次温度显示刷新;在进行温度设定时,显示设定温度值。定时,显示设定温度值。2、主要程序模

11、块清单、主要程序模块清单主程序主程序: ORG 0000H AJMP MAIN ORG 000BH AJMP T0INT ORG 0030H MAIN: MOV SP,#60H MOV P1,#0FFH;关电炉,开显示;关电炉,开显示 MOV SCON,#00H ;设置串行口工作;设置串行口工作 ;方式方式0,发送,发送 MOV TMOD,#01H;定时器初始化;定时器初始化 MOV TH0,#3CH;50ms定时初值定时初值 MOV TL0,#0B0H MOV R6,#14H ;1s定时用(定时用(50ms20次)次) MOV 5DH,#00H;显示缓冲区清零;显示缓冲区清零 MOV 5EH

12、,#00H MOV 5FH,#00H ACALLDISP SETB ET0 SETB EA SETB TR0LM0:ACALL KEYSCAN;调用键盘扫描子程序(略),;调用键盘扫描子程序(略), ;用于设定温度值用于设定温度值AJMP LM0图图106 温度检测程序流程图温度检测程序流程图 图图107 温度控制程序流程图温度控制程序流程图 定时中断服务程序:定时中断服务程序:T0INT:MOV TH0,#3CHMOV TL0,#0B0HDJNZ R6,T0END;1s未到,中断返回未到,中断返回CLRTR0CLREA MOV R6,#14H;恢复;恢复R6初值初值ACALLTADC ;调用

13、温度检测子程序;调用温度检测子程序ACALLXSCL ;调用标度转换子程序;调用标度转换子程序ACALLDISP ;调用显示子程序;调用显示子程序ACALLTCONT;调用温度控制子程序;调用温度控制子程序SETB TR0SETB EAT0END:RETI温度检测子程序:温度检测子程序:TADC:MOV 50H,#00H ;清存检测值单元;清存检测值单元MOV B,#00HMOV R7,#04H ;设置转换次数;设置转换次数MOV DPTR,#7FFFH;送;送ADC0809地址地址TT0:MOVX DPTR,A;启动;启动A/D转换转换JBP3.2,$;等待转换结束;等待转换结束MOVX A

14、,DPTR;读;读A/D转换数据转换数据ADDA,50HMOV 50H,AJNCTT1;是否超出;是否超出8位二进制范围位二进制范围INCBTT1:DJNZ R7,TT0;4次转换是否完成次转换是否完成CLRC;求;求4次次A/D转换的平均值转换的平均值XCHA,BRRCAXCHA,BRRCACLRCXCHA,BRRCAXCHA,BRRCAMOV 50H,A;平均值存;平均值存50HRET温度控制子程序:温度控制子程序:TCONT:MOV A,51HCLRCSUBBA,50H;设定值;设定值实测值实测值MOV R0,AJNCCCPR;小于设定温度,接通相应加热器;小于设定温度,接通相应加热器M

15、OV P1,#0FFH;否则,关闭加热器;否则,关闭加热器AJMP CONENDCCPR:MOV A,R0SUBBA,#19HJCCCPR1 MOVP1,#0F8H ;开三组加热器;开三组加热器AJMP CONENDCCPR1:MOV A,R0SUBB A,#0CHJCCCPR2MOV P1,#0FCH ;开两组加热器;开两组加热器AJMP CONENDCCPR2:MOV P1,#0FEH ;开一组加热器;开一组加热器CONEND: RET显示子程序:显示子程序:DISP:MOV R2,#03H;显示数据的个数;显示数据的个数MOV R1,#5DH;显示缓冲区首址;显示缓冲区首址SETB P1

16、.3DL0:MOV A,R1;取要显示的数;取要显示的数MOV DPTR,#TABMOVC A,A+DPTR;查字型码;查字型码MOV SBUF,A;送出数据;送出数据DL1:JNBTI,DL1;是否输完一个字节;是否输完一个字节CLRTI;清发送完标志;清发送完标志INCR1DJNZ R2,DL0;三个数是否都显示完?;三个数是否都显示完?RETTAB:DB0C0H,0F9H,0A4H,0B0H,99H ;09字型码字型码DB92H,82H,0F8H,80H,90H六、总结与提高六、总结与提高 设计、调试大型程序时,应该:设计、调试大型程序时,应该:u先根据要求划分模块,优化结构;先根据要求

17、划分模块,优化结构;u再根据各模块特点确定何为主程序,何为子程序,何再根据各模块特点确定何为主程序,何为子程序,何为中断服务程序,相互间如何调用;为中断服务程序,相互间如何调用;u接着根据各模块性质和功能将各模块细化,设计出程接着根据各模块性质和功能将各模块细化,设计出程序流程图;序流程图;u最后根据各模块流程图编制具体程序。最后根据各模块流程图编制具体程序。 调试时应先调主程序,实现最基本最主要的功能,调试时应先调主程序,实现最基本最主要的功能,在此基础上再将各模块功能往主程序上堆砌,直至各在此基础上再将各模块功能往主程序上堆砌,直至各模块联调、统调,实现全部功能。模块联调、统调,实现全部功

18、能。 在这个课题中,采用了软件滤波方式提高检在这个课题中,采用了软件滤波方式提高检测环节的准确,并且采用了三组加热控制提高了测环节的准确,并且采用了三组加热控制提高了温度变化的精度。在此基础上,还可以增加液面温度变化的精度。在此基础上,还可以增加液面检测、缺水报警电路及打印电路等其它辅助电路检测、缺水报警电路及打印电路等其它辅助电路的设计,使这个控制系统更完善。的设计,使这个控制系统更完善。课题二课题二 用用88点阵显示器制作电子显示屏点阵显示器制作电子显示屏一、实训目的一、实训目的l熟悉熟悉88点阵显示器与单片机的接口电路及其设计方点阵显示器与单片机的接口电路及其设计方法;法;l学会模块化程

19、序设计方法。学会模块化程序设计方法。二、课题要求二、课题要求 制作一个制作一个88点阵显示器。要求如下:点阵显示器。要求如下: 1. 显示显示“电子设计电子设计”四个文字;四个文字; 2. 显示方式可由显示方式可由K1、K2和和K3三个键选择:三个键选择: K1为逐字显示,为逐字显示,K2为向上滚动显示,为向上滚动显示,K3为向左滚动为向左滚动显示。显示。三、硬件电路三、硬件电路 显示器采用显示器采用AT89C51单片机作控制器,时钟单片机作控制器,时钟频率为频率为12MHz,88点阵显示器采用共阳极结构,点阵显示器采用共阳极结构,其电路如图其电路如图108所示。所示。u P0作为字符数据输出

20、口,作为字符数据输出口,u P2为字符显示扫描输出口,为字符显示扫描输出口,u P1.0P1.2口分别接开关口分别接开关K1、K2、K3, 通过改变电阻(通过改变电阻(270)的大小可改变显示字)的大小可改变显示字符的亮度,驱动用符的亮度,驱动用9012三极管。三极管。图图108 硬件电路图硬件电路图四、软件设计四、软件设计1、程序结构设计、程序结构设计(1)主程序)主程序 主程序用于对系统进行初始化,扫描按主程序用于对系统进行初始化,扫描按键开关状态,由按键标志位值(键开关状态,由按键标志位值(00H、01H、02H)决定显示的方式。主程序流程图如图)决定显示的方式。主程序流程图如图109所

21、示。所示。 图图109 主程序流程图主程序流程图 (2)初始化子程序)初始化子程序 用于对端口进行复位操作,将显示用的字符数据从字符用于对端口进行复位操作,将显示用的字符数据从字符表中装入内存单元表中装入内存单元50H6FH中。字符表中的每个文字占用中。字符表中的每个文字占用8个地址单元。个地址单元。(3)显示子程序)显示子程序 显示子程序由显示功能选择程序和显示控制程序组成。显示子程序由显示功能选择程序和显示控制程序组成。u 显示功能选择程序显示功能选择程序: 负责每次显示时的显示地址首址(在负责每次显示时的显示地址首址(在B寄存器中)、每个寄存器中)、每个字的显示时间(由字的显示时间(由3

22、0H中的数据决定)和下一个显示地址的中的数据决定)和下一个显示地址的间隔(间隔(31H中的数据决定)的处理。中的数据决定)的处理。u 显示子程序显示子程序: 负责对指定负责对指定8个地址单元的数据进行输出显示。个地址单元的数据进行输出显示。 显示一个完整文字的时间约为显示一个完整文字的时间约为8ms。 在显示子程序中,在显示子程序中,1ms延时程序是用调用键扫描子程延时程序是用调用键扫描子程序的方法实现的。图序的方法实现的。图1010为逐字显示及向上滚动显示方为逐字显示及向上滚动显示方式时的显示控制程序流程图。式时的显示控制程序流程图。(4)按键扫描程序)按键扫描程序 用于将按键的状态扫描至用

23、于将按键的状态扫描至20H单元的低三位(单元的低三位(20H.0、20H.1、20H.2)中。同时在程序中利用按键扫描程序代)中。同时在程序中利用按键扫描程序代替显示程序中的替显示程序中的1ms延时程序,既可以提高按键的快速响延时程序,既可以提高按键的快速响应,又可以提高动态显示的扫描频率,减少文字显示时的应,又可以提高动态显示的扫描频率,减少文字显示时的闪烁现象。闪烁现象。图图1010 逐字显示及上移显示程序流程逐字显示及上移显示程序流程图图2、主要程序模块清单、主要程序模块清单主程序:主程序:START:MOV 20H,#00H ;20H内存单元清内存单元清0 SETB 00H ;20H.

24、0位置位置1START1:LCALL CLEARMEN ;调用上电初始化子;调用上电初始化子 ; 程序程序 JB 00H,FUN0 ;20H.0位为位为1,执行,执行FUN0 JB01H,FUN1 ;20H.1位为位为1,执行,执行FUN1 JB02H,FUN2 ;20H.2位为位为1,执行,执行FUN2 AJMPSTART1 初始化程序:初始化程序:CLEARMEN: MOV A,#0FFH ;四端口置;四端口置1 MOVP1,A MOV P2,A MOVP3,A MOVP0,A MOVDPTR,#TAB;取;取“电子设计电子设计”字字 ;符表首址符表首址 CLR A MOV21H,A ;2

25、1H-24H内存单元清内存单元清0 MOV 22H,A MOV 23H,A MOV 24H,A MOV R3,A ;R3寄存器清寄存器清0 MOV R1,#50H ;设字符表移入内存;设字符表移入内存 ;单元首址单元首址 MOV R2,#20H;设查表次数(;设查表次数(32次)次)CLLOOP:MOVC A,A+DPTR;查表字符数据移入;查表字符数据移入 ;内存单元内存单元 MOV R1,A MOV A,R3 INC A MOV R3,A INC R1 DJNZ R2,CLLOOP;是否已查表;是否已查表32 ;次,未完转次,未完转CLLOOP RET TAB: DB 0EFH,83H,0

26、ABH,83H,0ABH,83H,0EEH,0E0H ; 电电 DB 0FFH,0C7H,0EFH,83H,0EFH,0EFH,0CFH,0EFH ; 子子 DB 0B1H,0B5H,04H,0BFH,0B1H,0B5H,9BH,0A4H ; 设设 DB 0BBH,0BBH,1BH,0A0H,0BBH,0BBH,9BH,0BBH ;计;计键扫描子程序:键扫描子程序:KEYWORK:MOV P1,#0FFH;置输入状态;置输入状态 JNBP1.0,KEY1 ;P1.0为为0(键按下)转(键按下)转KEY1 JNBP1.1,KEY2 ;P1.1为为0(键按下)转(键按下)转KEY2 JNBP1.2

27、,KEY3 ;P1.2为为0(键按下)转(键按下)转KEY3KEYRET:RET KEY1:LCALL DL10MS ;按键;按键1功能处理,延功能处理,延 ;时时10ms削抖动削抖动 JB P1.0,KEYRET ;是干扰转;是干扰转KEYRET结束结束 SETB 00H ;置逐字显示方式标志;置逐字显示方式标志 ;(20H.0=1) CLR 01H CLR 02H RET ;子程序返回;子程序返回KEY2:LCALL DL10MS;按键;按键2功能处理功能处理 JB P1.1,KEYRET SETB 01H ;置上移显示方式标志;置上移显示方式标志 ;(20H.1=1) CLR 00H C

28、LR 02H RETKEY3: LCALL DL10MS ; 按键按键3功能处理功能处理 JBP1.2,KEYRET SETB 02H ;置左移显示方式标志;置左移显示方式标志 ;(20H.2=1) CLR 01H CLR 00H RET显示功能选择程序:显示功能选择程序:FUN0:MOV 30H,#80H;逐字显示,;逐字显示,1帧显示时间帧显示时间 ;(约(约1s) MOV 31H,#08H ;换帧跳转步距为;换帧跳转步距为8 LJMP DISP1 ;转显示子程序;转显示子程序DISP1FUN1:MOV 30H,#0AH ;上移显示,;上移显示,1帧显示时间帧显示时间 ;(约(约80ms)

29、 MOV 31H,#01H ;换帧跳转步距为;换帧跳转步距为1 LJMP DISP1 ;转显示子程序;转显示子程序DISP1FUN2:LJMP DISP2 ;左移显示;左移显示显示控制程序:显示控制程序:DISP1: MOV B,#50H ;显示数据首址;显示数据首址 MOV R4,30H ;放入;放入1帧显示时间控制数据帧显示时间控制数据MOV R5,31H ;放入跳转步距控制数据;放入跳转步距控制数据LOOP: LCALL DISPLAY ;调用显示子程序一次;调用显示子程序一次 DJNZ R4,LOOP ;1帧显示时间未到再转帧显示时间未到再转 ;LOOP循环循环 MOV R4,30H

30、;1帧显示时间到,重装初值帧显示时间到,重装初值 MOV A,B CJNE A,#68H,CONT;不是末地址转;不是末地址转CONT AJMP START1 ;是末地址,一次显示结束;是末地址,一次显示结束 ;跳回跳回START1CONT:ADD A,R5 ;次帧扫描首址调整;次帧扫描首址调整 MOV B,A AJMP LOOP ;转;转LOOP进行次帧扫描进行次帧扫描显示子程序:显示子程序:DISPLAY: MOV A,#0FFH MOV P0,A ;关显示数据;关显示数据 MOV P2,A ;关扫描;关扫描 MOV R6,#0FEH ;赋扫描字;赋扫描字 MOV R0,B;赋显示数据首地

31、址;赋显示数据首地址 MOV R7,#08H ;一次扫描;一次扫描8行行DISLOOP: MOV A,R0 ;取显示数据;取显示数据 MOV P0,A ;放入;放入P0口口 MOV P2,R6 ;扫描输出(显示;扫描输出(显示 ;某一行)某一行) LCALL DL1MS ;亮;亮1毫秒毫秒 INC R0 ;指向下一行数据地址;指向下一行数据地址 MOV A,R6 ;扫描字移入;扫描字移入A RL A ;循环左移一位;循环左移一位 MOV R6,A ;放回;放回R6 DJNZ R7,DISLOOP ;8行扫描未完转行扫描未完转 DISLOOP ;继续继续 RET ;8行扫描结束行扫描结束1毫秒延

32、时子程序:毫秒延时子程序:DL1MS:MOV R3,#64H ;100(10+2)sLOOPK: LCALL KEYWORK DJNZ R3,LOOPK RET五、总结与提高五、总结与提高 该课程设计中,可以看出该课程设计中,可以看出LED点阵显示的控点阵显示的控制是在七段制是在七段LED数码管显示控制的基础上扩展实数码管显示控制的基础上扩展实现的,二者都是采用动态扫描方式进行设计,从现的,二者都是采用动态扫描方式进行设计,从原理上是完全相同的。在这个课题的基础上,还原理上是完全相同的。在这个课题的基础上,还可扩展多个可扩展多个LED点阵显示以实现更加复杂的分批点阵显示以实现更加复杂的分批显示

33、模式及中文字幕的显示。显示模式及中文字幕的显示。课题三课题三 电子万年历的设计与制作电子万年历的设计与制作一、实训目的一、实训目的l熟悉熟悉DS12887时钟日历芯片的特性及设置方法,时钟日历芯片的特性及设置方法,DS12887芯片与单片机的接口电路及其设计方法;芯片与单片机的接口电路及其设计方法;l学会模块化程序设计方法。学会模块化程序设计方法。二、课题要求二、课题要求 制作一个可调万年历。要求如下:制作一个可调万年历。要求如下:内定时间为内定时间为2000年年1月月1日日12点点00分分00秒,提供给秒,提供给新产品或换电池时使用。新产品或换电池时使用。时间调整:开机时,光标停在时间调整:

34、开机时,光标停在“年年”,移动光标依,移动光标依次修改年、月、日、时、分、秒。次修改年、月、日、时、分、秒。每按每按P1.0一次,光标依年、月、日、时、分、秒顺一次,光标依年、月、日、时、分、秒顺序移动。序移动。每按每按P1.1一次,光标所在位置的值加一次,光标所在位置的值加1。每按每按P1.2一次,光标所在位置的值减一次,光标所在位置的值减1。采用采用LCD液晶显示器显示。液晶显示器显示。三、背景资料三、背景资料时钟日历芯片时钟日历芯片DS12887:u能够自动产生年、月、日、时、分、秒等时间信息,能够自动产生年、月、日、时、分、秒等时间信息,u芯片内部带有锂电池,外部掉电时,其内部时间信息

35、能够芯片内部带有锂电池,外部掉电时,其内部时间信息能够保持保持10年之久;年之久;u有有12小时制和小时制和24小时制两种工作模式;小时制两种工作模式;u时间的表示方法有两种:二进制数表示和时间的表示方法有两种:二进制数表示和BCD码表示。码表示。u用户可对用户可对DS12887进行编程以实现多种方波输出,进行编程以实现多种方波输出,u用户可对其内部的三路中断通过软件进行屏蔽。用户可对其内部的三路中断通过软件进行屏蔽。 1、引脚说明、引脚说明l Vcc:直流电源:直流电源+5V输入输入 当当Vcc的输入小于的输入小于+4.25V时,时,禁止用户对内部禁止用户对内部RAM进行读、进行读、写操作,

36、此时用户不能正确获写操作,此时用户不能正确获取芯片内的时间信息;取芯片内的时间信息;当当Vcc的输入小于的输入小于+3V时,时,DS12887会自动将电源切换会自动将电源切换到内部自带的锂电池上,以保到内部自带的锂电池上,以保证内部的电路能够正常工作。证内部的电路能够正常工作。图图1011 DS12887引脚图引脚图当当Vcc输入为输入为+5V时,用户可以访问时,用户可以访问DS12887内内RAM中中的数据,并可对其进行读、写操作;的数据,并可对其进行读、写操作;lGND:地:地lMOT:总线模式选择:总线模式选择 当当MOT接接Vcc时选用时选用Motorola总线模式,当总线模式,当MO

37、T接接GND时选用时选用Intel总线模式。总线模式。lSQW:方波输出:方波输出 当供电电压当供电电压Vcc大于大于4.25V时,时,SQW脚可进行方波输出,脚可进行方波输出,此时用户可以通过对控制寄存器编程来得到此时用户可以通过对控制寄存器编程来得到13种方波信号的种方波信号的输出。输出。lAD0AD7:双向地址:双向地址/数据总线。数据总线。lAS:地址有效输入。:地址有效输入。lDS/ :数据选通:数据选通/读允许读允许 当当MOT接接Vcc时作为数据选通;当时作为数据选通;当MOT接接GND时,作为时,作为读允许输入。读允许输入。RDlR/ :读:读/写允许输入。写允许输入。 若若M

38、OT接接Vcc,该引脚为高电平时读操作,为低电平,该引脚为高电平时读操作,为低电平时写操作;若时写操作;若MOT接接GND,该引脚作为写允许输入。,该引脚作为写允许输入。l :片选输入:片选输入。低电平有效。低电平有效。l :中断请求输出。:中断请求输出。低电平有效。低电平有效。l :复位端。:复位端。低电平有效,复位操作不影响时钟日低电平有效,复位操作不影响时钟日历工作。历工作。lNC:空引脚。空引脚。WCSIRQRESET 2、存储器分配与设置、存储器分配与设置 DS12887片内片内RAM与寄存器地址分配见图与寄存器地址分配见图1012。 DS12887带有带有128字节片内字节片内RA

39、M:10字节的时标寄存器:用来存储时间信息,地址字节的时标寄存器:用来存储时间信息,地址00H09H CPU可以通过读取时标寄存器获得时间与日历值,也可可以通过读取时标寄存器获得时间与日历值,也可以编程设置其初值,时标寄存器的值可以用二进制或以编程设置其初值,时标寄存器的值可以用二进制或BCD码码表示。表示。4字节的控制寄存器:用来存储控制信息,地址字节的控制寄存器:用来存储控制信息,地址0AH0DH 用户可通过对控制寄存器编程实现从用户可通过对控制寄存器编程实现从SQW引脚输出多种引脚输出多种不同频率的方波,并可对其内部的三路中断通过软件进行屏不同频率的方波,并可对其内部的三路中断通过软件进

40、行屏蔽。蔽。114字节作为通用字节作为通用RAM供用户使用,地址为供用户使用,地址为0EH7FH。1012 片内片内RAM与寄存器地址分配与寄存器地址分配时标寄存器的数据格式时标寄存器的数据格式,见下表所示。见下表所示。地址地址单元单元功能功能十进制十进制范围范围范范 围围十六进制码十六进制码BCD码码0秒秒059003B00591秒闹钟秒闹钟059003B00592分分059003B00593分闹钟分闹钟059003B00594时(时(12小时方式)小时方式)112010C AM,818C PM0112 AM,8192 PM时(时(24小时方式)小时方式)023001700235时闹钟(时闹

41、钟(12小时方式)小时方式)112010C AM,818C PM0112 AM,8192 PM时闹钟(时闹钟(24小时方式)小时方式)023001700236星期(星期天星期(星期天=1日131011F01318月月112010C01129年年09900630099控制寄存器的格式控制寄存器的格式 寄存器寄存器A 用于选择时钟频率、中断周期和用于选择时钟频率、中断周期和SQW输出输出频率,格式如下:频率,格式如下:D7D6D5D4D3D2D1D0UIPDV2DV1DV0RS3RS2RS1RS0l UIP:更新周期标志。:更新周期标志。 当当UIP=1时,表示芯片正处于

42、或即将开始更新周期,在此时,表示芯片正处于或即将开始更新周期,在此期间不允许读写时标寄存器;期间不允许读写时标寄存器; 当当UIP=0时,表示没有更新周期,此时可读时标寄存器。时,表示没有更新周期,此时可读时标寄存器。l DV2DV0:芯片内部振荡器:芯片内部振荡器RTC控制位。控制位。 当芯片复位后当芯片复位后500ms开始第一个更新周期。将这开始第一个更新周期。将这3位设置位设置成成010,可使芯片以内置的,可使芯片以内置的32.768kHz的振荡频率工作。的振荡频率工作。l RS3RS0:周期中断可编程方波输出速率选择位。:周期中断可编程方波输出速率选择位。 这这4位不同的组合可以产生不

43、同的方波输出,程序可以通位不同的组合可以产生不同的方波输出,程序可以通过设置寄存器过设置寄存器B的的SQWE和和PIE位控制是否允许周期中断方位控制是否允许周期中断方波输出。波输出。RS3RS0与中断周期及与中断周期及SQW输出频率的对应关系输出频率的对应关系如表如表103所示。所示。表表103 时钟频率选择时钟频率选择寄存器寄存器A选择位选择位32.768kHz时钟频率时钟频率RS3RS2RS1RS0中断周期中断周期SQW输出频率输出频率000000013.09625ms256Hz00107.8125 ms128 Hz0011122.070 s8.192 kHz0100244.141s4.0

44、96 kHz0101488.281s2.048 kHz0110976.5625s1.024 kHz01111.953125 ms512 Hz10003.90625 ms256 Hz10017.8125 ms128 Hz101015.625 ms64 Hz101131.25 ms32 Hz110062.5 ms16 Hz1101125 ms8 Hz1110250 ms4 Hz1111500 ms2 Hz 寄存器寄存器B 主要用于设置芯片的工作状态,格式如下:主要用于设置芯片的工作状态,格式如下:D7D6D5D4D3D2D1D0SETPIEAIEUIESQWEDM24/12DSElSET:允许更新

45、周期位。:允许更新周期位。可读可读/写,不受信号的影响。写,不受信号的影响。 当当SET=0时,芯片处于正常更新状态;时,芯片处于正常更新状态; 当当SET=1时,芯片正常更新被禁止。时,芯片正常更新被禁止。lPIE、AIE、UIE:分别为周期中断、闹钟中断、更新周:分别为周期中断、闹钟中断、更新周期结束中断允许位。期结束中断允许位。 各位分别为各位分别为“1”时允许发出相应的中断,由端输出。时允许发出相应的中断,由端输出。其中,其中,UIE位在复位或设置位在复位或设置SET为为1时清零。时清零。l SQWE:方波输出允许位。:方波输出允许位。 当当SQWE=1,按寄存器按寄存器A输出速率选择

46、位所确定的频输出速率选择位所确定的频率输出方波;率输出方波; 当当SQWE=0,SQW脚保持低电平。脚保持低电平。l DM:时标寄存器格式选择位。:时标寄存器格式选择位。 DM=0,为,为BCD码;码; DM=1,为二进制码。,为二进制码。l 24/12:24小时或小时或12小时模式设置位。小时模式设置位。 24/12=1,选择,选择24小时工作模式;小时工作模式; 24/12=0,选择,选择12小时工作模式。小时工作模式。l DSE:夏令时允许标志位。:夏令时允许标志位。寄存器寄存器C 为中断标志位寄存器。为中断标志位寄存器。 特点:特点:程序读寄存器程序读寄存器C或复位后,该寄存器的内容将

47、自或复位后,该寄存器的内容将自动清零。格式如下:动清零。格式如下:D7D6D5D4D3D2D1D0IRQFPFAFUF0000lIRQF:中断申请标志位。:中断申请标志位。 该位逻辑表达式为:该位逻辑表达式为:IRQF = PF PIE+AF AIE+UF UIE。当当IRQF=1时,时,IRQ引脚将输出低电平。引脚将输出低电平。 当当DSE=1时,夏时制设置有效。时,夏时制设置有效。在四月的第一个星期在四月的第一个星期日的日的1:59:59 AM,调到,调到3:00:00 AM;在十月的最后一个;在十月的最后一个星期日的星期日的1:59:59 AM,调到,调到1:00:00 AM。当当DSE

48、=0无效。无效。 寄存器寄存器D 为状态标志寄存器,只有一个标志位为状态标志寄存器,只有一个标志位VRT(D7),其余各位均为),其余各位均为0。格式如下:。格式如下:D7D6D5D4D3D2D1D0VRT0000000l VRT:芯片内部:芯片内部RAM与寄存器内容有效标志位。与寄存器内容有效标志位。 该位为该位为“1”时,表示芯片内部时,表示芯片内部RAM和寄存器内容有效。和寄存器内容有效。读该寄存器后,该位将自动置读该寄存器后,该位将自动置“1”。lPF、AF、UF:这三位分别为周期中断、闹钟中断、更:这三位分别为周期中断、闹钟中断、更新周期结束中断标志位。新周期结束中断标志位。 只要满

49、足各中断的条件,相应的中断标志位将置只要满足各中断的条件,相应的中断标志位将置“1”。寄存器寄存器C的的D3D0位为位为0,不使用,不使用。四、硬件设计四、硬件设计 硬件电路见图硬件电路见图1013。采用。采用AT89C51单片机单片机作控制器,时钟频率为作控制器,时钟频率为12MHz。显示器可采用。显示器可采用LED显示,但由于显示,但由于LED数码显示所需的数码管较数码显示所需的数码管较多,这里选用多,这里选用LCD显示器实现。显示器实现。 P1.0P1.2口分别接开关口分别接开关K1、K2、K3,分别,分别用于光标的移动及整定时间时的数字调整。用于光标的移动及整定时间时的数字调整。 图图

50、1013 万年历硬件原理图万年历硬件原理图五、软件设计五、软件设计1、内部控制寄存器命令字设置、内部控制寄存器命令字设置(1)DS12887初始化:初始化:给寄存器给寄存器A、B、C、D送控制字送控制字(片选有效)(片选有效) (0AH)=20H 设置设置DS12887时钟频率为时钟频率为32.768kHz,DV2DV0=010; (0BH)=82H 设置设置DS12887更新周期停止,可进行时钟设定,时间和日更新周期停止,可进行时钟设定,时间和日期采用期采用BCD码,时间单元为码,时间单元为24小时计时方式。小时计时方式。(2)DS12887开始计时:开始计时:设置(设置(0BH)=12H

51、由由UIE=1激激活,实现时钟输出显示更新。活,实现时钟输出显示更新。(3)LCD液晶显示控制器设置(略)液晶显示控制器设置(略) 2、程序结构设计、程序结构设计 (1)主程序)主程序 用于实现初始化操作,包括中断设置、用于实现初始化操作,包括中断设置、DS12887时钟芯时钟芯片及片及LCD液晶显示控制器的初始化设置等。流程图见液晶显示控制器的初始化设置等。流程图见1014所示。所示。(2)外部中断)外部中断0服务程序服务程序 用于实现用于实现DS12887时钟芯片更新值的输出及显示操作。时钟芯片更新值的输出及显示操作。流程图见流程图见1015所示。所示。(3)按键扫描子程序)按键扫描子程序

52、 用于将三个按键的输入状态扫描至用于将三个按键的输入状态扫描至89C51相应的寄存器相应的寄存器中,进行光标移动、加中,进行光标移动、加1或减或减1的处理。的处理。(4)显示子程序)显示子程序 用于将显示缓冲区数据依次输出到用于将显示缓冲区数据依次输出到LCD显示器上。显示器上。(5)加)加1处理子程序处理子程序 将加将加1按键的输入状态转换为对相应存储单元的加按键的输入状态转换为对相应存储单元的加1操作,操作,并将并将BCD码转换成码转换成ASCII码送显示缓冲区。码送显示缓冲区。(6)减)减1处理子程序处理子程序 将减将减1按键的输入状态转换为对相应存储单元的减按键的输入状态转换为对相应存

53、储单元的减1操作,操作,并将并将BCD码转换成码转换成ASCII码送显示缓冲区。码送显示缓冲区。(7)内定时间写入子程序)内定时间写入子程序 用于将内定时间用于将内定时间00年年1月月1日日12点点00分分00秒输入秒输入DS12887相应的时标寄存器中。相应的时标寄存器中。图图1014 主程序流程图图主程序流程图图 1015 中断服务程序流程图中断服务程序流程图 3、主要程序模块清单、主要程序模块清单主程序:主程序: ORG0000H AJMPMAIN ORG0003 AJMPEX0INTMAIN: MOVSP,#60H;设置堆栈指针;设置堆栈指针 ACALLBUSY;调用检测;调用检测LCD是否忙是否忙 ;的子程序;的子程序 MOVA,#01H ;LCD清屏清屏 MOV DPTR, #8100H ;送;送LCD指令寄存地址指令寄存地址 MOVXDPTR,A ACALLLCDFIRST;调用;调用LCD初始化程序初始化程序 MOV IE,#81H;外部中断;外部中断0允许允许 MOVA,#20H;对;对DS12887的寄存的寄存 ;器;器A赋初值赋初值 MOVDPTR,#020AH;送;送DS12887的寄的寄 ;存器;存器A的地址的地址 MOVXDPTR,A MOVA,#8

温馨提示

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

评论

0/150

提交评论