版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 沈阳理工大学课程设计专用纸 No PAGE 24目录(ml) TOC o 1-3 h z u HYPERLINK l _Toc21995 1.题目设计(shj)要求 PAGEREF _Toc21995 1 HYPERLINK l _Toc20700 2.开发平台(pngti)简介 PAGEREF _Toc20700 1 HYPERLINK l _Toc23354 3.系统硬件设计 PAGEREF _Toc23354 2 HYPERLINK l _Toc6720 3.1 设计原理 PAGEREF _Toc6720 2 HYPERLINK l _Toc5054 3.2 器件的功能与作用 PAGE
2、REF _Toc5054 2 HYPERLINK l _Toc20671 3.2.1 MCS51单片机AT89C51 PAGEREF _Toc20671 2 HYPERLINK l _Toc30138 3.2.2复位电路 PAGEREF _Toc30138 3 HYPERLINK l _Toc10625 3.2.3晶振电路 PAGEREF _Toc10625 4 HYPERLINK l _Toc16889 3.2.4 DS1302时钟模块 PAGEREF _Toc16889 4 HYPERLINK l _Toc18777 3.2.5 引脚功能及结构 PAGEREF _Toc18777 4 HY
3、PERLINK l _Toc15440 3.2.6 DS1302的控制字节 PAGEREF _Toc15440 5 HYPERLINK l _Toc5588 3.2.7 数据输入输出(I/O) PAGEREF _Toc5588 5 HYPERLINK l _Toc18686 3.2.8 DS1302的寄存器 PAGEREF _Toc18686 6 HYPERLINK l _Toc11151 3.2.9 液晶显示LCD1602 PAGEREF _Toc11151 6 HYPERLINK l _Toc7706 3.2.10 串行时钟日历片DS1302 PAGEREF _Toc7706 8 HYPE
4、RLINK l _Toc3184 4.系统软件设计 PAGEREF _Toc3184 10 HYPERLINK l _Toc29047 4.1 程序流程 PAGEREF _Toc29047 10 HYPERLINK l _Toc27768 4.2 程序代码 PAGEREF _Toc27768 11 HYPERLINK l _Toc3749 5.系统仿真调试 PAGEREF _Toc3749 20 HYPERLINK l _Toc31297 5.1 仿真原理图设计 PAGEREF _Toc31297 20 HYPERLINK l _Toc24053 5.2 仿真运行过程 PAGEREF _Toc
5、24053 21 HYPERLINK l _Toc10351 5.3 仿真运行结果 PAGEREF _Toc10351 22 HYPERLINK l _Toc27824 6.总结 PAGEREF _Toc27824 22 HYPERLINK l _Toc26518 7.参考文献 PAGEREF _Toc26518 231.题目(tm)设计要求通过串行日历时钟(shzhng)芯片DS1302生成当前日期和是时间,通过IO口传输到AT89c52芯片(xn pin)中,然后再将AT89c52接收到的数据输出到LCD上。要求LCD上显示的日期和时间与当前系统时间保持一致。2.开发平台简介 2.1系统仿
6、真平台Proteus Proteus软件是由英国Labcenter Electronics公司开发的EDA工具软件,已有近20年的历史,在全球得到了广泛应用。Proteus软件的功能强大,它集电路设计、制版及仿真等多种功能于一身,不仅能够对电工、电子技术学科涉及的电路进行设计,还能够对微处理器进行设计和仿真,并且功能齐全,界面多彩。和我们手头其他的电路设计仿真软件,他最大的不同即它的功能不是单一的。另外,它独特的单片机仿真功能是任何其他仿真软件都不具备的。 2.2软件开发平台Keil C Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比
7、,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。Keil C51生成的目标代码效率之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。3.系统硬件(yn jin)设计3.1 设计(shj)原理图3.1 电路(dinl)原理图3.2 器件的功能与作用3.2.1 MCS51单片机AT89C51AT89C51是一种带4K字节FLASH存储器( FPEROMFlash Programmab
8、le and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 AT89S51系列(xli)单片机中有PDIP,PLCC,TQFP多种封装形式。本设计采用的
9、是PDIP封装40管脚的单片机。 图3.2 主控制模块(m kui)AT89C523.2.2复位(f wi)电路复位是单片机的初始化操作。单片机启运运行时,都需要先复位,其作用是使CPU和系统中其他部件处于一个确定的初始状态,并从这个状态开始工作。因而,复位是一个很重要的操作方式。但单片机本身是不能自动进行复位的,必须配合相应的外部电路才能实现。复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开 关或电源插头分-合过程中引起的抖动而影响复位。图3.3 复位(f wi)电路3.2.3晶振电路(dinl)
10、图3.4 晶振电路(dinl)晶体振荡器电路给数字钟提供一个频率稳定准确的32768Hz的方波信号,可保证数字钟的走时准确及稳定。3.2.4 DS1302时钟模块DS1302 是 HYPERLINK /view/2398.htm 美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V5.5V。采用三线接口与CPU进行 HYPERLINK /view/141317.htm 同步通信,并可采用突发方式一次传送多个字节的 HYPERLINK /view/188811.htm 时钟信号或RAM数据。DS1
11、302内部有一个318的用于临时性存放数据的RAM HYPERLINK /view/6159.htm 寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。 3.2.5 引脚功能(gngnng)及结构DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。在主电源关闭的情况(qngkung)下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X
12、2是振荡源,外接32.768kHz晶振。RST是复位/ HYPERLINK /view/3717187.htm 片选线,通过把RST输入驱动(q dn)置高电平来启动所有的 HYPERLINK /view/5593592.htm 数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入 HYPERLINK /view/1533062.htm 移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc
13、2.0V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向),后面有详细说明。SCLK为时钟输入端。 下图为DS1302的引脚功能图: HYPERLINK /albums/1478145/1478145/0/0.html#0$034965f4019666c7f2d385c2 图3.5 DS1302封装图3.2.6 DS1302的控制字节DS1302 的控制字节如下图所示。控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作
14、单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。 HYPERLINK /albums/1478145/1478145/0/0.html#0$b87985501b71c94a84352478 3.2.7 数据输入输出(I/O)在控制指令字输入后的下一个SCLK时钟(shzhng)的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。图3.6 DS1302的寄存器 3.2.8 DS1302的寄存器DS1302有12个 HYP
15、ERLINK /view/6159.htm 寄存器,其中有7个寄存器与日历(rl)、时钟相关,存放的 HYPERLINK /view/190231.htm 数据位为BCD码形式,其日历(rl)、时间寄存器及其控制字见表1。此外,DS1302 还有年份寄存器、 HYPERLINK /view/4092816.htm 控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。 DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元 HYPERLINK /view/194580.htm 组态为一个8位的字
16、节,其命令控制字为C0HFDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。图3.7 DS1302的寄存器3.2.9 液晶显示LCD1602 1602液晶(yjng)也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。 1602LCD是
17、指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字(shz))。目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。 管脚功能(gngnng) 图3.8 LCD1602引脚图RT-1602采用表中的16 脚接口:第一脚:Vss,电源地。第二脚:VDD,+5V电源。第三脚:VL,液晶显示偏压信号。第四脚:RS,数据/命令选择端,高电平时选择数据寄存器,低电平时选择指令寄存器。第五脚:R/W,读/写选择端。第六脚:E,使能端,当E端由高电平跳变成低电平时,液晶模块执
18、行命令。第七14脚:D0D7,为8位双向数据线。第15脚:BLA,背光源正极。第16脚:BLK,背光源负极。 图3.9 模块(m kui)显示3.2.10 串行时钟日历片DS1302系统的组成与工作(gngzu)原理:系统(xtng)由单片机AT89C52,串行日历时钟片DS1302,液晶显示模组LCD1602。DS1302的CLOCK与AT89C52的P1.6相连,RST与P1.5相连,IO与P1.7相连。LCD1602的D0D7与AT89C51的P0.0P.7相连,并接上拉电阻,RS与P2.0相连,RW与P2.1相连,E与P2.2相连。DS1302是DALLAS公司拖出的涓流充电时钟芯片,
19、内含有一个实时时钟/日历和31个季节静态RAM,通过简单地串行接口与单片机进行通信,实时时钟/日历电路提供秒、分、时、日、日期、月、年的信息,每月的天数和闰年的天数可自动调整,时钟操作可通过AM/PM指示决定采用24小时或12小时格式,DS1302与单片机之间能简单地采用同步串行方式进行通信,仅需用到RES复位、I/O数据线、SCLK串行时钟3个口线。对时钟、RAM的读/写,可以改用单字节方式或多达31个字节的字符组方式。DS1302工作时功耗很低,保持数据和时钟信息是功率小于1mW。DS1302广泛应用于电话传真、便携式仪器及电池供电的仪器仪表等产品领域中。RT-1602 字符型液晶模块是以
20、两行16个子的5*7点阵吐信来显示字符的液晶显示器。DS1302有8个引脚:X1、X2:32.768kHz晶振介入引脚。GND:地。RST:复位引脚,低电平有效。I/O:数据输入(shr)/输出引脚,具有三态功能。SCLK:串行时钟(shzhng)输入引脚。Vcc1:工作(gngzu)电源引脚。Vcc2:备用电源引脚。DS1302有一个控制寄存器,12个日历,时钟寄存器和31个RAM。控制寄存器控制寄存器用于存放DS1302的控制命令字,DS1302的RST引脚回到高电平后写入的第一个字就为控制命令。它用于对DS1302读写过程进行控制,它的格式如下:表3.1 控制寄存器的格式 D7 D6 D
21、5 D4 D3 D2 D1 D01RAM/CKA4A3A2A1A0RD/W各项功能说明如下。D7:固定为1D6:RAM/CK位,片内RAM或日历、时钟寄存器选择位,当RAM/CK=1时,对片内RAM进行读写,当RAM/CK=0时,对日历、时钟寄存器进行读写。D5D1:地址位,用于选择进行读写的日历、时钟寄存器或片内RAM。对日历、时钟寄存器或片内RAM的选择。D0:读写位,当RD/W=1时,对日历、时钟寄存器或片内RAM进行读操作,当RD/W=0时,对日历、时钟寄存器或片内RAM进行写操作。日历、时钟寄存器DS1302共有12个寄存器,其中有7个与日历、时钟相关,存放的数据为BCD码形式。日历
22、、时钟寄存器的格式。说明:数据都以BCD码形式表示。小时寄存器的D7位为12小时制/24小时制的选择位,当为1时选择12小时制,当为0时选24小时制。当12小时制时,D5位为1是上午,D5位为0是下午,D4位小时的十位。当24小时制时,D5、D4位为小时的十位。秒寄存器中的CH位为时钟暂停位,当为1时,时钟暂停,为0时,时钟开始启动。写保护寄存器中的WP为写保护位,WP=1时,写保护,当WP=0时,未写保护,当对日历、时钟(shzhng)寄存器或片内RAM进行写时,WP应清零,当对日历、时钟寄存器或片内RAM进行读时,WP一般置1.慢充电寄存器的TCS位为控制慢充电的选择,当它为1010时才能
23、是慢充电工作。DS为二极管选择位。DS为01选择一个二极管,DS为10选择两个(lin )二极管,DS为11或00充电器被禁止,与TCS无关。RS用于选择连接在Vcc2与Vcc1之间的电阻,RS为00,充电器被禁止,与TCS无关。4.系统软件(x tn run jin)设计 开始4.1 程序流程LCD初始化函数Lcdlnitiate(); 写数据的显示地址函数 WriteAddress 显示Date和Time调用ReadSet1302(unsigned char Cmd)调用DisPlay(),分别显示年、月、日、时、分 、秒 结束图4.1 程序(chngx)流程图4.2 程序代码#inclu
24、de /包含(bohn)单片机寄存器的头文件#include /包含(bohn)_nop_()函数定义的头文件/*以下是DS1302芯片的操作程序*/unsigned char code digit10=0123456789; /定义字符数组显示数字sbit DATA=P17; /位定义1302芯片的接口,数据输出端定义在P1.7引脚sbit RST=P15; /位定义1302芯片的接口,复位端口定义在P1.5引脚sbit SCLK=P16; /位定义1302芯片的接口,时钟输出端口定义在P1.6引脚/*函数功能:延时若干微秒入口参数:n*/ void delaynus(unsigned ch
25、ar n)unsigned char i;for(i=0;in;i+);/*函数功能:向1302写一个(y )字节数据入口(r ku)参数:x*/ void Write1302(unsigned char dat)unsigned char i; SCLK=0; /拉低SCLK,为脉冲上升(shngshng)沿写入数据做好准备delaynus(2); /稍微等待,使硬件做好准备for(i=0;i=1; /将dat的各数据位右移1位,准备写入下一个数据位/*函数功能:根据命令字,向1302写一个字节数据入口参数:Cmd,储存命令字;dat,储存待写的数据*/ void WriteSet1302(
26、unsigned char Cmd,unsigned char dat)RST=0; /禁止数据传递SCLK=0; /确保写数居前SCLK被拉低RST=1; /启动数据传输delaynus(2); /稍微等待,使硬件做好准备Write1302(Cmd); /写入命令字Write1302(dat); /写数据SCLK=1; /将时钟(shzhng)电平置于已知状态RST=0; /禁止数据(shj)传递/*函数功能(gngnng):从1302读一个字节数据入口参数:x*/ unsigned char Read1302(void)unsigned char i,dat;delaynus(2); /稍
27、微等待,使硬件做好准备for(i=0;i=1; /将dat的各数据位右移1位,因为先读出的是字节的最低位if(DATA=1) /如果读出的数据是1dat|=0 x80; /将1取出,写在dat的最高位SCLK=1; /将SCLK置于高电平,为下降沿读出delaynus(2); /稍微等待SCLK=0; /拉低SCLK,形成脉冲下降沿delaynus(2); /稍微等待 return dat; /将读出的数据返回 /*函数功能:根据命令字,从1302读取一个字节数据入口参数:Cmd*/ unsigned char ReadSet1302(unsigned char Cmd)unsigned ch
28、ar dat;RST=0; /拉低RSTSCLK=0; /确保(qubo)写数居前SCLK被拉低RST=1; /启动(qdng)数据传输Write1302(Cmd); /写入命令字dat=Read1302(); /读出数据(shj)SCLK=1; /将时钟电平置于已知状态RST=0; /禁止数据传递return dat; /将读出的数据返回/*以下是对液晶模块的操作程序*/sbit RS=P20; /寄存器选择位,将RS位定义为P2.0引脚sbit RW=P21; /读写选择位,将RW位定义为P2.1引脚sbit E=P22; /使能信号位,将E位定义为P2.2引脚sbit BF=P07; /
29、忙碌标志位,将BF位定义为P0.7引脚/*函数功能:延时1ms(3j+2)*i=(333+2)10=1010(微秒),可以认为是1毫秒*/void delay1ms()unsigned char i,j; for(i=0;i10;i+)for(j=0;j33;j+); /*函数功能:延时若干毫秒入口参数:n*/void delaynms(unsigned char n)unsigned char i;for(i=0;i4)*10 + (ReadValue&0 x0F);/将读出数据转化Display(second,0 x4c); /显示秒ReadValue = ReadSet1302(0 x8
30、3); /从分寄存器读minute=(ReadValue&0 x70)4)*10 + (ReadValue&0 x0F); /将读出数据(shj)转化 Display(minute,0 x49); /显示(xinsh)分ReadValue = ReadSet1302(0 x85); /从小时(xiosh)寄存器读hour=(ReadValue&0 x70)4)*10 + (ReadValue&0 x0F); /将读出数据转化Display(hour,0 x46); /显示小时ReadValue = ReadSet1302(0 x87); /从分寄存器读day=(ReadValue&0 x70)
31、4)*10 + (ReadValue&0 x0F); /将读出数据转化Display(day,0 x0c); /显示日ReadValue = ReadSet1302(0 x89); /从分寄存器读month=(ReadValue&0 x70)4)*10 + (ReadValue&0 x0F); /将读出数据转化Display(month,0 x09); /显示月ReadValue = ReadSet1302(0 x8d); /从分寄存器读year=(ReadValue&0 xf0)4)*10 + (ReadValue&0 x0F); /将读出数据转化Display(year,0 x06); /
32、显示年 5.系统仿真调试5.1 仿真原理图设计图5.1 仿真(fn zhn)原理图5.2 仿真(fn zhn)工具栏图5.2仿真(fn zhn)控制按钮功能:1. 运行 2. 单步运行 3. 暂停 4. 停止5.2 仿真运行(ynxng)过程在Keil下,将所编制的C语言程序编译后,生成9.HEX文件;再在PROTEUS环境下,将.HEX文件加到编制的仿真原理图中进行仿真调试,从而(cng r)生成正确的日期和时间,该日期和时间与当前系统的日期和时间相符。5.3 仿真运行(ynxng)结果图5.3 仿真运行结果图6.总结单片机作为我们主要的专业课程之一,我觉得单片机课程设计很有必要,而且很有意义。回顾起此次单片机课程设计,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在几天里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电子玻璃制品研磨抛光工岗前测试验证考核试卷含答案
- 2025年石首市数学三下期中统考模拟试题含答案解析
- 纺粘针刺非织造布制作工班组管理强化考核试卷含答案
- 木作文物修复师岗中安全专项考核试卷含答案
- 聚丁二烯装置操作工岗位新材料考核试卷含答案
- 高岭土加工工岗位知识评优考核试卷含答案
- 肉制品品评师基础在岗能力考核试卷含答案
- 磨矿分级工岗位生产安全效果考核试卷含答案
- 缩放排工安全宣贯水平考核试卷含答案
- 野生植物管护巡护工岗中生产标准化考核试卷含答案
- 财务部门标准化操作流程(SOP)
- 2026年高考统编版历史二轮专题复习:「主观题(非选择题)」解题思路及技巧
- 2025年安徽省从村(社区)干部中录用乡镇(街道)机关公务员考试测试题及答案
- 放射科DR课件教学
- 2025年职业技能鉴定服务费合同模板
- 网络舆情工作课件
- 2025-2026学年清华大学版(2024)A版初中信息科技七年级上册教学计划及进度表
- 《健康养老服务基础》智慧健康养老服务与管理全套教学课件
- 汽车钣金基础课件 项目1 现代汽车车身结构设计
- 机电设备安装与调试技术教案
- 钢板弹簧设计手册技术手册指导书
评论
0/150
提交评论