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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

基于stc51单片机的LCD1602显示时间的电子万年历显示.docx

1、基于stc51单片机的LCD1602显示时间的电子万年历显示1 课设所需软件简介1.1 eil uVsion的简要介绍 20年月发布Keiliio,eiio4引入灵活的窗口管理系统,使开发人员能够使用多台监视器,并提供了视觉上的表面对窗口位置的完全控制的任何地方。新的用户界面可以更好地利用屏幕空间和更有效地组织多个窗口,提供一个整洁,高效的环境来开发应用程序。新版本支持更多最新的ARM芯片,还添加了一些其他新功能。 21年3月AM公司发布最新集成开发环境eleD开发工具中集成了最新版本的Ki uisio4,其编译器、调试工具实现与RM器件的最完美匹配。ei51开发系统基本知识i C51开发系统

2、基本知识 1. 系统概述 Ke C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Winows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍K C1开发系统各部分功能和使用。2. eil C51单片机软件开发系统的整体结构 C51工具包的整体结构,uVison与Isl分别是C51fr indo和fors的集成开发环境(ID),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用DE本身或其它编辑器编辑C或汇编源文件。然后分

3、别由C5及C51编译器编译生成目标文件(.BJ)。目标文件可由LB5创建生成库文件,也可以与库文件一起经L连接定位生成绝对目标文件(.AB)。ABS文件由O5转换成标准的He文件,以供调试器dSce5或tcope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。 使用独立的Keil仿真器时,注意事项: * 仿真器标配11.0592MH的晶振,但用户可以在仿真器上的晶振插孔中换插其他频率的晶振。 仿真器上的复位按钮只复位仿真芯片,不复位目标系统。 * 仿真芯片的31脚(/A)已接至高电平,所以仿真时只能使用片内ROM,不能使用片外ROM;但仿

4、真器外引插针中的31脚并不与仿真芯片的31脚相连,故该仿真器仍可插入到扩展有外部RO(其CP的E引脚接至低电平)的目标系统中使用。 优点:KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。 2.与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。 Keil 51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windw界面。图11 KEI操作界面1.2T-P的简要介绍S-ISP 是一款单片机下载编程烧录软件,是针对SC系列单片机而设计的,可下载S

5、TC89系列、1C205 系列和2C41等系列的T单片机,使用简便,现已被广泛使用。操作说明如下:() 打开S-S,如下图界面,在M Type栏目下选中单片机,如SC852R。 图1.2 ISP操作界面(2) 根据您的9针数据线连接情况选中COM端口,波特率一般保持默认,如果遇到下载问题,可以适当下调一些。(3) 先确认硬件连接正确,点击“打开文件”并在对话框内找到您要下载的HEX文件。图.3 选择HEX文件(4)选择所要下载的文件,这样可以使您在每次编译KEL时EX代码能自动加载到C-SP,点击“nlo/下载”。(5) 手动按下电源开关便即可把可执行文件H写入到单片机内,如图是正在写入程序截

6、图。(6)程序写入完毕,目标板开始运行程序结果。2方案分析与确定2.1 方案思路分析 由题目要求,根据设置的年份日的显示全年的年月公历、星期等信息。由于需要显示去年的日期以及星期等信息,普通的LED数码管显然已经不能胜任,为此,我们可以选择LD602液晶显示器完成课设要求。目前所具备的设备只有一块以ST89C5为内核的单片机,P机。 课设要求显示日期等信息,我们可以充分利用单片机上面集成的DS12时钟芯片。该芯片可以产生年份,月份,日期,星期,时,分,秒的数据,因此,完全可以完成实验的各项要求。基于以上分析,我们可以利用D1302产生的各种时钟数据,由CU完成对数据的读取,然后通过CU将数据写

