《单片机多功能电子数字钟课程设计报告docdeflate》由会员分享,可在线阅读,更多相关《单片机多功能电子数字钟课程设计报告docdeflate(20页珍藏版)》请在金锄头文库上搜索。
1、1多功能电子数字钟设计多功能电子数字钟设计 数字钟在日常生活中最常见,应用也最广泛。本文主要就是设计一款数字钟,以 89C52 单片机为核心,配备液晶显示模块、时钟芯片、等功能模块。数字钟采用 24 小时制方式显示时间,定时信息以及年月日显示等功能。文章的核心主要从硬件设计和软件编程两个大的方面。硬件电路设计主要包括中央处理单元电路、时钟电路、人机接口电路、信号处理电路、执行电路等几部分组成。软件用 C 语言来实现,主要包括主程序、键盘扫描子程序、时间设置子程序等软件模块。关键词 单片机 液晶显示器模块 数字钟 一 硬件电路设计及描述;1、MCS-51 单片机单片机是在一块硅片上集成了各种部件
2、的微型计算机。这些部 件包括中央处理器 CPU、数据存储器 RAM、程序存储器 ROM、定时器 /计数器和多种 I/O 接口电路。 8051 单片机的结构特点有以下几点:8 位 CPU;片内振荡器及 时钟电路; 32 根 I/O 线;外部存储器 ROM 和 RAM;寻址范围各 64KB;两个 16 位的定时器/计数器; 5 个中断源,2 个中断优先级; 全双工串行口。 定时器/计数器 8051 内部有两个 16 位可编程定时器/计数器,记为 T0 和 T1。16 位是指他们都是由 16 个触发器构成,故最大计数模值为 216-1。可编程是指他们的工作方式由指令来设定,或者当计数器来2用,或者当
3、定时起来用,并且计数(定时)的范围也可以由指令来 设置。这种控制功能是通过定时器方式控制寄存器 TMOD 来完成的。 在定时工作时,时钟由单片机内部提供,即系统时钟经过 12 分频后 作为定时器的时钟。技术工作时,时钟脉冲由 TO 和 T1 输入。 中断系统 8051 的中断系统允许接受五个独立的中断源,即两个外部中断 申请,两个定时器/计数器中断以及一个串行口中断。 外部中断申请通过 INTO 和 INT1(即 P3.2 和 P3.3)输入,输入 方式可以使电平触发(低电平有效) ,也可以使边沿触发(下降沿有 效) 。2、8051 的芯片引脚如图 1-2 所示 VCC:供电电压。 GND:接
4、地。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 编程和
5、校验时,P1 口作为第八 位地址接收。 P2 口:P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 口缓 冲器可接收,输出 4 个 TTL 门电流,当 P2 口被写“1”时,其管脚 被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2 口的管 脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2 口当用 于外部程序存储器或 16 位地址外部数据存储器进行存取时,P2 口3输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当 对外部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存 器的内容。P2 口在 FLASH 编程和校验时接收高八位地址信号和控制 信号。 P3
6、口: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、7 /RD(外部数据存储器读选通) P3 口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持 RST 脚两个机器 周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用 于锁存地址的地位字节。在 FLASH 编程期间,此引脚用于输入编程 脉冲。在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率 为振荡器频率的 1/6。因此它可用作对外部输出的脉冲或用于定时 目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个 ALE 脉冲。如想禁止 ALE 的输出可在 SFR8EH 地址上置 0。此时, ALE 只有在执行 MOV
8、X,MOVC 指令是 ALE 才起作用。另外,该引脚被 略微拉高。如果微处理器在外部执行状态 ALE 禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指 期间,每个机器周期两次/PSEN 有效。但在访问外部数据存储器时, 这两次有效的/PSEN 信号将不出现。 /EA/VPP:当/EA 保持低电平时,则在此期间外部程序存储器 (0000H-FFFFH) ,不管是否有内部程序存储器。注意加密方式 1 时, /EA 将内部锁定为 RESET;当/EA 端保持高电平时,此间内部程序存 储器。在 FLASH 编程期间,此引脚也用于施加 12V 编程电源(VPP) 。XTAL
9、1:反向振荡放大器的输入及内部时钟工作电路的输入。4XTAL2:来自反向振荡器的输出。 二 设计基本原理简介数字钟的设计首先要保证其走时尽可能准确,其次再根据人们日常的使用习惯来设定其附加功能。在设计中利用单片机定时计数器来完成走时并用两组输出口控制数码管来显示;通过编程向某一输出口输出方波实现报时及闹铃;利用输入端口外接各种开关来完成对走时及显示的控制(如预置时间等)。1 复位电路MCS-51 单片机的复位是由外部的复位电路来实现的。复位引脚RST 通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,在每个机器周期的 S5P2,斯密特触发器的输出电平由复位电路采样一次,然后才能得到
10、内部复位操作所需要的信号。上电复位:上电复位电路是种简单的复位电路,只要在 RST复位引脚接一个电容到 VCC,接一个电阻到地就可以了。上电复位是指在给系统上电时,复位电路通过电容加到 RST 复位引脚一个短暂的高电平信号,这个复位信号随着 VCC 对电容的充电过程而回落,所以 RST 引脚复位的高电平维持时间取决于电容的充电时间。为了保证系统安全可靠的复位,RST 引脚的高电平信号必须维持足够长的时间。2 时钟电路Y5时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不紊的一拍一拍地工作。因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。常用的
11、时钟电路有两种方式:一种是内部时钟方式,另一种为外部时钟方式。本文用的是内部时钟方式。电路图如下:MCS-51 单片机内部有一个用于构成振荡器的高增益反相放大器,该高增益反向放大器的输入端为芯片引脚 XTAL1,输出端为引脚XTAL2。这两个引脚跨接石英晶体振荡器和微调电容,就构成一个稳定的自激振荡器。 按键电路按键的开关状态通过一定的电路转换为高、低电平状态。按键闭合过程在相应的 I/O 端口形成一个负脉冲。闭合和释放过程都要经过一定的过程才能达到稳定,这一过程是处于高、低电平之间的一种不稳定状态,称为抖动。抖动持续时间的常长短与开关的机械特性有关,一般在 5-10ms 之间。为了避免 CP
12、U多次处理按键的一次闭合,应采用措施消除抖动。本文采用的是独立式按键,直接用 I/O 口线构成单个按键电路,每个按键占用一条I/O 口线,每个按键的工作状态不会产生互相影响。电路图如下:64.34.3 按键电路按键电路按键的开关状态通过一定的电路转换为高、低电平状态。按键闭合过程在相应的 I/O 端口形成一个负脉冲。闭合和释放过程都要经过一定的过程才能达到稳定,这一过程是处于高、低电平之间的一种不稳定状态,称为抖动。抖动持续时间的常长短与开关的机械特性有关,一般在 5-10ms 之间。为了避免 CPU 多次处理按键的一次闭合,应采用措施消除抖动。本文采用的是独立式按键,直接用I/O 口线构成单
13、个按键电路,每个按键占用一条 I/O 口线,每个按键的工作状态不会产生互相影响。电路图如下:P1.0 口表示功能移位键,按键选择要调整的年、月、日、小时、分、秒。 P1.1 口表示数字“+“键,按一下则对应的数字加 1。 P1.2 口表示数字“-”键,按一下则对应的数字减 1。 P1.3 口表示退去选项,时间已经调整好总电路原理图7EA/VP31X119X218RESET9RD17WR16INT012INT113T014T115P10/T1P11/T2P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P21
14、22P2223P2324P2425P2526P2627P2728PSEN29ALE/P30TXD11RXD10U18052Y1 12MC130PC230P22uC3R1 3001122R21001122S1VCCVCCP30 P31P35 P34P36 P37S21122S3S4S5P00 P01 P02 P03 P04 P05 P06 P07P20 P21 P22 P23 P24 P25 P26 P27P10 P11 P12 P13 P14 P15 P16 P1712345678910111213141516J1CON16P32P33VCCA1B2TAP3RP 50KVCC123456789
15、10111213141516J2CON16P10 P11 P12 P13 P14 P15 P16 P17 P30 P31 P32 P33 P34 P35 P36 P37LS1SPEAKERQ1 PNPR5 5.1KR6 5.1KP27VCCP10P11P12P131 2 3 4 5 6 7 8 9J5CON9P00 P01 P02 P03 P04 P05 P06 P07VCCP24 P25 P26P00P01P02P03P04P05P06P0712J4CON21122S8SW-SPST VCC电路的软件设计 1 软件程序内容本设计的软件程序包括主程序、中断子程序、打铃子程序、时钟显示子程序、查
16、询时间表切换程序和延时子程序等等。另外由于电路中有四个按键,还另外设计了防抖动程序来防止干扰。系统软件设计流程图这次的数字电子钟设计用到很多子程序,它们的流程图如下所示。主程序是先开始,然后启动定时器,定时器启动后在进行按键检测,检测完后,就可以显示时间。8图 5-1 主程序流程图按键处理是先检测秒按键是否按下,秒按键如果按下,秒就加 1;如果没有按下,就检测分按键是否按下,分按键如果按下,分就加1;如果没有按下,就检测时按键是否按下,时按键如果按下,时就加 1;如果没有按下,就把时间显示出来。开始启动定时器按键检测时间显示9图 5-2 按键处理流程图定时器中断时是先检测 1 秒是否到,1 秒如果到,秒单元就加 1;如果没到,就检测 1 分钟是否到,1 分钟如果到,分单元就加 1;如果NYNYNY时加 1显示时间结束开始秒按键按下?秒加 1分按键按下?分加 1时按键按下?10没到,就检测 1 小时是否到,1 小时如果到,时单元就加 1,如果没到,就显示时间。N 24 小时到?分单元清零,时单元加 1NNNYY时单元清零时间显示中断返回开始一秒时间到?6