简易电子钟设计.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
简易电子钟设计精选

电子科技大学中山学院学生实验报告院别:电子信息学院 课程名称:微处理器实验班级无线技术14姓名学号实验名称简易电子钟设计实验时间2016年12月 13日成绩教师签名批改时间报 告 内 容实验目的和任务熟悉电子钟的基本工作原理。掌握简易电子钟的硬件结构及程序设计方法。实验原理简介单片机实现电子钟主要有两种方案。一种是利用单片机内部的定时/计数器产生标准秒信号,并根据时间系统的进位原则进行加1调整。另一种方法是为单片机配置一片可独立走时的实时钟(RTC)芯片,单片机通过串行信号线与该芯片进行通信,读取或设置其当前时间。第一种方案结构简单、成本低,精度可满足多数场合的需要,因此,本设计采用第一种方案。 ZSC-1实验箱配置了简易电子钟所需的LCD1602液晶显示器、蜂鸣器、按键等外设,具体电路如图3.11.1所示。LCD1602用于电子钟的时间显示,其8位数据线连接单片机的P0口,使能端E和数据/命令寄存器选择端RS分别连接到单片机的P4.5、P4.6,读/写选择端RW固定接地,背光由单片机的P1.5控制,对比度通过VEE端所连10KΩ电位器进行调节。按键KX0~KX3分别连接到单片机的P3.2、P3.4、P3.5、P3.7,可用于选择电子钟的模式、设置当前时间及闹铃等。蜂鸣器由单片机的P1.0控制,可在闹铃、整点或按键操作时发出提示声。关于LCD1602液晶显示器的结构及控制方法,可参阅理论课教材第7.4节。三、实验内容和步骤实验要求:具有时、分、秒走时、调时功能;通过LCD1602显示;上电初始时间为11:59:55;利用KX0、KX1调“时”,KX0、KX1调“分”,调整时“秒”清零;5、整点时蜂鸣器响4声。程序清单:#includereg51.hsfr P4SW=0XBB;sfr P4=0XC0;typedef unsigned char uint8;typedef unsigned int uint16;sbit LCD1602_RS=P4^6;sbit LCD1602_EN=P4^5;sfr LCD1602_DATA=0x80;sbit P10=P3^2;sbit P11=P3^4;sbit P12=P3^5;sbit P13=P3^7;void SystemInit();void TimerInit();void ClockInit();void ClockAdj();void ClockDisp();void ClockSet();void Lcd1602CmdWrite(uint8 Byte);void Lcd1602DataWrite(uint8 Byte);void Lcd1602Init();void Lcd1602GotoXY(uint8 x,uint8 y);void Lcd1602DispChar(uint8 x,uint8 y,uint8 Char);void Lcd1602DispStr(uint8 x,uint8 y,uint8* Str);uint8 ScanKey();void didi();void Delay(int ms);uint8 Count50ms=0,key,Hour,Min,Sec;void T0ISR(void) interrupt 1 { TH0=(-45*1024)8; TL0=(-45*1024)0xFF; if(++Count50ms20) return; Count50ms=0; ClockAdj();}void main(){ SystemInit(); while(1) {Delay(100); ClockDisp(); if(Min==0Sec==0) didi();key=ScanKey();if(key==0xFF) continue; ClockSet(); }}void SystemInit() { P4SW|=0X70; P1=~(15); TimerInit(); ClockInit(); Lcd1602Init(); }void TimerInit(){ TMOD=0x01; TH0=(

文档评论(0)

586334000 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档