7、至LD1602,以显示数据,达到可视化的效果。对于课程设计的拓展部分,我们可以利用单片机开发板上面集成的DS1B2温度传感器来测试周围环境的温度,同样通过CD602来显示。此外可以通过测试按键是否闭合来改变各种时间数据,已达到校准的目的。图.1整体设计框架图2. 方案流程图根据以上分析,以及使用各种芯片的操作流程,我们可以大致确定课程设计的软件设计方案方案,其大致流程如下:图2 设计流程图 单元芯片电路的设置及总体设计3. DS130芯片引脚功能 DS30 是美国DALLAS公司推出的一种高性能、低功耗、带M的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电

8、压为2.V5.5V。采用三线接口与CP进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RM数据。DS30内部有一个3的用于临时性存放数据的RAM寄存器。1302是DS1202的升级产品,与D12兼容,但增加了主电源后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。 D130的引脚排列,其中Vc1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。D102由Vc1或c2两者中的较大者供电。当Vc2大于Vcc+.2时,Vc2给DS1302供电。当c2小于Vcc1时,DS1302由Vc1供电。X1和是振荡源,外接32.78kHz晶振。S是复位/片选线,

9、通过把RS输入驱动置高电平来启动所有的数据传送。R输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RS提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对S13进行操作。如果在传送过程中ST置为低电平,则会终止此次数据传送,IO引脚变为高阻态。上电运行时,在Vcc2.之前,RT必须保持低电平。只有在SLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向),后面有详细说明。CL为时钟输入端。 下图为DS302的引脚功能图: 图.1 DS32引脚图管脚描述:X1 X2 32.78Hz 晶振管脚ND 地RST

10、复位脚I/O 数据输入/输出引脚SLK 串行时钟Vc,Vcc2 电源供电管脚 此外,拓展中用到了DS18B20温度传感器,其使用与DS1302比较类似,因此这里不再赘述。.2 S10的使用方法使用DS1302时,要对其引脚和寄存器进行特殊设置,以实现所需功能。引脚设置后面会提及,这里不做说明,主要讲一下程序的编写。DS102的的工作过程中包过读写一个字节数据等过程,下面做相应的解释。* 功 能:往DS1302写入数据*/id 102(uchar ucAdr, uchar ucDa) _RST= 0; TCL =0; T_RT=1; RTntBye(ur); * 地址,命令* TInutByte

11、(Da); /* 写te数据*/ _CLK =1; T_RT 0;/* 功 能:读取D102某地址的数据*uchar R13(car ucAdd) chr ucaa; T_RST 0; TCK =0; T_R 1; InpBt(dd); /*地址,命令 */ ucDta =TOupuB(); /*读1Byte数据 */ _CK = 1; T_RS = ; reurn(Dat);*功 能:设置初始时间*voidSet302(carpCck) ucari; uhar ucAddr = 0x80;EA = 0; W10(x8e,0x0); /* 控制命令,WP0,写操作?*/ for(i =7; i

12、0;-) 02(ucAdr,*pClck); / 秒 分 时 日月 星期年 */ Cock+; Addr =; 302(0x8e,0x80); /*控制命令,W=1,写保护?*E = ;* 功 能:读取DS13当前时间*/id Get102(ucr uCurtime) ucr i; uca ucAddr= x81; EA = 0; fo(i=0; i7; i+) ucCute R1302(ucAddr);/*格式为:秒 分 时 日月 星期年*/ ucAdr += 2; EA=1;3.3 LD16引脚功能160液晶也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若

13、干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔每行之间也有间隔起到了字符间距和行间距的作用,正因为如此所以他不能显示图形 n12LC是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。 图3.2 LCD62引脚图1602采用标准的1脚接口,其中: 第1脚:SS为电源地 第2脚:VDD接5V电源正极 第脚:0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影”,使用时可以通过一个1K的电位器调整对比度)。 第4脚:S为寄存器选择,高电平1时选择数据寄存器、低电平0时选

