已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单单片机片机课课程程设计设计 个性化电子时钟设计个性化电子时钟设计 学 院: 07 电子信息工程 班 级: 电子(1)班 姓 名: 组 员: 指导老师: 1 目录 摘摘 要要.2 一、电子时钟一、电子时钟.2 1.1 电子时钟简介 2 1.2 电子时钟的基本特点2 1.3 电子时钟的原理3 二、二、 单片机识的相关知识单片机识的相关知识.3 2.1 单片机简介3 2.2 单片机的发展史3 1 . 4位单片机3 2 . 8位单片机3 3 . 16位单片机4 4 . 32位单片机4 5 . 64位单片机4 2.3 单片机的特点4 2.4 at89c51 单片机介绍.5 三、三、 控制系统的硬件设计控制系统的硬件设计.7 3.1 单片机型号的选择7 3.2 数码管显示工作原理7 3.3 74ls373 介绍.8 3.4 整个电路原理图.9 四、四、 控制系统的软件设计控制系统的软件设计.9 4.1 程序清单 9 4.2 仿真结果 15 五、心得五、心得.16 六、参考文献六、参考文献.17 2 摘摘 要要 单片计算机即单片微型计算机。由 ram ,rom,cpu 构成,定时,计数和多种接口于一 体的微控制器。它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。而 51 系 列单片机是各单片机中最为典型和最有代表性的一种。这次课程设计通过对它的学习,应用, 从而达到学习、设计、开发软、硬的能力。 本设计主要设计了一个基于 at89c51 单片机的电子时钟。在数码管通过一个控制键转换 来显示相应的时间和日期。并通过多个控制键用来实现时间和日期的调节。应用 keil 软件实现 单片机电子时钟系统的程序设计,用 proteus 的 isis 软件实现仿真。该方法仿真效果真实、准确, 节省了硬件资源。 关键字:单片机 时钟 键盘控制 一、电子时钟一、电子时钟 1.1 电子时钟简介电子时钟简介 1957 年,ventura 发明了世界上第一个电子表,从而奠定了电子时钟的基础,电子时钟开始 迅速发展起来。现代的电子时钟是基于单片机的一种计时工具,采用延时程序产生一定的时间 中断,用于一秒的定义,通过计数方式进行满六十秒分钟进一,满六十分小时进一,满二十四 小时小时清零。从而达到计时的功能,是人民日常生活补课缺少的工具。 1.2 电子时钟的基本特点电子时钟的基本特点 现在高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟、石英钟、石英表都 采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调试,数字式电子钟用 集成电路计时,译码代替机械式传动,用 led 显示器代替指针显示进而显示时间和日期,减小 了误差,这种表具有时、分、秒显示时间的功能和年月日显示日期的功能,还可以进行校对, 片选的灵活性好。 3 1.3 电子时钟的原理电子时钟的原理 该电子时钟由 at89c51,74ls373,button,数码管等构成,采用晶振电路作为驱动电路, 由延时程序和循环程序产生的一秒定时,达到时分秒的计时,六十秒为一分钟,六十分钟为一 小时,满二十四小时为一天,满三十天(闰年二月满二十九天,平年二月满二十八天)为一个月, 满十二个月为一年。电路中的键控 1 实现“年”和“分”的调节,键控 2 实现“月”和“时” 的调节,键控 3 实现“日”和“分”的调节。每按一次就加一。 二、二、 单片机识的相关知识单片机识的相关知识 2.1 单片机简介单片机简介 单片机全称为单片机微型计算机(single chip microsoftcomputer)。从应用领域来看,单片 机主要用来控制,所以又称为微控制器(microcontroller unit)或嵌入式控制器。单片机是将计 算机的基本部件微型化并集成在一块芯片上的微型计算机。 2.2 单片机的发展史单片机的发展史 1 . 4 位单片机位单片机 1975 年,美国德克萨斯仪器公司首次推出 4 位单片机 tms-1000;此后,各个计算机公司 竞相推出四位单片机。日本松下公司的 mn1400 系列,美国洛克威尔公司的 pps/1 系列等。四 位单片机的主要应用领域有:pc 机的输入装置,电池充电器,运动器材,带液晶显示的音/视频 产品控制器,一般家用电器的控制及遥控器,电子玩具,钟表,计算器,多功能电话等。 2 . 8 位单片机位单片机 1972 年,美国 intel 公司首先推出 8 位微处理器 8008,并于 1976 年 9 月率先推出 mcs-48 系列单片机。在这以后,8 位单片机纷纷面市。例如,莫斯特克和仙童公司合作生产的 3870 系 列,摩托罗拉公司生产的 6801 系列等。随着集成电路工艺水平的提高,一些高性能的 8 位单片 机相继问世。例如,1978 年摩托罗拉公司的 mc6801 系列及齐洛格公司的 z8 系列,1979 年 nec 公司的 upd78xx 系列。这类单片机的寻址能力达 64kb,片内 rom 容量达 4-8kb,片 4 内除带有并行 io 口外,还有串行 io 口,甚至还有 ad 转化器功能。8 位单片机由于功能强, 被广泛用于自动化装置、智能仪器仪表、智能接口、过程控制、通信、家用电器等各个领域。 3 . 16 位单片机位单片机 1983 年以后,集成电路的集成度可达几十万只管/片,各系列 16 位单片机纷纷面市。这一 阶段的代表产品有 1983 年 intel 公司推出的 mcs-96 系列,1987 年 intel 推出了 80c96,美国国 家半导体公司推出的 hpc16040,nec 公司推出的 783xx 系列等。16 位单片机主要用于工业控 制,智能仪器仪表,便携式设备等场合。 4 . 32 位单片机位单片机 随着高新技术只智能机器人,光盘驱动器,激光打印机,图像与数据实时处理,复杂实时 控制,网络服务器等领域的应用与发展,20 世纪 80 年代末推出了 32 位单片机,如 motorlora 公 司的 mc683xx 系列,intel 的 80960 系列,以及近年来流行的 arm 系列单片机。32 位单片机 是单片机的发展趋势,随着技术的发展及开发成本和产品价格的下降,将会与 8 位单片机并驾 齐驱。 5 . 64 位单片机位单片机 近年来,64 位单片机在引擎控制,智能机器人,磁盘控制,语音图像通信,算法密集的实 时控制场合已有应用,如英国 inmos 公司的 transputer t800 是高性能的 64 位单片机。 2.3 单片机的特点单片机的特点 1 . 单片机的存储器 rom 和 ram 时严格区分的。rom 称为程序存储器,只存放程序, 固定常数,及数据表格。ram 则为数据存储器,用作工作区及存放用户数据。 2 . 采用面向控制的指令系统。为满足控制需要,单片机有更强的逻辑控制能力,特别是单 片机具有很强的位处理能力。 3 . 单片机的 i/o 口通常时多功能的。由于单片机芯片上引脚数目有限,为了解决实际引 脚数和需要的信号线的矛盾,采用了引脚功能复用的方法,引脚处于何种功能,可由指令来设 置或由机器状态来区分。 4 . 单片机的外部扩展能力很强。在内部的各种功能部件不能满足应用的需求时,均可在 外部进行扩展,与许多通用的微机接口芯片兼容,给应用系统设计带来了很大的方便。 5 2.4at89c51 单片机介绍单片机介绍 vcc:电源;gnd:接地。 p0 口:p0 口为一个 8 位漏级开路双向 i/o 口,每脚可吸收 8ttl 门电流。当 p1 口的管脚 第一次写 1 时,被定义为高阻输入。p0 能够用于外部程 序数据存储器,它可以被定义为数据/ 地址的第八位。在 fiash 编程时,p0 口作为原码输入口,当 fiash 进行校验时,p0 输出原码, 此时 p0 外部必须被拉高。 p1 口:p1 口是一个内部提供上拉电阻的 8 位双向 i/o 口,p1 口缓冲器能接收输出 4ttl 门电流。p1 口管脚写入 1 后,被内部上拉为高,可用作 输入,p1 口被外部下拉为低电平时, 将输出电流,这是由于内部上拉的缘故。在 flash 编程和校验时,p1 口作为第八位地址接收。 p2 口:p2 口为一个内部上拉电阻的 8 位双向 i/o 口,p2 口缓冲器可接收,输出 4 个 ttl 门电流,当 p2 口被写“1”时,其管脚被内部上拉电阻 拉高,且作为输入。并因此作为输入时, p2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。p2 口当用于外部程序存储器 或 16 位地址外部数据存 储器进行存取时,p2 口输出地址的高八位。在给出地址“1”时,它利用 内部上拉优势,当对外部八位地址数据存储器进行读写时,p2 口输出其特殊功能寄存器 的内容。 p2 口在 flash 编程和校验时接收高八位地址信号和控制信号。 xtal2 18 xtal1 19 ale 30 ea 31 psen 29 rst 9 p0.0/ad0 39 p0.1/ad1 38 p0.2/ad2 37 p0.3/ad3 36 p0.4/ad4 35 p0.5/ad5 34 p0.6/ad6 33 p0.7/ad7 32 p1.0 1 p1.1 2 p1.2 3 p1.3 4 p1.4 5 p1.5 6 p1.6 7 p1.7 8 p3.0/rxd 10 p3.1/txd 11 p3.2/int0 12 p3.3/int1 13 p3.4/t0 14 p3.7/rd 17 p3.6/wr 16 p3.5/t1 15 p2.7/a15 28 p2.0/a8 21 p2.1/a9 22 p2.2/a10 23 p2.3/a11 24 p2.4/a12 25 p2.5/a13 26 p2.6/a14 27 u4 at89c51 图 1 at89c51 单片机 6 p3 口:p3 口管脚是 8 个带内部上拉电阻的双向 i/o 口,可接收输出 4 个 ttl 门电流。当 p3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平, p3 口将输出电流(ill)这是由于上拉的缘故。 p3 口也可作为 at89c51 的一些特殊功能口,如下表所示: p3.0 rxd(串行输入口) p3.1 txd(串行输出口) p3.2 /int0(外部中断 0) p3.3 /int1(外部中断 1) p3.4 t0(记时器 0 外部输入) p3.5 t1(记时器 1 外部输入) p3.6 /wr(外部数据存储器写选通) p3.7 /rd(外部数据存储器读选通) p3 口同时为闪烁编程和编程校验接收一些控制信号。 rst:复位输入。当振荡器复位器件时,要保持 rst 脚两个机器周期的高电平时间。 ale/prog:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。 在 flash 编程期间,此引脚用于输入编程脉冲。在平时,ale 端以不变的频率周期输出正脉 冲信号,此频率为振荡器频率的 1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要 注意的是:每当用作外部数据存储器 时,将跳过一个 ale 脉冲。如想禁止 ale 的输出可在 sfr8eh 地址上置 0。此时, ale 只有在执行 movx,movc 指令是 ale 才起作用。另外, 该引脚被略微拉高。如果微处理器在外部执行状态 ale 禁止,置位无效。 psen:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次 /psen 有效。但在访问外部数据存储器时,这两次有效的/psen 信号将不出现。 ea/vpp:当/ea 保持低电平时,则在此期间外部程序存储(0000h-ffffh),不管是否有 内部程序存储器。注意加密方式 1 时, /ea 将内部锁定为 reset;当/ea 端保持高电平时,此 间内部程序存储器。在 flash 编程期间,此引脚也用于施加 12v 编程电源(vpp)。 7 三、三、 控制系统的硬件设计控制系统的硬件设计 3.1 单片机型号的选择单片机型号的选择 通过对多种单片机性能的分析,最终认为 89c51 是最理想的电子时钟开发芯片。89c51 是 一种带 4k 字节闪烁可编程可擦除只读存储器的低电压,高性能 cmos8 位微处理器,器件采用 atmel 高密度非易失存储器制造技术制造,与工业标准的 mcs-51 指令集和输出管脚相兼容。 由于将多功能 8 位 cpu 和闪烁存储器组合在单个芯片中,atmel 的 89c51 是一种高效微控制 器,而且它与 mcs-51 兼容,且具有 4k 字节可编程闪烁存储器和 1000 写/擦循环,数据保留时 间为 10 年等特点,是最好的选择。 3.2 数码管显示数码管显示工作原理工作原理 数码管是一种把多个 led 显示段集成在一起的显示设备。有两种类型,一种是共阳型,一 种是共阴型。共阳型就是把多个 led 显示段的阳极接在一起,又称为公共端。共阴型就是把多 个 led 显示段的阴极接在一起,即为公共商。阳极即为二极管的正极,又称为正极,阴极即为 二极管的负极,又称为负极。通常的数码管又分为 8 段,即 8 个 led 显示段,这是为工程应用 方便如设计的,分别为 a、b、c、d、e、f、g、dp,其中 dp 是小数点位段。而多位数码管, 除某一位的公共端会连接在一起,不同位的数码管的相同端也会连接在一起。即,所有的 a 段 都会连在一起,其它的段也是如此,这是实际最常用的用法。数码管显示方法可分为静态显示 和动态显示两种。静态显示就是数码管的 8 段输入及其公共端电平一直有效。动态显示的原理 是,各个数码管的相同段连接在一起,共同占用 8 位段引管线;每位数码管的阳极连在一起组 成公共端。利用人眼的视觉暂留性,依次给出各个数码管公共端加有效信号,在此同时给出该 数码管加有效的数据信号,当全段扫描速度大于视觉暂留速度时,显示就会清晰显示出来。 8 图 2 共阴数码管 3.3 74ls373 介绍介绍: 373 为三态输出的八 d 透明锁存器 ,373 的输出端 o0o7 可直接与总线相连。 当三态允许控制端 oe 为低电平时, o0o7 为正常逻辑状态,可用来驱动负载或总 线。当 oe 为高电平时, o0o7 呈高阻态,即不驱动总线,也不为总线的负载,锁存器 内部的逻辑操作不受 影响。 当锁存允许端 le 为高电平时, o 随数据 d 而变。当 le 为低电平时, o 被锁存在 已建立的数据电平。当 le 端施密特触发器的输入滞后作用, 使交流和直流噪声抗扰度被改善 400mv。 引出端符号: d0d7 数据输入端 ;oe 三态允许控制端(低电平有效 ;le 锁存允许端 ;o0o 7 输出端 图 3 74ls373 9 3.4 整个电路原理图整个电路原理图 图 4 系统电路原理图 四、四、 控制系统的软件设计控制系统的软件设计 4.1 程序清单程序清单 #include #include sbit p20=p20; /*定义端口*/ sbit khour=p30; sbit kmin=p31; sbit knian=p32; sbit tiaonian=p33 ; sbit speaker=p37 ; int j=-1 ; /*定义变量,j 用以控制扫描*/ bit flag=0,leap=0; /*定义 flag 控制时分秒和年月日的显示,leap 判断是否为闰年 */ char secshi=0,secge=0,minshi=0,minge=0,hourshi=0,hourge=0; char dayshi=0,dayge=0,monthshi=0,monthge=0,yearshi=0,yearge=0 ; 10 unsigned int num=0,sec=0,min=0,hour=0; /*设置初始时间为 00 时 0 分 0 秒*/ unsigned int day=1,month=1,year=10; /*设置初始日期为 2010 年 1 月 1 日*/ char saomiao8=0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80; /*扫描数组,控制位选*/ char shijian10=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; /*共阴数码管的 0,1,2,3,4,5,6,7,8,9*/ void delay(unsigned int z) /*延时子程序*/ unsigned int x,y; for(x=z;x0;x-) for(y=10;y0;y-) ; void timer() interrupt 1 /*定时器中断 0*/ th0=(65535-5000)/256; /*重新装入初值*/ tl0=(65535-5000)%256; num+; j+; if(year%4=0 /*闰年,使 leap=1*/ else leap=0; /*平年,使 leap=0*/ if(num=150) /*实验微调得 num=150 时大概为 1s*/ num=0; sec+; /*秒自动加 1*/ if(sec=60) sec=0; min+; /*60s 时,分自动加 1,秒归 0*/ if(min=60) min=0; hour+; /*60 分时,小时自动加 1,分归 0*/ if(hour=24) hour=0; 11 min=0; sec=0; day+; /*24 时,天自动加 1,时分秒归 0*/ /* * *月份的判断,平年时的 2 月和闰年时的 2 月,以及 30 天和 31 天的判断 * *if(leap= 1 month+; /*2 月 28 天或 29 天时月自加 1*/ if(month=1|month=3|month=5|month=7|month=8|month=10|month=12) if(day=32) day=1; month+; /*月为 31 天达到时月自动加 1*/ if( month=4|month=6|month=9|month=11) if(day=31) day=1; month+; /*月为 30 天达到时月自动加 1*/ if(month=13) year+; month=1; /*新的一年的开始*/ secge=sec%10; 12 secshi=sec/10; minge=min%10; minshi=min/10; hourge=hour%10; hourshi=hour/10; dayge=day%10; dayshi=day/10; monthge=month%10; monthshi=month/10; yearge=year%10; yearshi=year/10; p1=saomiaoj; /*数码管的位选设置*/ if(flag=1) /*flag=1,显示年月日*/ if(p1=0x80) p2=shijiandayge; if(p1=0x40) p2=shijiandayshi; if(p1=0x20) p2=0xbf; /*年与月之间的分隔符“”的显示*/ if(p1=0x10) p2=shijianmonthge; if(p1=0x08) p2=shijianmonthshi; if(p1=0x04) p2=0xbf; /*月与天之间的分隔符“”的显示*/ if(p1=0x02) p2=shijianyearge; if(p1=0x01) p2=shijianyearshi; else /*flag=0,显示时分秒*/ if(p1=0x80) p2=shijiansecge; if(p1=0x40) p2=shijiansecshi; if(p1=0x20) p2=0xbf; if(p1=0x10) p2=shijianminge;/xian shi if(p1=0x08) p2=shijianminshi; if(p1=0x04) p2=0xbf; if(p1=0x02 if(flag=1) /*显示年月日的情况下做年月日的调整*/ if(kmin=0) day+; 14 while(kmin=0); if(khour=0) month+; while (khour=0); if(month12) month=1; if(tiaonian=0 while (tiaonian=0); void baoshi() /*整点报时子程序*/ if(min=0 delay(1) ; speaker=1 ; else speaker=1; void alarm() / *闹钟子程序*/ bit ring=1; char xx=10; if(tiaonian=0) ring=0; delay(100); while(tiaonian=0); /*关闭正在叫的闹钟*/ 15 if(hour=6 delay(1) ; speaker=1 ; if(hour=6 void main() tmod=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 46572-2025智能计算术语
- 2025年辽源辅警协警招聘考试备考题库附答案详解(典型题)
- 2025年芜湖辅警招聘考试真题及答案详解(各地真题)
- 2025年阳江辅警协警招聘考试备考题库附答案详解(轻巧夺冠)
- 2025年玉树州辅警协警招聘考试备考题库及答案详解(必刷)
- 2025年菏泽辅警协警招聘考试真题及答案详解1套
- 2025年甘孜藏族自治州辅警协警招聘考试备考题库及答案详解(基础+提升)
- 2025年莱芜辅警协警招聘考试真题附答案详解(典型题)
- 2025年滨州辅警协警招聘考试备考题库含答案详解(培优)
- 2025年湖北辅警协警招聘考试真题附答案详解(综合卷)
- 多重耐药菌的课件
- 交安设施冬季施工方案
- 行业的客户信息管理表格模板
- 航天员工知识培训内容课件
- 鸡蛋采购项目服务方案投标文件(技术方案)
- 静压机工程桩吊装专项方案(2025版)
- 新《安全生产法》(2025版)解读
- 消防安全管理制度(完整版)
- 2024年珠海科技学院公开招聘辅导员笔试题含答案
- 制动盘表面微纳纹理对摩擦系数波动的影响机理与自补偿设计
- 玉米种植课件教学
评论
0/150
提交评论