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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(多功能数字钟的设计Word文档下载推荐.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

多功能数字钟的设计Word文档下载推荐.docx

1、数字时钟功能齐全,而且操作方便,符合现实要求。原理框图: ms定义 s定义秒 m定义分钟 h定义小时定时器 产生10ms 1s 60s 1h 24小时清零 比较是否相等 清零 比较是否相等 单片机 液晶屏 清零秒表 10ms 1s 60s 1h 24小时清零 相 等闹钟 小时 分钟 按键 蜂鸣器二、各模块设计原理时钟信号的产生51单片机定时器T0原理:定时器/计数器简称定时器,其作用主要包括产生各种时标间隔、记录外部事件的数量等,是微机中最常用、最基本的部件之一。803l单片机有2个16位的定时器/计数器:定时器0(T0)和定时器1(T1)。T0由2个定时寄存器TH0和TL0构成,T1则由TH

2、1和TL1构成,它们都分别映射在特殊功能寄存器中,从而可以通过对特殊功能寄存器中这些寄存器的读写来实现对这两个定时器的操作。作定时器时,每一个机器周期定时寄存器自动加l,所以定时器也可看作是计量机器周期的计数器。由于每个机器周期为12个时钟振荡周期,所以定时的分辨率是时钟振荡频率的1/12。作计数器时,只要在单片机外部引脚T0(或T1)有从1到0电平的负跳变,计数器就自动加1。计数的最高频率一般为振荡频率的l/24。工作方式:T0或T1无论用作定时器或计数器都有4种工作方式:方式0、方式1、方式2和方式3。除方式3外,T0和T1有完全相同的工作状态。下面以T1为例,分述各种工作方式的特点和用法

3、。工作方式0:13位方式由TL1的低5位和TH1的8位构成13位计数器(TL1的高3位无效)。工作方式0的结构见下图:图中,C/T为定时/计数选择:C/T=0,T1为定时器,定时信号为振荡周期12分频后的脉冲;C/T=l,T1为计数器,计数信号来自引脚T1的外部信号。定时器T1能否启动工作,还受到了R1、GATE和引脚信号INT1的控制。由图中的逻辑电路可知,当GATE=0时,只要TR1=1就可打开控制门,使定时器工作;当GATE=1时,只有TR1=1且INT1=1,才可打开控制门。GATE,TR1,C/T的状态选择由定时器的控制寄存器TMOD,TCON中相应位状态确定,INT1则是外部引脚上

4、的信号。在一般的应用中,通常使GATE=0,从而由TRl的状态控制Tl的开闭:TRl=1,打开T1;TRl=0,关闭T1。在特殊的应用场合,例如利用定时器测量接于INT1引脚上的外部脉冲高电平的宽度时,可使GATE=1,TRl=1。当外部脉冲出现上升沿,亦即INT1由0变1电平时,启动T1定时,测量开始;一旦外部脉冲出现下降沿,亦即INT1由l变O时就关闭了T1。定时器启动后,定时或计数脉冲加到TLl的低5位,从预先设置的初值(时间常数)开始不断增1。TL1计满后,向THl进位。当TL1和THl都计满之后,置位T1的定时器回零标志TFl,以此表明定时时间或计数次数已到,以供查询或在打开中断的条

5、件下,可向CPU请求中断。如需进一步定时/计数,需用指令重置时间常数。时钟的秒,分钟,小时的产生模块:10ms计100次够1s,够60s计分钟,够60分钟小时,够24小时清零。秒表:单片机给秒表信号,从零开始计数,从10ms开始显示,10ms计100次够1s,够60s计分钟,够60分钟小时,够24小时清零。闹钟的设定模块:设置闹钟变量,单片机检测按键,通过闹钟变量给小时,分钟赋值。修改时间模块:通过单片机检测按键来给时钟小时分钟进行修改,并且不改变闹钟设定的时间。按键控制模块:单片机对按键扫描,当检测到按键的变化时执行相应操作。一共有三个按键和两个开关。总体电路设计图设计程序:#include

6、#define uchar unsigned char #define uint unsigned int#define dataport P2 /1602数据端sbit rs=P17; /写命令数据控制端 sbit lcden=P15; /1602使能端sbit hadd=P16;sbit madd=P14;sbit jishi=P13;sbit turn=P12;sbit sounder=P11;uchar h=10,m,s_1,count,count_1,ms,flag,h_1,m_1,s_2,ms_1,h_2,m_2,s_3,ms_2,flag_1=3,ms_3,m_3,s_4,h_3

7、,nm,nh;code char C110=0123456789; /定义一个数组用来装载本实验所需要的十进制数字code unsigned char C2=00:00code char name6=M:PYANvoid delay(us); /延时子函数void write_com(uchar com);void write_data(uchar dat);void jishi_1();void init1602() write_com(0x38);/显示模式设置 write_com(0x08);/显示打开 write_com(0x01);/显示清屏 write_com(0x06);/显示光

8、标移动设置 write_com(0x0c);/显示开及光标设置void delay(us) unsigned int j; while(us-) for(j=80;j0;j-); void shijian() write_com(0x80+0X40); write_data(C1h/10); write_com(0x80+0X41); write_data(C1h%10); write_com(0x80+0X42); write_data(:); write_com(0x80+0X43); write_data(C1m/10); write_com(0x80+0X44); write_data

9、(C1m%10); write_com(0x80+0X45); write_com(0x80+0X46); write_data(C1s_1/10); write_com(0x80+0X47); write_data(C1s_1%10);void jishi_1() write_com(0x80); write_data(C1h_1/10); write_com(0x80+0X01); write_data(C1h_1%10); write_com(0x80+0X02); write_com(0x80+0X03); write_data(C1m_1/10); write_com(0x80+0X

10、04); write_data(C1m_1%10); write_com(0x80+0X05); write_com(0x80+0X06); write_data(C1s_2/10); write_com(0x80+0X07); write_data(C1s_2%10); write_com(0x80+0X08); write_com(0x80+0X09); write_data(C1ms_1/10); write_com(0x80+0X0a); write_data(C1ms_1%10);void jishi_3() write_data(C1h_3/10); write_data(C1h_

11、3%10); write_data(C1m_3/10); write_data(C1m_3%10); write_data(C1s_4/10); write_data(C1s_4%10); write_data(C1ms_3/10); void jishi_2() write_data(C1h_2/10); write_data(C1h_2%10); write_data(C1m_2/10); write_data(C1m_2%10); write_data(C1s_3/10); write_data(C1s_3%10); write_data(C1ms_2/10); write_data(C

12、1ms_2%10);void play_nz()/闹钟函数 write_com(0x80+0X49);N write_com(0x80+0X4A); write_com(0x80+0X4B); write_data(C1nh/10); write_com(0x80+0X4C); write_data(C1nh%10); write_com(0x80+0X4D);- write_com(0x80+0X4E); write_data(C1nm/10); write_com(0x80+0X4F); write_data(C1nm%10);void nz() if(nm=m&nh=h) sounder

13、=0; delay(100); sounder=1; /*/*写数据函数*/void write_data(uchar dat) rs=1; /选择写数据 lcden=0; P2=dat; lcden=1; delay(1);/*写命令*/void write_com(uchar com) /写命令子函数 rs=0; /为0则为写命令,为1则为写数据 P2=com; void init() TMOD=0X01; /定时器0的工作方式1 TH0 = 0x0FF; TL0 = 0x9C; /初始化计数器值 TR0=1; /定时器0的中断控制位 EA=1; ET0=1; IE0=1; / EX0=1

14、; /外部中断0的标志位 IT0=1; /外部中断0的方式选择位,本实验选择底电平触发 /开启总中断 init1602();void zhengdian() if(m=0&s_1=0)void keyscan_1() if(jishi=1) /init_jishi(); h_3=0; m_3=0; s_4=0; ms_3=0; jishi_3(); else if(flag=0) jishi_2(); if(flag=1) jishi_1();void keyscan_2() if(turn=0) /修改时间 if(hadd=0) while(!hadd); h+; if(h=24) h=0;

15、 if(madd=0)madd); m+; if(m=60) m=0; if(turn=1) /设置闹钟 nh+; if(nh nh=0; nm+; if(nm nm=0;void student_name() uchar i; write_com(0x80+0x0b); /选择显示的地址 for(i=0;i h=0; if(ms_1=100) ms_1=0; s_2+; if(s_2=60) /减到0之后停止 s_2=0; m_1+; if(m_1=60) m_1=0; h_1+; if(h_1=24) h_1=0;void I0_test() interrupt 0 h_2=h_1; m_

16、2=m_1; s_3=s_2; ms_2=ms_1; if(flag=0) h_1=0; m_1=0; s_2=0; ms_1=0; flag=!flag;三、电路仿真液晶屏的工作:1602LCD内置HD44780专用液晶显示控制器,分为带背光和不带背光两种,带背光的比不带背光的厚,在应用中并无差别。显示容量为16*2个字符。芯片工作电压:4.5-5.5V:最佳工作电压为5V。工作电流:2.0mA。各引脚功能:VSS:电源地 VDD:电源正极 VEE:液晶显示偏压,为对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高会产生鬼影,使用时可以通过一个10k的电位器调整对比度。 RS:

17、数据/命令选择信号,高电平时选择数据寄存器、低电平时选择指令寄存器。 RW:读/写控制信号,高电平时进行读操作,低电平时进行写操作。 E:使能端,为1时读取信息,当E端由高电平跳变成低电平时液晶模块执行命令。 D0D7:8位双向数据线 BLA:背光源正极 BLK:背光源负极。仿真后从十点开始计时。闭合开关开始调节时间。(上面按键调节分钟,下面按键调节小时)。调节后时间显示,与当时时间一致。闹钟的调节断开开关调节闹钟,上面按键调节分钟,下面按键调节小时,调节闹钟到12点。当闹钟时间与显示时间一致时,蜂鸣器响,响铃时间为一分钟蜂鸣器的工作原理(蜂鸣器)秒表计时右边开关闭合,左边按键按下开始计时,再

18、次按下左边按键暂停,右边开关断开这计时清零。重复开始操作则可重新计时。四、设计心得及体会本次数数字时钟的设计过程比较漫长,主要是设计功能较多,有些功能的设计遇到不少难题,主要是秒表的设计,通过查阅资料,最终也是解决。本次设计主要运用到了单片机和1602液晶显示屏来实现数字时钟计时,校准,闹钟,秒表等功能。这次电子设计收获很多,主要是对单片机和电子设计有了更深的了解,本次也不是第一次使用protues进行仿真,所以进展还比较顺利,最终成功实现报告所要求的全部内容,也是非常的欣慰。单片机的设计一直是个难题,因为没有专门上过这方面的课程,许多东西只能自学和请教学习过的同学,可以说是费了很多心思。其实

19、设计中,较大的问题是程序的编写,平常很少实现这么多功能的设计,所以c语言编程也相应比较复杂,重新参考了c语言程序设计和相应资料,程序长所以中间出现错误也很多,有些是疏忽造成,有些是语法错误,所以修改了较长时间。费的心思越多,学的也越多,学到这里,我也体会到单片机的强大和重要性,在以后的学习中一定要多多练习,更多的使用和了解其功能,做出更好更强大的设计。参考文献:1康华光.电子技术基础 高等教育出版社 出版日期:2006.1(2014.1重印)2吴建国、张彦.数字电子技术 华中科技大学出版社 出版日期:2010.8 3孙焕铭、赵会成、王金 51单片机C程序应用实例讲解 北京航空航天大学出版社 出版日期:2011.3 4谭浩强 C程序设计 清华大学出版社 出版日期:2010.6(2013.11重印)5李亮 51单片机定时器/计数器的结构和原理 电气自动化技术网 时间2013-03-03 6网址 1602液晶显示原理

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

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