下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、*班级:姓名:学号:指导老师: :、八前言单片计算机即单片微型计算机。由RAMRAM ,ROM,CP,ROM,CP 构成,定时,计数和多种接口于一体的微控制器。它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。而5151 系列单片机是各单片机中最为典型和最有代表性的一种。这次课程设计 通过对它的学习,应用,从而达到学习、设计、开发软、硬的 能力。本设计主要设计了一个基于 AT89C51AT89C51 单片机的电子时钟。 在数码管通过一个控制键转换来显示相应的时间和日期。并通 过多个控制键用来实现时间和日期的调节。应用keilkeil 软件实现单片机电子时钟系统的程序设计,用Prote
2、usProteus 的 ISISISIS 软件实现仿真。该方法仿真效果真实、准确,节省了硬件资源。关键字:单片机时钟键盘控制目录前言 2 目录 2 第一章单片机识的相关知识41.1 单片机简介 41.2 单片机的特点 4 第二章电子时钟 72.1 电子时钟介绍 72 .2 电子时钟的基本特点72.3 电子时钟的原理 72.4 电子时钟元件列表72.5 电子时钟现象 82.6 单片机电子时钟功能82.8 系统的设计构思 9第三章控制系统的硬件设计 93.1 单片机型号的选择 93.2 数码管显示工作原理 103.3 74LS244 介绍:103.4 电子时钟原理图 11 第四章软件设计 124.
3、1 模块划分 124.2 系统源程序 16第五章心得 22第六章参考文献 22第一章单片机识的相关知识1.1 单片机简介单片机全称为单片机微型计算机 。从应用 领域来看,单片机主要用来控制,所以又称为微控制器vMicrocontroller Unit)或嵌入式控制器。单片机是将计算机的基本部件微型化并集成在一块芯片上的 微型计算机。1.2 单片机的特点1 .单片机的存储器 ROM 和 RAM 时严格区分的。ROM 称为程序存储器,只存放程序,固定常数,及数据表格。RAM 则为数据存储器,用作工作区及存放用户数据。2 .采用面向控制的指令系统。为满足控制需要,单片机有更强的逻辑控制 能力,特别是
4、单片机具有很强的位处理能力。3 .单片机的 I/O 口通常时多功能的。因为单片机芯片上引脚数目有限,为 了解决实际引脚数和需要的信号线的矛盾,采用了引脚功能复用的方法,引脚 处于何种功能,可由指令来设置或由机器状态来区分。4 单片机的外部扩展能力很强。在内部的各种功能部件不能满足应用的需 求时,均可在外部进行扩展,与许多通用的微机接口芯片兼容,给应用系统设 计带来了很大的方便。2.4AT89C52 单片机介绍VCC :电源;GND :接地。P0 口: P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。 当P1 口的管脚第一次写 1 时,被定义为高阻输入。P0 能够用
5、于外部程序数据 存储器,它可以被定义为数据/地址的第八位。在 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
6、口被写“ 1 时,其管脚被内部上拉电阻 拉高,且作 为输入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是因为 内部上拉的缘故。P2 口当用于外部程序存储器或 16 位地址外部数据存 储器进 行存取时,P2口输出地址的高八位。在给出地址“ 1 时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器 的内容。P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号。U419XTAL1P0.0/AD0P0.1/AD1P0.2/AD2393718XTAL236P0 3/AD3P0.4/AD43534P0.5/AD5P0.6/AD6P0.7/A
7、D7P2.0/A8339RST322122P2.1/A9P2.2/A10232924PSEN ALEEAP2.3/A11P2.4/A12P2.5/A133025312627P2.6/A14P2.7/A15281P1.0P1.1P3.0/RXDP3.1/TXD102311P1.2P3.2/INT0-413P1.3P3.3/INT1514P1.4P3.4/T0615P1.5P3.5/T1716P1.6P3.6/WR817P1.7P3.7/RDAT89C51图 1 AT89C52 单片机P3 口: P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个TTL 门电流。当 P3 口
8、写入“ 1 后,它们被内部上拉为高电平,并用作输入。作 为输入,因为外部下拉为低电平,P3 口将输出电流 vILL )这是因为上拉的缘 故。P3 口也可作为 AT89C51 的一些特殊功能口,如下表所示:P3.0 RXD串行输入口)P3.1 TXD串行输出口)P3.2 /INT0外部中断 0)P3.3 /INT1外部中断 1)P3.4 T0V 记时器 0 外部输入)P3.5 T1记时器 1 外部输入)P3.6 /WR外部数据存储器写选通)P3.7 /RD外部数据存储器读选通)P3 口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持 RST 脚两个机器周期的
9、高 电平时间。ALE/PROG :当访问外部存储器时,地址锁存允许的输出电平用于锁存地 址的地位字节。在 FLASH 编程期间,此引脚用于输入编程脉冲。在平时, ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。因此它可用 作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存 储器时,将跳过一个ALE 脉冲。如想禁止 ALE 的输出可在 SFR8EH 地址上置 0。此时, ALE 只有在执行MOVX , MOVC 指令是 ALE 才起作用。另外,该 引脚被略微拉高。如果微处理器在外部执行状态 ALE 禁止,置位无效。PSEN:外部程序存储器的选通信号。在由
10、外部程序存储器取指期间,每个 机器周期两次/PSEN 有效。但在访问外部数据存储器时,这两次有效的 /PSEN 信号将不出现。EA/VPP :当/EA 保持低电平时,则在此期间外部程序存储 V0000H- FFFFH),不管是否有内部程序存储器。注意加密方式1 时,/EA 将内部锁定为 RESET;当/EA 端保持高电平时,此间内部程序存储器。在 FLASH 编程期 间,此引脚也用于施加 12V 编程电源VPP)。第二章电子时钟2.1 电子时钟介绍1957 年,Ve ntura 发明了世界上第一个电子表,从而奠定了电子时钟的基础, 电子时钟开始迅速发展起来。现代的电子时钟是基于单片机的一种计时
11、工具, 采用延时程序产生一定的时间中断,用于一秒的定义,通过计数方式进行满六 十秒分钟进一,满六十分小时进一,满二十四小时小时清零。从而达到计时的 功能,是人民日常生活补课缺少的工具。2.2 电子时钟的基本特点现在高精度的计时工具大多数都使用了石英晶体振荡器,因为电子钟、石 英钟、石英表都采用了石英技术,因此走时精度高,稳定性好,使用方便,不 需要经常调试,数字式电子钟用集成电路计时,译码代替机械式传动,用LED显示器代替指针显示进而显示时间和日期,减小了误差,这种表具有时、分、 秒显示时间的功能和年月日显示日期的功能,还可以进行校对,片选的灵活性 好。2.3 电子时钟的原理该电子时钟由 AT
12、89C51, 74LS373,BUTTON,数码管等构成,采用晶振电路作为驱动电路,由延时程序和循环程序产生的一秒定时,达到时分秒的计时,六十秒为一分钟,六十分钟为一小时,满二十四小时为一天,满三十天 闰年二月满二十九天,平年二月满二十八天)为一个月,满十二个月为一年。电 路中的键控 1 实现“年”和“分”的调节,键控 2 实现“月”和“时”的调 节,键控 3 实现“日”和“分”的调节。每按一次就加一。2.4 电子时钟元件列表序号名称数量序号名称数量1单片机 AT89S511 片92.7K 电阻7 只212M 晶振1 个10104 瓷片电容4 只3共阳数码管6 只1130P 瓷片电容2 只4P
13、NP 管 85507 只12200Q电阻1 只574LS2441 片13560Q电阻8 只6蜂鸣器1 个1410K 电阻12 只7微动按键5 个15100Q电阻4 只810UF 电容1 只2.5 电子时钟现象单片机电子时钟,是利用单片机技术实现计时、时间显示、时间调整、定 时调整、闹铃等功能。完成该项目能够有效的训练大家的单片机应用能力,电 子时钟的设计过程中,除了应用单片机前六课题的基础知识外,还使用了外部 中断技术、定时器中断技术、键盘查询及动态显示技术,希望大家通过该项目 的设计,对单片机应用技术有一个较深的认识。2.6 单片机电子时钟功能2.7 系统的硬件描述1控制器用 AT89S51
14、 , 12M 晶振2 数码管动态扫描驱动一一 P2 口3 数码管段码驱动一一 P1 口4闹铃驱动 P1.05.调整键 K1 P3.2(外部中断 0,正常、调时、调分、调秒6定时 /正常切换键 K2P3.37 .时间参数低位加 1 键 K3P3.48 .时间参数高位加 1 键 K4 P3.52.8 系统的设计构思1. 主流程是取时间参数,显示时间参数。2. 利用 T0 中断来完成计时、比较定时时间、驱动闹铃。3. 利用 T1 中断完成动态显示中,调整时间闪烁效果的定时。4. 利用外部中断 0 来完成调整选择功能。5. 利用外部中断 1 完成定时显示,当前时间显示的切换6. K3、 K4 键完成时
15、间参数的循环加 1 操作。第三章 控制系统的硬件设计3.1 单片机型号的选择通过对多种单片机性能的分析,最终认为 89C51 是最理想的电子时钟开发 芯片。89C51 是一种带 4K 字节闪烁可编程可擦除只读存储器的低电压,高性能 CMOS8 位微处理器,器件采用 ATMEL 高密度非易失存储器制造技术制造,与 工业标准的MCS-51 指令集和输出管脚相兼容。因为将多功能 8 位 CPU 和闪烁 存储器组合在单个芯片中, ATMEL 的 89C51 是一种高效微控制器,而且它与 MCS-51 兼容,且具有 4K 字节可编程闪烁存储器和 1000 写/擦循环,数据保留 时间为 10 年等特点,是
16、最好的选择。3.2 数码管显示工作原理数码管是一种把多个 LED 显示段集成在一起的显示设备。有两种类型,一3 34 4种是共阳型,一种是共阴型。共阳型就是把多个 LED 显示段的阳极接在一起, 又称为公共端。共阴型就是把多个 LED 显示段的阴极接在一起,即为公共商。 阳极即为二极管的正极,又称为正极,阴极即为二极管的负极,又称为负极。 通常的数码管又分为 8 段,即 8 个 LED 显示段,这是为项目应用方便如设计 的,分别为 A、B、C、D、E、F、G、DP,其中 DP 是小数点位段。而多位数 码管,除某一位的公共端会连接在一起,不同位的数码管的相同端也会连接在 一起。即,所有的 A 段
17、都会连在一起,其它的段也是如此,这是实际最常用的 用法。数码管显示方法可分为静态显示和动态显示两种。静态显示就是数码管 的 8 段输入及其公共端电平一直有效。动态显示的原理是,各个数码管的相同 段连接在一起,共同占用 8 位段引管线;每位数码管的阳极连在一起组成公共 端。利用人眼的视觉暂留性,依次给出各个数码管公共端加有效信号, 在此同 时给出该数码管加有效的数据信号, 当全段扫描速度大于视觉暂留速度时,显 示就会清晰显示出来。图 2 共阳极数码管3.374LS244 介绍:该电路使用芯片 74LS244 来驱动发光两极管,74LS244 芯片说明书如下,使用时注意判断芯片的引脚号,引脚示意图
18、如下:Connection DiagramDuohln-LirkB PsckEigBi*a 3A)1*1 ”2 WAAI1111) )2Y41JL2=11A311 1M S1 GWTL/F/BWTOrdrr Numibvr54L53MFMQB, 54L&244LMQB.DM74LS244WM$r DUl74L244jNSee NS凸氏晦e Nmnibr E20A. J2OA.M20B. N2DA W W2DA3.4 电子时钟原理图Function TableOulutALLLLHHHXZL UtiCHi Lcfpc LnwK - Eltv LowD*HgtiLDQKL#wiZ -喇常l
19、lnflLftnrtR9TPITH2rimzri.vn/KH2FIJI F1,lFISFKH.TrJJTRXRF3.rrr-ipjyrnifaTTJrajmWEF. -.-urn.in.liPDAKZD3.n川环事FQATAnPD.1MuVTrZIYADDliHDliH口仏曰4.1 模块划分LED第四章软件设计主程序函数图 5.1时钟显示4.1.1 时钟设置函数检测ft函onftion关定时器禁止闹钟修改、清闹钟修改标志设置时钟秒单元为显示首地址函数函数函数函数时钟修改记录值加 1 1记录值为 1 1吗?记录值为 2 2 吗?3 3吗?时钟单元修改位置记录值清零开定时器记录值为图 5.2 时钟
20、设置函数流返回4.1.2 主程序函数 mainv)将时钟秒修改标志置 1 1将时钟分修改标志置 1 1将时钟小时修改标志置 1 1调用键盘检测函数4.1.3 闹钟设置函数 ftionl4.1.4 闹钟判断启动函数 alarm1r4.1.6NYNY4.2#i清零清零到 24h24h 否?清零中断服务开始关中断分单元加1h1h 到否?时单元加24h24h 到否?数流程1s1s 到否?时单元清零*nclude#dit buzzer=P1A0sb中断返回it key仁卩3人2sbsb记录值为 2 2 吗?记录值为 2 2 吗?如果已启闹铃则闹铃图 5.6 加 1 修改功能函数流程时间变量加 1 1定时
21、器中断函数 clockefine uchar un sig nedchar秒单元内容加 1 1,十进制调整分单元内容加 1 1,十进制调整图 5.7 定时器中断函到 60min60min250us250us 次数清零丫返回:时单元加 1 1系统源程序时单兀加 1 1满 4040 次 10ms。uchar keyscan( 。/ 扫描键盘有无键按下void alarm(。/ 闹钟判断启动void ftionO(。/ 时钟修改void ftion1(。/ 闹钟修改void cum1( 。/ 加 1 修改void cum2( 。/*全局变量定义 */uchar clockbuf3=O,O,O。 /
22、存放时钟时分秒的十进制数uchar bellbuf3=O,O,O。 / 存放闹钟时分秒的十进制数uchar msec1 。/1Oms 中断次数uchar msec2 。/1s 循环次数uchar timdata,rtimdata。/ 时钟和闹钟修改位置标志uchar count 。/ 闹钟启动后 1Os 计时单元uchar *dis_p。/ 显示缓冲区指针bit armbit 。/ 闹钟标志,为 O 闹钟未设定,为 1 已设定bit rtimbit。/ 闹钟是否启动标志,为 1 已启动bit rhourbit。 / 闹钟小时修改标志,为 1 正在修改闹钟小时bit rminbit。/ 闹钟分修
23、改标志,为 1 正在修改闹钟分bit hourbit。/ 时钟小时修改标志,为 1 正在修改时钟小时bit minbit 。/ 时钟分修改标志,为 1 正在修改时钟分bit secbit 。/ 时钟秒修改标志,为 1 正在修改时钟秒/*主函数*/void main(uchar a 。armbit=0 。 / 清零闹钟标志位msec1=0。/ 设置 10ms 中断次数初值 msec2=0。/ 设置 1s 中断次数初值 timdata=0 。/ 时钟内容修改位置记忆单元清零 rtimdata=0 。 / 闹钟内容修改位置记忆单元清零count=0 。 / 闹钟启动后保持 10s 计时单元清零TMO
24、D=OxO。/定时器 TO 为工作方式 2TL0=0 x06。 / 定时初始值为 250usTHO=OxO6。EA=1。/中断总允许位开启ETO=1。/定时器 TO 开中断TRO=1。/启动定时器 TOdis_p=clockbuf。 /将时钟值所在地址送入显示指针while(1void display(uchar *puchar buffer6。uchar k,I,j,m,temp 。uchar led=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90/0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,
25、0 x7d,0 x07,0 x7f,0 x6f buffer0=p0/10 。buffer1=p0%10 。buffer2=p1/10 。buffer3=p1%10 。buffer4=p2/10 。 buffer5=p2%10 。 for(k=0 。 ktemp=0 x01 。for(i=0。 iP0=0 xff 。 j=bufferi 。P0=ledj 。P2=temp。temp=1。for(m=0 。 m。 / 每一位显示延时按键查询函数 */uchar keyscan(uchar e=0 。if(key1=0|key2=0|key3=0|key4=0display(dis_pa=keys
26、can( 。 / 调用按键查询函数switch(acase 0:if(armbit=1alarm(。 display(dis_p 。 break 。case 1:ftion0(。 break 。 / 是时钟参数修改功能键,调用时钟设置子函数case 2:ftion1(。 break 。 / 是闹钟参数修改功能键,调用闹钟设置子函数case 3:cum1(。 break 。 /是加 1 功能键,调用加 1 修改功能子函数case 4:cum2(。 break 。default:break。*6位 LED 显示函数 */if(key1=0e=1 。else if(key2=0e=2 。else i
27、f(key3=0e=3 。else if(key4=0e=4 。while(!(key1&key2&key3&key4display(dis_preturn(e 。void alarm(if(clockbuf0=bellbuf0&(clockbuf1=bellbuf1buzzer=0 。 rtimbit=1 。/ 设置闹钟计时标志,时钟将进行10s 计时标志if(count=10 / 判断闹钟保持 10s 时间到否count=0 。buzzer=1 。armbit=0 。/ 清除闹钟保持 10s 计时/ 清除闹钟/ 清闹钟标志,否则闹钟设置将继续有效rtimbi
28、t=0 。void ftion0(if(rhourbit=1|rtimbit=1secbit=0 。 minbit=0 。 hourbit=0 。 timdata=0 。/ 禁止闹钟时间参数修改,清闹钟修改标志elseTR0=0。/ 关定时器闹钟判断启动函数 */时钟设置函数 */dis_p=clockbuf/ 将时钟缓冲区首地址送显示指针timdata+ 。/ 将时钟修改记录值加 1switch(timdatacase 0 x01:secbit=1置 1case 0 x02:secbit=0分修改标志置 1case 0 x03:minbit=0break 。 / 记录值为 1,则将时钟秒修改
29、标志minbit=1 。 break 。 / 记录值为 2,则将时钟hourbit=1 。 break 。 / 记录值 3,则将时钟时修改标志置 1case 0 x04:timdata=0hourbit=0 。 TR0=1。 break 。 / 按 4 次则清时钟单元修改位置/ 记录,定时器重新开启default:break 。 /*void cum1(if(secbit=1 /时钟秒修改标志为 1,秒单元内容加 1if(clockbuf2=59 clockbuf2=0。else clockbuf2+ 。 else if(minbit=1 / 时钟分修改标志为 1,分单元内容加 1 if(cl
30、ockbuf1=59clockbuf1=0。else clockbuf1+ 。 else if(hourbit=1 /时钟小时修改标志为 1,小时单元内容加 1if(clockbuf0=23 clockbuf0=0。else clockbuf0+ 。 else if(rminbit=1 / 闹钟分修改标志为 1,分单元内容加 1 if(bellbuf1=59bellbuf1=0 。else bellbuf1+ 。 else if(rhourbit=1 / 闹钟小时修改标志为 1,小时单元内容加 1 if(bellbuf0=23bellbuf0=0 。闹钟设置函数 */void ftion1(i
31、f(secbit=1|minbit=1|hourbit=1rhourbit=0 。 rminbit=0。 rtimdata=0 。/ 禁止时钟时间修elsedis_p=bellbuf 。rtimdata+ 。switch(rtimdata case 0 x01:rminbit=1/ 设置闹钟显示标志/ 将闹钟修改记录值加。 break 。 / 记录值为1,将闹钟分修改标志case 0 x02:rminbit=0。 rhourbit=1。 break 。/ 记录值为 2 ,将时钟分修改标志置 1case 0 x03:rtimdata=0。 rhourbit=0 。 / 按 3 次则清闹钟单元修改
32、位置记录/ 设置闹钟已设置标志位dis_p=clockbuf 。 / 恢复时钟显示标志 break 。armbit=1 。default:break 。加 1 修改功能函数*/else bellbuf0+。 void cum2(if(secbit=1 if(clockbuf2=0 clockbuf2=59 else clockbuf2- 。 else if(minbit=1 if(clockbuf1=0 clockbuf1=59 else clockbuf1- 。 else if(hourbit=1 if(clockbuf0=0 clockbuf0=23 else clockbuf0-。 else if(rminbit=1 if(bellbuf1=0 bellbuf1=59 else bellbuf1-。 else if(rhourbit=1 if(bellbuf0=0 bellbuf0=23 else bellbuf0-。 void clock( interrupt 1EA=0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医院中药柜考核制度
- 教育工会详细考核制度
- 超市供应链考核制度
- 负责人薪酬考核制度
- 采购买手绩效考核制度
- 教师线上阅读考核制度
- 河长制督察考核制度
- 设计师激励考核制度
- 市场部月度考核制度
- 在校学生会考核制度
- 2026广东潮州市饶平县信访局招聘后勤服务人员1人笔试备考题库及答案解析
- 发热待查诊治专家共识(2026 版)
- 家具制造工艺流程与标准操作规程
- 2026北京西城初二上学期期末数学试卷和答案
- 马年猜猜乐(马的成语)打印版
- 2026年及未来5年市场数据中国磷化铟行业市场调研分析及投资战略咨询报告
- 北京市东城区2024-2025学年高一上学期期末统一检测地理试卷
- 2025年郑州铁路职业技术学院单招职业技能考试题库含答案
- 物业人员管理及培训方案
- 2.1地形导学案-八年级地理上学期人教版
- GB/T 37507-2025项目、项目群和项目组合管理项目管理指南
评论
0/150
提交评论