单片机电子万年历课程设计

上传人:博****1 文档编号:495136908 上传时间:2023-12-24 格式:DOC 页数:15 大小:97.50KB
返回 下载 相关 举报
单片机电子万年历课程设计_第1页
第1页 / 共15页
单片机电子万年历课程设计_第2页
第2页 / 共15页
单片机电子万年历课程设计_第3页
第3页 / 共15页
单片机电子万年历课程设计_第4页
第4页 / 共15页
单片机电子万年历课程设计_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《单片机电子万年历课程设计》由会员分享,可在线阅读,更多相关《单片机电子万年历课程设计(15页珍藏版)》请在金锄头文库上搜索。

1、单片机课程设计姓 名:学 号:专业班级:机电四班一、单片机原理及应用简介随着国内超大规模集成电路的出现,微处理器及其外围芯片有了迅速的发展。集成技术的最新发展之一是将CPU和外围芯片,如程序存储器、数据存储器、并行、串行I/O口、定时/计数器、中断控制器及其他控制部件集成在一个芯片之中,制成单片计算机(Single-Chip Microcomputer)。而近年来推出的一些高档单片机还包括有许多特殊功能单元,如A/D、D/A转换器、调制解调器、通信控制器、锁相环、DMA、浮点运算单元等。因此,只要外加一些扩展电路及必要的通道接口就可以构成各种计算机应用系统,如工业控制系统、数据采集系统、自动测

2、试系统、万年历电子表等。二、系统硬件设计8052 是标准的40引脚双列直插式集成电路芯片,引脚分布请参照-单片机引脚图图1:图1 8052引脚P0.0P0.7 P0口8位双向口线(在引脚的3932号端子)。P1.0P1.7 P1口8位双向口线(在引脚的18号端子)。 P2.0P2.7 P2口8位双向口线(在引脚的2128号端子)。P3.0P3.7 P2口8位双向口线(在引脚的1017号端子)。 8052芯片管脚说明:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。 当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序 数 据

3、存储器,它可以被定义为数据/地址的第八位。在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口的管脚被

4、外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如表1所示:口管脚备选功能P3

5、.0 RXD串行输入口P3.1 TXD串行输出口P3.2 /INT0外部中断0P3.3 /INT1外部中断1P3.4 T0记时器0外部输入P3.5 T1记时器1外部输入P3.6 /WR外部数据存储器写选通P3.7 /RD外部数据存储器读选通表1 特殊功能口P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。一般情况下,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可

6、用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSE N信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000 H- FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内 部

7、锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FL ASH 编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。 三、系统总体方案 我选用的是单片机(8052)来实现电子万年历的功能。共具备两个功能:(1)显示年月日及分秒信息(2)具有可调整日期和时间功能。该电子万年历能够成功实现时钟运行,调整功能,且精确度经调试一天的误差在2S内。1微处理器在设计过程中我使用12MHZ晶振与单片机8052相连接,通过软件编程的方法实现了以24小时为一个周期同时显示小时,分钟和秒的要求,该定时闹钟设有

8、九个按键,使之具备了校时、定时功能。利用单片机定时器及计数器产生定时效果通过编程形成数字钟效果,再利用数码管动态扫描显示单片机内部处理的数据。同时通过端口读入当前外部控制状态来改变程序的不同状态,实现不同功能。在PROTEUS软件环境下的8052芯片如图4所示: 图4 PROTEUS软件环境下的8052芯片 2显示电路就时钟而言,通常可采用液晶显示或数码管显示。由于一般的段式液晶屏,需要专门的驱动电路,而且液晶显示作为一种被动显示,可视性相对较差;对于具有驱动电路和微处理器接口的液晶显示模块(字符或点阵),一般多采用并行接口,对微处理器的接口要求较高,占用资源多。另外,89C2051本身无专门

9、的液晶驱动接口,因此,本设计采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合。初始化时,由软件编写的指令就集中在显示功能的设置上。LGM12641BS1R的指令可带一个、两个参数,或无参数。若指令中含有参数,则每条指令执行时均须先送入参数,再送入指令代码。由于状态位作用不一样,因此执行不同指令必须检测不同状态位。液晶显示模块LGM12641BS1R如图5所示:图5 显示电路LGM12641BS1R3按键电路由于我设计的是电子万年历,需要实现多种功能的显示,并要能够切换显示和调节年月日,因此,在设计过程中按键的设计就显得尤为重要。在设计过程中我一共采用了4个按