14、择指令寄存器。第5脚:W为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。 第6脚:E(或E)端为使能(enale)端。 第14脚:0为位双向数据端。 第51脚:空脚或背灯电源。15脚背光正极,1脚背光负极。34 LD602的使用C102的使用与前面的D302的使用有类似的地方,包括引脚的设置和对应的编程,引脚的设置后面会提及到,这里只涉及对应的编程。/*LCD162 延时*/vid_delay(ua ms) uchar ; we(ms-) or(j=0;j25;+) ; *LCD16 忙等待/vod d_busyat() Lcdr = 0; Lcd_rw=1; Ld_e =

15、1; cd_dat = 0f; le(Lcddax0); Lcde =0; /*LCD1602 命令字写入*/void Lcdcomman_rte(ch com) Lc_bsy_wait(); L_rs = 0; d_rw=0; Lcden 0; Lcddata commad; Lcd_en = ; cd_en = ; /*LD60 初始化*/void ni_lcd() c_delay(0); cd_comwrt(0x8); Lcd_eay(100); Lc_omman/*LC12 延时*/_wite(0x38); Ld_ela(); c_comad_e(038); cd_dely(); _c

16、ommand_write(0x08); cdcomdwrit(00); Lcdommand_wrte(0x0); cd_comandwrie(0x0c); Lc_at f; /*释放数据端口*/void cdchar_wite(charxpos,y_pos,lcddat) /LC102 字符写入*/ x_o &= 00f; /* 位置范围 5 * y_pos &= x01; /* Y位置范围 0 1*/ if(y_po=1)_pos += 0x40; x_os += x8; Lcdcomand_write(x_ps); Lcd_usy_a(); Lcdrs= ; Lcrw = 0; Ld_en

17、 = 0; cd_data lcddat; Lcd_e = 1; cd_en= 0; Lcd_a=0xff; /释放数据端口*/4整体电路设计和程序由上面的分析可以得到实验的电路图如下:图41 仿真电路图设计源代码如下:* 程序名称: LD1602显示时间 显示当前温度 */*头文件#inlud #lde 1; * 函 数 名:RTOututB() 功 能:实时时钟读取一字节 说 明:从DS1302读取1te数据(内部函数) 入口参数:无 返 回 值:A*/uchr RTOputte(vod) har i; for(i=8; i0; -) ACC = ACC 1; *相当于汇编中的RC*/ A

18、C7 T_O; T_CL = 1; T_CLK=0; etrn(CC); /*函数 名:W132() 功 能:往S302写入数据 说 明:先写地址,后写命令数据 (内部函数) 调 用:Iutyte(), RTOutputBte() 入口参数:uAdd:S12地址, ucDa: 要写的数据返 回值:无*/vo W1302(uca ucAd, ucar cDa) TST = 0; T_CLK 0; T_ST = ; RTIputByte(ucAddr); * 地址,命令 */ RTInpB(Da); /* 写1Byt数据*/ T_LK=1; _RT = ; * 函数 名:132() 功 能:读取D

19、S130某地址的数据 说 明:先写地址,后读命令/数据 (内部函数)调 用:RTIpuBye() , TtpuByt() 入口参数:dr: S102地址 返 回 值:ucDat :读取的数据*/ucaR1302(ucar ucAdd) ucharuDta; _RT=0; T_CK 0; _RS 1; RTInptByt(udd); /* 地址,命令*/ ucData =TOutptBye(); 读Bte数据 _CLK =; _RST =; reurn(uca);/* 函 数名:e1302()功 能:设置初始时间 说 明:先写地址,后读命令数据(寄存器多字节方式) 调 用:W02() 入口参数:pock:设置时钟数据地址 格式为:秒 分 时 日 月星期 年 7Byte (BCD码)1B 1B B B 1B B1 返 回 值:无*vidSe130(ucar*Clock) uchar i; ucharucAdr= 0x80;A 0; W1302(0x8e,0x00); / 控制命令,P=0,写操作?*/ fr( =; i0;-) W1302(ucAddr,*Ck); /* 秒

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

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