10、键,尽量在小的空间里实现最多的功能。其中MODE键是年月日与时间显示切换键,按下一次就能够更换一次显示位。在调整显示环境下UP和DONW键是显示调整位的的加1减1键,FUNCTION键实现清零,并提高万年历显示的精确性。按键电路如图6所示:图6 按键电路 四、硬件电路的总体框图设计该设计的硬件电路的总体框图如图7所示: 按键与按钮 电路复位等辅助电路液晶显示电路总体开关电源系统图7 总体框图五、硬件电路原理图设计该万年历是以单片机8052为核心来完成的。在硬件电路中采用P0口作为6位液晶显示电路的驱动接口,这是由于P0口输出驱动电路工作处于开漏状态,它的驱动能力强,故只需外接上拉电阻便可以把L

11、ED数码管点亮。因为共阴的LED数码管它的驱动电流是分开的,在单片机进行动态扫描的时候不会影响彼此的电流,故该电路中的8位LED数码管均用共阳阴极的数码管。8位LED数码管的位选线分别由相应的P2. 0P2. 5控制,而将其相应的段选线并联在一起,由一个8位的I/O口控制,即P0口。P3口与八个校时按键相连,以成功实现万年历校时的功能。电路原理图如图8所示:图8 硬件电路六、主程序流程图设计该设计主程序流程图如图9所示初始化定时器初始化化定时器初始化化串口初始化显示待机指示符设定月设置年显示刷新启动走时变量初始化刷新显示判时分变化否否?秒指示判秒到否?年代显示时间显示星期显示YYYY:图9 主

12、程序流程图基本显示模块设计的重点是由显示代码取得相应的段码、显示段码数据的串行发送,程序流程如图所示。其中时个位的段码必须加上小数点,即带小数点显示时个位,目的是以小数点符代替时间分割符“-”。软件秒脉冲发生器其实质是利用了定时器0的定时溢出中断,将它设定为100ms溢出中断,则10次中断的时间正好为1s。将时间参数设计为100ms的原因有两个:)根据系统时钟主频为6M的特点,16位定时器最大定时时间为655362M(M为机器周期,这里是2),即131ms,取整数100便于计次数;)如取的太短,如10ms,则定时器频繁中断,干扰系统正常运行效果。有了秒脉冲发生器,10次中断为1s,秒指示灯闪亮

13、1次,秒变量单元加1,60后分变量单元加1,如果为60分则时变量单元加1。任何一个变量的变化,则显示刷新一次(更新)。上述思想的实现均集成在定时器0的中断子程序中。该设计显示模块流程图如图10所示:将进制时分数据转化为显示代码关显示以免显示抖动通过串口将时十位段码送入对应的将时个位段码送入对应的将分十位和个位段码送入各自对应打开显示图10 基本显示模块的程序流程图七、仿真过程1、仿真:打开WAVE6000,输入所编写的源程序并对程序进行编译,在软件的帮助下检查其中的错误并进行反复修改,知道编译正确后运行,确保没有错误以后对正确的源程序进行保存,保存时给其命名,以便将来载入程序时容易找到。2、打

14、开PROTEUS软件,并出画单片机电子万年历具体运行电路图。3、检查所画电路运行图,确保没有错误以后,在PROTEUS下对原理图进行加载WAVE6000下的源程序。4、加载完成后,单击电路图框下的开始按钮,进行仿真,观察LED数码管现实情况,此时LED数码管开始显示数字。调节开关进行时间的调节。当秒的显示间隔快与或慢与实际间隔时,调节石英晶体震荡器的频率参数,从而使秒的间隔达到标准。然后检查电路其它问题,并对其的各参数进行调整,使之正确。八、仿真结果通过在WAVE6000下对源程序的编译,改正了其中的很多错误,然后运行,保证源程序的正确性。然后按原理图选择正确合理的电器元件,画出正确的电路图,加载源程序运行,顺利实现了单片机数字电子钟的“小时”、“分钟”、“秒”的显示。该电子万年历的显示效果及电子万年历时间和日期的调节效果分别如图12和图13所示:图12 电子万年历的运行效果图13 电子万年历时间和日期的调节效果九、课程设计体会通过这一周的课程设计,我学到了不少的知识。把以前没有学好的模拟电路的知识进行了补充和加强。这使我受益很大。加深了我对于单片机和数字电路的认识,相信在以后的学习和工作中碰到这些基础的元器件我会更加得心应手。通过查阅大量的资料,我获得了以前在课堂上学不到的东西,我想

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号